Over the last week or so, I've been reading C. J. Date's book Database In Depth - Relational Theory for Practitioners (O'Reilly). While it's a well-done title, it's the type of book I have a hard time reading...
Contents:
Introduction; Relations Versus Types; Tuples And Relations; Relation Variables; Relational Algebra; Integrity Constraints; Database Design Theory; What Is The Relational Model?; A Little Bit Of Logic; Suggestions For Further Reading; Index
C. J. Date, along with E. F. Codd (the acknowledged "father" of relational database theory), are probably the two most influential individuals in this field. Much of what we know and practice in today's RDBMS packages all goes back to the work these two have done. Rather than write a textbook style discussion of the finer points of database theory, Date has used this book to update some of his thinking and to consolidate a number of his talks and writings of late. For serious students of relational database concepts, I'd consider this the latest "must read" to keep up with current thinking by one of the masters.
Having said that, I had a hard time slogging through the material. I tend to gravitate to technical reading material that is practical and understandable. Debates over finer points of arcane minutia will cause me to zone out quickly. Unfortunately, I felt that way through a lot of this book. There is a lot of solid technical material here, and it's definitely geared towards serious readers. Date doesn't have a lot of kind words to say about how database vendors have implemented the relational model, nor does he feel SQL is a good thing. I, on the other hand, figure the packages are what they are, and you had better learn to use them to create the systems needed by your customers. That's probably why I'm a developer and not a system architect. Reading a number of pages on why Date and Codd disagree on whether nulls are valid or allowed doesn't do much for me. They're there, you need to understand them, and then you need to move on. Another hard part for me was the heavy emphasis on mathematical proofs and such. Since I don't have that type of background, I'm quickly lost...
Even though I wasn't completely enamored with the book, I still think it is a good title. For the right reader, this will be material that they will benefit from. For the average person who got training on Oracle or DB2 and understand basic relational database theory, this may be a bit more difficult to get through...