Book Review: Designing Effective Database Systems
Designing Effective Database Systems
by Rebecca M. Riordan
353 pages, $49.99
Just about every developer these days ends up working with a database. Many
of them end up designing databases as well. Why is it, then, that so many of
those databases are designed in a slipshod fashion? As far as I can tell, it's
because developers think that there's nothing in particular to learn. Once they
understand how to build a table and a SQL statement, and perhaps a foreign key,
they think they've got it down.
Of course, anyone who's come at the field from the other direction - from
being a DBA - knows that it's not that simple. There's an entire science of
database design, and it's not trivial. You can spend a good long time puzzling
your way through textbooks, replete with mathematical notation, before you
really grasp the theory that underlies good relational database design.
This book strikes a neat middle course between the two extremes. Rebecca
Riordan tackles the entire field of database application design, from the basic
relational model to building an effective user interface for a datacentric
application, and she does it with style. The writing is rigorous where rigor is
needed (for example, in the discussion of normal forms right up through fifth
normal form, which many books dismiss with a bit of hand-waving), but accessible
throughout. If you're willing to pay attention, you can go from knowing nothing
serious about database design to knowing a great deal by the time you finish the
The topics range quite widely. In addition to basic relational database
theory, she also covers dimensional database theory (as used in OLAP databases,
a design process that starts from system goals and proceeds through a conceptual
model to a schema and prototyping, and user interface design. Examples are
written using the Microsoft tool set (variously SQL Server, Access, and VB
.NET), but they're just that - examples. The book is much heavier on general
advice and guidance than it is on code, and that's the way it should be.
My bookshelves include a core set of software design books that I'd like to
think any future employee of mine would have read. I think this one is going in
that section; it's a great look at the subject, and will make a profitable
reference for many developers.
Mike Gunderloy has been developing software for a quarter-century now, and writing about it for nearly as long. He walked away from a .NET development career in 2006 and has been a happy Rails user ever since. Mike blogs at A Fresh Cup.