The Data Model Resource Book: Volume 3: Universal Patterns for Data Modeling
By Len Silverston and Paul Agnew
()
About this ebook
Related to The Data Model Resource Book
Related ebooks
The Data Model Resource Book, Volume 1: A Library of Universal Data Models for All Enterprises Rating: 0 out of 5 stars0 ratingsModelling Business Information: Entity relationship and class modelling for Business Analysts Rating: 0 out of 5 stars0 ratingsThe Microsoft Data Warehouse Toolkit: With SQL Server 2008 R2 and the Microsoft Business Intelligence Toolset Rating: 0 out of 5 stars0 ratingsData Fluency: Empowering Your Organization with Effective Data Communication Rating: 2 out of 5 stars2/5Data Analysis Using SQL and Excel Rating: 3 out of 5 stars3/5The Data Warehouse Lifecycle Toolkit Rating: 0 out of 5 stars0 ratingsCreating Data Stories with Tableau Public Rating: 0 out of 5 stars0 ratingsPower Query for Power BI and Excel Rating: 0 out of 5 stars0 ratingsData Governance For Dummies Rating: 2 out of 5 stars2/5Database Management for Business Leaders: Building and Using Data Solutions That Work for You Rating: 0 out of 5 stars0 ratingsIntroduction to DBMS: Designing and Implementing Databases from Scratch for Absolute Beginners Rating: 0 out of 5 stars0 ratingsData Science Fundamentals and Practical Approaches: Understand Why Data Science Is the Next Rating: 0 out of 5 stars0 ratingsSmarter Data Science: Succeeding with Enterprise-Grade Data and AI Projects Rating: 0 out of 5 stars0 ratingsBuilding the Data Warehouse Rating: 5 out of 5 stars5/5Data Lake for Enterprises Rating: 0 out of 5 stars0 ratingsData warehouse Complete Self-Assessment Guide Rating: 4 out of 5 stars4/5Data Lake Development with Big Data Rating: 0 out of 5 stars0 ratingsData Lake Architecture Complete Self-Assessment Guide Rating: 0 out of 5 stars0 ratingsMastering Data Warehouse Design: Relational and Dimensional Techniques Rating: 4 out of 5 stars4/5Architecting Big Data & Analytics Solutions - Integrated with IoT & Cloud Rating: 5 out of 5 stars5/5The Data Governance Imperative Rating: 0 out of 5 stars0 ratingsMDM for Customer Data: Optimizing Customer Centric Management of Your Business Rating: 0 out of 5 stars0 ratingsThe Kimball Group Reader: Relentlessly Practical Tools for Data Warehousing and Business Intelligence Remastered Collection Rating: 0 out of 5 stars0 ratingsLearn Data Warehousing in 24 Hours Rating: 0 out of 5 stars0 ratingsThe Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling Rating: 0 out of 5 stars0 ratingsHadoop Real-World Solutions Cookbook - Second Edition Rating: 0 out of 5 stars0 ratings
Databases For You
Access 2019 For Dummies Rating: 0 out of 5 stars0 ratingsBlockchain Basics: A Non-Technical Introduction in 25 Steps Rating: 5 out of 5 stars5/5Practical Data Analysis Rating: 4 out of 5 stars4/5Grokking Algorithms: An illustrated guide for programmers and other curious people Rating: 4 out of 5 stars4/5SQL QuickStart Guide: The Simplified Beginner's Guide to Managing, Analyzing, and Manipulating Data With SQL Rating: 4 out of 5 stars4/5100+ SQL Queries T-SQL for Microsoft SQL Server Rating: 4 out of 5 stars4/5Beginning Microsoft Power BI: A Practical Guide to Self-Service Data Analytics Rating: 0 out of 5 stars0 ratingsGetting Started with SQL Server 2014 Administration Rating: 0 out of 5 stars0 ratingsSQL Server: Tips and Tricks - 2 Rating: 4 out of 5 stars4/5Behind Every Good Decision: How Anyone Can Use Business Analytics to Turn Data into Profitable Insight Rating: 5 out of 5 stars5/5CompTIA DataSys+ Study Guide: Exam DS0-001 Rating: 0 out of 5 stars0 ratingsAccess 2010 All-in-One For Dummies Rating: 4 out of 5 stars4/5COMPUTER SCIENCE FOR ROOKIES Rating: 0 out of 5 stars0 ratingsLearn SQL Server Administration in a Month of Lunches Rating: 3 out of 5 stars3/5Learn SQL in 24 Hours Rating: 5 out of 5 stars5/5Managing Data Using Excel Rating: 5 out of 5 stars5/5MDM for Customer Data: Optimizing Customer Centric Management of Your Business Rating: 0 out of 5 stars0 ratingsSQL in 30 Pages Rating: 4 out of 5 stars4/5Tableau Cookbook – Recipes for Data Visualization Rating: 0 out of 5 stars0 ratingsLearn Git in a Month of Lunches Rating: 0 out of 5 stars0 ratingsOracle DBA Mentor: Succeeding as an Oracle Database Administrator Rating: 0 out of 5 stars0 ratingsGo in Action Rating: 5 out of 5 stars5/5Splunk Certified Study Guide: Prepare for the User, Power User, and Enterprise Admin Certifications Rating: 0 out of 5 stars0 ratingsExcel 2021 Rating: 4 out of 5 stars4/5Serverless Architectures on AWS, Second Edition Rating: 5 out of 5 stars5/5The AI Bible, Making Money with Artificial Intelligence: Real Case Studies and How-To's for Implementation Rating: 4 out of 5 stars4/5Learning SQL: Master SQL Fundamentals Rating: 0 out of 5 stars0 ratings
Reviews for The Data Model Resource Book
0 ratings0 reviews
Book preview
The Data Model Resource Book - Len Silverston
The Data Model Resource Book, Volume 3: Universal Patterns for Data Modeling
Published by
Wiley Publishing, Inc.
10475 Crosspoint Boulevard
Indianapolis, IN 46256
www.wiley.com
Copyright © 2009 by Len Silverston and Paul Agnew.
Published by Wiley Publishing, Inc., Indianapolis, Indiana
Published simultaneously in Canada
ISBN: 978-0-470-17845-4
No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the Legal Department, Wiley Publishing, Inc., 10475 Crosspoint Blvd., Indianapolis, IN 46256, (317) 572-3447, fax (317) 572-4355, or online at http://www.wiley.com/go/permissions.
Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or warranties with respect to the accuracy or completeness of the contents of this work and specifically disclaim all warranties, including without limitation warranties of fitness for a particular purpose. No warranty may be created or extended by sales or promotional materials. The advice and strategies contained herein may not be suitable for every situation. This work is sold with the understanding that the publisher is not engaged in rendering legal, accounting, or other professional services. If professional assistance is required, the services of a competent professional person should be sought. Neither the publisher nor the author shall be liable for damages arising herefrom. The fact that an organization or Website is referred to in this work as a citation and/or a potential source of further information does not mean that the author or the publisher endorses the information the organization or Web site may provide or recommendations it may make. Further, readers should be aware that Internet Web sites listed in this work may have changed or disappeared between when this work was written and when it is read.
Library of Congress Cataloging-in-Publication Data is available from the publisher.
For general information on our other products and services please contact our Customer Care Department within the United States at (800) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002.
Trademarks: Wiley and the Wiley logo are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries, and may not be used without written permission. Universal Data Models is a registered trademark of Universal Data Models, LLC. All other trademarks are the property of their respective owners. Wiley Publishing, Inc. is not associated with any product or vendor mentioned in this book.
Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic books.
To my amazing and loving wife, Annette, and my wonderful daughters, Danielle and Michaela
—Len Silverston
To my mother, Breda, and in loving memory of my father, Tom
—Paul Agnew
Advance Praise for The Data Model Resource Book, Volume 3
Len and Paul look beneath the superficial issues of data modeling and have produced a work that is a must for every serious designer and manager of an IT project.
Bill Inmon
World-renowned expert, speaker, and author on data warehousing and widely recognized as the father of data warehousing
The Data Model Resource Book, Volume 3: Universal Patterns for Data Modeling is a great source for reusable patterns you can use to save a tremendous amount of time, effort, and cost on any data modeling effort. Len Silverston and Paul Agnew have provided an indispensable reference of very high-quality patterns for the most foundational types of data model structures. This book represents a revolutionary leap in moving the data modeling profession forward.
Ron Powell
Cofounder and Editorial Director of the Business Intelligence Network
After we model a Customer, Product, or Order, there is still more about each of these that remains to be captured, such as roles they play, classifications in which they belong, or states in which they change. The Data Model Resource Book, Volume 3: Universal Patterns for Data Modeling clearly illustrates these common structures. Len Silverston and Paul Agnew have created a valuable addition to our field, allowing us to improve the consistency and quality of our models by leveraging the many common structures within this text.
Steve Hoberman
Best-Selling Author of Data Modeling Made Simple
The large national health insurance company I work at has actively used these data patterns and the (Universal Data Models) UDM, ahead of this book, through Len Silverston's UDM Jump Start engagement. The patterns have found their way into the core of our Enterprise Information Model, our data warehouse designs, and progressively into key business function databases. We are getting to reuse the patterns across projects and are reaping benefits in understanding, flexibility, and time-to-market. Thanks so much.
David Chasteen
Enterprise Information Architect
Reusing proven data modeling design patterns means exactly that. Data models become stable, but remain very flexible to accommodate changes.
We have had the fortune of having Len and Paul share the patterns that are described in this book via our engagements with Universal Data Models, LLC. These data modeling design patterns have helped us to focus on the essential business issues because we have leveraged these reusable building blocks for many of the standard design problems. These design patterns have also helped us to evaluate the quality of data models for their intended purpose. Many times there are a lot of enhancements required. Too often the very specialized business-oriented data model is also implemented physically. This may have significant drawbacks to flexibility. I'm looking forward to increasing the data modeling design pattern competence within Nokia with the help of this book.
Teemu Mattelmaki
Chief Information Architect, Nokia
Once again, Len Silverston, this time together with Paul Agnew, has made a valuable contribution to the body of knowledge about data models, and the act of building sound data models. As a professional data modeler, and teacher of data modeling for almost three decades, I have always been aware that I had developed some familiar mental patterns
which I acquired very early in my data modeling experience. When teaching data modeling, we use relatively simple workshops, but they are carefully designed so the students will see and acquire a lot of these basic patterns
—templates that they will recog- nize and can use to interpret different subject matter into data model form quickly and easily. I've always used these patterns in the course of facilitating data modeling sessions; I was able to recognize "Ah, this is just like…, and quickly apply a pattern that I'd seen before. But, in all this time, I've never sat down and clearly categorized and documented what each of these
patterns" actually was in such a way that they could be easily and clearly communicated to others; Len and Paul have done exactly that. As in the other Data Model Resource Books, the thinking and writing is extraordinarily clear and understandable. I personally would have been very proud to have authored this book, and I sincerely applaud Len and Paul for another great contribution to the art and science of data modeling. It will be of great value to any data modeler.
William G. Smith
President, William G. Smith & Associates, www.williamgsmith.com
Len Silverston and Paul Agnew's book, Universal Patterns for Data Modeling, is essential reading for anyone undertaking commercial data modeling. With this latest volume that compiles and insightfully describes fundamental, universal data patterns, The Data Model Resource Book series represents the most important contribution to the data modeling discipline in the last decade.
Dr. Graeme Simsion
Author of Data Modeling Essentials
and Data Modeling Theory and Practice
Volume 3 of this trilogy is a most welcome addition to Len Silverston's two previous books in this area. Guidance has existed for some time for those who desire to use pattern-based analysis to jump-start their data modeling efforts. Guidance exists for those who want to use generalized and industry-specific data constructs to leverage their efforts. What has been missing is guidance to those of us needing guidance to complete the roughly one-third of data models that are not generalized or industry-specific. This is where the magic of individual organizational strategies must manifest itself, and Len and Paul have done so clearly and articulately in a manner that complements the first two volumes of The Data Model Resource Book. By adding this book to Volumes 1 and 2 you will be gaining access to some of the most integrated data modeling guidance available on the planet.
Dr. Peter Aiken
Author of XML in Data Management
and data management industry leader VCU/Data Blueprint
Credits
Executive Editor
Robert Elliott
Senior Development Editor
Kevin Kent
Technical Editor
Ed Landale
Development Editor
William Bridges
Production Editor
Eric Charbonneau
Copy Editor
Kim Cofer
Editorial Manager
Mary Beth Wakefield
Production Manager
Tim Tate
Vice President and Executive Group Publisher
Richard Swadley
Vice President and Executive Publisher
Joseph B. Wikert
Project Coordinator, Cover
Lynsey Stanford
Proofreader
Publication Services, Inc.
Indexer
Johnna VanHoose Dinse
Cover Image
© Image Source/Jupiter Images
Foreword
When we were younger, my brother and I loved to take apart gadgets to see what made them tick. My grandmother would buy used clocks, radios, and other electronic devices so that we could take a hammer to them, bashing them to bits to see what was inside and how they worked. One of the things we noticed was that even though they were different on the outside, most seemed to have the same parts as other clocks. In fact, once we'd removed the outer covers and taken everything apart, we could no longer tell which part came from which clock, but we could sort all the pieces into similar parts. Cogs, wheels, and springs were sorted into piles of similar shape. If we'd had enough time and will, we probably could have built a new clock out of these components.
I remember asking why these parts looked so similar and why some of them even had the same numbers on them. In fact, some clocks had the same parts that radios did. My grandfather explained to me that it was cheaper and easier for companies to build their products if they could use similar parts. It also made it easier for the builders and fixers to work with the same parts. He showed me how he replaced a component of a radio with a new part to fix it. He was able to do this because the parts followed similar patterns. I thought this was brilliant.
I am delighted to write this foreword for what I believe is the most important volume of the Universal Data Model book series. The Data Model Resource Book, Volume 3: Universal Patterns for Data Modeling presents highly reusable patterns that could apply to thousands of industries, thousands of projects, and an infinite number of use cases. While the first two volumes focused on template solutions for common data structures, this one is focused on much more general, fundamental, underlying patterns in data. These aren't industry or functional patterns; they are the cogs and wheels that could fit into any solution. You can create your own parts to make a clock
for your current project and use those same parts to create other solutions in other projects.
In developing and documenting these patterns, Len Silverston and Paul Agnew have provided to you a set of tools for your entire career. No matter where you work or what business you support, these patterns apply.
All mature professions have identified components of their practices that are highly reusable. Engineers have building standards and patterns and medical professionals have standards of practice. As an emerging profession, Information Technology is still forming and testing patterns for use across many situations. Universal Patterns for Data Modeling enables data professionals to raise our practice to the professional level. We can then focus our efforts on those decisions that require tailored solutions.
Consistent use of universal patterns for data modeling frees up team members to focus their efforts on implementing solutions to those business problems that provide competitive advantage, deliver faster services, and reduce costs. Most importantly, it enables users of the models to work faster. Developers who have seen a similar status structure many times can quickly tailor their own patterns to make use of it. Test plans and test data can be quickly tailored to support new types of statuses. These economies will be seen by all team members, across many projects.
The authors have provided several levels of generalization for each pattern and it is up to you, as a seasoned professional, to choose the one that makes sense for the costs, benefits, and risks of your designs. I'd like for you to approach these patterns with a mind toward how they might best fit your current project's context. Every design decision comes down to cost, benefit, and risk, and these are laid out for you for each level. You get to choose which level applies and what the benefits will be. There is no right answer or right pattern for every project, business, and organization, but you will know why your chosen solution is right for your specific design.
As I think back to my childhood and the cogs and wheels of the many clocks we dismantled, the lessons we learned about patterns was one of the most important ones I carried into my professional life. Len and Paul have done the tinkering and sorting of these patterns for you. Your next step is to apply them on your projects so that you can deliver greater business value by saving time, reducing costs, and increasing the quality of your models.
Karen Lopez
Industry thought leader
InfoAdvisors
Acknowledgements
We feel that universal patterns for data models are a significant contribution to the field of data modeling. However, this book would not have been possible without the insights and interaction of our clients and other advocates that have helped to challenge our thinking and advance these patterns. We feel strongly that the relationships that we have with our clients are a mutually beneficial learning experience. As we impart our knowledge of Universal Patterns for Data Modeling and Universal Data Models™, we learn from our clients about the needs and wants of their enterprises. This has been an invaluable input in the evolution of the universal patterns for data models and what you will find in this book. We are extraordinarily grateful to all of our clients, partners, seminar participants, and all those who have provided input and insights, thus helping to advance these patterns. We feel so appreciative that many of these people have become friends and partners with whom we have shared rich experiences.
From among the many people who have contributed to helping us promote, use, and evolve universal models and patterns, we want to thank Aidan Doyle, Ajia Palomaki, Alireza Hasanpour, Andre Boeder, Andy Pozsol, Bongsoo Chong, Cesar Estrada, Chris Nickerson, Craig Rapley, Dan Adler, David Chasteen, Ed Smith, Greg Sorum, Herman Koester, Jagannadha Ghanta and Jan-Erik Osterberg, John Poonnen, John Yelle, Karen Vitone, Ken Bates, Kevin Morris, Kristiina Lammila, Leyla Akgez-Laakso, Lynn Crabb, Marlene Mandt, Mary Mink, Michael Jansen, Milja Karppelin, Radha Krishnan, Ray Serrano, Regina Pieper, Randy Carlson, Robert Hooks, Ron Powell, Rupali Anjaria, Satoshi Matsumoto, Tarja Martti, Ted Kowalski, Teemu Mattelmaki, Tero Leskinen, Trevor Prusco, Truett Phillips, Vinnie Chintappaly, Vinod Badami, Wes Bennet, and Yang-Young Zhang. This is only a partial list of the many who have contributed to the promotion and advancement of universal models and patterns, and if we have forgotten to mention anyone specifically, we offer our sincerest apologies. We want you to know that your efforts are appreciated. We want to thank the business partners of Universal Data Models, LLC, who have helped to promote the ongoing usage of Universal Data Models and in particular Greg Keller, Josh Howard, Jason Tiret, and Kimber Spradin from our partner Embarcadero Technologies, as well as Ken Hoang and many others from our partner Siperian.
We want to thank all our colleagues in data modeling who have helped to advance this field, and we specifically want to recognize Dr. Graeme Simsion, William G. Smith, and Steve Hoberman, who have helped us on this book and have been great supporters of this work.
We are very thankful to the people who have added to the content to this book. This book would not have been possible without the great contributions for our technical editor Ed Landale. He took time from his busy schedule to scrupulously review every model and every word of this book. His insights and suggestions into each pattern provided valuable feedback and improved the quality of this book significantly. We also thank him for his patience and good humor throughout this whole process. We appreciate the assistance and advice that we received from Karen Lopez. In particular we appreciate her invaluable input on ‘generalization’ as well as specific recommendations she provided to enhance and change some of the data modeling patterns. Karen also helped us to focus on the ‘practical’ nature of the patterns.
There were mentors who helped to make this work possible. Len is extremely grateful to Bill Inmon, who helped him break into the field of writing and who has been an amazing inspiration as both an industry leader and as a humane person who has helped his career tremendously. He also wants to express huge appreciation to Paul for his amazingly great attitude and contribution throughout this project and throughout the relationship. Paul is grateful to Len as a guide and a mentor and for being a great partner.
We feel honored to have been able to work on this book with Bob Elliot and Kevin Kent at John Wiley & Sons, Inc. We appreciate the vision, management, editing, and support for this book as well as their ongoing encouragement. We want to thank Eric Charbonneau for his help in producing this book also.
From Len Silverston: I am thankful to my wife, Annette Quintana, for being the best life partner I can imagine, for supporting me, and for putting up with the long hours over numerous years to create this book as well as my other books. I want to thank my beautiful daughters, Danielle and Michaela, who are the most amazing gems in my life and who have also supported me on this effort. I am so appreciative to my mom, Dede, and my family and friends including (but not limited to) Steve, Betty, Phil, Janet, Joe, Vicki, LR, Melinda, Les, Leila, and Floyd. Special thanks to my dad, who passed away a few years ago and who inspires me to be caring, decent, and loyal.
From Paul Agnew: I am thankful to my mother and father for all of their guidance throughout my life. Without their support and love I would never have been in a position to complete this book. I wish to thank my brothers (Robert, Tommy, Gerard, Ciaran, Fergus, Declan, and Terry) and my sister (Brenda) for their support over the years. I also want thank my sisters-in-law, brother-in-law, nieces, and nephews. A close family makes things easier. Many of my friends also supported me throughout the writing of this book. Thanks for letting me use your names as examples. Finally, I am very fortunate to have the support and love of my partner, Neena; there is no way that this book would have been finished without your support. This book is as much yours as mine.
About the Authors
Len Silverston is the best-selling author of The Data Model Resource Book series (Volumes 1 and 2) and a speaker and consultant with more than 25 years of experience helping organizations integrate their information and systems. He is regarded as one of the most sought-after experts in data modeling and data integration and is a pioneer in the industry by virtue of publishing and distributing best practice reusable data models that have helped people and organizations develop high-quality data models in very short amounts of time.
Mr. Silverston has published many articles and spoken extensively worldwide as an instructor and as a keynote and an invited speaker on topics such as reusable data models, universal patterns, data integration, and power and politics in data management. He has published hundreds of holistic, reusable data models in his books and articles. His book, The Data Model Resource Book, Volume 1, was rated #12 on the Computer Literacy Best Seller List and The Data Model Resource Book, Volume 2, which provides universal data models for various industries, has been translated into Chinese. His books and products have been adopted and used globally as a standard by a great number of large and small businesses and government enterprises and by universities as a course text.
Due to his significant, demonstrable contributions to advancing the data management field, he is the winner of the (The Data Management Association) DAMA International Professional Achievement Award for 2004 and the DAMA Community Award for 2006. Mr. Silverston's company, Universal Data Models, LLC, provides consulting, training, publications, and software regarding reusable data models and data management strategies to help integrate information, systems, and people. Mr. Silverston received his B.S. from SUNY Binghamton and M.S. from Renssellaer Polytechnic Institute.
He can be reached at [email protected].
Paul Agnew is an author and consultant with more than 17 years of experience in the data management field. He has worked in many industries as an expert in data architecture and data integration, including investment banking firms on Wall Street, telecommunications, insurance, and engineering. In the last 8 years Len Silverston and he have worked together helping many of the top Fortune 500 companies around the world build and integrate information systems using Universal Patterns for Data Modeling, and Universal Data Models.
Mr. Agnew has many years of practical experience working in the data integration and data management fields. He has worked as a database administrator and database developer. He was also a speaker at DAMA International (The Data Management Association) and DAMA Finland.
He is a partner in Universal Data Models, LLC (www.universaldatamodels.com), located in Denver, Colorado, and New York City, providing consulting and training to help enterprises customize and implement Universal Data Models and Universal Patterns for Data Modeling. The company offers many tools to deliver high-quality information systems in a short span of time.
Mr. Agnew was born in Ireland, but has lived in New York City with his partner, Neena, for the past 14 years. He graduated from Dublin Institute of Technology, Kevin Street.
He can be reached at [email protected] or [email protected].
Chapter 1
Introduction
Why Is There a Need for This Book?
Based upon our consulting experiences, many companies still develop their data models with very little outside reference materials. There is a large cost associated with either hiring experienced consultants or using internal staff to develop this critical component of the system design. Often there is a need for more objective reference material that an organization can use to test its data models and database designs or from which it can seek alternate options for data models or database structures. This book substantially extends the tools offered in the current Data Model Resource Book, Volumes 1 and 2 (Wiley, 2001), providing a comprehensive guide for companies to develop data models with higher quality in a shorter amount of time.
Volume 1 of The Data Model Resource Book answered the question Where can we find a book showing a standard way to model common data model structures?
It provides an extensive library of template data models for common data areas such as people and organizations, products, orders, shipments, invoicing, accounting and budgeting, human resources, and so on. It also provides template models for data warehouse models for sales analysis, human resources, and inventory management analysis among many others.
Volume 2 of The Data Model Resource Book continued in the same vein as Volume 1 by extending these template data models and by adding additional data model constructs applicable specifically for certain industries such as manufacturing, telecommunications, health care, insurance, financial services, professional services, travel, and retail e-commerce industries.
Although people and organizations have improved the quality of their data models and saved a great deal of time and effort using the first two books in this series, a question has continued to come up as we have implemented these models. "How can we quickly extend and customize these models for our organization and our needs to quickly develop any data model with higher quality, even if it is specific to our enterprise? Also, many organizations want to adhere to a standard way of creating common data structures. They often say,
We can't be the first people to ask how to extend our data models and/or use the same ideas to construct new types of models. Surely this has been done before." Volume 3 of the model resource book addresses these questions and concerns. This book looks under the cover of the previous books and examines the common underlying structures that are applicable to all data models.
We have a useful rule of thumb that seems to apply to most data models: One-third of a data model usually consists of common constructs that are applicable to most organizations, one-third of the data model is usually industry-specific, and one-third of the model is specific to an organization. Volume 1 and Volume 2 of The Data Model Resource Book address, for the most part, the first and second thirds
of that rule. What we have also found in our experience with decades of data modeling is that there are very common patterns that apply to well over 50 percent of most data model constructs and that can be reused. For example, a status for an order works in the same way as a status for a person or organization. The classification of product or person follows the same pattern, regardless of the fact that one classification deals with products and the other is about people.
One benefit of this book is that it explains and enhances the underlying patterns that are used in Volumes 1 and 2 of The Data Model Resource Book. Yet it goes beyond this because the data model patterns illustrated in this book apply to the common constructs that are applicable to all enterprises, industry-specific data model constructs, and any model constructs specific to an enterprise. This book provides templates that can be used to quickly and consistently model many types of data requirements by reusing these universal data model patterns. This can then have a huge positive impact to help integrate data, share data, and use data as a valuable strategic asset.
The difference between Universal Data Models and Universal Patterns for Data Modeling is that the Universal Data Models apply to very common models, whereas the Universal Patterns can be used to extend and develop just about any type of data model. One way to think of this is in terms of furniture; first think of the design for a dovetail joint, an interlocking technique used to make all sorts of furniture (this is akin to a Universal Pattern), then think of the design for a full set of table and chairs (this is akin to a Universal Data Model), and you have an idea of how the concepts relate. Many of the Universal Data Models are based on Universal Patterns. The first two books provided concrete examples of very common data models that can be reused such as models for shipments, orders, invoices, and so on. In contrast, the Universal Patterns for Data Modeling provide the underlying structural building blocks so that the modelers can reuse these to build any model, even ones that are very unique!
The patterns can be used to quickly develop and/or modify both common models and industry models or to develop brand new models. Each pattern has a real-life example of how to implement it. Any organization can use the Universal Patterns found in this book as a guideline and a set of standards to which their data models can adhere to improve consistency, to save a great deal of time on development and maintenance, and to increase the quality of their models. A data professional in any enterprise can use the template models from Volume 1 or Volume 2 as a data modeling jump-start and then use the patterns in Volume 3 to build upon these common models in a consistent fashion, with the confidence of knowing that the patterns are true and tested common constructs that work in real life. Many of our clients have used these patterns in many different ways, for example:
To provide a standard that IT professionals can adhere to when modeling data. This has helped them keep a consistent style for data models and subsequent data structures across different databases in their organization.
As a standard toolkit that data professionals can turn to when building/extending their data models. The patterns cover many of the standard problems that data modelers need to address. Why solve the problem again when the patterns already give you different flavors (levels of generalization) of the solutions, thus providing effective alternatives with their pros and cons?
As a standard that can be used as the basis for common database structures that allows developers or programmers to create standard interfaces to and from these common structures that are based on the patterns. This means that programmers can program to the interface
and have less concern about dealing with many different underlying data semantics and data structures.
As a useful tool for clients when they buy software or other standard data models. The patterns can set the data requirements that a vendor data model or database must rise to regarding very common data needs. For example, the patterns can specify that a solution needs to support very flexible classification schemes that allow new types of classifications without changing the data model or data structure; does the product you are looking at accommodate this type of flexibility regarding maintaining classifications? Does it use flexible patterns? If it does not, how does it provide the appropriate level of flexibility that you need?
As an objective source against which an enterprise can evaluate and check its data models from its previous systems development efforts so it can evaluate alternative options.
As training materials for their data professionals and IT staff in general. The patterns cover a broad range of different structures at different levels of generalization. The patterns are explained in detail with examples that can guide data modelers and other IT professionals in their use.
Many of our clients have used these patterns successfully to save time and increase the quality for a great variety of data modeling efforts, ranging from creating a data model for a prototype, through developing an enterprise-wide data model used to standardize their models worldwide.
Extending the Discipline of Data Modeling
Data modeling has been a discipline that first gained recognition in Dr. Peter Chen's 1976 article that illustrated his approach for describing data structures called Entity-Relationship Modeling.(1) Since then it has become the standard approach used toward modeling and designing databases. By properly modeling an organization's data, the database designer can eliminate data redundancies, which are a key source of inaccurate information and ineffective systems.
There are many books and articles about design patterns, but very little has been written about the underlying patterns for entity relationship modeling (as we are describing in this book). It can be said that the fathers/mothers of patterns were Christopher Alexander, Sarah Ishikawa, and Murray Silverstein, when they wrote A Pattern Language: Towns, Buildings, Construction.(2) This is a book about architecture with many patterns that are collected and used as a basis to create solutions for construction problems and town planning. Many programmers liked the concepts in this book and how they simplified the process of creating reusable code. Another seminal piece of work called Design Patterns: Elements of Reusable Object-Oriented Software written by the Gang of Four
(Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides)(3) addressed the common solutions for solving programming problems by using common interfaces.
The first two volumes of The Data Model Resource Book(4) and David Hay's excellent book Data Model Patterns(5) contain reusable data models for very common data modeling requirements such as how to model data about parties, products, orders/contracts, and so on. Many people think of these books as providing patterns
in the context of data modeling; however, those books discuss something very different than what is contained in this particular book. In this book, we have a very different meaning when we use the term pattern. We make a distinction between a reusable model for a specific application (reusable models that are covered in these other books) and the underlying, core templates that are independent of any particular application and that we refer to as Universal Patterns for Data Modeling, which are the focus of this book. Although many standards exist for data modeling, we need to take data modeling to the next level: providing accessibility to libraries of universal data patterns with examples in a convenient format so that they can be reused. That is the intention of this book.
What Is a Pattern and What Is a Universal Pattern?
In general, a pattern is something intended as a guide for making something else.
(6) A pattern in data modeling can be described as a template that can serve as a guide for developing data models. For example, the status patterns in Chapter 6 provide guides or templates for modeling the statuses for any type of entity. Thus, the status patterns may apply to the status of a PARTY, PRODUCT, ORDER, INVOICE, or any other entity that has various states. A PARTY may have states or statuses of Active,
Inactive,
and so on, and a PRODUCT may have statuses of Introduced,
Support discontinued,
and so on. Both of these entities could use the same pattern
to model their states.
The word universal is defined in Webster's dictionary as applying to a great variety of uses: comprehending, affecting or extending to the whole.
Thus Universal Patterns for Data Modeling are reusable guides that provide a data modeling template for very prevalent or universal
themes that occur in data modeling. The intent of these patterns is that they can apply to a great variety of uses
and that they can be used by a great number of organizations to save time and effort while offering holistic (that is, universal) perspectives.
What we have found based upon decades of data modeling experience is that the same types of patterns continually occur in data modeling efforts. In this book, we have chosen what we think are the most common, universal
patterns in data modeling. We have found that a great majority of the data modeling in most organizations have to do with roles (that parties play), hierarchies and recursions, classifications, statuses, contact mechanisms, and business rules. Thus, we have provided patterns for each of these types of data. Though there are other types of patterns for data modeling, we have chosen these because we believe that these patterns are the most common and, therefore, will provide the greatest benefit.
In each chapter that describes a pattern, we provide different alternatives for the pattern and examples of applying the pattern to a specific data requirement. Each alternative provides a pattern for modeling the same type of data at different levels of generalization. For example, in the status chapter, we provide a very specific pattern that models statuses as attributes, then another less specific model that has a STATUS TYPE entity, then a more generalized model that allows any number of status types for an entity, and then an even more generalized model that provides a STATUS APPLICATION entity allowing all entities needing statuses to have a relationship to this common data model structure.
What Is the Significance of Patterns?
The Universal Patterns for Data Modeling are analogous to the blueprints engineers use for building bridges. An engineer has a basic blueprint for building any type of suspension bridge. Every time an engineer has to build a particular suspension bridge, that engineer doesn't try to come up with a new solution; he or she uses the existing design pattern. The facing on the bridge may be different, but many of the underlying structures are the same. For example, Akashi-Kaikyo Bridge in Tokyo and the Brooklyn Bridge in New York are both suspension bridges, and the same basic design patterns were used for both.
The Universal Patterns for Data Modeling represent effective practices and alternatives for modeling very common types of data models. The underlying data model showing how a PARTY is related to an INVOICE is very similar to how PARTY(s) are related to SHIPMENT(s), which is also very similar to how PARTY(s) are related to PAYMENT(s), AGREEMENT(s), or other entities. For example, parties (people or organizations) may have certain roles within the context of a particular transaction or with regards to another entity, and there are very common ways to model this type of data requirement. We call this particular example the Contextual Role Pattern. Another example is that the status of a PROJECT or a financial TRADE is the same basic pattern, just applied to a different category of data. We call this the Status Pattern. Why try creating a new data structure every time you come across a status or a contextual role
when the blueprint already exists?
As we have said, the first two volumes of the book focus on providing template data model constructs for common and industry purposes that a great number of data modelers and enterprises have used to jump-start their efforts. However, when we are on our consulting engagements, many clients have asked how to extend these models, apply them to additional industries, and/or create their own examples of reusable models. When we examined this question for a solution, we thought the natural extension of Universal Data Models was to provide Universal Patterns that furnish the underlying building blocks that can be reused to provide a jump-start and alternatives in any data modeling situation and to provide quality and consistency in any data modeling effort.
Approach of This Book
Most data modeling books focus on techniques behind how to data model. This book assumes that the reader has a basic knowledge of data modeling. Data modeling has been around long enough that most information systems professionals are familiar with this concept and will be able to understand this book. By reading this book, data professionals of all kinds will be able to build upon, customize, and refine the existing data model patterns contained within the book in order to develop data models for their organizations and save time while increasing quality to develop new data models. Essentially, it is providing the professional with fundamental tools and building blocks that can be reused. The data professional, or anyone involved in data modeling, can thereby be more productive because we are providing preliminary foundations.
As we mentioned, each chapter contains different variations, or levels, of the same pattern, starting with the most specific version of the pattern and moving toward the most generalized versions of the pattern. Each version, or level, of the pattern may be applicable across a wide variety of information requirement needs for many different organizations. These patterns are the templates that can be reused across a variety of different subject areas. For example, the classification patterns can be used to support classifications for many different entities, such as PARTY, TRADE, INVOICE, WORK EFFORT, SHIPMENT, and so on. Then we take each version or level of the pattern and show how it can be used in a particular scenario. These scenarios are normally based on our real-life experiences. For example, in one chapter, we describe the different ways to classify products at different levels of generalization for a fictitious computer hardware and software retailer called Euro-Electronics. Although all the people, organizations, sample data, and scenarios throughout this book are fictitious, we often base our examples on data models that we have actually developed in the past.
In each section we have tried to maintain the basic layout of each of the diagrams so that certain entities are in the same place in the diagram. This helps to show the evolution of the different patterns as they go through each level of generalization. This was not always possible, in particular in Chapter 9, where we bring many different patterns together into different models for different information requirements.
The Different Pattern Levels
Different levels of generalization are described in each chapter. Each of the patterns evolves from a specific pattern to a more and more generalized pattern. Within each chapter, each pattern models the same types of data, only with a different data model structure and style. For example, each of the contact mechanism patterns in Chapter 7 handles the data associated with various types of contact information, or as we call them, contact mechanisms (e.g., telephone numbers, postal addresses, email addresses, and so on). Initially, contact mechanisms are handled in a specific manner by modeling them as attributes of a particular role such as the having a country telephone code, area code, and telephone number attributes in a CUSTOMER entity. We call this very specific pattern the Level 1 Contact Mechanism Pattern. Subsequently, each of the patterns becomes more and more flexible in its approach by using more and more generalized data model constructs to model this same type of contact information. Thus, we then show the Level 2 Contact Mechanism Pattern, which is a more generalized pattern, then the Level 3 Contact Mechanism Pattern, which is even more generalized, and finally the Level 4 Contact Mechanism Pattern, which is the most generalized version. The level and style of pattern that you may choose to use depends on the needs of the enterprise being modeled and the circumstances involved in the modeling task.
How can you answer the question whether to use a specific pattern or a generalized pattern? You can first ask the question, What is the purpose of a data model?
We believe that there are two key purposes to a data model:
1. To illustrate and communicate information requirements.
2. To provide a sound foundation for a database design.
These purposes can be at odds with each other. If the purpose is to illustrate and communicate information requirements, the modeler will most probably develop a more specific model showing the specific needs of the business representative. For instance, in order to define what the information requirements are for contact information, the modeler may show attributes of country telephone code, area code, telephone number, email address, and so on, within specific entities such as CUSTOMER, SUPPLIER, or EMPLOYEE. Accordingly, this would be considered a specific style of modeling and would be a Level 1 Contact Mechanism Pattern.
Note
We want to emphasize that caution should be exercised with the use of level 1 patterns because these patterns are not generally an effective foundation for a solid database design. As we stated, data models generally have two purposes: They can be a tool for understanding data requirements, and they also serve as a starting foundation for a database design. The level 1 patterns serve the former purpose very well; however, they are usually very ineffective regarding the latter purpose.
In contrast, if the purpose is to model a sound foundation for a database design, the modeler may need to incorporate more flexibility and use a pattern such as a Level 3 Contact Mechanism Pattern or a Level 4 Contact Mechanism Pattern, where any party (person or organization) can have any number of contact mechanisms that have various types, purposes, usages, and priorities and can be classified any number of ways. Thus the model is very stable and is very unlikely to need changes if there are future requirements for additional types or classifications of contact mechanisms. These types of models tend to be more difficult to understand and do not contain as many specific rules that are enforced in the model. For example, in the generalized form of the contact mechanism, any party may have any number of contact mechanisms, but there may be a rule that a particular person should have only one active pager number. The generalized data model pattern does not enforce this rule, the specific data model pattern does enforce it (because you could have a single attribute for pager number).
Thus, we recommend that, especially for generalized data model patterns, you document the relevant business rules. There are numerous robust solutions for documenting these rules in a business rules engine or metadata repository, however, we have found that many enterprises do not have these types of solutions available to them or they may be in the process of creating these solutions. Therefore, you could consider a simpler method of documenting these rules by recording them in a document that is as an adjunct to the data model. Also, some of the patterns in this book, especially those in chapter 8, provide data structures to capture various business rules. In addition to documenting business rules, we believe that it is very important to illustrate all data models, but especially more generalized data models with data examples/instances of the model.
Figure 1.1 illustrates that as you move from a level 1 to a level 3 or level 4 pattern, you are moving from a more specific style of modeling to a more generalized style of modeling. It also shows that level 1 patterns are used when the data is more static,
and the higher levels of patterns accommodate the need for more flexibility. Thus, if the nature of the data is static and does not change (for example, you need only a single phone number), a more specific modeling style may be appropriate. However, when the nature of the data changes over time (for example, there may be any number of different types of telecommunications numbers that may be needed in the future), a more generalized style of modeling may be more appropriate. Throughout the book, we discuss the pros and cons of each particular pattern. Because each type of pattern will have specific and generalized alternatives, Table 1.1 summarizes both the benefits of using a specific style of modeling and the benefits of using a more generalized style of modeling.
Note
We have used the word generalization instead of using the more common term abstraction. Many data professionals believe that abstraction implies a loss of detail. For example, a map of a roadway is an abstraction because it limits details to a certain level in order to focus attention on roads. Generalization implies transforming very specific data model structures to more generalized concepts, in order to more flexibly support data requirements. Generalization provides this flexibility by using a less specific data structure and accommodates current and future requirements via adding, changing, or deleting data instances. Another reason for using the term generalization is that the object-oriented community uses the term abstraction in a different way that has a different meaning. It should also be noted that dynamic environments require flexible solutions. However, flexible solutions by their nature are more generalized, and generalized solutions are more difficult to understand.(7)
Also, generalization should not be confused with normalization. They are completely separate concepts. Generalization has to do with using more flexible data model constructs, whereas normalization has to do with eliminating data redundancy by grouping data in a way that it is dependent on the key, whole key, and nothing but the key.
Figure 1.1 Levels of generalization
1.1Table 1.1 Benefits of Specific and Generalized Styles of Modeling
If you are familiar with the Zachman Framework,(8) you may recognize that there may be different audiences for data models, which results in the need for different types and styles of models. For example, a model that is designed for the owner/business representative in order to validate information requirements may look quite different than a model designed for the designer/architect where the model's intention is to be the basis of the database design. The model that one develops for an owner or business representative would most likely be a specific model such as a level 1 or level 2 based model, so that one could use the specific patterns to illustrate and communicate the data needs. The model for a designer or architect would most likely be designed for flexibility and adaptability to change, thus reducing maintenance costs, and so a level 3 or level 4 may be more suitable for this.
Note
John Zachman's framework shows six different rows and six different columns. The six columns correspond to different types of models in IT development, and the six rows correspond to different audiences. In this book, we are focusing on column 1 (the models for data), and we are providing different views by showing different levels. For instance, using more specific patterns such as level 1 and level 2 patterns, would usually work well for models that correspond to the Zachman Framework row 2 that is designed for an Owner
view. Using level 3 and level 4 patterns would most likely work well for models that correspond to row 3 in the Zachman Framework, which according to the framework are models for the audience of designers or architects. Depending on how you interpret the Zachman rows and how you intend to use the patterns, you may also make the argument that some of these patterns, such as level 1 patterns, can be used for row 1 (the planner
view), and some of the more generalized patterns can be used for row 4 (the builder
view). The key point we are making is that different levels of the patterns are designed to be used by different audiences.
Some data modelers prefer to have different models for different audiences. However, to maintain two models, a business data model
and an architecture data model,
and to map and cross-reference them can be quite a bit of work. The patterns can help a great deal in this regard. When developing a data model for business representatives in order to gather and validate data requirements, we will generally use the level 1 and level 2 patterns. Then when developing the designer
or architectural
view, we can replace the level 1 or level 2 patterns with level 3 or level 4 patterns. Thus, there is a plug-and-play
nature of these patterns that can save a great deal of time and help synchronize these types of models. For example, a Level 1 Status Pattern showing the status of an order can be quickly replaced by a Level 3 Status Pattern to show a more flexible approach in the same model. Think of patterns as components that can be substitutes for each other.
Note
Chapter 9 illustrates many examples of how you can use the patterns in a plug-and-play mode for different types of data modeling efforts.
Instead of having two different data models for two different audiences, another possible solution is to incorporate both specific and generalized patterns into the same model. (This solution is shown in Chapter 9, in the discussion of using the patterns to develop an enterprise data model.) Often, both a specific and a generalized pattern can be used in the same data model for the same data requirement. Then views can be created to show the specific aspects and generalized aspects of the model. For example, if you had a need to model the roles of various parties in a project, you could develop a model of the specific relationships of various roles to the project, namely, sponsors, workers, project manager, and project lead, in order to validate requirements. Then you could include in the model additional entities showing an architectural view of the model where a work effort (which could be a project, activity, task, or any other unit of work) may have any number of parties with any number of roles associated with it.
It is important to keep in mind that this type of hybrid
modeling solution can be used for any of the patterns in this book. In Chapter 3, we have shown an example of this by providing a hybrid pattern, namely, the Hybrid Contextual Role Pattern. A hybrid
pattern uses both a specific pattern and a generalized pattern to model a specific type of data requirement. For example, the Hybrid Contextual Role Pattern provides a single pattern that includes both the specific Level 2 Contextual Role Pattern (that models specific roles such as a PROJECT to PROJECT LEAD) and the Level 3 Contextual Role Pattern (that models generalized roles such as a PROJECT to PROJECT ROLE relationship). We could use this same idea to develop a Hybrid Status Pattern,
Hybrid Classification Pattern,
Hybrid Recursive Pattern,
or for any of the other patterns in this book.
Note
The Hybrid
approach is designed to show alternative ways to model the same type of data: one using a specific method and one using a much more generalized way to model; this is not the same as saying it is okay to model the same data redundantly. We don't consider this to be redundant data modeling, because we don't advocate that you capture the same instances of data in both the specific and the generalized data model structure. We describe this approach in greater detail in chapter 9.
So, why did we describe these patterns using the idea of levels instead of relating them to conceptual data models, logical data models, and physical data models? First of all, the patterns have more to do with the levels of generalization for the model than they have to do with the idea of conceptual, logical, and physical data models. In Data Model Theory and Practice(9) Dr. Graeme Simsion points out through extensive studies that the same information requirements within the same scenario are likely to be modeled very differently by different modelers. Furthermore, he points out that three key differences occur between models that are based on the same information requirements. One of these differences that reflect a wide degree of variation in data modeling is the level of generalization. Thus, the levels in this book highlight the degree of generalization, and level 1 patterns have very little generalization whereas level 4 patterns have a high degree of generalization (see Figure 1.1).
Note
In Dr. Simsion's book Data Model Theory and Practice
, he cites a classification scheme from J. Verelst(10) that shows three major reasons for variability among data models. These are construct variability
(use of different modeling constructs, such as attributes or entities, to represent the same real world concepts), vertical variability
(use of different levels of generalization), and horizontal variability
(different categorization of data at the same level of generalization). While we focus on providing patterns at different levels of generalization, the patterns that we will be showing you also show alternatives that address construct variability.
Another reason that we have, for the most part, stayed clear of comparing these patterns to conceptual, logical, and physical models is that there is great debate in the data management industry regarding what exactly a conceptual data model, logical data model, or physical data model is; what is included in each of these models; and what is the difference between and among these models. Karen Lopez, a well-recognized and prominent industry leader in data management, conducts a seminar called Data Modeling Contentious Issues.
(11) She has conducted this course for over a decade, polling participants and asking questions such as What is a conceptual data model?
and has consistently received many widely different views of what concep tual data models, business data models, logical data models, and even physical data models are. As she points out, data modelers often get very heated in discussions about various data modeling contentious issues such as what level of generalization a model should have, if attributes should be part of the conceptual or business data model, if models should use the party
concept, and so on. This same point, namely that there is a lack of common perspective from data modelers, from novices to gurus, has also been raised by Dr. Simsion, who shares his extensive research about the question and ongoing debate even regarding the very nature and purpose of data modeling in his book.(9) In the data modeling industry, there does not appear to be a common, single, universal understanding regarding the purpose and definitions of conceptual models, business models, logical data models, and physical data models.
Because it is difficult to come to a common definition of conceptual, logical, and physical data models that are broad enough to be generally accepted and specific enough to be rigorous, we have a classic Catch-22
situation if we frame the discussion of patterns around these concepts. We believe that taking a stance regarding what we consider to be a conceptual, logical, and/or physical data model or debating the definitions of these models would distract from what we want to offer in this book. We believe that there is another way to categorize data models, namely by specifying the level of generalization, and this can be more helpful in our goals.
As data modelers, we are usually asked to create data models that meet specific business needs. For example, we are asked to create a model that illustrates the required business data by using objects such as entities, relationships, and attributes. The enterprises that need data models want us to create models to support particular functions, and data modelers have tried to segment these models into categories that have meaning primarily to data modelers (conceptual model, business model, logical model, and so on). So, instead of using these categories we have decided to categorize data models by how generalized the model is. In turn, the level of generalization implies suitability of the model for a particular purpose or function. As we already stated, very specific models are generally used to communicate information requirements to business representatives and more generalized models are commonly used as the basis for