85 of 89 people found the following review helpful
- Published on Amazon.com
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...
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...
41 of 41 people found the following review helpful
Forrest L. Norvell
- Published on Amazon.com
This book is more or less exactly what it claims to be: a solid theoretical grounding in the relational model targeted at working software developers and database programmers. It combines concise explanations with explorations of pragmatic concerns, and includes genuinely useful exercises at the end of each chapter. If you're somebody who understands things best when you understand why the system is doing what it does, you'll find this book invaluable in sorting through questions like, "Why should I normalize the schema? Why are NULLs bad? What's a quota query?"
Speaking as someone who really enjoys abstract theoretical discussions of programming concepts, my only significant fault with the book was that occasionally Date's use of language was a little more informal than I would have liked; I would have liked a slightly more rigorous explanation of the links between the predicate calculus and set theory and the relational model, and could have used more mathematical notation. In addition, sometimes Date is... if not disingenuous, a little quick in glossing over the changes he has made to the relational model over the years (he and E. F. Codd, the originator of the relational model, diverged in their thinking a bit over the years).
One caveat: this book is not a cookbook or a how-to guide. It works from first principles outwards, and as such isn't exactly filled with immediately useful code snippets. In fact, as much as possible Date uses his own relational data language, Tutorial D, instead of SQL. He does have good reasons for disliking SQL as a pedagogical tool (or much of anything else), which he explains in depth throughout the text, but people who work best with directly applicable code they can pick up and apply to their own problems will find this book frustrating.
Overall, though, this is a quick, dense read and will do an amazing amount to clarify your thinking about how database systems work and what they ought to be.
27 of 28 people found the following review helpful
- Published on Amazon.com
Relational atabases are fundamental to today's IT operations. They underpin virtually all transactional and content management systems. Knowing how to work with relational databases is a critical tool in every IT practitioner's kit.
However, many learn how to use RDBMs via practical, on-the-job experience, or perhaps through a RDBMs vendor class, without understanding the underlying theory. Just as many programmers who work with classes and objects could become more proficient with a deeper grasp of object theory, the same is true for database designers, DBAs, and software engineers responsible for data interface layers.
This book provides a great knowledge base of the general theory of RDBMs in an thorough, well-organized and easy to read format - which is not an easy combo to carry off.
Database in Depth is particularly useful if your exposure to RDBMs has been through the lens of a particular vendor. It's easy to get confused between functionality and implementation; this book helps clarify the difference.
If you feel like you use databases without really understanding what does on under the hood, read this book.
21 of 21 people found the following review helpful
- Published on Amazon.com
When I was early in my Computer Science degree I took a course in which we discussed database fundamentals. In that class we learned about things like tuples, relations, predicates, predicate logic and deductive proofs. All of these were involved with the relational model, but it wasn't until later when I discovered the writings of Fabian Pascal and C. J. Date that I began to really understand how the above concepts tied into the database systems I was using, such as Oracle, MySQL, and Postgresql. One of those aha moments came when I realized that the deductive proofs we had done in that class were essentially queries to a database system. I came to see how each row (tuple) in a database table (relation) represented a set of values for a predicate that the relation represented. Overall, a database, then, was the logical AND of all the facts represented by the tuples of each relation. Queries were simply deductive proofs which allowed one to derive new facts from existing facts in the database. Good stuff all around.
If you're lucky, you will have studied Date's venerable Introduction to database systems while taking a college course in databases. If not, then you're still lucky, becuase Date has condensed the fundamentals of the relational model into a very approachable and very practical book published by O'Reilly, Database In Depth
Database In Depth takes you through a tour of the key concepts of the relational model, starting with the very basics (types, tuples, relations and so forth), and takes you step-by-step into more formiddable territory (stuff like normalization, join dependencies, integrity constraints, relational algebra, and the like). Throughout the book, Date explains each concept in his characteristic clarity. Date knows this stuff through and through, and it shows.
You may be tempted to think like many others that theory and fundamentals are fine and dandy, but how practical are they in the real world? In my experience, they're crucial. By understanding the fundamentals and the theory behind the databases you work with, you can avoid costly design flaws that lead to poor data integrity. By understanding these concepts, you can design databases that you can trust absolutely to store and deliver accurate results. I've had to work with databases that weren't designed with these concepts in mind, and the difference is stark.
One warning, you wont be spoon-fed here. The material can be challenging, and Date expects you to use your brain. This isn't SQL For Dummies. The real advantage you will gain by reading a book like this is that you will understand the mathematical and logical reasoning behind practical design principles such as why, for example, it's important to normalize (and the pitfalls you can run into when you de-normalize), why nulls can potentially lead to bad logic, and why duplicate rows are a bad idea all around. You'll be able to understand the ways in which most of today's database systems fail to faithfully implement the relational model, and the consequences of those failures (and consequently how to design your databases well despite these shortcomings).
Unlike many computer books that become obsolete within a year or two of their publication, Database in Depth is among that narrow collection of computer books that remain useful and relevant for years. This is precisely because it remains grounded in theory and fundamentals, instead of being tied to specific brands and versions of software.
The bottom line here is if you do much of anything with databases, then just about anything you read by C. J. Date will be worth your while. Database In Depth is no exception.
14 of 14 people found the following review helpful
- Published on Amazon.com
The contribution Chris Date (after Ted Codd) has made (with others such as Hugh Darwen) to the development, evolution, and expansion of the Relational Model (RM) is well documented, and correctly so.
Contrary to what some other readers might prefer, I do want to hear want he has to say about the current state of (Database Management System) industry affairs -- I don't believe there's anyone better qualified today to expound on what does or may, and on what does not or may not, constitute the RM. But it's important that you have some experience in the industry; Date does state that this book is for 'professionals' in the field.
Date's ideas on NULLs, Relation Valued Attributes (specifically on how they do not violate first normal form), Boyce-Codd normal form, 5th & 6th normal form, Relational Algebra, Relational Calculus, predicate logic, propositions, etc., are well worth the hearing. It's also instructive why he has so many misgivings about SQL (and here is an individual who, in conjunction with Darwen, has produced a respected reference on the SQL standard), though pre-1992 SQL is a different animal from post-1992 SQL.
In my humble opinion, if even half the originators of some modern day computing 'technologies' were even half as rigorous as Date in subjecting their own ideas to searching logical examinations, we wouldn't have had near as many development cycle overruns, cost breaches, project collapses, etc. And well written too.