Review - Database in Depth
Dave Cross
dave at dave.org.uk
Tue Dec 6 22:35:33 GMT 2005
This may or may not be the start of me working my way through a large
pile of review books that I have by my desk
Also online at http://dave.org.uk/reviews/dbdepth.html
Dave...
Author(s) Chris Date
Publisher O'Reilly (2005)
ISBN 0-596-10012-4
Reviewer Dave Cross
Many years ago when I was a student we were taughgt database theory.
Although Ted Codd's paper A Relational Model of Data for Large Shared
Data Banks had been published fifteen years earlier, relational
databases hadn't yet become the dominant species and we were taught a
number of alternatives (does anyone else remember Codasyl?) systems -
relational databases and SQL were just the newest option.
Of course, once I left college and started working for a living, it
wasn't long before relational databases were the only game in town. And
over the years I've forgotten most of the non-relational theory that I
once knew. Or, at least, that's what I thought. Reading this book, I
realise that I had forgotten most of the relational theory too.
The relational model is what underpins most of the databases that we use
in our day-to-day work. But in many ways, the databases that we use
today have diverged greatly from Codd's original ideas. Many of the
features of todays databases would have no place in a purely relational
database.
And that is what Chris Date's latest book is all about. He reminds us of
what a really relational database would look like and points out where
current implementations fall short. In particular, it's clear that Date
blames the ubiquity of SQL for most of these problems. SQL, he reminds
us, started out as an attempt to put a user-friendly(!) query language
on top of the relational model. When that didn't really work out,
instead of going back to square one and trying to implement a better
relational query language the database vendors instead stuck with SQL
and ignored the bits of the relational model which it couldn't support.
For most of the examples in the book, Date gives an SQL query alongside
the same query rewritten in "Tutorial D" a relational query language of
his own creation.
The book does contain a useful introduction to the relational model, but
I have to say that in doing so it uses some mathematics that many
potential readers might find a bit galling. Personally, I'd be very
happy if more database practioners understood the underlying maths to
the level required to read this book as that would hopefully mean an
increase in the average quality of the database designs that I come across.
Date is at his most interesting when he is talking about the advantages
that a "proper" relational database implementation would bring us. As he
says in a recent interview:
As far as I'm concerned, an object/relational system done right
would simply be a relational system done right, nothing more and
nothing less.
There are some exciting possibilities in a truely relational database,
but it would mean the industry admitting that its current
implementations are flawed. And I don't see that happening.
If you work with databases and you have any interest in the mathematical
theories behind how your database works, then I recommend you read this
book. You'll come out with a deeper understanding of your current
database system. But, perhaps more importantly, you'll also have a
slight sense of disappointment when you realise how good your database
could be.
More information about the london.pm
mailing list