Modeling of UNION Types Using Categories
All of the superclass/subclass relationships we have seen thus far have a single super-class. A shared subclass such as ENGINEERING_MANAGER in the lattice in Figure 8.6 is the subclass in three distinct superclass/subclass relationships, where each of the three relationships has a single superclass. However, it is sometimes necessary to represent a single superclass/subclass relationship with more than one superclass, where the superclasses represent different entity types. In this case, the subclass will represent a collection of objects that is a subset of the UNION of distinct entity types; we call such a subclass a union type or a category.
For example, suppose that we have three entity types: PERSON, BANK, and COMPANY. In a database for motor vehicle registration, an owner of a vehicle
can be
a person, a bank (holding a lien on a vehicle), or
a company. We need to create a class (collection of entities) that includes
entities of all three types to play the role of vehicle owner. A category (union type) OWNER that is a subclass of the UNION of the three entity sets of COMPANY, BANK, and PERSON can be created for this purpose. We display categories in an EER
diagram as shown in Figure 8.8. The superclasses COMPANY, BANK, and
PERSON are connected to the circle with
the ∪ symbol,
which stands for the set union operation. An arc with the subset symbol connects the
circle to the (subclass) OWNER category. If a defining
predicate is needed, it is dis-played next to the line from the superclass to
which the predicate applies. In Figure 8.8 we have two categories: OWNER, which is a subclass of the union of PERSON, BANK, and
COMPANY; and REGISTERED_VEHICLE, which is a subclass of the union of CAR and TRUCK.
A category has two or more superclasses that may represent distinct entity types, whereas other
superclass/subclass relationships always have a single superclass. To better
understand the difference, we can compare a category, such as OWNER in Figure 8.8, with the ENGINEERING_MANAGER shared subclass in Figure 8.6. The latter is a subclass of each of the three superclasses ENGINEER, MANAGER, and
SALARIED_EMPLOYEE, so an entity that is a member of ENGINEERING_MANAGER must exist in all three. This
represents the constraint that an engineering manager must be an ENGINEER, a MANAGER, and a SALARIED_EMPLOYEE; that is,
ENGINEERING_MANAGER is a subset of the intersection of the three classes (sets of entities).
On the other hand, a category is a subset of the union of its superclasses. Hence, an entity that is a member of OWNER must exist in only one of the
super classes. This represents the constraint that an OWNER may be a COMPANY, a BANK, or a PERSON in Figure 8.8.
Attribute inheritance works more selectively in the case of categories.
For example, in Figure 8.8 each OWNER entity
inherits the attributes of a COMPANY, a PERSON, or a BANK, depending on the superclass to which the entity belongs. On the other
hand, a shared subclass such as ENGINEERING_MANAGER (Figure 8.6) inherits all the
attributes of its superclasses SALARIED_EMPLOYEE, ENGINEER, and
MANAGER.
It is interesting to note the difference between the category REGISTERED_VEHICLE (Figure 8.8) and the generalized superclass VEHICLE (Figure 8.3(b)). In Figure 8.3(b), every car and every truck is a VEHICLE; but in Figure 8.8, the REGISTERED_VEHICLE category includes some cars and some trucks but not neces-sarily all of them (for example, some cars or trucks may not be registered). In gen-eral, a specialization or generalization such as that in Figure 8.3(b), if it were partial, would not preclude VEHICLE from containing other types of entities, such as motorcycles. However, a category such as REGISTERED_VEHICLE in Figure 8.8 implies that only cars and trucks, but not other types of entities, can be members of REGISTERED_VEHICLE.
A category can be total or partial. A total category holds the union of all entities in its
superclasses, whereas a partial category can hold a subset of the union. A total cat-egory is represented
diagrammatically by a double line connecting the category and the circle,
whereas a partial category is indicated by a single line.
The superclasses of a category may have different key attributes, as
demonstrated by the OWNER category in Figure 8.8, or they
may have the same key attribute, as demonstrated by the REGISTERED_VEHICLE category. Notice that if a category is total (not partial), it may be
represented alternatively as a total specialization (or a total
generalization). In this case, the choice of which representation to use is
sub-jective. If the two classes represent the same type of entities and share
numerous attributes, including the same key attributes,
specialization/generalization is pre-ferred; otherwise, categorization (union
type) is more appropriate.
It is important to note that some modeling methodologies do not have
union types. In these models, a union type must be represented in a roundabout
way (see Section 9.2).
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2024 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.