I'm reviewing a very, very sexy data model... it's huge, it's convoluted, and it seems very well put together.
The original author of the logical model used a method of typing objects that I haven't seen before... objects were formally defined as "heterogeneous subtypes" or "homogeneous subtypes."
This methodology of subtyping makes great sense -- what interests me is the process behind coming up with this in the model. I haven't done major data modelling, and haven't seen things specifically modelled as subtypes this way... but I'd like to learn more.
Could someone recommend a book or resource that might explain these sorts of concepts further? Specifically with regards to best practices for creating large logical data models.
Hi:
If the data model is truely logical, then it is without implementation considerations. "Objects" and "Subtypes" sound like implementation considerations. If, especially on larger scale data modeling efforts, one mixes in logic and implementation, the result is not very pretty. For an understanding of what a true logical data model looks like, I suggest reviewing Entity Relationship Diagrams (ERD).
Tony
The 'supertype' and 'subtype' concepts are standard patterns in logical data modeling (and these are definitely logical relationships, not physical - although there are lots of interesting discussions on how to implement these types of relationships when creating the physical model...).
A couple of introductory articles sites that you might find interesting to start are:
Basic explanation of types, supertypes, subtypes, and categories: http://www.packtpub.com/article/type-subtype-category
A good introductory guide to data modeling: http://www.liberty.edu/media/1414/[6330]ERDDataModeling.pdf
A comparison of different modeling techniques (which may be more detailed than you're looking for, but at the end there are some good practical tips for creating a data model that someone else can easily read & interpret...): http://essentialstrategies.com/documents/comparison.pdf
Sandy
brought to you by enabling practitioners & organizations to achieve their goals using: