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: |
|
|
SCENARI: |
|
|
SCALABILITÀ: |
|
|
MODELLO DI DATI: |
|
|
|
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.