Estratto del documento

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

Anteprima
Vedrai una selezione di 1 pagina su 5
Tipi di database NoSQL e principali differenze Pag. 1
1 su 5
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher ciroexp di informazioni apprese con la frequenza delle lezioni di Big data e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Napoli Federico II o del prof Moscato Vincenzo.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community