Introduzione
NoSQL è un'alternativa ai tradizionali database SQL. Nel tempo, i database relazionali si sono rivelati inadeguati per casi d'uso specifici. Queste limitazioni variavano a seconda dell'applicazione che dovevano supportare.
Diversi sviluppatori si sono concentrati sul superamento di diverse sfide in base alle loro esigenze. Di conseguenza, ora hai diversi tipi di database NoSQL.
Questo tutorial si concentra sui tipi di database NoSQL. Per una guida più approfondita su NoSQL, le sue funzionalità e quando usarlo, visita il nostro articolo Cos'è NoSQL?
Tipi di database NoSQL
Esistono quattro tipi di database NoSQL popolari:
- Database di valori-chiave
- Banche dati di documenti
- Database a colonne larghe
- Database di grafici
Database valori-chiave
I database chiave-valore sono il tipo più semplice di database NoSQL. Grazie alla loro semplicità, sono anche i più scalabili, consentendo il ridimensionamento orizzontale di grandi quantità di dati.
Questi database NoSQL hanno una struttura di dati del dizionario che consiste in un insieme di oggetti che rappresentano campi di dati. Ad ogni oggetto viene assegnata una chiave univoca. Per recuperare i dati archiviati in un particolare oggetto, è necessario utilizzare una chiave specifica. A sua volta, ottieni il valore (cioè i dati) assegnato alla chiave. Questo valore può essere un numero, una stringa o anche un altro insieme di coppie chiave-valore.
A differenza dei database relazionali tradizionali, i database chiave-valore non richiedono una struttura predefinita. Offrono maggiore flessibilità durante l'archiviazione dei dati e prestazioni più veloci. Senza dover fare affidamento sui segnaposto, i database di valori-chiave sono una soluzione più leggera poiché richiedono meno risorse.
Tali funzionalità sono adatte per database di grandi dimensioni che gestiscono dati semplici. Pertanto, sono comunemente usati per il caching , archiviazione e gestione delle sessioni utente , servizio di annunci e consigli .
Redis, Project Voldemort e Riak sono solo alcuni esempi di database di valori-chiave.
Database dei documenti
Un database di documenti è un tipo di database NoSQL costituito da insiemi di coppie chiave-valore archiviate in un documento. Questi documenti sono unità di dati di base che puoi anche raggruppare in raccolte (database) in base alla loro funzionalità.
Essendo un database NoSQL, puoi facilmente archiviare i dati senza implementare uno schema. È possibile trasferire il modello a oggetti direttamente in un documento utilizzando diversi formati. I più comunemente usati sono JSON, BSON e XML.
Ecco un esempio di un semplice documento in formato JSON composto da tre coppie chiave-valore:
{
"ID" : "001",
"Name" : "John",
"Grade" : "Senior",
}
Inoltre, puoi anche utilizzare query nidificate in tali formati, fornendo una distribuzione dei dati più semplice su più dischi e prestazioni migliorate.
Ad esempio, possiamo aggiungere una stringa di valore nidificata al documento sopra:
{
"ID" : "001",
"Name" : "John",
"Grade" : "Senior",
"Classes" : {
"Class1" : "English"
"Class2" : "Geometry"
"Class3" : "History"
}
}
Grazie alla loro struttura, i database di documenti sono ottimali per i casi d'uso che richiedono flessibilità e uno sviluppo rapido e continuo. Ad esempio, puoi utilizzarli per gestire i profili utente , che differiscono a seconda delle informazioni fornite. La sua struttura senza schema ti consente di avere attributi e valori diversi.
Esempi di database di documenti NoSQL includono MongoDB, CouchDB, Elasticsearch e altri.
Database a colonne larghe
Gli archivi a colonne larghe sono un altro tipo di database NoSQL. In essi, i dati vengono archiviati e raggruppati in colonne archiviate separatamente anziché in righe. Tali database organizzano le informazioni in colonne che funzionano in modo simile alle tabelle nei database relazionali.
Tuttavia, a differenza dei database tradizionali, i database a colonne larghe sono altamente flessibili. Non hanno chiavi predefinite né nomi di colonna. La loro caratteristica priva di schemi consente la variazione dei nomi delle colonne anche all'interno della stessa tabella, nonché l'aggiunta di colonne in tempo reale.
Il vantaggio più significativo di disporre di database orientati alle colonne è che è possibile archiviare grandi quantità di dati all'interno di una singola colonna. Questa funzione consente di ridurre le risorse del disco e il tempo necessario per recuperare le informazioni da esso. Sono eccellenti anche nelle situazioni in cui devi diffondere i dati su più server.
Esempi di database a colonne larghe popolari includono Apache Cassandra, HBase e CosmoDB.
Database grafico
I database di grafici utilizzano una rappresentazione grafica flessibile per gestire i dati.
Questi grafici sono costituiti da due elementi:
- Nodi (per l'archiviazione di entità di dati)
- Bordi (per memorizzare la relazione tra entità)
Queste relazioni tra entità consentono ai dati nel negozio di essere collegati tra loro direttamente e, in molti casi, recuperati con un'unica operazione. I nodi e gli spigoli hanno proprietà definite e, utilizzando queste proprietà, puoi eseguire facilmente query sui dati.
Poiché questo tipo di archiviazione dei dati è piuttosto specifico, non è un database NoSQL comunemente usato. Tuttavia, ci sono alcuni casi d'uso in cui avere rappresentazioni grafiche è la soluzione migliore. Ad esempio, i social network utilizzano spesso i grafici per memorizzare informazioni su come sono collegati i loro utenti.
OrientDB, RedisGraph e Neo4j sono solo alcuni esempi di database di grafici che dovresti considerare di utilizzare.