I database (o banche dati) sono elementi fondamentali per archiviare dati e poterli utilizzare in maniera rapida ed efficace. Ecco cosa sono e a cosa servono


Cos’è un database? Base di dati, banca dati: sono questi i nomi con cui è altrimenti conosciuto il database (DB). È una delle espressioni più significative della capacità umana di dare ordine a una quantità di informazioni sempre più consistente. Non è un caso che i database sono tutelati dalla legge sul diritto d’autore come opere di ingegno di carattere creativo, oltre che come bene prodotto grazie ai rilevanti investimenti finanziari.

La loro importanza è ubiqua. Prendiamo a esempio il campo medico sanitario e, nello specifico, il Covid-19: da poco più di un mese è stato attivato Global.health il nuovo database mondiale che intende tracciare la pandemia in tempo reale con informazioni anonimizzate relative a milioni di contagi in oltre 100 Paesi: promossa da istituzioni accademiche europee e statunitensi di assoluto livello come le università di Oxford e Harvard, è finanziata dalla divisione benefica di Google e dalla Fondazione Rockfeller.

Global.health vuole raccogliere una più ampia varietà di informazioni: per ciascun individuo, il database include fino a 40 voci associate, come il giorno in cui sono comparsi i primi sintomi, quello in cui è stata diagnosticata la malattia e la storia degli spostamenti. Grazie a questi dati, gli epidemiologi potranno stimare la velocità di diffusione delle varianti, la protezione offerta dai vaccini e la persistenza dell’immunità acquisita.

Vediamo dunque cos’è un database, come si struttura e come si deve gestire.

Cosa si intende per database?

Con database – o base dati – s’intende qualsiasi raccolta di dati, o informazioni, che è appositamente organizzata per una rapida ricerca e recupero da parte di un computer. I database sono strutturati per facilitare la memorizzazione, il recupero, la modifica e la cancellazione dei dati in combinazione con varie operazioni di elaborazione.

Cosa è un Database - concept

Un sistema di gestione ad hoc (DBMS – Database Management System) estrae informazioni dal database in risposta alle query.

Un database è memorizzato come un file o un insieme di file. Le informazioni in questi file possono essere suddivise in record, ognuno dei quali consiste in uno o più campi. Questi ultimi sono le unità di base della memorizzazione dei dati, e ogni campo tipicamente contiene informazioni relative a un aspetto o attributo dell’entità descritta dal database. I record sono anche organizzati in tabelle che includono informazioni sulle relazioni tra i vari campi. Anche se è applicato liberamente a qualsiasi raccolta di informazioni in file di computer, un database in senso stretto fornisce capacità di riferimenti incrociati. Usando parole chiave e vari comandi di ordinamento, gli utenti possono rapidamente cercare, riorganizzare, raggruppare e selezionare i campi in molti record per recuperare o creare rapporti su particolari aggregati di dati.

A cosa serve un database?

Un database serve a raccogliere i dati e metterli a disposizione di chi ne fa richiesta. Visto che ormai le informazioni in formato elettronico sono sempre più numerose, esso serve sia per raccogliere queste informazioni che per metterle a disposizione degli altri. I DB, quindi, a conti fatti non sono altro che dei semplici file con un’appropriata estensione che vengono memorizzati sull’hard disk di un computer.

I dati o “informazioni” sono organizzati nel database tramite “Tabelle” e “Colonne”. Le tabelle possono essere messe in relazione tra loro tramite l’utilizzo di “chiavi”.

Nella pratica i database vengono utilizzati per svariati impieghi, fra i quali: il registro elettronico scolastico; la cartella clinica elettronica; la gestione dei dipendenti e/o dei clienti di un’azienda; la memorizzazione delle informazioni di un utente su un determinato sito (tipo Facebook) o la gestione dei libri in biblioteca.

Cos’è un database e come è fatto?

Il DB è una sorta di archivio evoluto, in parte fisico (hardware) in parte virtuale (software). In esso è possibile inserire e modificare rapidamente le informazioni richieste. Memorizzato in un elaboratore elettronico (un sistema attrezzato per trattare elettronicamente grandi quantità di dati), questo insieme di dati può essere interrogato da un qualsiasi terminale, utilizzando chiavi di accesso preposte.

Una volta immagazzinate possono essere gestite e trattate per essere utilizzate.

Dal punto di vista architetturale, una banca dati è incorporata in un hardware (fisico o in cloud) e viene alimentata e interrogata con software.

A livello fisico (hardware), l’archiviazione dei dati si basa su un sistema costituito da supporti di memorizzazione (hard disk), che garantiscono la persistenza dei dati, e da un database server, ovvero un processore per l’elaborazione degli stessi.

A livello logico (software), i dati strutturati sono gestiti da un DBMS.

Tipologie di database

A seconda dei requisiti di utilizzo, ci sono i seguenti tipi di DB disponibili sul mercato:

  • Database centralizzato – Le informazioni (dati) sono immagazzinate in un luogo centralizzato e gli utenti da luoghi diversi possono accedere a questi dati. Questo tipo di database contiene procedure applicative che aiutano gli utenti ad accedere ai dati anche da una posizione remota.

Vari tipi di procedure di autenticazione sono applicate per la verifica e la convalida degli utenti finali, allo stesso modo, un numero di registrazione è fornito dalle procedure di applicazione che mantiene una traccia e un record di utilizzo dei dati. L’ufficio locale gestisce questa cosa.

  • Database distribuito – ha contributi dal database comune così come le informazioni catturate dai computer locali. I dati non sono in un unico posto e sono distribuiti in vari siti di un’organizzazione. Questi siti sono collegati tra loro con l’aiuto di collegamenti di comunicazione che li aiutano ad accedere facilmente ai dati distribuiti.
  • Database NoSQL – detto anche “non relazionale”, il “NoSQL” (acronimo della locuzione inglese Not Only SQL), non è interrogabile con il linguaggio basato sulle tradizionali query. I database NoSQL sono appositamente realizzati per modelli di dati specifici e hanno schemi flessibili per creare applicazioni moderne. Essi si sono affermati per la facilità di sviluppo, la funzionalità e la scalabilità delle prestazioni.
  • Operational database – è un’istanza di database che crea o aggiorna grandi quantità di dati in tempo reale. Questo può essere basato su qualsiasi numero di tecnologie di database che supportano i livelli di disponibilità, velocità, concorrenza, integrità dei dati e recuperabilità richiesti.
  • Database relazionale – Si tratta di un archivio di dati strutturato in modo da razionalizzare la gestione e l’aggiornamento delle informazioni e da permettere lo svolgimento di ricerche complesse. Per poterlo creare, aggiornare e amministrare si usa un Relational Database Management System.
  • Cloud database – è un DB posto su una piattaforma che sfrutta il paradigma di cloud computing. Accedendovi, il cloud database viene fornito come un semplice servizio. I servizi del DB si prendono cura di garantire la scalabilità e un’elevata disponibilità della base di dati. Essi rendono lo stack del software sottostante trasparente all’utente.
Database in Cloud
Concetto di Database in Cloud
  • Database orientato agli oggetti – è un modello di database che collega tra loro pacchetti che appartengono allo stesso gruppo: un set di dati viene associato con tutti i suoi attributi a un unico oggetto. In tal modo, tutte le informazioni sono direttamente disponibili. Così, invece di essere distribuiti in diverse tabelle, i dati sono disponibili insieme.
  • Database a grafo – In informatica una base di dati a grafo è un tipo di database che utilizza nodi e archi per rappresentare e archiviare l’informazione. Il grafo è possibile considerarla come una rete nella quale diversi nodi sono posti in collegamento attraverso degli archi. Un caso estremamente comune di utilizzo delle “reti di informazioni” è rappresentato dai Social Network, nei quali due utenti “amici” possono essere descritti come nodi messi in relazione tra loro da un arco, in modo da proporre nuove potenziali conoscenze a un utente navigando il grafo e recuperando i contatti di secondo livello.
  • Database commerciale – è un database sviluppato e mantenuto da un’entità commerciale che è generalmente reso disponibile ai clienti e ai potenziali clienti.

Come gestire un database in maniera efficace

Per effettuare delle ricerche, come pure per inserire o togliere, aggiornare un database, le informazioni contenute in esso vengono strutturate e collegate tra di loro secondo un particolare modello logico (relazionale, gerarchico, a oggetti…), scelto dal progettista del database stesso. Per dare la possibilità di creare, manipolare e consultare un database si utilizzano invece degli appropriati linguaggi di interrogazione attraverso dei particolari programmi detti comunemente DBMS (Database Management System). Essi comprendono tutte le applicazioni che permettono di creare, gestire e  interrogare i dati. Oltre a definire utenti e amministratori di un database, il DBMS fornisce meccanismi di sicurezza e controllo dei dati. Inoltre, consente agli utenti finali o ai programmatori di applicazioni di condividere i dati e preservarli.

Per descrivere le funzioni e i requisiti per le transazioni del sistema di gestione dei database si utilizza il termine ACID acronimodi Atomicity, Consistency, Isolation, Durability (atomicità, coerenza, isolamento e durabilità). È un insieme di proprietà delle transazioni di database intese a garantire la validità dei dati nonostante gli errori, le interruzioni di corrente e altri contrattempi. Nel contesto dei database, una sequenza di operazioni che soddisfa le proprietà ACID (che può essere percepita come una singola operazione logica sui dati) è chiamata transazione. Per esempio, un trasferimento di fondi da un conto bancario ad un altro, anche se implica cambiamenti multipli come addebitare un conto e accreditarne un altro, è una singola transazione.

  1. Atomicity: garantisce che ogni transazione sia trattata come una singola “unità”, che o riesce o fallisce: se uno qualsiasi degli statement che costituiscono una transazione non riesce a completarsi, l’intera transazione fallisce e il database rimane invariato. Un esempio di transazione atomica è un trasferimento monetario dal conto bancario A al conto B.
  2. Consistency: assicura che una transazione può portare il database solo da uno stato valido a un altro, mantenendo invarianti del database: ogni dato scritto nel database deve essere valido secondo tutte le regole definite. Questo previene la corruzione del database da una transazione illegale, ma non garantisce che una transazione sia corretta.
  3. Isolation: le transazioni sono spesso eseguite simultaneamente. L’isolamento assicura che l’esecuzione concorrente delle transazioni lasci il database nello stesso stato che si sarebbe ottenuto se le transazioni fossero state eseguite in sequenza. È l’obiettivo principale del controllo della concorrenza; a seconda del metodo usato, gli effetti di una transazione incompleta potrebbero anche non essere visibili alle altre transazioni.
  4. Durability: garantisce che una volta che una transazione è stata impegnata, rimarrà così anche nel caso di un guasto del sistema (per esempio, un’interruzione di corrente o un crash). Questo di solito significa che le transazioni completate siano registrati nella memoria non volatile. Per garantire la durabilità sono essenziali, per esempio, i registri delle transazioni, che archiviano tutti i processi del DBMS.