Relational Database Design Clearly Explained
The Principles of Good Relational Database Design
Review by SQL-Sever-Performance.com
Relational Database Design Clearly Explained, Second Edition
By Jan L. Harrington
416 pages. Morgan Kaufmann. $47.95
I do have a foible for books on database theory, database design and everything that comes along with it. I even every book on these topics with enthusiasm and therefore might be a little prejudiced in that respect when it comes to reviewing such books. Time and again, it is exciting to read. I enjoy seeing how this or that author expresses his own interpretation of the topic and how this corresponds (or not) with my own point of view. At the same time, I believe that one can never know enough on the topic. Even database professionals should have a look at a theoretical book from time to time. The tendency to become professionally blinkered, without a doubt, always exists, so it doesn’t hurt anyone to critically question what one is doing.
The book at hand dates back to 2002, but the world of database theory exhibits a strong reliability and continuance, something the world of software development in general can only dream about. So the fundamental principles still hold true and one doesn’t expect them to change dramatically in the near future.
Table of Contents:
- Entities and Data Relationships
- Historical Antecedents
- The Relational Data Model
- Database Structure and Performance
- Codd’s Rules
- Integrating Objects
- Using SQL to Implement a Relational Design
- Using CASE Tools for Database Design
- Database Design Case Study #1: Mighty-Mite Motors
- Database Design Case Study #2: East Coast Aquarium
- Database Design Case Study #3: Independent Intelligence Agency
The author is computer science professor at an American university, where she, among other things, lectures about database design and data management. Since the academic community prefers the ANSI SQL Standard to product-specific SQL dialect, you will find that you cannot apply the book directly to SQL Server.
The case studies, for example, should be taken with a pinch of salt. They are actually the weakest part of an otherwise solid book. Not only do the choice of datatypes often appear to be idiosyncratic, but the modeling of the entities (and therefore the design of the tables in a subsequent stage) sometimes contradicts the normalization rules discussed in the book. Another remarkable point is the fact that only PRIMARY KEY and FOREIGN KEY constraints seem to be used in the modeling. You’ll find very few CHECK constraints and almost no DEFAULT or UNIQUE constraints. In practice, you would surely handle this differently.
Despite these weak points, I think this book is appropriate for beginners because of the sound theoretical portion. When it comes to applying the theoretically acquired knowledge from this book however, I would suggest you consult a book about practical implementation in a particular RDBMS.