Cloud AWS
Cloud AWS
Inizia a usare Amazon DynamoDB

I database NoSQL sono database non relazionali ottimizzati per prestazioni scalabili e modelli di dati schemaless. I database NoSQL sono anche ampiamente riconosciuti per semplicità di sviluppo, latenza bassa e resilienza. Utilizzano un'ampia gamma di modelli di dati, fra cui il formato colonnare, documenti, grafi e archivi chiave-valore in memoria. Su questa pagina troverai diverse risorse di supporto per iniziare a utilizzare i database NoSQL.

PurposeBuilt-reInvent
58:35
Novità sui database non relazionali dedicati di AWS

I sistemi di database NoSQL usano un'ampia gamma di modelli di gestione dati, fra cui archivi chiave-valore in memoria, modelli di dati di grafi e store di documenti. Questi tipi di database sono ottimizzati per applicazioni che necessitano grandi volumi di dati, latenza bassa e modelli di dati flessibili, che vengono ottenuti snellendo alcuni dei criteri di coerenza dei dati dei database relazionali tradizionali.

I database NoSQL sono ideali per numerose applicazioni di Big Data, per dispositivi mobili e Web che richiedono maggiore scalabilità e capacità di risposta rispetto ai database relazionali tradizionali. Grazie alle strutture di dati più semplici e al dimensionamento orizzontale, i database NoSQL di solito rispondono più rapidamente e si dimensionano più facilmente rispetto ai database relazionali.

I sistemi di gestione dei database relazionali, o RDBMS, e i database non relazionali, o NoSQL, hanno diversi vantaggi e svantaggi. Negli RDBMS, si possono eseguire query sui dati in modo flessibile ma le query sono relativamente costose e non si dimensionano bene in situazioni di traffico elevato. In un database NoSQL, le query possono essere eseguite in modo efficiente in un numero limitato di modi, al di fuori dei quali possono essere costose e lente.

  Database relazionali Database NoSQL
Modello di dati Il modello relazionale normalizza i dati in tabelle che sono costituite da righe e colonne. Uno schema definisce rigidamente tabelle, righe, colonne, indici, relazioni tra tabelle e ulteriori elementi del database. I database NoSQL di norma non applicano uno schema. In genere si utilizza una chiave di partizione per recuperare valori, serie di colonne o documenti parzialmente strutturati in JSON, XML o altri documenti contenenti attributi degli elementi pertinenti.
Proprietà ACID Gli RDBMS tradizionali supportano le proprietà ACID di un database relazionale: atomicità, coerenza, isolamento e durabilità. Atomicità significa "tutto o nulla": una transazione viene eseguita completamente o non viene eseguita affatto. Coerenza significa che, una volta confermata una transazione, i dati devono essere conformi allo schema del database. Isolamento richiede che le transazioni simultanee siano eseguite separatamente l'una dall'altra. Durabilità è la capacità di ripristinare i dati all'ultimo stato conosciuto in seguito a un guasto del sistema o a un'interruzione dell'alimentazione imprevisti. I database NoSQL spesso rinunciano ad alcune proprietà ACID dei tradizionali RDBMS a favore di un modello di dati più flessibile e scalabile orizzontalmente. Queste caratteristiche rendono i database NoSQL un'ottima scelta in situazioni in cui i tradizionali RDBMS a livello di architettura presentano difficoltà nel superamento di situazioni che combinano colli di bottiglia nelle prestazioni, scalabilità, complessità a livello operativo e aumento dei costi di amministrazione e supporto.
Prestazioni Le prestazioni dipendono generalmente dal sottosistema di dischi. Per raggiungere il massimo livello di prestazioni, è necessario ottimizzare query, indici e struttura delle tabelle. Le prestazioni si calcolano generalmente in funzione delle dimensioni del cluster dell'hardware, della latenza di rete e dell'applicazione di chiamata.
Scalabilità L'aumento della capacità è più semplice con un hardware più veloce. Affinché le tabelle relazionali possano coprire un sistema distribuito, sono necessari ulteriori investimenti. La progettazione prevede il ridimensionamento tramite l'utilizzo di cluster distribuiti di hardware a basso costo per aumentare il throughput senza incrementare la latenza.
API Le richieste di archiviazione e ripristino dati vengono comunicate tramite query conformi al linguaggio SQL (Structured Query Language). Queste query vengono analizzate ed eseguite dagli RDBMS. Le API basate su oggetti consentono agli sviluppatori di app di archiviare e ripristinare facilmente strutture di dati in memoria. Le chiavi di partizione danno alle app l'istruzione di cercare coppie chiave-valore, serie di colonne o documenti parzialmente strutturati contenenti oggetti e attributi serializzati delle app.
Strumenti Generalmente i database SQL mettono a disposizione una ricca offerta di strumenti per semplificare lo sviluppo di applicazioni basate sui database. I database NoSQL di solito offrono strumenti per la gestione di cluster e ridimensionamento. Le applicazioni sono l'interfaccia primaria dei dati.
15

Ci sono quattro tipi comuni di database NoSQL: a colonne, di documenti, a grafi e chiave-valore in memoria. Di solito, le differenze fra questi database consistono nel modo di memorizzazione, accesso e struttura dei dati e sono ottimizzati per casi d'uso e applicazioni differenti. 

  1. I database a colonne sono ottimizzati per la lettura e scrittura di colonne di dati (invece che di righe di dati). Lo storage basato su colonne per tabelle di database è un fattore molto importante quando si tratta di prestazioni di query analitiche, perché è in grado di ridurre drasticamente i requisiti generali di I/O di un disco, nonché di diminuire la quantità di dati da caricare da disco.
  2. I database di documenti sono progettati per memorizzare dati parzialmente strutturati come i documenti, in genere in formato JSON o XML. A differenza dei database relazionali tradizionali, lo schema di ciascun documento NoSQL può variare, consentendo una maggiore flessibilità nella gestione e nella memorizzazione di dati di applicazione, nonché riducendo lo storage necessario per i valori opzionali.
  3. I database grafici comprendono vertici e collegamenti diretti chiamati lati. I database a grafi possono essere creati sia su database SQL sia NoSQL. A vertici e lati possono essere associate proprietà. 
  4. Gli archivi chiave-valore in memoria sono database NoSQL ottimizzati per applicazioni con carichi di lavoro in lettura particolarmente gravosi, ad esempio social network, videogiochi, condivisione di file e portali di domande e risposte, oppure per carichi di lavoro con elevati requisiti di elaborazione, ad esempio motori di raccomandazione. Il caching in memoria migliora le prestazioni delle applicazioni perché memorizza informazioni critiche in una memoria che ha una latenza molto bassa all'accesso.
SQL
MongoDB (NoSQL) DynamoDB (NoSQL) Cassandra (NoSQL) Couchbase (NoSQL)
Tabella Raccolta Tabella Tabella Data bucket
Riga Documento
Elemento Riga Documento
Colonna
Campo Attributo Colonna Campo
Chiave principale
ObjectId
Chiave principale Chiave principale ID documento
Indice Indice Indice secondario Indice
Indice
Visualizzazione Visualizzazione Indice secondario globale Vista materializzata Visualizzazione
Oggetto o tabella annidata
Documento incorporato Mappatura Mappa Mappatura
Array
Array Elenco Elenco Elenco

Amazon DynamoDB è molto semplice da utilizzare. Usa la Guida alle operazioni di base per creare la prima tabella DynamoDB in pochi clic.

Puoi anche caricare il whitepaper sulle best practice di migrazione da RDBMS ad Amazon DynamoDB, per scoprire le best practice di migrazione di carichi di lavoro da RDBMS a Dynamo DB.

Inizia a usare Amazon DynamoDB