|Database Design for Mere Mortals: 25th Anniversary Edition|
Author: Michael J Hernandez
As the title of this book suggests, this is a title that has stood the test of time, and this updated 4th Edition has been reissued to celebrate its 25th anniversary.
This is a book that aims to teach database design from the beginning, assuming no existing experience in database design. One reason the book has continued in print for so long is because Hernandez writes in an accessible, jargon-free way while guiding the reader through the steps necessary to create a working database design.
This edition has been updated, with some sections rewritten to reflect reader feedback over the years on what they found tricky. Example sections have been added, and the discussion on interviews updated to reflect the current trend for online meetings.
In essence, though, the book retains the structure it originally had, being split into three main parts – relational database design, the design process, and other database design issues. There are more appendices than in the previous edition, including one on normalization.
The first part on relational database design sets the scene on relational databases, how we ended up where we are now, what you’re aiming for as a design objective, and what the terminology means. Hernandez has always been firmly in favor of the practical side of database design, so he talks of records rather than tuples, and fields not columns.
Part II of the book covers the design process, and this occupies the majority of the book. Hernandez splits the design process into several main steps, starting with the idea of ‘defining a mission statement and mission objectives’. By this he means a database designer needs to be clear from the beginning on what the database should do when it’s finished. Analyzing the current database comes next, and this could mean the paper-based database you’re replacing.
Creating data structures is the next step, followed by relationships, business rules, views, and reviewing data integrity. Field specifications gets its own chapter looking at topics such as field-level integrity, and the physical and logical elements – data types, lengths, uniqueness, required values. Table relationships are covered in the next chapter, and again this topic is tackled from a practical viewpoint rather than as an intellectual exercise. Business rules, views, and data integrity bring this part of the book to a close.
The final part of the book looks at other database design issues, with a fun and useful chapter on bad design and what not to do, and another very good chapter on when and how you might bend or break the 'rules'.
The book ends with a set of good appendices covering sample designs, design guidelines, documentation forms and normalization among other topics.
This is a book that has stood the test of time. Hernandez's observations are as pertinent as they were back when it was originally written. If you need to design a database, you could do a lot worse than read this book.