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.
