Author: Terry Halpin
Publisher: The Morgan Kaufmann Series in Data Management Systems, 2001
I used to think that the best book one could read in order to really learn the science and the art of data modeling was Conceptual Schema and Relational Database Design. I used to think that, that
is, until I read the Information Modeling and Relational Databases: From Conceptual Analysis to Logical Design.
Originally intended to be the third edition of the “Conceptual Schema” text, this new book offers the same definitive information as its predecessor with a large amount of added
information. So much more information, in fact, that the book has grown by roughly 250 pages (and that is not counting the additional appendices available online at http://www.mkp.com/books_catalog/catalog.asp?ISBN=1-55860-672-6)!
The text begins with a warning. Halpin refers to the 1999 Mars Climate Orbiter accident in which a simple conversion from imperial to metric units caused the $125 million dollar craft to be
destroyed. “Data itself is not enough,” Halpin cautions, “what we really need is information.”
And so begins the introduction of the most accurate way to model data: Object-Role Modeling (ORM). For those of you not familiar with the technique, ORM is a fact-based approach to modeling that
not only captures the semantics of data – in the native language of the subject matter expert – but it also captures many rules, offers an embedded process to ensure the model is
correct, and completely maps to any fully normalized logical notation (e.g. ER, UML).
Let me re-phrase the above, because it is extremely important. With ORM, you can:
- Talk to subject matter experts in their language and in terms they can understand – you don’t have to define tuples, entities, foreign keys, attributes, and all that other nonsense;
- Verify that the model is correct by using a robust method (ORM is more than just a notation) filled with quality checks;
- Document more rules – intrinsic in ORM’s rich constraint language – to ensure the resulting system captures all of the rules crucial to the data being modeled;
- And finally map the conceptual schema into a fully normalized database structure.
If you are new to data modeling, this is the first book you should read. This book will detail the concepts you need to know in order to analyze and create correct data schemas – regards less
of which notation or tool you end up using (although both Halpin and myself have an opinion on which to choose). In other words, use this book to learn how to think about the problem. In so doing,
you can easily map the concepts into the more trendy notations and methodologies, if you must.
If you are a modeling veteran, you should also read this book. In so doing, I’ll wager that you will discover you have been making correct models the hard way all these years. You’ll
see, in exquisitely clear detail, the inherent problems in the other techniques (such as ER and UML). Further, if you are open minded enough to temporarily forget what you have learned so far, you
too can learn how to think correctly about data modeling problems – and their solutions.
Now that I (hopefully) have convinced you to give this book a try, I’ll detail the contents.
The first two chapters are introductory material intended to give the reader a sneak peek at what is coming up. In them, Halpin provides a brief overview of three techniques (ORM, ER, and UML) and
discusses the pros and cons of each. With Halpin’s witty, clear, concise writing style, and the clear evidence of problems with the other techniques, I expect the reader to be fully motivated
to read on and delve into the more rigid explanation of the technique.
Don’t let the academic nature of the topics intimidate you; Halpin uses easy-to-follow examples and well-tuned prose to inform academics and industry professionals alike. Just because the
method is academically sound (it’s firmly rooted in predicate calculus and set theory) doesn’t mean that the material has to be boring. In fact, the tone of the text and the sample data
provided in the examples will imply to the reader Halpin’s distinct sense of humor that actually makes database theory fun to read.
The next five chapters form the definitive explanation of the ORM technique. This material is solid. Written, adjusted, instructed, and adjusted again over the past couple of decades, Halpin once
again delivers this material in an optimal way. Those of you familiar with Halpin’s “Conceptual Schema” text will be glad (even, as I was, surprised) to see that this material is
even more solid than his past explanations of the technique.
The latter half of the book has, perhaps, changed the most from the “Conceptual Schema” text. In it, Halpin details Entity Relationship (ER) modeling, relational implementations
(mapping ORM into tables and columns), the Unified Modeling Language (UML), and relational languages (SQL) – all from the ORM perspective you have just learned.
Further, these chapters are fascinating. I expect the reader to both understand how to map ORM concepts into the vendor-controlled world of information systems and to wonder in amazement at how
techniques with so many fundamental problems have become “industry standards”.
Finally, Halpin closes the text with more advanced chapters on schema transformations (equivalent models) and other design methods, issues and trends.
All in all, this book is great. It instructs in the fundamentals and them maps those orthogonal concepts into the current trends. Along the way, the book is filled with real world examples, easy to
follow explanations, and sample problems for the reader to work on (in fact, I expect that this book, like its predecessor, will be used internationally as secondary/post-secondary class texts).
And finally, as someone who regularly attempts to explain technical concepts via writing, I am truly impressed – awed, even – with the style and ease with which Halpin delivers this
Thus, in summary, I have to say that this book is a great explanation of a robust technique; data architects and information systems analysts/designers need to own this book.