Terms in this set (34)

■ In general,many specializations and subclasses can be defined to make the conceptual model accurate. However, the drawback is that the design becomes quite cluttered. It is important to represent only those subclasses that are deemed necessary to avoid extreme cluttering ofthe conceptual schema.
■ If a subclass has few specific (local) attributes and no specific relationships,it can be merged into the superclass.The specific attributes would hold NULL values for entities that are not members ofthe subclass.A type attribute could specify whether an entity is a member ofthe subclass.
■ Similarly, if all the subclasses of a specialization/generalization have few spe- cific attributes and no specific relationships,they can be merged into the superclass and replaced with one or more type attributes that specify the sub- class or subclasses that each entity belongs to (see Section 9.2for how this criterion applies to relational databases).
■ Union types and categories should generally be avoided unless the situation definitely warrants this type of construct, which does occur in some practi- cal situations.If possible, we try to model using specialization/generalization as discussed at the end ofSection 8.4.
■ The choice of disjoint/overlapping and total/partial constraints on special- ization/generalization is driven by the rules in the miniworld being modeled. If the requirements do not indicate any particular constraints, the default would generally be overlapping and partial,since this does not specify any restrictions on subclass membershipan example of applying these guidelines, consider Figure 8.6, where no specific (local) attributes are shown.We could merge all the subclasses into the EMPLOYEE entity type,and add the following attributes to EMPLOYEE:
■ An attribute Job_type whose value set {'Secretary', 'Engineer', 'Technician'} would indicate which subclass in the first specialization each employee belongs to.
■ An attribute Pay_method whose value set {'Salaried','Hourly'} would indicate which subclass in the second specialization each employee belongs to.
■ An attribute Is_a_manager whose value set {'Yes', 'No'} would indicate whether an individual employee entity is a manager or not.
;