Database relazionali e non relazionali: le differenze

Database relazionali e non relazionali: le differenze


database database relazionali database non relazionale JSON MongoDB

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. Ci permettono anche di modificarli e aggiornarli. 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.

Per farci un’idea più chiara, capiamo in cosa si differenziano. 

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 ( ad es. post, utenti e commenti ), e in relazioni tra questi dati.

Un esempio di una tabella di un database relazionale 

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 un id, un nome, una password ecc… 

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.

Ce ne sono tanti e sono diversi tra loro. 

Alcuni database NoSQL sono strutturati in documenti, oggetti complessi che non seguono per forza rigida struttura organizzativa. MongoDB è uno di questi.

Un esempio di dato salvato nel formato JSON con MongoDB

Altri database, invece, seguono una struttura a grafo con relazioni libere tra i nodi del grafo.

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.

Differenza tra database relazionale e non relazionale

Le principali differenze tra database relazionali e non relazionali, come abbiamo visto, riguardano 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.

Sta al programmatore, quindi, decidere se ha bisogno di una struttura piuttosto rigida o di una meno rigida per poter salvare e manipolare i dati. 

Impara a programmare in 3 mesi con il Corso di Coding Hackademy su Laravel PHP

Diventa Sviluppatore web in 3 mesi

Scopri il coding bootcamp Hackademy

Programma Completo