Trace Id is missing
Passa al contenuto principale

Database NoSQL - Che cos'è NoSQL?

Panoramica delle risorse iniziali

Che cosa sono i database NoSQL?

I database NoSQL vengono definiti "non relazionali", "DB NoSQL" o "non SQL" per evidenziare il fatto che sono in grado di gestire volumi elevati di dati non strutturati in rapida evoluzione in modi diversi rispetto a un database relazionale (SQL) con righe e tabelle.

Le tecnologie NoSQL sono disponibili con nomi diversi fin dagli anni 1960; attualmente sono molto diffuse perché i dati sono in continua evoluzione e gli sviluppatori devono adeguarsi per riuscire a gestire il volume elevato e l'ampia varietà di dati generati da cloud, dispositivi mobili, social media e Big Data.

Dai tweet virali delle celebrità a informazioni che possono salvare vite umane nelle cartelle cliniche elettroniche, nuovi dati e nuovi tipi di dati vengono generati a velocità elevatissima. I database NoSQL si sono evoluti per aiutare gli sviluppatori a creare rapidamente sistemi per archiviare le nuove informazioni e renderle rapidamente disponibili per ricerca, consolidamento e analisi.

Vantaggi dei database NoSQL (DB NoSQL)

I database NoSQL aiutano i professionisti IT e gli sviluppatori a gestire le nuove sfide derivanti dalla varietà sempre crescente di tipi di dati e modelli, e risultano estremamente efficaci per la gestione di dati non prevedibili, spesso con velocità di query elevatissime. Offrono anche una migrazione del database al cloud senza problemi per i carichi di lavoro NoSQL esistenti.

Sviluppo flessibile

Grazie alla possibilità di rispondere a situazioni non pianificate, i database NoSQL sono ottimali per cicli frequenti di rilascio di software e sono ideali per uno sviluppo di app più rapido e flessibile.

Gestione flessibile dei dati

NoSQL offre agli sviluppatori più libertà, velocità e flessibilità per consentire la modifica dello schema e delle query per soddisfare i vari requisiti dei dati. Le informazioni archiviate sotto forma di aggregazione semplificano i miglioramenti iterativi rapidi senza richiedere una progettazione iniziale dello schema.

Operatività a qualsiasi livello di scalabilità

I database NoSQL possono offrire vantaggi operativi e risparmi straordinari grazie alla possibilità di "aumentare le prestazioni" o di aggiungere server meno costosi senza richiedere l'aggiornamento. È possibile ridimensionarli per gestire più dati o includere un singolo database di grandi dimensioni in cluster di server a distribuibilità elevata.

Tipi di modelli di dati con database NoSQL

La maggior parte dei database non relazionali a prestazioni elevate, definiti a volte "non solo SQL", può gestire anche dati altamente strutturati, e non sono semplicemente limitati a modelli di dati fissi come i database relazionali (SQL).

 

Questi sono i quattro tipi più comuni di database NoSQL:

Chiave-valore

Gli archivi di tipo chiave-valore accoppiano chiavi e valori usando una tabella hash. I tipi chiave-valore sono ideali quando una chiave è nota e il valore associato per la chiave è sconosciuto.

Di documenti

I database di documenti estendono il concetto di database di tipo chiave-valore organizzando interi documenti in gruppi definiti raccolte. Supportano coppie chiave-valore annidate e consentono query su qualsiasi attributo in un documento.

A colonne

I database a colonne, con colonna ampia o famiglie di colonne archiviano in modo efficiente i dati e permettono di eseguire query in righe di dati sparsi e risultano vantaggiosi in caso di query su colonne specifiche del database.

Grafo

I database a grafo usano un modello basato su nodi e dispositivi perimetrali per rappresentare i dati interconnessi, ad esempio le relazioni tra persone in un social network, e offrono un approccio semplificato per l'archiviazione e l'esplorazione di relazioni complesse.

Come scegliere tra database relazionali (SQL) e non relazionali (NoSQL)

NoSQL o non relazionale SQL o relazionale

IDEALE PER:

  • Gestione di dati di grandi dimensioni, non correlati, indeterminati o in rapida evoluzione.
  • Dati indipendenti dallo schema o con schema stabilito dall'app.
  • App per cui le prestazioni e la disponibilità sono più importanti della coerenza elevata.
  • App sempre attive per utenti in tutto il mondo.
  • Gestione di dati relazionali e con requisiti logici e discreti identificabili in anticipo.
  • Schema che deve essere mantenuto e sincronizzato tra l'app e il database.
  • Sistemi legacy creati per strutture relazionali.
  • App che richiedono query complesse o transazioni su più righe.

SCENARI:

  • App per dispositivi mobili.
  • Analisi in tempo reale.
  • Gestione del contenuto.
  • Personalizzazione.
  • App IoT.
  • Migrazione di database.
  • Sistemi di contabilità, finanziari e bancari.
  • Sistemi di gestione dell'inventario.
  • Sistemi di gestione delle transazioni.

SCALABILITÀ:

  • Scalabilità dei dati grazie al partizionamento orizzontale tra i server.
  • Scalabilità dei dati mediante l'incremento del carico del server.

MODELLO DI DATI:

  • Tipi di database: chiave-valore, documento, a colonne e a grafo.
  • Archiviazione dei dati in base al tipo di database.
  • Tipo di database: tabelle di righe, raggruppate in relazioni.
  • Uso di SQL (Structured Query Language).
  • Archiviazione dei dati sotto forma di righe nelle tabelle. I dati correlati vengono archiviati separatamente e vengono creati join per query complesse.

In che modo posso valutare un database NoSQL?

Scegli un modello di dati

Molti database NoSQL sono orientati verso le aggregazioni, ovvero raccolte di dati con cui si interagisce come se si trattasse di un'unità. Risultano quindi più adatti ai linguaggi di programmazione moderni orientati agli oggetti. Se scegli un database NoSQL, potrebbe essere meglio iniziare scegliendo un modello di dati e valutare i database NoSQL che lo supportano, insieme ai linguaggi di programmazione e agli SDK supportati da ogni database.

Considera i vantaggi e gli svantaggi della coerenza

La maggior parte dei database NoSQL ti permette di scegliere il livello specifico di coerenza, dalla coerenza elevata, che ti permette di ottenere i dati più recenti ma potrebbe richiedere tempi di attesa, alla coerenza finale, che ti consente di ottenere una risposta rapida ma con dati che potrebbero essere obsoleti. Sono disponibili molti database NoSQL che supportano altri livelli di coerenza in posizioni intermedie rispetto a questi estremi. Scegli il database NoSQL che ti offre maggiore flessibilità e controllo a livello di modelli di coerenza adatti alle tue esigenze.

Prendi in considerazione il cloud e la migrazione del database

Grazie alla natura distribuita e alla scalabilità, i database NoSQL sono ideali per il cloud computing, benché sia possibile trovare molti sistemi di database NoSQL progettati per l'esecuzione in locale o in scenari ibridi.

Durante la valutazione delle opzioni per il cloud, prendi in considerazione gli aspetti seguenti:

  • Modelli di dati supportati. Il provider di servizi cloud supporta tutti i modelli di dati che vorresti usare?
  • Distribuzione e operazioni. Quanto risulta facile distribuire il database e replicarlo in altre aree, se necessario?
  • Presenza geografica. Dove si trovano i data center del provider di servizi cloud? Puoi posizionare i dati dove preferisci? In che modo verrà assicurata la conformità con le normative globali per la privacy dei dati, ad esempio il Regolamento generale sulla protezione dei dati (GDPR) dell'Unione Europea?
  • Facilità di replica. Che processo occorre seguire per la replica del database in un'area geografica diversa?
  • Scalabilità. Le risorse del database NoSQL ti permettono di ottenere prestazioni adeguate e scalabilità per la crescita? Potrai aumentare o ridurre le prestazioni?
  • Disponibilità elevata. Che cosa succederà in caso di errore imprevisto? Il servizio offre la disponibilità elevata predefinita e il ripristino di emergenza?
  • Livelli di servizio. Quali livelli di disponibilità o garanzie di latenza vengono offerti?
  • Ecosistema. Il database è integrato strettamente con il resto della piattaforma cloud e può essere unito rapidamente per creare nuove soluzioni?

Modalità per l'uso dei sistemi di database NoSQL

L'uso dei modelli di dati basati su NoSQL è ideale per le aziende che vogliono creare app per dispositivi mobili, Web, Internet delle cose (IoT) e gaming che richiedono database flessibili, ridimensionabili e a prestazioni e funzionalità elevate, per offrire esperienze utente straordinarie per gaming, e-commerce, analisi di Big Data o app Web in tempo reale e altro ancora.

Distribuisci le tue app a livello globale

Acquisisci altri utenti, ovunque si trovino, con prestazioni per le app migliorate grazie a disponibilità elevata e ripristino di emergenza.

Offri esperienze in tempo reale per i clienti

Offri personalizzazione, suggerimenti in tempo reale e un'esperienza utente migliorata con i database NoSQL.

Accettazione di carichi di lavoro IoT eterogenei

Ridimensionamento immediato e flessibile per gestire l'inserimento di dati costante con un numero elevato di operazioni di scrittura e con prestazioni migliorate per le query per le app IoT.

Migliora le tue app per e-commerce

Grazie agli schemi flessibili e ai dati gerarchici, NoSQL è ottimale per l'archiviazione dei dati relativi a cataloghi di prodotti, in cui prodotti diversi hanno attributi diversi.

Suscita l'interesse dei giocatori con nuovi contenuti

Offri esperienze personalizzate con contenuti come statistiche nel gioco, integrazione con social media e tabelloni punteggi. La bassa latenza e la scalabilità flessibile supportano i picchi di traffico durante il lancio di giochi e i tornei.

Crea app serverless

Dimensionamento semplice per inserimento di dati, velocità effettiva e volumi di dati con disponibilità immediata, indicizzazione automatica, frequenze di inserimento stabili e prestazioni elevate per le query.

Ottieni informazioni dettagliate migliori dai Big Data

Implementa le funzionalità di Machine Learning su larga scala su volumi elevati di dati in rapida evoluzione e ottieni di più dalle analisi.

Esegui la migrazione al cloud dei carichi di lavoro NoSQL esistenti

Dedica meno tempo alla gestione di un database locale con la migrazione al cloud, e continua al tempo stesso a usare gli strumenti, i driver, le librerie e gli SDK esistenti.

Inizia a usare NoSQL e a eseguire la migrazione del database al cloud

Scopri come sviluppare le tue app con nuovi livelli di flessibilità e scalabilità per la gestione dei sistemi di database e di diversi tipi di dati, oltre alla migrazione di database al cloud per carichi di lavoro NoSQL esistenti. Ottieni una panoramica tecnica di Azure Cosmos DB per gli sviluppatori  e scopri di più sul supporto nativo per NoSQL in un servizio di database distribuito a livello globale, con scalabilità elevatissima e multimodello.

Scopri di più sui dati di Azure Cosmos DB for NoSQL   
Scopri di più