8/06/2011

Data Modeling Essentials, Third Edition Review

Data Modeling Essentials, Third Edition
Average Reviews:

(More customer reviews)
Excellent practical introduction to data modeling in the relational paradigm using entity-relationship techniques. Detailed and instructive discussions weighing the relative merits of alternative models for scenarios. Positions data modeling within the context of developing information systems for business. Real-world, messy examples of the kinds of problems and errors that can arise-some of them a bit contrived, but usually to make a good point. A number of respectable sources footnoted, but unfortunately no bibliography.
Proposes evaluation criteria for measuring model quality. Admits conflict among these criteria-all desirable attributes of a model cannot be optimized simultaneously. Trade-offs must be made. Recognizes the limits of data modeling: "Don't try to solve every problem by developing a conventional data model (p. 265)."
Emphasizes that data modeling, although often confused with analysis, is not analysis. It is design. There is no one correct model for every scenario. Advocates using creativity to propose multiple alternative models before selecting a solution. Establishes the role of the data modeler by analogy with that of a residential architect.
Interestingly, goes on to say that the distinction between analysis and design is important-without ever drawing it. Does not describe data "analysis," if such a thing even exists.
Differentiates between data model and database design. Mainly because the paradigm used to represent the data while modeling it with the database customer (relational tables & columns, in this case) might differ from the paradigm that the database uses to represent it (network or hierarchy, perhaps). More recently, it has become common to model a solution with customers using the object paradigm and to implement it with database software using the relational paradigm. The paradigms need not always differ, but when they do, a translation is required before building the database.
Addresses not just how a data model works, but also how to build one, including the people to involve, the inputs to consult, and the sequence of tasks. Suggests various approaches, including top-down (entity-relationship modeling from scratch), bottom-up (using existing documents), and the customization of existing models and model fragments.
Covers the five normal forms of relational data, not omitting the limits of normalization and the assumptions on which it is based. Contrasts normalization with entity-relationship modeling as "bottom-up" versus "top-down," the former emphasizing technical soundness and the latter emphasizing business suitability. Admits that normalization is usually performed explicitly only as a final check after entity-relationship modeling-if at all. Examples show importance of normalization.
Numerous interesting observations on type hierarchies and generalization.
Notes compromise between representing business rules with specific data structures and accommodating business change with generic data structures: the more rules are represented in data structure, the more susceptible is that structure to future change. Unstable rules are better represented in program code or in data values-both easier to change than the structure of a production database. Cites frequency of both over-generic and over-specific models.
Makes the important point that data models represent not the real world, but rather WHAT WE KNOW about it. Some data models quite properly assert that a person might be neither man nor woman-because a business might not know the gender of every person in which it has an interest. Personally, I would go a little further by adding that a model represents only what we CARE to know.
Marring the otherwise valuable discussion of type hierarchies is their misapplication to modeling the various roles in which persons and organizations might act. A role may by nature be assumed and abandoned without changing identity. Using a subtype to represent it forces the subtype's instances to become and then to "unbecome" instances of the subtype as they change their roles-an obvious absurdity. We would indeed venture too far into the spirit world to claim that one might cancel membership in Homo Sapiens while retaining membership in Mammalia for the purpose of exercising at some later date the option to reincarnate as a chimpanzee!
Points out necessity of asymmetry in implementation of recursive many-to-many relationship. Debunks some previously asserted "rules" regarding relationships. Discusses transferability of relationships and uses this concept in discussing one-to-one relationships, foreign keys in primary keys (weak entities), and time-dependent relationships.
Interesting details on attributes that many similar books skip-particularly in the section on attribute generalization.
Sadly accepts the notion that all of a model's codes might be implemented very nicely in one big table. This idea is an abomination. It impedes the evolution of "code entities" into non-trivial entities. It complicates enforcement of referential integrity. The suggestion of views for isolating cohesive subsets of the big code table defeats the very data-driving that code tables are built to enable.
Also errs in proposing Code as a proper supertype for a "code entity." Code is a meta-entity. It represents nothing in the domain of the data model. In that domain it is not a supertype of anything. It would make as much sense to say that each thing is a type of Word because it has a word to describe it. It is valuable to recognize the common processing shared by many codes, but that commonality does not by itself imply a supertype.
Good exposition of the option to use data structure, program code, or data value to enforce a business rule.
Advises representing rules in the entity-relationship diagram using features for which there is "little intention of actually implementing (p. 269)." Type hierarchies are particularly recommended in this regard-even if they are not valid partitionings. Certainly, there are rules dependent on the values of attributes, but let's not make each attribute the basis of a subtype partitioning just to permit their graphic depiction! Advocates graphic depiction for communication with business customers even though diagrams are notoriously difficult for business customers. Diagrams are best suited to DBAs and programmers, but they are the very ones who wish not to see them cluttered with unimplemented constructs!
Quibbles and quips notwithstanding, a good book on one of my favorite subjects.

Click Here to see more reviews about: Data Modeling Essentials, Third Edition



Buy NowGet 35% OFF

Click here for more information about Data Modeling Essentials, Third Edition

No comments:

Post a Comment