Creating Subtype Cluster Relationships

Note:     Subtype cluster relationships can only be represented in the logical model. When the physical model is generated from a logical model, the subtype relationship is converted to identifying relationship.

A subtype cluster refers to a group of entities sharing similar characteristics that form a generalization hierarchy. In each subtype cluster, there is one parent entity, known as a supertype, and one or more subtype entities. The supertype generalizes a set of subtypes; the common characteristics of subtype entities are assigned to the supertype while the subtype entities have more specific attributes. The subtypes, also known as category entities, represent homogeneous subsets of the supertype. The attributes and relationships of the supertype entity are propagated to all of its subtypes. Discriminators, an attribute of the subtype, distinguish the entities in the subtype from each other.

Other than recognizing a generalization hierarchy, an important issue with subtyping is to decide how to implement a subtype cluster in the physical model. Sometimes it is best to project subtypes into the supertype, representing the entire cluster as a single, generalized entity. Other times, you may need the granularity of separate subtype entities, choosing to implement the subtypes and supertype one-for-one or rolling the supertype down into the subtypes.

During the logical model phase, you should search for hierarchies that can reveal a more general approach to aggregating attributes into entities. By addressing the general case, you can design a more flexible and extensible approach to storing data. The use of subtyping is a powerful tool in identifying and portraying such generalizations.

Example 

To illustrate the use of subtyping, let's take the example of the group of entities - Person, Customer, and Employee. Each entity stores information about employees. Accordingly, Person is the supertype in this example and the remaining entities can be grouped in a subtype. Any person contained in a subtype entity is also represented in Person. In each entity, the primary key is the Name. Because each entity instance for the entities in the subtype are also represented in the supertype, the relationships between the supertype entities and all subtype entities must be an identifying relationship, that is the customer, engineer and writer must all be employees. The relationship between Person, Customer, Employee, and Supplier is complete, because the business is concerned only with these types of persons. The relationship between the Employee, Engineer, and Writer is an incomplete subtype because there can be other employee types, such as quality assurance analysts.

In this example, the Person entity is the supertype. All Person's have a name, address and telephone number. A person can be either an Employee or a Customer. In addition to sharing name, address and telephone number attributes, each of these subtypes has its unique attributes; for example, an Employee has a Profession; and a Customer has a Credit Limit. An entity can be both a supertype and a subtype, as is the case with Employee, which can be further divided into Engineer and Writer.

1.  Click the Logical model.

2.  Choose Insert > Subtype Cluster and then choose Complete or Incomplete.

3.  Click an entity to designate it as the parent (supertype) and then click the entity (subtype) you want to add to the subtype cluster.

Tip:          You can add multiple entities to the subtype cluster by pressing CTRL while clicking the desired entities.

4.  Right-click to revert to the Selection tool and then double-click the newly created subtype relationship indicator.

5.  Complete the Subtype Cluster Editor as required and then click OK.

The following helps you complete the Subtype Cluster Editor options:

   Subtype tab 

   Attachment Bindings tab  

   Notes