Menu

La nascita del Modello Relazionale dei Database

Il Modello Relazionale si deve a Edgar (Ted) Frank Codd, matematico inglese nato il 23 Agosto del 1923 a Portland Bill (Dorset). Laureatosi in matematica e chimica all’ Exeter College di Oxford, prima di dedicarsi al “mondo dei dati” presta servizio nella Royal Air Force durante la seconda guerra mondiale.

edgar codd

Edgar Codd

Terminata l’esperienza militare, si trasferisce a New York (1948) per lavorare in IBM al progetto del Selective Sequence Electronic Calculator, il primo calcolatore elettronico di BigBlue, composto da ben 12.500 valvole termoioniche. Durante la sua attività di ricerca, sviluppa un approccio per programmare l’IBM 7040 STRETCH (antenato dei Mainframe) affinché possa supportare l’esecuzione concorrente di più attività, sfruttando al meglio la potenza di calcolo disponibile.

Codd, però, non è solo uno scienziato, ma è anche un cittadino attento alle vicende politiche e il disappunto con le scelte governative USA, in particolare quelle del senatore Joseph McCarthy, lo portano ad abbandonare il Paese spostandosi, per circa un decennio, ad Ottawa in Canada. Il ritorno negli Stati Uniti coincide con l’ottenimento del dottorato in informatica presso l’Università del Michigan, stabilizzandosi due anni dopo in California come ricercatore all’interno del San Jose Research Laboratory della IBM.

lab ibm

Il Laboratorio di ricerca IBM in California

Nel 20ennio successivo, Codd si dedica allo sviluppo e alla formulazione della propria teoria sulla gestione dei dati, basata su modelli matematici. In particolare, la sua idea si fonda sulla registrazione dei dati in una serie di tabelle referenziate tra loro, struttura che permette di permutarli (ordinare) in n-modi differenti.

E’ interessante evidenziare che la ricerca di Codd non è incentrata sui database in senso lato ma sulle modalità di registrazione dei dati e su come creare tra essi una “relazione” che superi il flat data model(derivato direttamente dai file) in cui vengono rappresentati da una semplice tabella isolata dal resto della base di conoscenza. 

Inoltre, è doveroso sottolineare che lo stesso termine “data base” viene coniato solo nel 1964, quindi parallelamente alle ricerche di Codd. Il termine nasce nei laboratori militari per indicare raccolte di dati condivisi dagli utenti finali dei sistemi di computer utilizzati secondo la logica del time-sharing.

Nel 1969, Codd pubblica, internamente ad IBM, un documento riservato con il quale illustra in dettaglio la propria soluzione di archiviazione, ormai matura per sostituire, oltre il modello flat, anche la memorizzazione in forma gerarchica (hierarchical model), sostanzialmente una struttura dati ad albero, e navigazionale (network model), in cui la cui struttura è assimilabile a quella di un grafo.

modelli

Hierarchical and Network model

Il matematico evidenzia come la necessità di superare i precedenti modelli sia dovuta, in particolar modo, al fatto che essi sono fortemente legati all’hardware su cui vengono realizzati, mentre è necessario realizzare una soluzione che consenta una interrogazione basata su “ciò che si sta cercando” piuttosto che “su come sono memorizzati”. 

A tal proposito, W. C. McGee dell’IBM Data Processing Division Laboratory afferma in un passaggio dell’articolo Data Base Technology:

“In the mid-1960s, a number of investigators began to grow dissatisfied with the hardware orientation of then extant data structuring methods, and in particular with the manner in which pointers and similar devices for implementing entity associations were being exposed to the users.”

La soluzione proposta da Codd, però, non trova un grande riscontro in IBM, ritenendola, nelle migliori ipotesi, una “curiosità intellettuale”, nelle peggiori, un pericolo per le soluzioni esistenti, in particolare per le revenue derivanti dal sistema gerarchico IMS/DB. Il risultato della ricerca/sperimentazione viene comunque resa pubblica grazie all’articolo A Relational Model of Data for Large Shared Data Banks, chiaramente realizzato dallo stesso Codd, in cui si legge:

“It provides a means of describing data with its natural structure only--that is, without superimposing any additional structure for machine representation purposes.  Accordingly, it provides a basis for a high level data language which will yield maximal independence between programs on the one hand and machine representation on the other.”(Codd 1970)

Bisogna aggiungere che un’ulteriore barriera all’adozione del modello relazione è rappresentata dall’hardware del periodo, non ancora sufficientemente potente da poterlo supportare vista anche la complessità di implementazione.

IBM impiega quasi 5 anni per sviluppare un primo prototipo di database relazionale, venendo anticipata dall’Università di Berkeley che comincia a lavorare su INGRES, temporalmente il primo database relazionale.  Le relative attività cominciano nel 1973 all’interno del più ampio progetto System R, da cui, paradossalmente, Codd viene escluso. System R (poi SQL/DS ed infine DB2) porta allo sviluppo di concetti come le Viste (1975), le Policy di Security (1975) e le Transazioni (1976).

Tra i membri del Team figurano, invece, Ray Boyce e Don Chamberlin che realizzano il linguaggio SQL(Structured Query Language, chiamato inizialmente SEQUEL). In particolare Chamberlin commenta così la sua esperienza:

"...since I'd been studying CODASYL (the language used to query navigational databases), I could imagine how those queries would have been represented in CODASYL by programs that were five pages long, that would navigate through this labyrinth of pointers and stuff. Codd would sort of write them down as one-liners. ... They weren't complicated at all. I said, 'Wow.' This was kind of a conversion experience for me. I understood what the relational thing was about after that."

chamberlin

Don Chamberlin