Using Supertypes and Subtypes
In the past, readers have asked me how to design and implement supertypes and sub-types.I use supertypes and subtypes to better understand how all the components of a PERSON entity fit together, what the components mean, and how they interrelate. Figure 1 shows an example of a supertype or subtype structure. This structure is based on a conceptual data model for part of an organization, and the model makes the assumption that I can use the PERSON supertype to represent all people. In addition to being a PERSON,each individual within the organization might also be a Board Member, a Benefactor, a Director, or a Field Investigator. Figure 1 shows eight subtypes, or subcategories, of PERSON. Supertype and subtype structures are classified as complete or incomplete. To determine whether the structure is complete or incomplete, you need to ensure that every PERSON falls into at least one of the subtype categories. If you find that a PERSON doesn’t fit into a category, you know that there’s a “missing” category that you’ll have to add in the future.

Supertype and subtype structures are also classified as mutually exclusive or overlapping. If supertypes and subtypes are mutually exclusive, a PERSON is limited to participating in only one of the subtypes; if they’re overlapping, a PERSON can be part of two or more subtype classifications. Sometimes, because of a PERSON’s role, subtypes can’t overlap; for example, the same PERSON usually can’t occupy the Director and Assistant Director roles at the same time. In Figure 1, you can infer that Field Investigators and Field Investigator Trainees report to the Director(s). Relationships between the various subtype entities aren’t uncommon. Mapping them out in a data model provides a clear and unambiguous picture of the situation.You can read more about supertypes and subtypes in “Supertypes and Subtypes” (May 1999, InstantDoc ID 5226) and “The Case of the Overlapping Subtypes” (November 2003, InstantDoc ID 40280).

I believe that there’s a time and a place for using supertypes and subtypes, but I’m more interested in your opinions and practices.Do you design supertypes? Or as object modelers, do you generalize your class objects or do you use specialized class objects when you implement the model? How do you implement designs that include supertypes? Do you create one supertype entity or a bunch of subtype entities?

Process Models or Data Models
When your group or company starts a project, what do you use to determine the requirements and guide the process? I think there’s usually a correlation between the maturity of the organization and the amount of time a project group spends on defining and documenting the requirements and doing the design work before they write a single line of code. Currently, I’m working on a project in which the lead programmer is assuming many of the responsibilities of a project manager. He tends to lean toward a process-centric approach for every aspect of the project. I, of course, take a strong data-centric approach to the development process. Have you had this experience?

Which drives your development efforts: the process models or the data models? In other words, is your organization process-centric or data-centric, and how do you feel about that? When you answer, indicate what type of work you do.

Making Database Changes
We all know that during the development process people will suggest changes for a database.Who makes these changes in your organization—a data administrator, a DBA,an application programmer, the CIO, or all four? When these changes are made,do you have a process for documenting them? Is everyone who makes schema changes required to record these changes? How do you think schema changes should be handled,and who should be in charge of making these changes? When you weigh in on this topic, please preface your opinion with your job title.

Head Over to the Forum
These six hot-button topics should be enough to get you thinking and to get a good discussion started. Don’t try to address all the topics at once. Choose one, voice your opinion, then go on to the next topic. See you on the Database Design forum at http://sqlforums.windowsitpro.com/web/forum/categories.aspx?catid=69&entercat=y.

End of Article

Prev. page     1 [2]     next page -->



You must log on before posting a comment.

If you don't have a username & password, please register now.

 
 

ADS BY GOOGLE