New Book Review: "The Data Model Resource Book Volume 3"

Recently posted book review for The Data Model Resource Book Volume 3: Universal Patterns for Data Modeling, by Len Silverston and Paul Agnew, Wiley Publishing Inc, 2009, reposted here:

The_data_model_resource_book_3

Stars-5-0._V47081849_

Incredibly well done follow-up to the first two volumes of Silverston's data model series (see my reviews for "The Data Model Resource Book Volume 1 (Revised Edition): A Library of Universal Data Models for All Enterprises" and "The Data Model Resource Book Volume 2 (Revised Edition): A Library of Universal Data Models by Industry Types"). As discussed in the introduction to this book, while the first volume answered the question "Where can we find a book showing a standard way to model common data model structures?" and the second volume extended the template models presented in the first volume by adding additional data model constructs that are industry specific, this third volume answers the question "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?"

The patterns that Silverston and Agnew present are categorized into chapters entitled "Setting Up Roles: What Parties Do", "Using Roles: How Parties Are Involved", "Hierarchies, Aggregations, and Peer-to-Peer Relationships: The Organization of Similar Data", "Types and Categories: The Classification of Data", "Status: The States of Data", "Contact Mechanisms: How to Get in Touch", and "Business Rules: How Things Should Work". Each chapter is well laid out, similar in style to other books of this genre such as "Design Patterns: Elements of Reusable Object-Oriented Software" by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. In this text, each pattern is laid out in its own section that answers the following questions: "Why Do We Need This Pattern?", "How Does This Pattern Work?", "When Should This Pattern Be Used?", and "What Are the Weaknesses of the Pattern?"

In addition, an aspect of this book that this reviewer especially appreciates is a presentation of each pattern at different levels. While the data management industry habitually refers to conceptual, logical, and physical data models, because there are widely different views as to the definition and purpose behind each of these types of data models (this reviewer is all too familiar with this inconsistency from his consulting engagements), the authors devised four levels of patterns that span from the most static and the more specific (Level 1) to the most flexible and more "generalized" (Level 4). The authors explain that the two key purposes of a data model are (1) "to illustrate and communicate information requirements, and (2) "to provide a sound foundation for a database design", and because these purposes can obviously be at odds with each other, depending on the stakeholders involved, care needs to be taken during the modeling process to determine appropriateness of approach.

While this reviewer offers no suggestions for alternative terminology, the decision of the authors to use the term "generalization" to describe the transformation of very specific data model structures to those which more flexibly support data requirements is interesting (especially given their explanation that they chose to do so since the object-oriented community uses the perhaps more intuitive term "abstraction" in a different way that has a different meaning) because this reviewer is well aware that software developers also use the term when referring to an object class superset that has object class "specializations". But despite this small matter, the consistent focus of the authors on the purpose of each level of data model presented throughout the text for each group of patterns (always discussing Level 1, Level 2, and Level 3, and sometimes discussing Level 4) is highly valued by this reviewer, especially when the authors discuss these levels in relationship to the Zachman Framework and other data model classification schemes.

This reviewer also enjoyed the last two chapters, entitled "Using the Patterns" and "Socializing the Patterns", in which the authors answer the questions "How do I use, apply, and/or implement these patterns in my enterprise?", "What is an appropriate balance between requiring adherence to the patterns and allowing them to be used completely optionally and used if and when they are helpful to the modeler/designer?", "How do you get your enterprise and various people in the enterprise to adopt these patterns?", and "What types of policies or principles regarding use of the patterns would be most appropriate to get the most benefit from these patterns?"

In the first of these last two chapters (Chapter 9), the authors demonstrate how the patterns can be used to create different data models that meet different needs, using the different levels of patterns as interchangeable components and combining them to solve common data modeling challenges for circumstances surrounding the building of prototyping and scoping data models, application data models, enterprise data models, data warehouse data models, and master data management (MDM) data models. In the list of additional considerations when using generalized patterns at the end of this chapter, this reviewer appreciates their remark that "generalized structures move the change process from the typical 'data architect to DBA to developer to tester' process to a data change process, and often organizations have no formal process for data change like they have for application change" and that "this can be addressed with organizational commitment to flexible data modeling structures", especially because this reviewer experienced firsthand the impact on culture when implementing database change management processes at his last two clients.

Chapter 10 addresses getting these patterns accepted and used appropriately, discussing in detail many of the objections that one might face in the workplace as well as what the authors see as key to success in this regard: (1) understand motivations and work toward meeting them, (2) develop a clear, common, compelling vision, (3) develop trust, and (4) manage conflict effectively. In addition to understanding the motivations of others, the authors also indicate that understanding one's own motivations is also important. While this last chapter is focused on the data model patterns discussed throughout the text, in the opinion of this reviewer the psychological aspects discussed are applicable to a much broader context in the workplace, and it can only help the industry if more authors choose to address such matters. Well recommended book to all data architects and other data management professionals.

Subscribe to Erik on Software

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe