Database

Completato

I file system vengono in genere usati per archiviare dati arbitrari come file su dischi, con metadati di qualche tipo, ad esempio un nome file, usati per identificare e individuare tali file. I file system offrono funzionalità di ricerca e indicizzazione rudimentali e la ricerca nel contenuto dei file per trovare le informazioni necessarie è spesso un processo laborioso e impegnativo. Quando i dati possono essere strutturati, vengono in genere organizzati in un database, usando un modello ben definito, anche detto schema. Il video seguente offre una panoramica dei database:

Un database è costituito da una raccolta organizzata di dati per uno o più utilizzi, in genere in formato digitale. I database sono uno dei metodi più diffusi per l'archiviazione e il recupero di informazioni per molti tipi di applicazioni, tra cui dati finanziari, di produzione, aziendali e personali.

I database si sono evoluti nel corso degli anni, a partire dal modello basato sulla navigazione negli anni '60, in cui i dati venivano archiviati come record con puntatori al record successivo e/o precedente nel database. Ne è un esempio l'approccio CODASYL, evolutosi poi nel linguaggio COBOL (Common Business Oriented Language). L'approccio CODASYL era basato sulla navigazione "manuale" di un set di dati collegato, che componeva una "rete" di grandi dimensioni di dati collegati, molto simile a un elenco collegato circolare. Quando il database veniva aperto per la prima volta da un programma, veniva restituito al programma un collegamento al primo record del database, contenente anche puntatori ad altri dati. Per trovare un record particolare, il programmatore doveva seguire questi puntatori uno alla volta fino a quando non veniva restituito il record richiesto. Per le query semplici che aggregano informazioni tra record era necessaria una scansione completa dell'intero database e concetti come ricerca e indicizzazione al tempo non esistevano. L'approccio CODASYL era appropriato in un'epoca in cui i nastri magnetici rappresentavano la modalità principale di archiviazione non volatile, con la possibilità solo di letture sequenziali e senza proprietà di accesso casuale.

La nascita del modello di database relazionale e lo sviluppo successivo di IBM System R hanno segnato una tappa fondamentale nello sviluppo dei sistemi di database. Per molti decenni, i sistemi di database relazionali sono stati gli unici database ad ampia diffusione e hanno avuto un grande successo. Con l'evoluzione di Internet e la necessità di sistemi a scalabilità molto elevata in grado di servire milioni di richieste simultanee, sono nati i sistemi di database NoSQL. Di recente, tuttavia, ha fatto la sua apparizione una nuova classe di sistemi di database relazionali, riprogettata da zero per cercare di unire i punti di forza dei due modelli.

Tipi di sistemi di database

Gli attuali sistemi di database possono essere classificati nei tipi seguenti:

I database relazionali sono i sistemi di database classici in uso da decenni. Seguono il modello relazionale che rappresenta i dati come relazioni tra entità. I sistemi di database relazionali presentano generalmente uno schema rigido, usano SQL (Structured Query Language) come interfaccia per interagire con il database e solitamente hanno proprietà ACID rigorose.

I database NoSQL sono una nuova generazione di database, notevolmente diversi dai sistemi di database relazionali. I sistemi NoSQL non applicano in genere uno schema rigoroso o un modello relazionale dei dati. Forniscono un'astrazione diversa (come un archivio chiave-valore) invece che un'interfaccia simile a SQL. I database NoSQL sono incentrati sulla scalabilità e sulle prestazioni e, in genere, non hanno garanzie transazionali rigorose per le operazioni di database.

NewSQL è una classe di sistemi di database relazionali moderni che cercano di fornire lo stesso livello di prestazioni e scalabilità dei sistemi NoSQL, mantenendo al tempo stesso un certo livello di proprietà ACID, come nei sistemi di database relazionali.