|
recaplica
Database relazionali e non relazionali: differenze ed esempi pratici | |||||||||||||||
| © 2026 Recaplica · recaplica.com — Tutti i diritti riservati | |||||||||||||||
Database relazionali e non relazionali: differenze ed esempi praticiCosa stampare Con "Margini: predefiniti" compaiono anche i numeri di pagina. SlideScegli il taglio Lampo10 slideIl filo essenziale, per presentarlo in classeCompleta14 slideTutti i capitoli e gli approfondimentiTutte e due hanno le note del relatore. In 30 secondi lettura lampoUn database relazionale organizza i dati in tabelle con uno schema fisso, deciso prima di scrivere la prima riga. Un database non relazionale, o NoSQL, usa invece schemi flessibili pensati per un modello di dati specifico: documenti come in MongoDB, coppie chiave-valore come in Redis, colonne partizionate come in Apache Cassandra, nodi collegati da relazioni come in Neo4j. I database NoSQL nascono verso la fine degli anni 2000, quando il costo dello storage cala e cresce il bisogno di sistemi distribuiti su più macchine. La scelta tra i due modelli dipende dal tipo di dato e dal caso d'uso, non da quale sia genericamente più veloce o più scalabile: entrambi possono crescere, in modi diversi, e il teorema CAP spiega il compromesso che ogni sistema distribuito affronta quando la rete tra i suoi nodi si interrompe. Punti Chiave
I numeri chiave
L'ApprofondimentoDue modi di organizzare i datiUn database relazionale parte da uno schema deciso in anticipo: tabelle con colonne fisse, uguali per ogni riga, collegate da chiavi primarie ed esterne. Un database non relazionale, o NoSQL, parte invece dal problema da risolvere: sceglie un modello di dati specifico, documenti, coppie chiave-valore, colonne partizionate o grafi, e adatta lo schema a quel modello. Secondo AWS, i database NoSQL sono spesso descritti come database “purpose-built”, pensati cioè per uno scopo preciso, con schemi flessibili che si adattano più facilmente delle tabelle relazionali alle applicazioni moderne. Non è un confronto tra un modello superato e uno nuovo: nessuno dei due sostituisce l’altro in ogni caso. È piuttosto una scelta che dipende dalla forma dei dati, da quanto serve scalare e da quanta rigidità di struttura conviene avere fin dall’inizio. I quattro modelli principali del mondo NoSQLAWS descrive tre di questi modelli con un prodotto reale a testa. Il database documentale archivia i dati come documenti simili a oggetti JSON, flessibili e semi-strutturati; MongoDB è un esempio noto di questo modello. Il database chiave-valore associa ogni valore a una chiave ed è, secondo AWS, altamente partizionabile, capace di scalare orizzontalmente a un livello che altri tipi di NoSQL non raggiungono facilmente: Amazon DynamoDB, per esempio, punta a offrire prestazioni costanti con latenze di pochi millisecondi a qualunque scala di traffico. Il database a grafo, come Neo4j, è pensato per applicazioni che lavorano con dati fortemente connessi tra loro. Un quarto modello molto diffuso è quello a colonne larghe, che partiziona le tabelle secondo una chiave di partizione: ne è un esempio Apache Cassandra.
Uno schema flessibile, non un’assenza di schemaNel modello documentale, ogni documento contiene coppie di campo e valore, e i valori possono essere stringhe, numeri, valori booleani, array o anche altri documenti annidati. Documenti diversi nella stessa raccolta possono avere campi diversi tra loro: è più facile cambiare lo schema, se serve, proprio per questa flessibilità. Nel modello relazionale, al contrario, lo schema è fisso: ogni riga di una tabella deve contenere gli stessi tipi di colonna predefiniti, e cambiare lo schema dopo che i dati sono già stati inseriti è più complicato. Redis, un database chiave-valore, mostra bene che “chiave-valore” non vuol dire solo stringhe semplici: oltre alle stringhe, implementa hash, che funzionano come dizionari a coppie campo-valore, insiemi non ordinati di stringhe uniche, e liste ordinate per inserimento. Un insieme in Redis permette di aggiungere, rimuovere e verificare l’esistenza di un elemento in tempo costante, indipendentemente da quanti elementi contiene. Scalabilità, verticale e orizzontaleLa scalabilità verticale cresce aumentando le risorse di una singola macchina, più memoria, più processore. La scalabilità orizzontale cresce aggiungendo altre macchine, spesso raggruppate in cluster distribuiti su più server, che possono anche trovarsi in luoghi diversi e comunicare attraverso Internet. Secondo MongoDB, i database relazionali sono progettati soprattutto per la scalabilità verticale, con una capacità limitata di estendersi anche in orizzontale; i database NoSQL, invece, sono pensati per scalare sia verticalmente sia orizzontalmente, spesso tramite sharding, replica e clustering.
Apache Cassandra, un database a colonne larghe, è un esempio concreto di questa filosofia: i suoi obiettivi di progettazione includono lo scaling su hardware comune, con un throughput che cresce in modo lineare a ogni processore aggiunto, e il bilanciamento del carico durante la crescita del cluster. Il teorema CAP, un compromesso non un’etichetta fissaIl teorema CAP descrive i compromessi che un database distribuito affronta tra consistenza, disponibilità e tolleranza di partizione, quando i dati sono replicati su più nodi. Poiché la tolleranza di partizione è un requisito in un ambiente distribuito, secondo MongoDB la vera scelta ricade tra mantenere la consistenza o la disponibilità nel momento in cui la comunicazione tra i nodi si interrompe. Non è una scelta permanente stampata addosso a un sistema, ma un compromesso che si attiva quando serve. MongoDB, per esempio, offre impostazioni regolabili, come writeConcern e readPreference, che permettono di bilanciare accuratezza, velocità e resilienza: può comportarsi come sistema più orientato alla consistenza o come sistema più orientato alla disponibilità, a seconda della configurazione. Apache Cassandra, dal canto suo, implementa quella che la sua documentazione chiama “consistenza eventuale”: i nodi del cluster si allineano sugli stessi dati nel tempo, non necessariamente subito dopo ogni scrittura. Quando conviene un modello o l’altroSecondo MongoDB, chi deve scegliere tra un database relazionale e uno NoSQL guarda in genere a fattori come lo sviluppo Agile a ritmo veloce, la necessità di archiviare dati strutturati insieme a dati semi-strutturati, grandi volumi di dati, requisiti di architettura scale-out, o paradigmi applicativi moderni come i microservizi e lo streaming in tempo reale. Un catalogo prodotti con relazioni ben definite tra clienti, ordini e fatture resta un caso naturale per un database relazionale. Un sistema di raccomandazioni che lavora su reti di connessioni, o un servizio che deve incassare picchi di traffico imprevedibili con un algoritmo di lettura rapidissimo, si sposta più facilmente verso un modello NoSQL, documentale, a grafo o chiave-valore a seconda del problema. La scelta resta legata al problema da risolvere: come sono fatti i dati, quanto la loro struttura può cambiare nel tempo, e come deve crescere il sistema che li ospita. PresentazioneSlide pronte da scaricare e fare tue in PowerPoint o Google Slides, con le note del relatore. Scegli il taglio Lampo o quello Completo. ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Falsi miti
Mappa concettualeTrascina lo sfondo per muoverti e i nodi per riposizionarli; usa − e + per chiudere e aprire i rami.
Quiz: mettiti alla provaRispondi alle domande per verificare quanto hai imparato: riceverai subito la correzione e una breve spiegazione. Voto 0/10 0/5
FlashcardsTocca la carta per girarla e verifica se ricordi la risposta, poi passa alla successiva. 1 / 8 Spiegalo con parole tueIl test definitivo: se sai spiegarlo con parole semplici, lo hai capito davvero. Scrivi la tua spiegazione, poi confrontala col Recap. La tua spiegazione resta salvata solo su questo dispositivo.
Domande e risposteQual è la differenza tra database relazionali e non relazionali?Un database relazionale organizza i dati in tabelle con uno schema fisso, uguale per ogni riga; un database non relazionale usa uno schema flessibile pensato per un modello di dati specifico, come documenti, coppie chiave-valore, colonne partizionate o grafi. Quali sono alcuni esempi di database non relazionali?MongoDB per il modello documentale, Redis per il modello chiave-valore, Apache Cassandra per il modello a colonne larghe e Neo4j per il modello a grafo sono tra gli esempi più citati di database NoSQL, ciascuno con un caso d'uso diverso. Cosa si intende con database SQL e NoSQL?SQL indica i database relazionali, interrogati con il linguaggio SQL e organizzati in tabelle a schema fisso. NoSQL indica invece i database che archiviano i dati in modo diverso dalle tabelle relazionali, con schemi flessibili; secondo MongoDB, la sigla è letta da alcuni come "not only SQL" e da altri semplicemente come "non-SQL". I database non relazionali sono sempre più veloci di quelli relazionali?No. I database relazionali possono comunque estendere in parte le proprie capacità di scalabilità orizzontale; quanto ai sistemi NoSQL distribuiti, il vantaggio in disponibilità previsto dal teorema CAP si attiva solo quando la comunicazione tra i nodi si interrompe, non come regola costante. Che cos'è un database NoSQL a grafo?Un database in cui i dati sono nodi collegati da relazioni con una direzione e un tipo preciso, come descrive Neo4j; si interroga con una traversal, ed è la scelta naturale per dati fortemente connessi, come reti sociali o sistemi di raccomandazione. Ogni Recap passa da una revisione indipendente prima della pubblicazione. |












