Book Reviews   Digital Libraries   Astronomy Log   Software   About  

Book Review: Database In Depth
21 February 2007 23:58

Database In Depth
Author: C. J. Date
Pages: 208
Publisher: O'Reilly
ISBN: 0-596-10012-4
Summary: An excellent introduction to the relational model by one of the best thinkers in the field.
Review Date: 21 Feb, 2007

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.

Overall Rating: 9/10


Comments
Happiness
True love begins when the needs of others become more important than your own.
The practice of true love begets true happiness

Me

Daniel Hanks

I'm a system administrator working for Omniture

Interested in

perl
books
python
databases
genealogy
astronomy
digital archival
digital libraries
web applications
web infrastructure
distributed storage

among other things . . .

Storyteller


Pamela Hanks

is an excellent storyteller.

(She also happens to be my wife :-)

A storyteller makes a wonderful and unique addition to family, school, church or other group events. Schedule her for your next gathering.


Utah Open Source

Kiva.org
Kiva - loans that change lives

Recent Blog Entries

Subscribe with Bloglines
- OpenWest Conference 2014 Presentation Slides - Ansible
- OpenWest Conference 2013 Presentation Slides
- Utah Open Source Conference 2012 - Presentation slides
- E-Book Review: Data Mashups in R
- Book Review: Illustrated Guide to Astronomical Wonders
- Book Review: Wicked Cool Shell Scripts
- PLUG Presentation Slides: The Open Source Data Center
- Harnessing human computational power from computer games
- I love a good roadtrip
- FamilySearch Developers Conference 2008 presentations now available online
- FHT follow up: an idea for a mobile genealogical application
- Family history and technology: it's only getting better
- President Hinckley passes away
- December is NaBoMoReMo - National Book of Mormon Reading Month
- Family History, Photos, Blogs, and Books
- The Compact Oxford English Dictionary
- 1830s English and the Book of Mormon
- Google adds My Library feature to Book Search
- Utah Open Source Conference
- Wiki diagrammer (Steal this idea!)

All Entries . . .

LDSOSS
LDS Open Source Software
A website discussing the use of Open-source software for applications useful to those sharing values of the Latter-day Saint (Mormon) faith.

© 2009, Daniel C. Hanks