Specialization/Generalization
The concept of specialization/generalization is associated with special types of entities
known as superclasses and subclasses, and the process of attribute inheritance. We
begin this section by defining what superclasses and subclasses are and by examining
superclass/subclass relationships. We describe the process of attribute inheritance and
contrast the process of specialization with the process of generalization. We then describe
the two main types of constraints on superclass/subclass relationships called participation
and disjoint constraints. We show how to represent specialization/generalization in
an Enhanced Entity–Relationship (EER) diagram using UML. We conclude this section
with a worked example of how specialization/generalization may be introduced into
the Entity–Relationship (ER) model of the Branch user views of the DreamHome case
study described in Appendix A and shown in Figure 11.1.