mercoledì 5 agosto 2009

I modelli dei dati all’epoca dell’”invenzione” dei Function Points.

Per capire come sono nati gli ILF, è necessario tornare ai tempi pionieristici della nascita dei Function Points: alla fine degli anni ‘70, ai tempi dei computer mainframe e delle schede perforate.
A quell’epoca, quasi tutte le applicazioni si basavano, per i loro dati, su “files piatti”. I databases DL/1, che da qualche anno l’IBM ha abbandonato, negli anni ’70 erano strumenti d’avanguardia. Il modello relazionale dei dati, che oggi domina incontrastato nel mondo del software, era stato studiato e proposto da Edgar F. Codd, nel 1969. Ma i databases relazionali erano al massimo un oggetto di studio accademico.
Un tema molto interessante per gli studiosi d’informatica era quello di scegliere il “modello dei dati” più adatto per rappresentare i dati del mondo reale all’interno delle applicazioni software.



Il “modello relazionale” era estremamente “potente” e basato su solidi concetti matematici, ma un po’ astratto.



Nel 1975 Peter Chen, uno studioso americano, propose il “Modello Entità-Relazioni (E-R)” per la rappresentazione e l’analisi dei dati. Il modello E-R, come anche il modello relazionale, sono modelli astratti, indipendenti dalla tecnologia, un pò come la “macchina di Turing”. Per questo, mentre i computers del 1975 sono oggetti da museo, il modello E-R ed il modello relazionale sono ancora modelli di riferimento per l’analisi dei dati.
Il modello E-R è, da un punto di vista logico, ancora più astratto del modello relazionale. Ma i diagrammi E-R sono, di solito, molto più comprensibili agli “umani” rispetto ai diagrammi relazionali. In altre parole, anche se i due modelli veicolano le stesse informazioni, il modello E-R è il più valido dal punto di vista “semantico”.
Per questo, il modello E-R è diventato il “modello principe” per l’analisi dei dati fatta dagli “umani”, mentre il modello relazionale è il modello più diffuso per la rappresentazione dei dati sui computers.



Al di là delle apparenze, il modello E-R ed il modello relazionale sono molto simili. Per tutti e due i modelli, è possibile passare dai diagrammi ad una notazione matematica, formale, basata su semplici concetti di teoria degli insiemi. Tutti e due i modelli, essendo basati su concetti matematici, sono indipendenti dalla tecnologia, e quindi, in qualche modo, “eterni”.
Man mano che si passa dalla realtà “umana”, fatta di concetti, alla realtà dei computers, fatta di bits, i concetti perdono il loro significato semantico e diventano sempre più astratti. La figura che segue rappresenta la gerarchia tra i modelli dei dati usati nel mondo dell’informatica.



Il “modello concettuale” è quello più vicino alla realtà “umana”. Ci sono diversi tipi di modelli concettuali, ma il “modello concettuale” per antonomasia è il modello E-R di Chen.
Al di sotto del modello concettuale, un po’ più vicino al computer, c’è il “modello logico” dei dati. Il “modello logico” imperante nei nostri giorni è quello “relazionale”, introdotto da Edgar F. Codd nel 1969. In passato, ai tempi del mainframe, c’era anche un altro “modello logico” molto in voga: il “modello gerarchico”, che corrispondeva al modo in cui il DL/1, il più diffuso tipo di database che c’era all’epoca, rappresentava i dati sui computer. Il “modello gerarchico” non ha mai avuto successo tra gli accademici, perché corrispondeva ad un modo troppo limitato, troppo vincolato, di rappresentare la realtà. Un “modello logico” più recente, che però non è riuscito a soppiantare il “modello relazionale”, è il modello “object oriented”.
Il “Modello Fisico” corrisponde al modo in cui il modello logico è rappresentato fisicamente sul computer. Nel caso di un modello logico relazionale, il modello fisico corrisponde al DDL (Data Definition Language) che definisce, in SQL (il “linguaggio standard” del mondo relazionale) la struttura delle tabelle, le chiavi, gli indici, ecc.
Qual è il “migliore” tra il modello E-R di Chen, ed il modello relazionale di Codd? Credo che la polemica tra Chen e gli “eredi” di Codd (in particolare, Chris Date) sia tuttora in corso; ma di solito, quando bisogna fare il primo passo nell’analisi dei dati per una nuova applicazione, la maggior parte degli analisti usano quadratini, rombi e linee (cioè il modello E-R). Quando le idee di base sono state chiarite, si passa a disegnare dei rettangoli con un po’ di righe e colonne dentro, collegandoli con delle linee (cioè tabelle: il modello relazionale).
Tutti e due i modelli sono quindi molto validi, anche se di solito sono usati in fasi diverse dell’analisi. Ed è possibile rappresentare tutti e due i modelli usando delle notazioni sintetiche, di tipo “formale”.

Riferimenti esterni
§ http://en.wikipedia.org/wiki/Relational_model
§ Peter P. Chen , Entity-Relationship Modeling: Historical Events, Future Trends, and Lessons Learned.
§ All for One, One for All, by C. J. Date, May 31st, 2006

Nessun commento:

Posta un commento