Book Review: Designing Effective Database Systems

Designing Effective Database Systems
by Rebecca M. Riordan
Addison-Wesley, 2005
353 pages, $49.99
ISBN 0-321-29093-3

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 book.

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.

About the Author

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.