In un precedente articolo abbiamo discusso del Database Relazionale, un modello di database che memorizza i dati strutturandoli in tabelle, colonne legate tra loro e righe. Nel mondo anglosassone è conosciuto come Relational Database (RDB). Appunto l’elemento chiave del database relazionale è la relazione tra i dati: seguono una struttura logica e ogni tabella è strutturata in:
- Record (righe)
- Attributi (colonne)
Nel gergo informatico, le righe sono nominate pure tuple. Prima di capire le differenze tra Database Relazionale e un Database non Relazionale, è doveroso definire per sommi capi cosa sia un database, in modo tale da avere la giusta infarinatura atta a chiarire le differenze tra i due modelli. Non si può comprendere bene la differenza tra due modelli se prima è inafferrabile la tecnologia che sta alla base dei modelli stessi.
Bene, preparatevi una fumante tazza di caffè e si parte!
Cos’è un Database
Immaginate l’enorme archivio di una biblioteca. Possiamo notare molteplici piani, scaffali divisi secondo datazioni, autori e generi. La morfologia di un archivio segue una certa logica per permettere a chi ci lavora di mappare i documenti lì presenti. Noi umani siamo allergici al caos, esigiamo ordine, o almeno, nella sfera pubblica per noi è essenziale. L’archivio colleziona dati attraverso documenti analogici. Ebbene, un database non è tanto diverso da un archivio.
In informatica, un database è una collezione di dati organizzati, immagazzinata, per poi essere reperibile attraverso un accesso da parte dell’utente. Banche dati di modeste dimensioni possono essere salvate su file System, ma quelle di enormi dimensioni necessitano di archivi Cloud o computer cluster. D’accordo, i database archiviano dati ma che tipo di dati? La domanda è lecita. Potrà essere una domanda banale, però a volte è necessario che il banale sia menzionato per vederci più chiaro. Tornando alla domanda, una banca dati archivia documenti, testi, password e qualsiasi tipo di file che potrebbe essere richiamato da un computer. I database processano i file stessi , cioè elaborano i file immagazzinati al loro interno. I dati presenti nel database possono essere cancellati definitivamente, anche se dipende dal tipo di autorizzazione in possesso.
Ai database, al di là della tipologia, vengono attribuite certe caratteristiche. Le più importanti sono:
- Sicurezza: i dati devono essere custoditi al sicuro e criptati. O che non si danneggino.
- Consistenza: devono essere utilizzabili e avere una certa importanza.
- Integrità: devono essere archiviati senza perdite.
STRUTTURA DEL DATABASE
Ogni database tradizionale ha una struttura senza la quale regnerebbe il caos. Chi vuole una biblioteca incasinata? Potrebbe essere interessante ma diventerebbe snervante nel giro di qualche giorno! Se progettiamo il database di una biblioteca (ormai continuiamo con l’esempio), è importante riunire tutte le informazioni possibili sui libri, gli archivi, gli iscritti, i libri in prestito e via dicendo. Per una tale organizzazione, ci vuole una rappresentazione visiva. Il database si avvale dei suoi mattoni organizzativi.
A proposito di tipologie, esistono tanti modelli di database. Relazionale, Cloud, NoSQL, orientato agli oggetti e così via. Nel nostro articolo ci concentriamo essenzialmente su due modelli: quello Relazionale e Non Relazionale. Cerchiamo di capire le caratteristiche di quello Relazionale, per poi elencare tutte le differenze possibili.
Il Database Relazionale
Nel Database Relazionale i dati correlati sono raggruppati in tabelle, ognuna composta da righe (tuple) e colonne, esattamente come in un foglio di calcolo. Durante la progettazione avviene una conversione dei dati in tabelle rappresentative (visuale dei dati), e perciò si creano tabelle per ogni tipo di prodotto, entità, clienti, vendite e ordini. Nel caso della biblioteca, ci sarà una tabella per i libri in prestito, una tabella per le tipologie di libri in base al genere o al periodo storico e via dicendo. Come dice il nome stesso, nel Database Relazionale tutto è in relazione. Ogni riga è nominata record, include informazioni su qualcosa o qualcuno, tipo un libro o un cliente che ha preso il libro in prestito.
A questo punto possiamo dedicarci al Database non Relazionale. Cos’è e quali differenze ci sono con quello Relazionale?
Il Database non Relazionale
Come potreste già aver intuito, un database non relazionale, detto anche NoSQL, è un modello che non si avvale di tabelle di righe e colonne presenti nella maggior parte dei modelli professionali. In sostanza sono l’opposto dei database relazionali. I Database non Relazionali usano un modello di archiviazione ottimizzato per i requisiti specifici del tipo di dati da archiviare. Ad esempio, i dati potrebbero essere memorizzati sotto forma di coppie chiave o valore o grafi, oppure attraverso serie temporali: è caratterizzato da sequenze di dati basate sul tempo.
SUL TERMINE NOSQL
Il termine NoSQL fa riferimento agli archivi dati che non usano SQL per le query. In informatica, SQL è un linguaggio standardizzato per database basati sul modello relazionale. Sta per Structured Query Language. È un linguaggio di programmazione inventato da Donald Chamberlin. Le critiche mosse al SQL hanno condotto al concepimento del NoSQL.
Un database NoSQL è orientato verso la filosofia dello schemeless (senza schemi), cioè non richiedono uno schema fisso. Evitano più volte le operazioni di giunzione (join) e scalano in maniera orizzontale.
Il termine fu usato per la prima volta nel 1998, quando l’ autore Carlo Strozzi dichiarò: “come movimento, NoSQL diparte in modo radicale dal modello relazionale, e quindi andrebbe chiamato in modo più appropriato NoREL, o qualcosa di simile“.
Ciò non significa che gli appartenenti al movimento NoSQL detestino il database relazionale, piuttosto valutano le alternative e non concepiscono un uso forzato del SQL.
Categorie di Database NoSQL
Tra le categorie più diffuse, ci sono:
- Basi di dati orientate al documento
- Base di dati a grafo
- Base di dati a oggetti
Scopriamole in dettaglio.
Basi di dati orientate al documento: Una Base di dati orientata al documento cosa significa? Il termine è piuttosto nebuloso, ad essere onesti. Cerchiamo una definizione cristallina. Be’, è un programma per applicazioni orientate al documento. Questi sistemi potrebbero essere implementati come strato sopra un database relazionale o a oggetti, così da avere il meglio del SQL e del NoSQL. Le basi di dati orientate al documento possono memorizzare i dati in tabelle con campi uniformi per ogni record come nei database relazionali, ma ogni record (riga) è memorizzato come un documento che possiede certe caratteristiche.
Base di dati a grafo: Quello a grafo è estremamente visuale. Una base di dati a grafo usa nodi e archi per rappresentare e archiviare l’informazione, sono i mattoni per costruire il database a grafo. La rappresentazione dei dati mediante grafi offre una succosa alternativa al modello relazionale che fa uso di tabelle e righe, o anche rispetto ad altre tipologie di database non relazionali o persino sistemi ad archivi strutturati (structured storage) basati su colonne non interpretate di dati. I database a grafo sono spesso più veloci ed efficienti rispetto a quelli relazionali nell’associare set di dati, per non parlare della mappatura efficiente dei dati.
Base di dati a oggetti: Complesso per chi non ha dimestichezza con la programmazione ma in fondo semplice. Detto in poche parole, è un modello in cui l’informazione è rappresentata in forma di oggetti come nei linguaggi di programmazione ad oggetti.
Differenze tra SQL e NoSQL
Ci sono parecchie differenze tra un database relazionale e uno non relazionale, in termini di scalabilità, flessibilità, tecnologia e coerenza. Vediamole una per volta.
SCALABILITÀ
Immagina un grattacielo. Per quanto tu voglia aggiungere piani (file), prima o poi diventa problematico. Il database relazionale ha una scalabilità verticale, aggiunge piani sovraccaricando il server su cui poggia. Invece un database non relazionale ha una scalabilità orizzontale. Significa che aggiunge nuovi grattacieli (server), in modo tale da delegare il peso del database ad altri server. La piramide dopotutto fu il lavoro di tanti uomini, mica di uno solo!
FLESSIBILITÀ
Detto semplicemente, il NoSQL ti offre la libertà di applicare più schemi e non uno fisso. Invece il database relazionale ha schemi rigidi e fissi.
TECNOLOGIA
Tutto dipende dalle proprie esigenze. Per un novizio, iniziare con un database relazionale potrebbe essere una scelta saggia. Una volta testato il database tradizionale, in base alle proprie esigenze si può passare ad uno NoSQL. È la scelta migliore se si desidera giocare con lo schema standard, o per creare un nuovo schema adatto alle proprie esigenze. Se devi archiviare temporaneamente dei file è perfetto.
COERENZA
Neanche a dirlo, i database SQL sono per ovvie ragioni molto coerenti. Hanno un ordine preciso, rigido e fisso. Detto ciò, un NoSQL può essere coerente poiché basato su un SQL.
LEGGI ANCHE: Come Funziona un Alimentatore
Conclusione
In realtà potremmo concludere che oggettivamente non esiste un modello migliore rispetto ad un altro, tutto dipende dalle proprie esigenze. Certo, il NoSQL offre innovazioni e più flessibilità, come abbiamo potuto notare nei capitoli dell’articolo. Ci sono nette differenze tra un database relazionale e uno non relazionale. Differenze utili per scegliere il modello più adatto alle vostre esigenze.
Se l’articolo ti è piaciuto, seguici, condividi e commenta! Se vuoi scoprire il funzionamento di tante tecnologie, dalle più conosciute alle più sconosciute, sei nel posto giusto. Inlinestyle non ti deluderà.
COMMENTI