Database Relazionali o Non Relazionali

Con il passare del tempo e il notevole incremento della diffusione dei dispositivi mobile (smartphone e tablet in primis), dello sviluppo di vari Social Network e delle nuvole di dati (servizi cloud), si è dovuto pensare a un nuovo tipo di database, per accelerare il caricamento dei dati.

Ecco che arrivano i database non relazionali, detti anche NoSQL. Ma cosa sono? Cosa li differenzia da quelli relazionali (i classici SQL)? Quali sono i pro e i contro?

Ne parlerò in seguito. Partiamo da una presentazione principale dei database SQL, ovvero cosa è un database?

Bene un database può essere visto, in parole povere, come una libreria ikea (quelle quadrate, con tanti box). Dove ogni box è una tabella, e in esso sono contenute varie informazioni, detti record (righe), suddivisi da dei campi (colonne, dettagli del record).
Questo tipo di struttura, però ha qualche difetto, come quello di avere delle informazioni spezzettate su più tabelle, collegate tra di loro. Questi collegamenti comportano dei rallentamenti, e delle ripetute richieste di query sql al database. Ma le query non sono solo in uscita, ma anche in entrata, proprio perché anche il semplice inserimento, modifica o eliminazione di un dato, comporterà poi un mix di richieste al database relazionale.
Si chiamano per l’appunto database relazionali, poiché sono dei database, costituiti dalle varie relazioni interne tra le tabelle, come detto prima, collegamenti (le join).

database

Ora arriviamo a spiegare cosa sono i databasi NoSQL (non relazionali) e cosa cambia nella struttura.

Per prima cosa la struttura di base è totalmente diversa tra database SQL e NoSQL. Infatti se nel primo caso il database è costituito da tabelle, nel secondo caso si tratta di documenti, dove sono contenute tutte le informazioni richieste, ovvero i dati (i dati sono informazioni, che inutile rigiro di parole, o forse no?).
Tutti i dati presenti nel documento (o più documenti) quindi saranno associati a delle entità, che verranno trattate come oggetti, e si avranno tutte le informazioni richieste in un colpo solo.

Oggi si può passare da un database relazionale, a uno non relazionale. O per lo meno si può fare in modo che i dati prelevati dalle tabelle SQL, vengano convertiti in un documento tramite codice, in genere JSON, e poi richiamati dall’utente. Il tutto potrebbe però risultare molto macchinoso e lento. Ed ecco che entra in gioco un nuovo metodo di programmazione, ajax, dove tramite javascript e l’utilizzo di librerie, viene alleggerito il carico di dati, mostrato sul momento, e viene fatto in modo che i dati vengano caricati lato-server e non lato-client. Riducendo notevolmente il caricamento degli stessi.

Riassumendo, quali sono vantaggi e svantaggi dei DB NoSQL quindi?

I vantaggi sono notevoli, leggerezza di calcolo (non vengono eseguite operazioni di aggregazione di dati), non vi sono rischi per l’integrità dei dati, poiché non essendoci dati spezzettati, i dati si trovano tutti nello stesso posto, e vengono recuperati così come sono. Altro vantaggio è la scalabilità dei dati in maniera orizzontale, e non più verticale.

Probabili svantaggi possono essere quelli, dove vi è un progetto già avviato, e quindi bisogna rimettere mano sul codice, per effettuare la conversione spiegata prima.

In genere questo tipo di database viene utilizzato da chi ha delle grossi moli di dati archiviati, su cui lavorare, e deve ripetutamente effettuare richieste al database stesso. Vedesi grosse società gestionali, banche, assicurazioni, o come detto inizialmente i soli Social Network come Facebook, Google Plus, Twitter, Pinterest e tanti altri.

Più avanti spiegherò nel dettaglio le tecniche citate nell’articolo, poiché ne ho avuto modo di adoperarle a lavoro in prima persone, e ho notato la notevole differenza in tempi di richiesta e disposizione dei dati. Non ti resta che rimanere sintonizzato per i prossimi aggiornamenti!

Seguiteci anche su Facebook, Google Plus, Tumblr e Twitter, per restare sempre in contatto con noi e con le nostre guide.



Cerca

Seguici

Live da Facebook
Live da Twitter
Seguici su Telegram
Canale InsiDevCode Telegram