AUTHOR: David C. Hay
Publisher: Dorset House
ISBN: 0-932633-29-3
Would you rather not reinvent the wheel? Do you have better things to do with your time? If so, you may be interested in David Hay’s book Data Model Patterns. It promises to save you time by
demonstrating ways to model things that are common to many businesses: employees, customers, relationships, products, procedures, contracts, etc. In addition, the author has more than 25 years of
real-world experience developing database systems. Let’s take a look at how well his book fulfills its promise.
I’ll be the first to admit that this book isn’t for everyone. In fact, one person to whom I recommended it couldn’t stay awake for more than half a chapter. So perhaps you need to
be a little nutty and as fascinated by data models as I. Because that’s what this book is all about – data models. Of course, plenty of books have been written about data modeling
– the theory, the process – but Data Model Patterns is about models – real-world solutions to the most common challenges that all data modelers face. This book is intended for
analysts who already possess a good foundation in the basics and are ready to move on to the “art” of data modeling.
The author’s main premise is that the underlying structures of organizations are similar, or at least have similar components. The bulk of the book, then, is a presentation of various
structures with accompanying entity-relationship diagrams. Each chapter tackles a different aspect of an organization – from employees, vendors and customers to purchase orders and sales
orders. (One weakness I would point out is that the book becomes tedious at times, as it describes the details and subtleties of the more complex data models.)
The real strength in the author’s approach is not just the practicality of the data models, any one of which would give you a good head start. Rather, the real strength is in the treatment
given to each aspect of business. Hay does an excellent job of extracting the essence of each “thing” in order to deal with it as more of an abstraction. This results in much simpler
and more powerful data models that are less dependent on cosmetic variations. So in the examples I gave above, employees, vendors and customers become “parties,” and one party can
participate in a relationship with another party, such as in an employment relationship or a reporting relationship. Similarly, purchase orders and sales orders can be viewed as examples of more
generic “contracts” or “agreements.”
What you as the reader begin to see, then, are the patterns that emerge by moving to these higher levels of abstraction. Once you begin to see these patterns, you will have a new way of viewing the
world of data. This new perspective allows you to separate that which is common from that which is truly unique, in much the same way that mathematics allows you to add two and five to get seven,
regardless of whether you are adding apples or oranges.
The final chapter takes Hay’s approach to a logical conclusion, by highlighting the underlying elements that are common to just about any data modeling effort. In fact, the book culminates
with a “universal data model” that is capable of representing any kind of information. Don’t expect this model, or any of the others, to be the “silver bullet” that
takes away all the difficulty in data modeling. Instead, let this book expand your mind and change your way of thinking, which is much more valuable in the long run.