Che cos'è un database NoSQL?

Il termine NoSQL, abbreviazione di "non solo SQL", si riferisce ai database non relazionali che utilizzano un formato non tabulare per archiviare i dati, anziché all'interno di tabelle relazionali basate su regole come i database relazionali. I database NoSQL utilizzano un modello di schema flessibile che supporta un'ampia varietà di dati non strutturati, come documenti, coppie chiave-valore, colonne larghe, grafici e altro ancora.

Le organizzazioni scelgono i database NoSQL per la loro flessibilità, scalabilità orizzontale e facilità di sviluppo.

Scopri come i database NoSQL di Google Cloud Bigtable, Memorystore e Firestore possono aiutarti a migliorare le applicazioni e a offrire customer experience eccellenti senza preoccuparti di scalabilità e affidabilità o modifiche frequenti ai dati. 

I cinque tipi di database NoSQL

Esistono cinque tipi principali di database NoSQL: 

Database di documenti

I database di documenti, detti anche database orientati ai documenti o archivi di documenti, vengono utilizzati per archiviare ed eseguire query su dati semistrutturati. I dati vengono archiviati in un documento di tipo JSON simile agli oggetti dati che gli sviluppatori utilizzano nel codice dell'applicazione, semplificando la creazione e l'aggiornamento delle applicazioni senza fare riferimento a uno schema primario. I database di documenti sono più comunemente utilizzati per piattaforme di blogging, applicazioni di e-commerce e analisi in tempo reale e sistemi CMS. 

Database chiave-valore

I database chiave-valore, chiamati anche archivi chiave-valore, sono il tipo più semplice di database NoSQL. I dati sono archiviati in una struttura "chiave-valore", in cui una chiave univoca è accoppiata a un valore, ad esempio stringhe, numeri, booleani, oggetti complessi e altro ancora. È possibile scrivere o eseguire query sui dati usando la chiave, utilizzata per archiviare o recuperare il valore associato. Gli archivi chiave-valore vengono usati principalmente per le preferenze dell'utente, i carrelli degli acquisti e i profili utente nelle applicazioni web.

Database orientato alle colonne

I database orientati alle colonne o a colonne larghe archiviano i dati in righe e sono organizzati come un insieme di colonne. Sebbene simili al formato tabulare dei database relazionali, i nomi e la formattazione delle colonne negli archivi a colonne larghe possono variare da riga a riga in una singola tabella. Sono ottimali per i casi d'uso di analisi, in cui potrebbe essere necessario eseguire query su colonne specifiche di un database e aggregare rapidamente il valore di una determinata colonna. Gli archivi a colonne larghe sono comunemente utilizzati per cataloghi, rilevamento di frodi e motori per suggerimenti.

Database a grafo

I database a grafo organizzano i dati come nodi, concentrandosi sulle relazioni tra gli elementi di dati. Queste connessioni tra i nodi, chiamate perimetrali, vengono archiviate come elementi di prima classe, consentendo una rappresentazione più completa delle relazioni tra i dati e offrendo al contempo archiviazione e navigazione semplificate. I database a grafo sono più comunemente utilizzati nei sistemi che mappano le relazioni, tra cui le piattaforme di social media, i sistemi di prenotazione e le applicazioni di logistica.

Database in memoria

I database in memoria archiviano i dati in memoria, senza fornire latenza per le applicazioni in tempo reale. Redis è un esempio di database NoSQL in memoria. I database in memoria sono più comunemente utilizzati per la memorizzazione nella cache, la messaggistica, lo streaming e l'analisi in tempo reale.

Come funziona NoSQL?

Le funzionalità NoSQL sono specifiche per il database che scegli. Tuttavia, in genere condividono numerose qualità di alto livello simili: 

  • Seguono schemi flessibili che non richiedono di determinare o dichiarare uno schema fisso per i tuoi dati, il che li rende ideali per dati semistrutturati e non strutturati
  • Scalano orizzontalmente, utilizzando distribuzioni di intervalli o hash, invece di dover dipendere dalla scalabilità verticale per aggiungere capacità
  • Sono ottimizzate per modelli di dati e pattern di carichi di lavoro specifici, ad esempio chiave-valore, a colonne larghe o in memoria
  • Molti database NoSQL mostrano coerenza in un secondo momento (ad esempio, il modello a coerenza finale), anziché seguire le proprietà ACID più restrittive (atomicità, coerenza, isolamento, durabilità) dei database relazionali e SQL
  • La maggior parte dei database NoSQL non supporta transazioni tra shard o modalità di isolamento flessibile

Queste caratteristiche rendono i database non relazionali ideali per applicazioni che richiedono grande scalabilità, affidabilità, alta disponibilità e modifiche frequenti ai dati.

Vantaggi di NoSQL

Schema e modello dei dati flessibili

I database NoSQL archiviano molti tipi diversi di dati e offrono schemi flessibili, ideali per dati semistrutturati e non strutturati. Puoi adattarli facilmente a nuovi tipi di dati ed evolvere lo schema per soddisfare i requisiti dei dati in continua evoluzione.

Sviluppo agile

La flessibilità di NoSQL completa lo sviluppo agile delle app. I database NoSQL possono archiviare molti tipi di dati nel loro formato nativo e consentono di definire e adattare il modello dei dati in base alle esigenze, in modo che gli sviluppatori possano iniziare a lavorare velocemente, dedicare meno tempo alla trasformazione dei dati ed eseguire l'iterazione in tempi rapidi.

Scalabilità

A differenza dei database relazionali, i database NoSQL semplificano l'aumento della capacità man mano che i dati e il traffico cresce, nella maggior parte dei casi senza tempi di inattività. I database basati su cloud sono ancora più facili da scalare in base alla domanda, offrendo funzionalità di scalabilità automatica e modelli di prezzo flessibili.  

Archiviazione dei dati di grandi dimensioni

NoSQL è progettato per gestire set di dati complessi e di grandi dimensioni, consentendo alle organizzazioni di adottare e scalare big data, analisi in tempo reale e casi d'uso IoT. 

Alta disponibilità

Le architetture di dati NoSQL sono distribuite per definizione e non hanno single point of failure. Inoltre, offrono una replica semplice, rendendole più resistenti a interruzioni, anche non pianificate. 

Query più rapide

A differenza dei database relazionali, normalizzati per ridurre la duplicazione dei dati, NoSQL è ottimizzato per l'esecuzione rapida di query. In genere non richiede join complessi, il che significa che le query del database restituiscono i risultati più rapidamente. 

Svantaggi di NoSQL

Sebbene i database NoSQL abbiano acquisito un'enorme popolarità negli ultimi anni, il loro utilizzo comporta alcuni svantaggi rispetto ai database relazionali. Sono ancora relativamente nuovi e potrebbero non avere la maturità dei sistemi di dati relazionali. Nel complesso, NoSQL ha meno competenze di sviluppo, meno strumenti e prodotti disponibili e meno assistenza in caso di problemi non documentati. 

Inoltre, NoSQL non ha una lingua franca come SQL: ogni database può avere il proprio linguaggio per eseguire query e gestire i dati. 

In molti casi, i database NoSQL non dispongono delle salvaguardie per l'integrità dei dati e dell'elevato livello di coerenza dei dati standard nei database SQL. Tuttavia, alcuni, come Firestore e MongoDB, supportano le transazioni ACID.

Tuttavia, i modelli di coerenza finali sono sufficienti per la maggior parte dei casi d'uso NoSQL, dove un piccolo ritardo di un millisecondo non è importante. Per molte applicazioni, l'alta disponibilità e la velocità superano di gran lunga la necessità di un'elevata coerenza globale.

SQL e NoSQL a confronto: casi d'uso ed esempi

Allora perché le organizzazioni usano database NoSQL non relazionali per alcune applicazioni o continuano a utilizzare database SQL relazionali per altre? La scelta del database giusto spesso dipende dal caso d'uso. Ecco quando utilizzare SQL rispetto a NoSQL.

I database SQL sono ottimi nella gestione di dati strutturati e relazionali e query complesse. I database SQL sono conformi ad ACID, il che li rende affidabili per le informazioni transazionali.

Casi d'uso di SQL:

  • Transazioni finanziarie
  • Analisi dei dati sanitari 
  • Informazioni sui clienti e sulle transazioni

I database NoSQL sono ottimi nei casi d'uso che richiedono un numero elevato di utenti distribuiti a livello globale per offrire esperienze altamente personalizzate. Queste applicazioni interattive vengono gestite al meglio con l'agilità dei database NoSQL. 

I database NoSQL danno inoltre priorità all'alta disponibilità, offrono prestazioni coerenti, fanno lo scale out rapidamente senza tempi di inattività e sono in grado di gestire grandi volumi di diversi tipi di dati. 

Queste funzionalità dei database NoSQL rendono i database non relazionali ideali per le applicazioni che richiedono scalabilità, affidabilità e disponibilità elevata su larga scala.

Gli utilizzi più comuni di NoSQL includono: 

  • Applicazioni mobile, web e IoT
  • Applicazioni web in tempo reale
  • Personalizzazione, suggerimenti e customer experience in tempo reale
  • Gestione dell'inventario e del catalogo
  • Rilevamento di frodi e autenticazione dell'identità 
  • Servizi finanziari e pagamenti
  • Ad tech

Risolvi le tue sfide aziendali con Google Cloud

I nuovi clienti ricevono 300 $ di crediti gratuiti da spendere su Google Cloud.
Parla con un esperto del team di vendita di Google Cloud per discutere della tua sfida in modo più dettagliato.

Fai il prossimo passo

Inizia a creare su Google Cloud con 300 $ di crediti gratuiti e oltre 20 prodotti Always Free.

Google Cloud
  • ‪English‬
  • ‪Deutsch‬
  • ‪Español‬
  • ‪Español (Latinoamérica)‬
  • ‪Français‬
  • ‪Indonesia‬
  • ‪Italiano‬
  • ‪Português (Brasil)‬
  • ‪简体中文‬
  • ‪繁體中文‬
  • ‪日本語‬
  • ‪한국어‬
Console
Google Cloud