Panoramica: Struttura NoSQL e concetti chiave

Per capire meglio come funzionano i database NoSQL, questa pagina tratta di:

Che cos'è un database NoSQL?

Un database NoSQL, acronimo di "not only SQL (Structured Query Language)", è un database non relazionale progettato per gestire strutture di dati diverse e flessibili. La definizione NoSQL si riferisce a database che supportano diversi modelli, tra cui archivi di documenti, grafi, valori-chiave, colonne larghe e vettoriali, offrendo una maggiore scalabilità e adattabilità rispetto ai database SQL tradizionali, che si basano su tabelle strutturate e schemi fissi.

Il significato di NoSQL si è evoluto con i progressi delle CPU, della RAM, del cloud computing e delle interazioni con l'intelligenza artificiale, consentendo ai database moderni di gestire in modo efficiente grandi insiemi di dati in tempo reale. Dando priorità scalatura orizzontale I database NoSQL garantiscono una distribuzione dei dati senza soluzione di continuità su più nodi e sono quindi la scelta preferita per l'AI, i big data e l'analisi in tempo reale, dove i database tradizionali spesso faticano a tenere il passo.

SOMMARIO

NoSQL si riferisce a database che memorizzano i dati in formati flessibili utilizzando modelli come documenti, archivi di valori-chiave e archivi vettoriali. La loro scalabilità e le loro prestazioni li rendono ideali per le applicazioni moderne che richiedono l'accesso in tempo reale e gestiscono grandi carichi di lavoro dinamici.

Qual è la differenza tra SQL e NoSQL?

Database SQL e NoSQL si differenziano per il modo in cui memorizzano e interrogano i dati. I database SQL si basano su tabelle con colonne e righe per recuperare e scrivere dati strutturati, mentre i database NoSQL utilizzano modelli di dati flessibili più adatti a dati non strutturati e semi-strutturati.

SQL, introdotto per la prima volta negli anni '70, è oggi utilizzato dagli sviluppatori e dagli analisti di dati di tutto il mondo per trovare e fare report sui dati memorizzati nei sistemi relazionali. I database SQL sono ideali per le applicazioni che richiedono l'integrità dei dati e che utilizzano relazioni strutturate e query standardizzate (ad esempio, i software di pianificazione delle risorse aziendali). Anche se NoSQL esiste dagli anni '60, ma il termine è stato coniato per la prima volta all'inizio degli anni 2000, quando è diventato fondamentale per gli sviluppatori utilizzare database in grado di memorizzare e recuperare i dati per le applicazioni in tempo reale.

Vale la pena notare che l'SQL si sta espandendo per supportare i modelli di accesso NoSQL. Ad esempio, molti database relazionali ora supportano JSON (JavaScript Object Notation) come tipo di dati. Alcuni database hanno addirittura esteso l'SQL per interrogare direttamente le strutture JSON, tra cui Couchbase, che supporta SQL++ (SQL for JSON).

SOMMARIO

La differenza tra i database SQL e NoSQL sta nella loro struttura e nei casi d'uso. I database SQL utilizzano tabelle e sono quindi ideali per applicazioni che richiedono una struttura rigida e dati normalizzati. Al contrario, i database NoSQL utilizzano modelli flessibili, che li rendono più adatti a gestire dati non strutturati e semi-strutturati, consentendo l'accesso in tempo reale.

Tipi di database NoSQL

Questi sono i tipi più diffusi di modelli di accesso ai database NoSQL:

  • Negozi chiave-valore raggruppano i dati associati in tabelle indipendenti, dove i record sono identificati da chiavi univoche che ne facilitano il recupero. Hanno una struttura sufficiente per rispecchiare il valore dei database relazionali, aggiungendo i vantaggi in termini di prestazioni e accessibilità di una struttura di accesso ai dati NoSQL. I dati a valore-chiave sono facilmente memorizzati in una cache, dove i dati a cui si accede di frequente sono conservati in memoria per una lettura veloce. Le scritture, gli aggiornamenti e le nuove richieste di lettura vengono indirizzate programmaticamente allo storage persistente. I negozi a valore-chiave danno priorità alla velocità di accesso atomico rispetto a coerenza, isolamento e durata.
  • Database di documenti memorizzano principalmente le informazioni come documenti logici, compresi i documenti JSON. Ad esempio, questi sistemi possono anche memorizzare documenti XML o oggetti binari. Per la natura flessibile del formato e il grado di controllo che offre agli sviluppatori, i database di documenti sono i preferiti quando si costruiscono applicazioni guidate dai dati.
  • Database a colonna larga e colonnare memorizzare i dati da colonne anziché righeche ottimizza le prestazioni delle query per i carichi di lavoro analitici e l'elaborazione di dati su larga scala. Come i negozi di chiavi e valori, i database a colonne larghe hanno una struttura NoSQL di base, pur mantenendo la flessibilità, la gestione dei dati e le capacità di aggregazione.
  • Ricerca nei database permettono agli utenti di interrogare dati semi-strutturati e non strutturati come pagine web, documenti, mappe, JSON e documenti XML. Utilizzano indici invertiti specializzati per individuare parole chiave all'interno di corpi di testo per trovare dati rilevanti, in modo simile a "googlare" qualcosa online.
  • Database grafici utilizzano strutture a grafo come nodi, bordi e proprietà per definire le relazioni tra gli elementi dei dati memorizzati. I database a grafo sono utili per identificare i modelli di relazione in non strutturato e semi-strutturato informazioni, creando reti sociali, assemblaggi di parti, strutture organizzative e ontologie. I database grafici sono molto utilizzati nei motori di raccomandazione, nel riconoscimento dei modelli di frode, nelle funzioni di intelligenza artificiale predittiva e nel collegamento delle reti sociali.
  • Database di serie temporali consentono agli utenti di seguire le variazioni dei dati nel tempo e di rilevare le anomalie nei grafici dei prezzi delle azioni, nei registri delle macchine, nei monitor sanitari e nei sistemi di allarme. Poiché i dati delle serie temporali cambiano rapidamente, questi database generano enormi quantità di informazioni, introducendo potenzialmente problemi di scalabilità.
  • Database vettoriali contribuiscono a migliorare l'accuratezza dei modelli di intelligenza artificiale generativa fornendo suggerimenti (vettori) che aiutarli a trovare le risposte "corrette all'interno dei loro dati di addestramento. I database vettoriali operano all'interno dei processi di generazione aumentata dal reperimento (RAG) per memorizzare le incorporazioni vettoriali che aiutano a ridurre le allucinazioni dell'IA generativa e a mantenere i progressi del modello.
SOMMARIO

I modelli di accesso ai dati NoSQL più diffusi includono i negozi di chiavi-valori, i database di documenti, i database a colonne larghe e a colonne, i database di ricerca, i database a grafo, i database di serie temporali e i database vettoriali. Ognuno di questi tipi di NoSQL ha caratteristiche uniche, come la scalabilità, la flessibilità dello schema e l'efficienza delle query. Per decidere quale database NoSQL utilizzare, è necessario esplorarli a fondo.

Perché usare NoSQL?

Le imprese privilegiano i database NoSQL per la loro capacità di gestire grandi volumi di dati diversi e in crescita. I vantaggi specifici dei database NoSQL includono:

  • Scalabilità: I database NoSQL scalano orizzontalmente distribuendo i dati su più server, il che li rende ideali per i grandi carichi di lavoro.
  • Flessibilità: A differenza dei database relazionali, NoSQL consente l'archiviazione dei dati senza schemi, facilitando l'archiviazione e la gestione di dati non strutturati o semi-strutturati.
  • Prestazioni elevate: Ottimizzati per letture e scritture veloci, i database NoSQL riducono la complessità delle query e migliorano i tempi di risposta delle applicazioni in tempo reale.
  • Vari modelli di dati: I database NoSQL favoriscono i modelli di dati chiave-valore, documento, colonna larga, ricerca e serie temporali, rendendoli ideali per molteplici casi d'uso.
  • Big data ed elaborazione in tempo reale: NoSQL è stato progettato per gestire quantità massicce di dati, il che lo rende ideale per analisi dei grandi datiIoT, caching e gestione delle sessioni.
  • Cloud e calcolo distribuito: I database NoSQL funzionano bene negli ambienti cloud garantendo un'elevata disponibilità e tolleranza ai guasti tra i sistemi distribuiti.
  • Sviluppo e iterazione più semplici: Con NoSQL, gli sviluppatori possono sfruttare le competenze SQL esistenti e utilizzare un database che si integra con strumenti già noti, ambienti di sviluppo integrati (IDE), e strutture.

Il database NoSQL multiuso di Couchbase è particolarmente adatto alle applicazioni di intelligenza artificiale perché offre:

1. Prestazioni elevate e bassa latenza

  • Architettura memory-first: Utilizza un design distribuito memory-first per letture e scritture veloci, riducendo la latenza di inferenza del modello AI.
  • Tempi di risposta inferiori al millisecondo: Garantisce l'accesso ai dati in tempo reale, che è fondamentale per casi d'uso quali motori di raccomandazione, il rilevamento delle frodi e l'analisi predittiva.

2. Scalabilità e architettura distribuita

  • Scala multidimensionale: Può scalare orizzontalmente o verticalmente per gestire enormi set di dati AI e carichi di lavoro crescenti.
  • Replica trasversale dei centri dati (XDCR): Supporta implementazioni AI multi-regione e multicloud con elevata disponibilità.

3. Memorizzazione dei dati flessibile e multi-modello

  • Database NoSQL basato su JSON: Memorizza dati non strutturati e semi-strutturati, essenziali per le applicazioni di intelligenza artificiale che elaborano insiemi di dati diversi.
  • Supporto per la ricerca vettoriale: Aiuta gli sviluppatori a creare applicazioni utilizzando la ricerca vettoriale e si integra con Catena di Langhe e LlamaIndex.

4. Funzionalità AI e di analisi integrate

  • SQL per JSON (SQL++): Interrogazione di tipo SQL con indicizzazione, ricerca full-text e analisi per l'addestramento e l'inferenza di modelli di intelligenza artificiale.
  • Elaborazione di eventi e flussi: Abilita Approfondimenti AI in tempo reale utilizzando funzioni integrate e un'architettura guidata dagli eventi.
  • Integrazione con i framework AI/ML: Lavora con TensorFlow, PyTorch e Apache Spark per l'addestramento e la distribuzione di modelli di intelligenza artificiale.

5. Implementazione dell'intelligenza artificiale multicloud ed edge

  • Ambiente multicloud: Funziona su Amazon Web Services (AWS), Microsoft Azure e Google Cloud, in modo che gli sviluppatori possano sviluppare e distribuire applicazioni di intelligenza artificiale sul cloud di loro scelta.
  • Supporto per l'edge computing: Ideale per applicazioni AI in tempo reale su dispositivi mobili e IoT, riducendo la dipendenza dal cloud e migliorando i tempi di risposta.

6. Sicurezza e conformità

  • Sicurezza di livello enterprise: Offre crittografia integrata, controllo degli accessi basato sui ruoli (RBAC) e conformità a normative quali GDPR, HIPAA e SOC 2.
  • Isolamento e governance dei dati: Supporta il monitoraggio della conformità e il rilevamento delle frodi guidato dall'intelligenza artificiale.

7. Efficienza dei costi

  • Prestazioni elevate a costi ridotti: Riduce i costi dell'infrastruttura cloud gestendo in modo efficiente le risorse e minimizzando il trasferimento dei dati.
  • Database multimodale: Consente agli sviluppatori di memorizzare ed eseguire query su più tipi di dati, riducendo la necessità di database aggiuntivi e risparmiando sui potenziali costi di integrazione, sui costi di licenza e sulla spesa per il cloud.

I casi d'uso specifici per le applicazioni di intelligenza artificiale con Couchbase includono:

  • Raccomandazioni personalizzate: Commercio elettronico e servizi di streaming
  • Rilevamento delle frodi e analisi del rischio: Banche e sicurezza informatica
  • Chatbot e IA agenziale: Assistenza clienti e assistenti virtuali
  • IoT e bordo AI: Dispositivi intelligenti e sistemi autonomi
SOMMARIO

Le imprese prediligono i database NoSQL per la loro flessibilità, scalabilità e alte prestazioni nella gestione di grandi volumi di dati diversi e in crescita. Inoltre, i database NoSQL utilizzano lo scaling orizzontale, distribuendo i dati su più server per mantenere le prestazioni al crescere dei carichi di lavoro. Queste capacità li rendono adatti alle applicazioni di intelligenza artificiale, ai sistemi IoT, ai servizi adattivi sul campo e alla gestione di cache e sessioni.

Le aziende Global 2000 stanno rapidamente adottando i database NoSQL per alimentare le loro applicazioni mission-critical:

Tutorial NoSQL

Come si pone NoSQL rispetto ai database relazionali? Diamo un'occhiata più da vicino. Il seguente tutorial illustra un'applicazione NoSQL utilizzata per la gestione dei curriculum. L'applicazione interagisce con i curriculum come un oggetto (cioè l'oggetto utente), contiene un array per le competenze e ha una collezione per le posizioni. In alternativa, la scrittura di un curriculum in un database relazionale richiede che l'applicazione "tagliuzzi" (normalizzi) l'oggetto utente.

La memorizzazione di questo curriculum richiederebbe all'applicazione di inserire sei righe in tre tabelle, come illustrato in Figura 1.
A relational database management system normalizing objects into rows of data in multiple tables
Clicca per espandere

La lettura di questo profilo richiederebbe all'applicazione di leggere sei righe da tre tabelle, come illustrato in Figura 2.
A relational database management system returning duplicate data
Clicca per espandere

JSON non solo elimina il disallineamento dell'impedenza oggetto-relazionale, ma anche l'overhead dei framework di mappatura oggetto-relazionale (ORM). Semplifica lo sviluppo di applicazioni perché gli oggetti possono essere letti e scritti senza normalizzarli (cioè, un singolo oggetto può essere letto o scritto come un singolo documento), come illustrato in Figura 3.
An application using JSON to store objects with nested data as single documents
Clicca per espandere

E per quanto riguarda le query e l'SQL?

Alcuni potrebbero sostenere che l'interrogazione dei database NoSQL sia più difficile, ma si tratta di un'idea sbagliata. La flessibilità intrinseca dei database NoSQL orientati ai documenti consente loro di gestire ugualmente bene i dati strutturati e non strutturati, e i nuovi strumenti consentono di effettuare interrogazioni più veloci che mai.

Couchbase supporta SQL++che consente agli sviluppatori di sfruttare la potenza di SQL e la flessibilità di JSON. Non solo supporta le istruzioni standard SELECT / FROM / WHERE, ma anche l'aggregazione (GROUP BY), l'ordinamento (SORT BY), i join (LEFT OUTER / INNER) e l'interrogazione di array e collezioni annidate. Inoltre, le prestazioni delle query possono essere migliorate con indici compositi, parziali e coprenti.


SELECT RTRIM(p.FirstName) + ' ' + LTRIM(p.LastName) AS Name, d.City
FROM AdventureWorks2025.Person.Person AS p
INNER JOIN AdventureWorks2025.HumanResources.Employee e ON p.BusinessEntityID = e.BusinessEntityID
INNER JOIN
(SELECT bea.BusinessEntityID, a.City
FROM AdventureWorks2025.Person.Address AS a
INNER JOIN AdventureWorks2025.Person.BusinessEntityAddress AS bea
ON a.AddressID = bea.AddressID) AS d
ON p.BusinessEntityID = d.BusinessEntityID
ORDER BY p.LastName, p.FirstName;

SELECT RTRIM(p.FirstName) || ' ' || LTRIM(p.LastName) AS Name, d.City
FROM AdventureWorks2025.Person.Person AS p
INNER JOIN AdventureWorks2025.HumanResources.Employee e ON p.BusinessEntityID = e.BusinessEntityID
INNER JOIN
(SELECT bea.BusinessEntityID, a.City
FROM AdventureWorks2025.Person.Address AS a
INNER JOIN AdventureWorks2025.Person.BusinessEntityAddress AS bea
ON a.AddressID = bea.AddressID) AS d
ON p.BusinessEntityID = d.BusinessEntityID
ORDER BY p.LastName, p.FirstName;
SOMMARIO

I database NoSQL memorizzano i dati in documenti JSON flessibili, eliminando la necessità di complesse mappature oggetto-relazionale (ORM) e facilitando la gestione di dati strutturati e non strutturati. Questo approccio semplifica lo sviluppo delle applicazioni, memorizzando e recuperando gli oggetti in un unico documento anziché suddividerli in più tabelle. Couchbase migliora ulteriormente le capacità di interrogazione con SQL++, che supporta la sintassi SQL già nota.

Perché i database relazionali non sono all'altezza

I sistemi di gestione dei database relazionali sono nati nell'era dei mainframe e delle applicazioni aziendali, molto prima di Internet, del cloud, dei big data, della telefonia mobile, dell'intelligenza artificiale e delle imprese interattive di massa di oggi. Questi database sono stati progettati per essere eseguiti su un singolo server - più grande è, meglio è - e il loro design è stato pensato per ottimizzare l'uso delle scarse risorse di archiviazione, RAM ed elaborazione. L'unico modo per aumentare la capacità di questi database era quello di aggiornare i server (processori, memoria e storage) per scalare. Nel corso dei decenni, la maggior parte delle limitazioni del progetto originale, tra cui la normalizzazione, la tipizzazione forte dei dati e l'integrità referenziale, sono state attenuate o eliminate.

I sistemi di gestione dei database NoSQL sono emersi a seguito della crescita esponenziale di Internet e dell'aumento delle applicazioni web. Google ha rilasciato il Carta di ricerca Bigtable nel 2006, e Amazon ha pubblicato il Documento di ricerca sulla dinamo nel 2007 - questi documenti illustravano come le due aziende avevano progettato i loro database per soddisfare le esigenze in evoluzione delle imprese. In definitiva, i database moderni si sono concentrati su sviluppare con agilità, soddisfare requisiti in continua evoluzione, e eliminare la trasformazione dei dati.

SOMMARIO

I database relazionali sono stati originariamente progettati per ambienti a server singolo per ottimizzare le risorse limitate, ma con l'aumento delle esigenze di dati hanno dovuto affrontare problemi di scalabilità. Spinti dall'ascesa di Internet e delle applicazioni web, i database NoSQL sono emersi per risolvere questi limiti, concentrandosi su agilità, scalabilità e riduzione delle complessità di trasformazione dei dati.

Conclusione

A cosa servono i database NoSQL e perché sono importanti? Man mano che le aziende passano all'intelligenza artificiale - abilitata da cloud, mobile, social media, machine learning e Tecnologie GenAI - Gli sviluppatori e i team operativi devono creare e mantenere applicazioni web, mobili e IoT più velocemente e su scala maggiore. Il NoSQL, flessibile e ad alte prestazioni, è sempre più spesso la tecnologia di database scelta.

Migliaia di Impresa globale 2000 e milioni di sviluppatori che lavorano in piccole aziende e startup hanno adottato NoSQL. Per molti, l'uso di NoSQL è iniziato con una cache, una prova di concetto o una piccola applicazione, per poi espandersi ad applicazioni mission-critical mirate prima di diventare la base per lo sviluppo di tutte le applicazioni.

Con i database NoSQL, le aziende possono sviluppare con maggiore agilità, operare su qualsiasi scala e fornire le prestazioni e la disponibilità necessarie per soddisfare le esigenze delle aziende dell'economia digitale.

Cercate un'ulteriore formazione su NoSQL?

Imparate a sviluppare applicazioni scalabili e ad alte prestazioni utilizzando dati NoSQL.

Iniziare a costruire

Consultate il nostro portale per sviluppatori per esplorare e sfogliare le risorse e iniziare con le esercitazioni.

Utilizzare Capella gratuitamente

Per iniziare a lavorare con Couchbase bastano pochi clic. Capella DBaaS è il modo più semplice e veloce per iniziare.

Contattateci

Volete saperne di più sulle offerte di Couchbase? Lasciatevi aiutare.