In
informatica, il termine
database,
base di dati o
banca dati (a volte abbreviato con la sigla
DB), indica un
archivio dati, o un insieme di archivi, in cui le
informazioni in esso contenute sono strutturate e collegate tra loro secondo un particolare modello logico (
relazionale,
gerarchico,
reticolare o
a oggetti)
e in modo tale da consentire la gestione/organizzazione efficiente dei
dati stessi e l'interfacciamento con le richieste dell'utente attraverso
i cosiddetti
query language (
query di ricerca o interrogazione, inserimento, cancellazione, aggiornamento ecc.) grazie a particolari applicazioni
software dedicate (
DBMS), basate su un'architettura di tipo
client-server.
Generalità
Il termine "database" può anche indicare contemporaneamente:
Informalmente e impropriamente, la parola "database" viene spesso usata per indicare il
database management system (DBMS) riferendosi dunque alla sola parte software. Un
client di database
lato client interagisce con il DBMS e quindi anche con il database in senso fisico.
Nei database più moderni, ovvero quelli basati sul modello
relazionale, i dati vengono suddivisi per argomenti (in apposite
tabelle) e poi tali argomenti vengono suddivisi per categorie (campi)
con tutte le possibili operazioni di cui sopra. Tale suddivisione e
funzionalità rende i database notevolmente più efficienti rispetto ad un
archivio di dati creato ad esempio tramite
file system di un
sistema operativo su un
computer almeno per la gestione di dati complessi.
La diffusione dei database, e dei relativi sistemi DBMS di gestione,
nei sistemi informativi moderni è enorme e capillare essendo un
componente base di un
sistema informativo attraverso il rispettivo
sistema informatico:
si pensi a tutte le attività commerciali di gestione di magazzino,
gestione clienti, a sistemi di immagazzinamento di dati personali o
pubblici nella
pubblica amministrazione e nelle imprese private (es.
banche e
aziende), contabilità ecc. I database sono presenti anche all'interno dell'
architettura three-tier delle
applicazioni web dove rappresenta il
data layer ovvero la
persistenza dei dati. La gestione e lo sviluppo dei database attraverso DBMS è diventata nel tempo una branca a tutti gli effetti dell'
informatica moderna.
Gestione delle informazioni
La base di dati deve contenere anche le informazioni sulle loro
rappresentazioni e sulle relazioni che li legano. Spesso, ma non
necessariamente, una base dati contiene le seguenti informazioni:
- Strutture dati che velocizzano le operazioni frequenti, di solito a spese di operazioni meno frequenti.
- Collegamenti con dati esterni, cioè riferimenti a file locali o remoti non facenti parte del database.
- Informazioni di sicurezza, che autorizzano solo alcuni profili utente ad eseguire alcune operazioni su alcuni tipi di dati.
- Programmi che vengono eseguiti, automaticamente o su richiesta di
utenti autorizzati, per eseguire elaborazioni sui dati. Un tipico
automatismo consiste nell'eseguire un programma ogni volta che viene
modificato un dato di un certo tipo.
In un sistema informatico, una base di dati può essere usata
direttamente dai programmi applicativi, interfacciandosi con il supporto
di memorizzazione (insomma, agendo direttamente sui file). Questa
strategia era quella adottata universalmente fino agli
anni sessanta,
ed è tuttora impiegata quando i dati hanno una struttura molto
semplice, o quando sono elaborati da un solo programma applicativo.
Dalla fine degli anni sessanta, tuttavia, per gestire basi di dati
complesse condivise da più applicazioni si sono utilizzati appositi
sistemi software, detti
sistemi per la gestione di basi di dati (in inglese "
Database Management System"
o "DBMS"). Uno dei vantaggi di questi sistemi è la possibilità di non
agire direttamente sui dati, ma di vederne una rappresentazione
concettuale.
La ricerca nel campo delle basi di dati studia le seguenti problematiche:
- Progettazione di basi di dati.
- Progettazione e implementazione di DBMS.
- Interpretazione (o analisi) di dati contenuti in database.
Le basi di dati spesso fanno uso di tecnologie derivate da altre
branche dell'informatica. È usuale utilizzare tecniche derivate dall'
intelligenza artificiale, come ad esempio il
data mining, per cercare di estrarre relazioni o più in generale informazioni presenti nelle banche dati ma non immediatamente visibili.
Struttura o modello logico
Le basi di dati possono avere varie strutture, di solito, in ordine cronologico:
- gerarchica (rappresentabile tramite un albero – anni sessanta),
- reticolare (rappresentabile tramite un grafo – anni sessanta),
- relazionale (attualmente il più diffuso, rappresentabile mediante tabelle e relazioni tra esse – anni settanta),
- ad oggetti (estensione alle basi di dati del paradigma "Object Oriented", tipico della programmazione a oggetti – anni ottanta),
- semantica (rappresentabile con un grafo relazionale – inizio anni duemila).
Il formato
XML,
oltre che per scambi di dati su web, si sta diffondendo per la
definizione di vere e proprie basi di dati. XML ha una struttura
gerarchica, pare quindi un "ritorno alle origini" dei modelli di dati.
Un requisito importante di una buona base dati consiste nel non
duplicare inutilmente le informazioni in essa contenute: questo è reso
possibile dai gestori di
database relazionali (teorizzati da
Edgar F. Codd), che consentono di salvare i dati in tabelle che possono essere collegate.
La funzionalità di un database dipende in modo essenziale dalla sua
progettazione: la corretta individuazione degli scopi del database e
quindi delle tabelle, da definire attraverso i loro campi e le relazioni
che le legano, permette poi una estrazione dei dati più veloce e, in
generale, una gestione più efficiente.