I premi Turing: Charles Bachman


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.

Commenti