Home Page -------------------
[Home Page] - [Reviews Main]
-------------------

Book Review
Database Design for Mere Mortals by Michael Hernandez
Recommended
ISBN: 0 201 69471 9       Publisher: Addison-Wesley       Pages: 440pp       Price: £20-95
Categories:   database    
Reviewed by Ian Cargill in C Vu 9-5 (Jul 1997)
Database design is something which is all too often done badly--if it is done at all! The first couple of books on the subject that I encountered were rather dry and complicated and I had difficulty sticking with them. When I saw the glowing tributes on the cover of this book, I thought I would give it a go. Actually, I am generally pretty wary of the paeans of praise publishers put on the covers of books, but given the many positive reviews quoted both on the back cover and inside pages of this book, I was really expecting something special. That I was a little disappointed is really down to one particular chapter--of which more later.

In contrast to the earlier database books that I had read, I found this one eminently accessible. It manages to combine a sense of authority with a user- friendly level of readability. The structure of the book is logical, starting with a general background to the relational database model and an explanation of the terminology, which is one of the better explanations that I have seen of database terms.

The second part of the book then follows through, in order, the processes involved in designing a database. Please note that this book is about designing databases, not implementing them. The technique is general, so it doesn't matter whether you are planning to implement it in Access, Delphi or C++; the technique applies equally to all.

The first couple of chapters of part two discuss the initial steps of analysing the requirements; of getting to know the current database, determining user's needs and mapping out what is required. This includes that only bit that I couldn't digest. Hernandez makes quite a point of producing a Mission Statement. Now I have to confess that the mere mention of the phrase 'Mission Statement' sets my teeth on edge. Sadly, the mission statements that he devises show why. Let me present his idea of a good mission statement with names replaced by anonymous letters-- ' The purpose of the X database is to maintain the data we use in support of the services this office provides to Y '.

To me that is pure, unadulterated, meaningless waffle. Replace X and Y with whatever you want; one mission statement fits all! I nearly lost confidence at this point, but I kept going and was glad that I did, because that was the only thing that I was particularly disappointed with.

The rest of the book is on pretty solid ground, giving good, detailed coverage of topics such as Table Structures, Keys, Field Specs, Relationships, Views and Data Integrity. The book finishes up with a couple of handy chapters, Bad Design--What Not to Do and Bending or Breaking the Rules.

Although I'm not a database expert, I was recently shovelled head first into a database project as the only available body. The timing was incredible, because I had only just received this book for review. My first task on the project was to quickly read this book from cover to cover. I think I can credit this book with getting me up to speed pretty quickly. Not a perfect book, but a pretty good one. If you want a good introduction to database design, then I can certainly recommend this one; but for goodness sake, skip the bit on mission statements!


Last Update - 13 May 2001.

To link to this review, please use the URL: http://www.accu.org/bookreviews/public/reviews/d/d000423.htm

Copyright © The Association of C & C++ Users 1998-2000. All rights reserved.

Mirrored from http://www.accu.org/