ITcms ver. 2.0-open

Realizzazione Sito

Soli 100€!!!

SkinIT

Le skin per ITcms

 

 

 

 

 

 

 

Riflessione sui Database Relazionali tipo MySql   Stampa questo documento dal titolo: . Stampa

Warning: date() expects parameter 2 to be long, string given in /var/www/vhosts/educote1000017/httpdocs/func.inc.php on line 696

Warning: date() expects parameter 2 to be long, string given in /var/www/vhosts/educote1000017/httpdocs/func.inc.php on line 699
Buongiorno e spero che qualcuno legga e commenti questo mio articolo.

Vorrei illustrare i pregi e difetti nell'usare i database o i filesistem.

Ovviamente mancandomi il tempo quest'articolo rimarrà aperto per aggiute in quanto non penso di finirlo presto.

Osserviamo, sulla rete, che ormai qualsiasi linguaggio di programmazione venga utilizzato(Php, asp, asp.net, jsp, vb.net ect...) per realizzare un sito web esso sfrutta sempre un database per archiviare le informazioni che si intendono far visualizzare ai visitatori. Anche tra i database ne troviamo vari e vasti e il discorso che aprirò questa notte, sarà valido per tutti loro.

Premettendo che ormai è da molto che scrivo codice per salvataggio su file e che non sono l'unico; pensando inoltre che esistono software scritti anche in C o C++ che utilizzano database di file e che devono funzionare sul nostro computer e non in internet, non vedo come questi esempi non possono farci aprire gli occhi sull'utilizzo di questa preziosa e gratuita risorsa di storage.

Pesiamo ora le due modalità di salvatagio dati.

Con i database si è sempre sentito dire in giro per la rete che essi sono (rispetto ai file) più sicuri, migliori, addirittura più veloci. Ebbene analizziamole tutte le caratteristiche buone e cattive dei database.

Certamente realizzare un sito web utilizzando i database ci permette di creare un codice facilmente intellegibile da quanti conoscono quel particolare database. Se utilizzo MySql e scrivo uno script per realizzare una query, una select, ect tutti i conoscenti di quel linguaggio sapranno in anticipo i miei intenti. Ebbene stà proprio li il bene e il male. Con i database ho bisogno di imparare un altro linguaggio, e con esso nascono problemi (ho visto forum e liste piene di quesiti a problemi da risolvere per realizzare una determinata select=selezione di argomenti da ricercare nel database. Non ne parliamo poi quando si costruiscono dei veri Database Relazionali. Non tutti, poi ne sono capaci.

Ovviamente una volta acquisito le capacità di creare e gestire efficacemente un database, non avremo più problemi. E no quì casca un'altro asino. La difficoltà si rivela quando: vogliamo cavarcela creando il nostro sito a livello amatoriale. Ogni mantainer cioè colui che ci vende lo spazio web, ci chiede da poco a molto in più, per avere oltre al linguaggio php, anche quello per i database. I database costano. Quindi ce li fanno pagare e profumatamente. Smettetela quanti di voi sono convinti che ormai essi non costano e molti ci offrono il pacchetto Php,mysql tutto insieme a prezzi ragionevoli.

Come dicevo un tipico MySql costa, il gestore deve (è vero non paga il software che è gratis) mantenere efficiente i database, che, fatto non raro, è sempre avvezzo ad andare in crash o fuori servizio, specialmente quando installato in un server debole e non ridondante. Costa per i backup, costa per gli aggiornamenti e per i lavori da effettuarci, costa per la banda, insomma è un lavoro extra per il mantainer e che fa gravare sulle nostre spalle.

Molti si sono trovati con l'impossibilità di accedere al proprio database perchè in quel particolare momento vi era stato un sovraffollamento di query.

Per quanto riguarda la sicurezza siamo al non plus ultra, possiamo avere anche database criptati con chiavia 128 bit, ma nulla ci vieta di criptare le info sul nostro file di testo. Ma poi veramente abbiamo bisogno di tutta questa sicurezza?

Pensiamoci un attimo !! Una volta che abbiamo archiviato le nostre password uente in md5, perchè vorremo che l'argomento della discussione di un forum o di una news fossero protetti da sguardi indiscreti sul nostro filesistem quando poi rendiamo tutto disponibile sulle pagine del sito. Sicuramente dovremo darci da fare se le nostre pagine web fossero riservate a determinati utenti.

Certo che se avessimo un sito di una banca o più semplicemnte un sito di transazioni commerciali allora si che avremmo veramnte bisogno di un database, non per la maggiore sicurezza rispetto ai filesistem, ma perchè non dovremo scevverlarci a programmare un metodo sicuro per nascondere a occhi indiscreti i dati sensibili dei nostri utenti sui nostri beneamati file. Ma poi siamo "sicuri" della "sicurezza" a prova di ladro? Come mai, allora, si è avuta notizia di innumerevoli furti di numeri di carte di credito da banche? I dati non erano conservati in database?

Benissimo se per la sicurezza non abbiamo dubbi, allora potrmo obbiettare che i database sono più veloci!

Ma di cosa, dei filesistem? E qui ricasca il solito quadrupede. Ma se il database è un file!! con estensione sql, significa quindi che anche DBMS (database menagement system) cioè l'interfaccia che fa colloquiare Php con i dati inseriti nel database e che è costituito da una serie di funzioni e regole sintattiche non fa altro che aprire è chiudere un file, dove poi organizza e struttura tutte le informazioni.

A questo punto come può essere più veloce, se il procedimento è uguale a quello dello storage nel fielsistem??? Ovviamente la velocità a favore del database può sorgere, in fase di estrazione/lettura dei dati, solo quando il database sia stato strutturato in maniera "veramente" relazionale. Ma sui nostri filesistem nessuno ci vieta di collegare i dati e strutturarli in maniera perfettamente relazionale, trovando le informazioni in maniera velocissima.

Si potrà obiettare che i filesistem sono soggetti a corrompersi ( può accadere quando si verificano richieste contemporanee di scrittura in un file ) cioè potremo trovarci con un database vuoto solo perche due utenti hanno inserito una risposta al forum, nello stesso istante. Infatti nella contemporaneità potrebbe accadere che una delle due richieste trovi il file svuotato dalla sua precedente che operando in scrittura ha gia svuotato il file per scriverci tutto ciò che aveva letto più la sua aggiunta e quindi la seconda richiesta non trovando nulla aggiunge la sua risposta non alle risposte precedenti ma al nulla che ha trovato. Per questi casi anche i file possono essere preservati implementando una funzione (flock) o una simile che faccia da semaforo gestendo le richieste di accesso al file ed impedendo che accedano al file richieste contemporanee.

Dovendo imparare un nuovo linguaggio, e scartando che l'utilizzo dei database è gratuito, viene meno il: "chi me lo fa fare di mettermi a salvare i dati sui file"; inoltre dato che non siamo banche e quindi non ci occorre tutta questa sicurezza ferrata, e dato che per velocità non passiamo certamente da una ferrari ad una cinquecento per i nostri siti amatoriali, il filesistem risulta, fin'ora la scelta più azzeccata.

Lo storage su filesistem è subito disponibile: non dobbiamo installare database sul server, non li dobbiamo settare, non dobbiamo conoscere un altro linguaggio che ci consente di utilizzarli , crearli, e gestirli; è stesso Php che ci fornisce tutto quello di qui abbiamo bisogno.

La cosa negativa di questa prassi è che non essendoci una modalità standard di archiviazione di dati ogn'uno fa un po' come gli pare. Questo poi diventa negativo per chi vuole capire e imparare a programmare in php, salvando su file.

E l'argomento no finisce qui... too bee continued.


Pubblicazione del:
nella Categoria Php


« Precedente   Elenco   Successiva »

27-02-2005 ore 22:14Commento n°1 di: vigilenapoletano
Esattamente, Quando lavoriamo con database relazionali, è lo stesso linguaggio Mysql che fa, a volte anche più, della metà del lavoro di Php. <br>Nei filesistem è solo il Php che è carico di lavoro. Ma con i server attuali che compiono milioni di operazioni al secondo non vedo dove possa essere il problema nello spremere il nostro amato linguaggio!!<br><br>Ultimamente nella realizzazione del “BIG Forum ©” mi sono incaricato di cronometrare php, proprio per vedere fino a che velocità possono essere estratti i dati e riorganizzati. Si proprio riorganizzati, perché se vedi bene anche il “BIG Forum ©” come del resto i più rinomati forum che trovi in rete, permette di riorganizzare le discussioni di un forum secondo la data di inserimento o di aggiornamento o secondo l’autore, le letture , le risposte, riordinandole poi sia in ordine crescente che decrescente, con l’aggiunta di poter restringere la ricerca all’ambito temporale che più ci aggrada. Io ho già spinto oltre il big forum, riempiendolo con 1000 post si leggi bene mille discussioni create a random, e ti posso assicurare che php è stato come sempre, una scheggia. Gia ora puoi vedere come i server altervistiani non impieghino più di qualche decimo a volte centesimi di secondi nell’elaborare la pagina.<br><br>Ritornando all’oggetto della discussione ti chiedo: ma poi sei sicuro che se utilizzo uno script creato da qualcuno in rete che utilizzi database esso è scritto e organizzato correttamente? I relazionali come tu dicevi sono portabili, e maneggevoli, e permettono tramite il loro linguaggio proprietario di fare un lavoro estenuante al posto di Php per restringere ricerche, per collegare join vari campi e tabelle insomma di semplificarci la vita notevolmente. Ma tutto ciò se alla base il database è stato progettato correttamente. Ho visto stipati in colonne di database dell'inverosimile: Addirittura una volta vidi in una colonna di db, diversi indirizzi email riferiti a non ricordo bene quali enti che erano separati da una virgola. L’estrazione dei dati avveniva similarmente come faccio io con split o explode, ridicolo non trovi?<br><br>Quindi se tenendo presente un database progettato con le palle e uno storage fatto con criterio sul filesistem non vedo perchè su quest'ultimo non posso effettuare quelle scremature che dicevi in precedenza <br>
27-02-2005 ore 18:40Commento n°2 di: Assone
Ciao, premetto che non è assolutamente una critica a quanto hai scritto...sono così giovane del PHP che posso solo ascoltare senza proferire parola a chi il linguaggio PHP se lo mangia a merenda ;-).<br>Si il DB soffre di problemi di sicurezza , mi riferisco alle SQL Injection che defacciano molti CMS "facilmente", ma forse un portale gestito con DB relazionale è piu' "maneggiabile" nella manipolazione dei dati... un backup, ad esempio, una scrematura (drop table) di cio' che non ci interessa e che appesantisce il CMS .<br>Forse l'engine PHP del server deve lavorare maggiormente rispetto allo storage dei dati nel Database MySql quando i nostri utenti ci vengono a trovare tutti insieme interagendo con il sistema.<br><br>Ciao Vigile.<br>Assone<br><br>Assone

Titolo Precedente: Ehi!! sto producendo su richiesta un gestore link.

Titolo Successivo: Approposito di una nuova rivista sul Php

Elenco Generale Riflessione sui Database Relazionali tipo MySql


LOGIN

  

Registrati

Recupera Password


Calendario Plus

Oggi: 09/09/2010

« Settembre 2010 »
Lu Ma Me Gi Ve Sa Do
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

newsletter


Puoi Iscriverti o Cancellarti

Logo
 

Riferimenti in Rete



 

AdSense

Google:



 

*
Acquista e contribuisci

 

Donazioni



TopHost
logo tophost