È difficile trovare un libro chiaro e sintetico sul modello Entità
Relazioni.
Alla fine si finisce sempre su due categorie di libri:
- Libri teorici molto vasti (oltre le 600 pagine...)
- Semplicistici manuali introduttivi ad SQL, spesso venduti da
coloro che producono il database del caso.
Il libro di C.J.Date non cade in nessuna di queste due categorie: siamo
di fronte ad un testo chiaro, sintetico (sulle 200 pagine) e molto ben
strutturato.
Inoltre, a differenza di altri testi sullo stesso argomento, Date ha una
libertà di parola ed una forza data dalla sua esperienza che non è
possibile riscontrare in altri test similari.
Database in Depth
C.J.Date è stato un dottorando di E.F.Codd.
Per chi non lo sapesse E.F. Codd ha gettato le basi della teoria E-R nel
lontano 1968. Date per cui ha una esperienza notevole nel campo, e due
libri in attivo sullo stesso argomento.
Per cui la prima sfida per l'autore era presentare un terzo, differente
taglio alla cosa. Inutile aggiungere che Date è anche uno dei massimi
esperti nel campo.
Il libro è chiaro ed alla fine di ogni capitolo c'è un riepilogo ed un
buon numero di esercizi: il testo è pensato per auto-didatti e non solo
per studenti.
"Database in depth" è orientato ai professionisti IT che già conoscono
l'argomento, ma per le disparate ragioni vogliono migliorare la loro
preparazione: ammetto che anche io sono nel novero di coloro che hanno
sempre dovuto rincorrere l'argomento, dopo la fine dell'Università :).
Date inizia sottolineando in modo fortissimo il forte distacco che c'è
tra il modello teorico E-R e l'unica implementazione al mondo: il
linguaggio SQL.
Date arriva anche ad evitare un abuso di SQL, introducendo una
grammatica alternativa e facendo spesso raffronti sulle subdole
differenze tra i due modi di esprimere (e quindi di pensare) gli argomenti.
Dopo alcune definizioni base molto ben delineate, nel capitolo tre
l'autore ci porta due interessanti quesiti: "Perchè le tuple duplicate
sono bandite" e "Perchè i dati 'Null' sono banditi".
Secondo Date l'implementazione SQL è carente proprio su questi due
fronti, che sono forieri di problemi a non finire. A difesa
dell'implementazione, devo dire che risolvere questi due problemi nel
mondo reale è non banale.
Tuttavia Date ci mostra come seguendo questi due principi è possibile
avere un modello più forte e pulito.
Devo ammettere che questi argomenti mi hanno scosso, perché non avrei
mai pensato che il modello SQL avesse limitazioni e inquinamenti così
grandi.
Inoltre, in questi due paragrafi Date esprime un'idea molto coraggiosa:
consiglia l'uso di select DISTINCT per ogni nostra query, per evitare
comportamenti difformi dal modello teorico.
Ammetto che anche io mi sono scontrato con i problemi di Date in questi
termini, anche se non capivo il perché di alcuni strani comportamenti
dovuti alla negazione
di questi due principi.
L'unico errore di Date è dovuto al fatto che nel tentativo di
distinguere questi aspetti, spesso l'esposizione risulta rallentata o un
po' pedante, soprattutto nel primo capitolo; ma non è molto grave.
In conclusione questo libro ci può dare una nuova visione del vecchio
modello E-R
insegnandoci nuovi concetti e presentando i vecchi con una luce nuova.
Non posso far altro che suggerirvi questo testo, che ha molto da
insegnare anche a persone che non devono occuparsi di Database.
Voto finale: 8/10, uno
Strong Buy!