L’importanza dei database
Al giorno d’oggi tutto viene salvato all’interno di un database, che si tratti del like a una foto della nostra fiamma su Instagram, di un commento sotto il post del momento su Facebook o della cartella clinica di un paziente.
I database mantengono la memoria della nostra storia digitale. Per questo motivo sono diventati fondamentali per l’umanità e, altrettanto fondamentale, è per uno sviluppatore comprendere il loro utilizzo.
Che cos’è un database?
Stando alla definizione “un database è una raccolta di informazioni organizzata in modo che possa essere facilmente accessibile, gestita e aggiornata”.
Non è molto chiara come definizione, vero?
Facciamo un esempio.
Immaginiamo di gestire un blog, in qualche modo dobbiamo tener traccia degli utenti registrati al nostro blog, degli articoli pubblicati e dei commenti che gli utenti scrivono sotto gli articoli.
Per ognuna di queste entità avremo una tabella: una in cui salveremo le informazioni degli utenti che si registrano, una in cui salveremo le informazioni che compongono un articolo e una in cui salveremo i commenti che verranno scritti.
Quindi, un database, non è altro che l’insieme di queste tabelle.
I database non sono importanti solo per la persistenza dei dati, essi ci permettono anche di modificarli e aggiornarli e ogni database ha un linguaggio con cui può essere interrogato.
Tra le operazioni più importanti che si possono eseguire, oltre alla lettura dei dati, ci sono anche la cancellazione e la modifica.
Per la maggior parte dei database, questo linguaggio è il SQL che sta per Structured Query Language. Questo linguaggio ci permette di interagire con i dati nel database tramite delle interrogazioni chiamate query.
Database: relazionali e non relazionali
I database si dividono in due tipi: relazionali e non relazionali.
È compito del programmatore decidere quale dei due tipi utilizzare per gestire i dati all’interno del proprio sito.
Quali sono le loro principali differenze?
Cos’è un database relazionale
Un database relazionale, come ci suggerisce il nome, è basato sul modello entità – relazione.
Vi ricordate il nostro blog? Bene. Utilizzando un database relazionale, tutti i nostri dati all’interno delle tabelle sarebbero messi in relazione tra di loro. Ad esempio, un utente sarebbe associato ai post che ha scritto e ai commenti che ha lasciato. Un commento sarebbe associato all’utente che l’ha scritto e al post sotto cui è stato scritto e così via.
I dati, quindi, sarebbero organizzati in tabelle, dove ogni tabella rappresenta un tipo di dato (es. post, utenti e commenti), e in relazioni tra questi dati.
Un esempio:
Questo è un esempio di tabella users (utenti), la tabella che tiene traccia degli utenti registrati.
Come possiamo notare, un utente non è altro che l’insieme delle informazioni ad esso associato e ce n’è uno per riga.
Un utente è formato quindi da: id, nome, password etc…
L’insieme delle tabelle è gestito da un RDBMS: Relational Database Management System.
Questi strumenti ci permettono di interagire con i nostri database per interrogarli e compiere azioni sui dati.
Tra i database relazionali più famosi e utilizzati ci sono MySQL e PostgreSQL.
Cos’è un database non relazionale o NoSQL?
Racchiudere tutti i concetti di database non relazionali in poche righe non sarebbe possibile poiché ce ne sono tanti e tutti diversi tra loro.
Alcuni database NoSQL sono strutturati in documenti, oggetti complessi che non seguono per forza rigida struttura organizzativa. MongoDB è uno di questi.
Questo di seguito è un esempio di dato salvato nel formato JSON con MongoDB:
Ci sono anche dei database che invece seguono una struttura a grafo con relazioni libere tra i nodi del grafi, così come altri ancora seguono il modello chiave-valore tipico degli array associativi.
Insomma, di database non relazionali ce ne sono di tutti i tipi e, data la loro diversità, servono a risolvere i problemi più complicati, quelli che non si riescono a risolvere con quelli relazionali.
Qual è la differenza tra database relazionali e non relazionali?
Abbiamo parlato di database relazionale e non relazione, ma quali sono le principali differenze?
- La rappresentazione che i dati hanno in essi;
- Nei database relazionali, i dati vengono salvati in delle tabelle seguendo un preciso schema che ogni dato deve seguire per poter essere salvato;
- Nei database non relazionali, invece, i dati vengono salvati in documenti e non si deve seguire per forza uno schema ben preciso.
A prescindere dalle loro differenze, spetta al programmatore decidere e valutare se è meglio avere una struttura piuttosto rigida o una meno rigida per poter salvare e manipolare i dati.
Se vuoi saperne di più sul mondo dei database. non perderti i capitoli dedicati nella nostra guida SQL in italiano!