Big Data – Database NoSQL Tipi e differenze
Tipi di database NoSQL e principali differenze
Key–Value, Document, Column-Family e Graph Database
1. Inquadramento generale
Con il termine NoSQL si indica una famiglia eterogenea di sistemi di gestione dei dati che non
assumono il modello relazionale come unica forma di rappresentazione. L’espressione è normalmente
interpretata come Not Only SQL: questi sistemi non eliminano necessariamente SQL, ma introducono
modelli logici alternativi, spesso più adatti a dati semistrutturati, grandi volumi, carichi distribuiti e
requisiti di scalabilità orizzontale.
La diffusione dei database NoSQL è collegata soprattutto a tre esigenze. La prima è ridurre
l’impedance mismatch, cioè la distanza tra le strutture utilizzate dalle applicazioni e le tabelle
relazionali. La seconda è distribuire dati e carico su più nodi mediante un approccio scale-out. La
terza è modellare in modo naturale informazioni che non si prestano bene a tabelle e join, come
documenti JSON, serie sparse o reti di relazioni.
È importante distinguere il data model, cioè il modo in cui il DBMS presenta i dati alle applicazioni,
dallo storage model, cioè il modo in cui essi vengono fisicamente memorizzati. Due prodotti
appartenenti alla stessa categoria logica possono adottare tecniche interne molto diverse.
Le quattro famiglie principali sono:
key–value;
• database document-oriented;
• database column-family wide-column;
• database o
graph-oriented.
• database
Le prime tre sono generalmente dette aggregate-oriented, perché memorizzano e manipolano unità
aggregate identificate da una chiave. I graph database, invece, assumono come elemento centrale la
relazione tra entità. Database NoSQL
Modelli orientati Modello orientato
agli aggregati alle relazioni
Graph Database
Key–Value Column-Family
Document
Figura 1: Classificazione logica delle principali famiglie NoSQL.
1
Big Data – Database NoSQL Tipi e differenze
2. Database Key–Value
Il modello key–value è il più semplice. Ogni elemento è rappresentato da una coppia
−→
chiave valore.
La chiave è un identificatore univoco; il valore può essere una stringa, un numero, un oggetto
serializzato oppure un blocco binario. Dal punto di vista del database, il contenuto del valore è spesso
opaco: il DBMS sa recuperarlo, aggiornarlo o eliminarlo tramite la chiave, ma non necessariamente
ne interpreta la struttura interna. {userId: 42, expires: 18:30, cart: [...]}
session:8f21
product:195 binary/json blob
Figura 2: Rappresentazione concettuale di un archivio key–value.
L’operazione fondamentale è il recupero diretto per chiave, con una semantica assimilabile a una
grande tabella hash distribuita. Questo rende il modello molto efficiente quando l’applicazione
conosce già l’identificatore dell’oggetto da leggere. In compenso, le interrogazioni sul c
-
Tipi strutturati
-
Tipi d'azienda, Economia aziendale
-
Composizione morfologica: tipi principali di composti
-
Altri tipi di funzioni