Charles Bachman (da http://amturing.acm.org) |
Che cos'è l'informatica? Cercate il
termine su un qualsiasi dizionario: con ogni probabilità, troverete definizioni
del tipo "La scienza che si occupa dell’ordinamento, del trattamento e
della trasmissione delle informazioni per mezzo dell’elaborazione elettronica"
(questa è tratta dal Le Monnier).
In ogni caso, è pressoché certo che all'interno della definizione troviate
la parola "informazione" (lo
stesso vocabolo "informatica" è la contrazione di "informazione
automatica"). Se gli informatici hanno soprattutto a che fare con informazioni,
è evidente che uno delle loro necessità principali sia quella di immagazzinare
queste informazioni da qualche parte.
I database (o le “basi di dati”, se preferite la dizione italiana, ormai un
po’ desueta), sono una delle più importanti risposte escogitate per soddisfare
questo bisogno. Esistono molti tipi di database, ma la categoria di gran lunga
più utilizzata è quella dei database relazionali.
Uno dei primi ricercatori a
occuparsi dell’argomento fu l’americano Charles Bachman, classe 1924, premio
Turing 1973.
Il padre di Charles era un allenatore di squadre universitarie di football,
e negli anni dell’infanzia di Charles si spostò molto tra gli atenei americani,
portando con sé la famiglia. Nel 1944 Charles si arruolò nell’esercito e
combatté fino alla fine della guerra nel teatro del Pacifico. Nel 1950 si
laureò in ingegneria meccanica presso l’Università della Pennsylvania. Negli
anni successivi fu ingaggiato da una compagnia chimica per lavorare su alcuni
problemi di ricerca operativa, e fu in questa occasione che ebbe le sue prime
esperienze con i computer.
Da allora in poi, il suo percorso di ricerca e sviluppo si svolse
interamente presso aziende piuttosto che in ambito accademico. Nel 1960, presso la General Electric, cominciò la
sua lunga e onorata carriera di ricercatore nell’ambito dei database
progettando IDS ("Integrated Data Store"), uno dei primi e più famosi sistemi di
gestione di dati della storia.
IDS implementava una serie di tecnologie innovative che
rappresentarono per molti anni il punto di riferimento nell'ambito dei
database. Ci volle molto tempo prima di vedere emergere altri sistemi
che potessero competere con quello progettato da Bachman.Charles Bachman |
Il contributo più noto di Bachman riguarda però i diagrammi che portano il suo nome: schemi
utilizzati per descrivere la struttura di un database relazionale come una rete
che collega tra di loro diverse “relazioni”. Una relazione è un insieme di “tuple” (d1, d2, ..., dn), ciascuna delle quali è una sequenza di m attributi (dove m è un
numero naturale). I valori ammessi per gli attributi di una tupla possono
appartenere a insiemi diversi, ma la sequenza di domini ammessi è la stessa per
tutte le tuple di una stessa relazione.
Il modo più intuitivo per raffigurarci mentalmente una relazione è vederla
come una tabella: le sue tuple sono le righe, mentre gli attributi (ciascuno
con il suo dominio) che compongono le tuple corrispondono alle colonne. Una
relazione serve astrattamente per rappresentare un’entità, e più concretamente
per contenere dei dati. Per esempio, una relazione “Impiegati” potrebbe servire
per descrivere gli impiegati di un’azienda, ciascuno corrispondente a una
tupla, e ciascuna tupla potrebbe essere formata da una sequenza di attributi (nome,
cognome, numero di matricola, mansione, stipendio, e così via).
In un database, e qui tocchiamo il punto critico, vi sono sempre dei legami
tra una relazione e l’altra. Supponiamo che oltre alla relazione “Impiegati”
il database contenga una relazione “Dipartimenti”: è naturale pensare che tra
le due relazioni sussista un legame, allo scopo di stabilire a quale
dipartimento appartiene ciascun impiegato, cioè a quale tupla della relazione “Dipartimenti”
sia associata ogni tupla della relazione “Impiegati”.
Le figure qui a fianco sono tratte da uno degli articoli fondamentali di Bachman, intitolato Data structure diagrams, e pubblicato nel 1969.
Le due relazioni (o entità) “Dipartimenti” e “Impiegati” sono mostrate come
rettangoli che vengono poi collegati tra di loro. La freccia serve a
indicare graficamente tale collegamento, e rappresenta l'idea che ogni
impiegato è assegnato a uno dei dipartimenti.
In generale, i collegamenti tra entità possono essere caratterizzati
da diversi tipi di cardinalità: il tipo più comune è quello 1 a n (un dipartimento contiene n impiegati), ma esistono anche collegamenti 1 a 1, e n a n.
Charles Bachman fu così, verso la fine degli anni Sessanta, uno dei pionieri dei
diagrammi che descrivono la struttura di un database relazionale.
A partire dal 1976, soprattutto in seguito ai lavori
dell'informatico Peter Chen, i modelli di questo tipo vengono chiamati
“diagrammi entità-relazioni”, o diagrammi E-R. Ma
attenzione: qui la parola “relazione” indica i legami tra le relazioni
(come
quello tra impiegati e dipartimenti), e non le relazioni stesse, che
invece
sono denominate “entità”. Questa confusione terminologica è stata fonte
di
mille fraintendimenti. Si noti però che in inglese i termini sono ben
distinti:
“relation” è l’insieme di tuple che corrisponde a un entità e viene
implementato da una tabella, e “relationship” è l’associazione che lega
due
relazioni, o due entità o tabelle.
Il premio Turing fu assegnato a Charles Bachman nel 1973 per i suoi “eccezionali
contributi alla tecnologia dei database”. Le sue ricerche
pionieristiche riguardanti la modellizzazione dei database sono state,
in effetti, di enorme importanza per lo sviluppo dei potentissimi
sistemi oggi disponibili.
Nella storia del prestigioso riconoscimento, Bachman fu il primo vincitore privo di un dottorato, il primo ingegnere (e non matematico), e il primo ricercatore industriale non accademico.
Pare che dopo essere stato insignito, Bachman si interessò molto alla vita di Alan Turing, e fece persino la conoscenza di Sara Turing, l'anziana madre del grande matematico.
Nessun commento:
Posta un commento