È uscito il Corso SQL Completo
Torna al blog

Cos'è un database (relazionale e NoSQL)

Cos'è un database spiegato semplice: a cosa serve, differenza tra database relazionali (SQL) e NoSQL, cos'è una query e come scegliere il tipo giusto per il tuo progetto.

Edoardo Midali

Edoardo Midali

Developer · Content Creator

3 min di lettura

Dietro praticamente ogni app, sito o servizio che usi c'è un database: è il luogo dove vivono i dati, dagli utenti ai prodotti ai messaggi. In questo articolo ti spiego cos'è un database, a cosa serve e qual è la differenza fondamentale tra database relazionali e NoSQL, in modo chiaro anche se parti da zero.

Cos'è un database in parole semplici

Un database è un sistema organizzato per archiviare, gestire e recuperare dati in modo efficiente. Non è un semplice "contenitore di file": è una struttura pensata per inserire, cercare, aggiornare e collegare grandi quantità di informazioni in modo rapido e affidabile.

Pensa a tutti i dati di un'app come Instagram: utenti, foto, commenti, like. Tutto questo deve essere salvato, ritrovato all'istante e tenuto coerente. È esattamente ciò che fa un database.

A cosa serve un database

Un database permette di:

  • Salvare dati in modo persistente (restano anche dopo lo spegnimento).
  • Recuperarli velocemente anche tra milioni di record.
  • Aggiornarli e cancellarli mantenendo la coerenza.
  • Collegare informazioni tra loro (es. un ordine al suo cliente).
  • Gestire accessi concorrenti di molti utenti contemporaneamente.

Si interagisce con un database tramite query, cioè richieste che esprimono cosa vuoi fare con i dati ("dammi tutti gli utenti registrati a gennaio").

Database relazionali (SQL)

I database relazionali organizzano i dati in tabelle fatte di righe e colonne, come fogli di calcolo collegati tra loro. Si interrogano con il linguaggio SQL (Structured Query Language).

Caratteristiche principali:

  • Struttura rigida e ben definita (schema).
  • Relazioni esplicite tra tabelle.
  • Forte garanzia di coerenza dei dati.
  • Ideali quando i dati hanno una struttura chiara e stabile.

Esempi diffusi: PostgreSQL e MySQL. Sono la scelta classica per gestionali, e-commerce, applicazioni finanziarie: tutto ciò dove la coerenza dei dati è cruciale.

Database NoSQL

I database NoSQL ("Not only SQL") nascono per gestire dati con strutture più flessibili o per scalare su enormi volumi. Non usano necessariamente tabelle: a seconda del tipo, organizzano i dati in documenti, coppie chiave-valore, grafi o colonne.

Caratteristiche principali:

  • Struttura flessibile (lo schema può variare).
  • Ottimi per scalare orizzontalmente su grandi volumi.
  • Adatti a dati non strutturati o in rapida evoluzione.

Esempio diffuso: MongoDB, che archivia i dati in documenti simili al JSON.

Relazionale o NoSQL: come scegliere

AspettoRelazionale (SQL)NoSQL
StrutturaRigida, a tabelleFlessibile
CoerenzaMolto forteVariabile, spesso più rilassata
ScalabilitàTipicamente verticaleTipicamente orizzontale
Ideale perDati strutturati e relazioniDati flessibili, grandi volumi

Il mio consiglio per chi inizia: parti da un database relazionale come PostgreSQL. La maggior parte dei progetti ne ha bisogno, SQL è una competenza fondamentale e trasversale, e capirne le relazioni ti rende un developer migliore. Passa a NoSQL quando hai un'esigenza concreta che lo giustifica.

Spesso, peraltro, i due mondi convivono: un progetto può usare un relazionale per i dati principali e un NoSQL per casi specifici. Se vuoi astrarre il dialogo con il database, esistono strumenti chiamati ORM.

In sintesi

Un database è un sistema per archiviare, gestire e recuperare dati in modo efficiente, ed è il cuore di quasi ogni applicazione. I database relazionali (SQL) organizzano i dati in tabelle con relazioni e forte coerenza; i NoSQL offrono più flessibilità e scalabilità su grandi volumi. Per iniziare, un relazionale come PostgreSQL è quasi sempre la scelta giusta.

Per approfondire, vedi cosa sono gli ORM, PostgreSQL 18 e MongoDB 8.