Generalization in DBMS
- A generalization hierarchy is a form of abstraction that specifies that two or more entities that share common attributes can be generalized into a higher level entity type called a supertype or generic entity.
- The lower-level of entities become the subtype, or categories, to the supertype. Subtypes are dependent entities.
- Generalization occurs when two or more entities represent categories of the same realworld object.
- We can think of a reverse process of abstraction in which we suppress the differences among several entity types, identify their common features, and generalize them into a single superclass of which the original entity types are special subclasses
- For example, Wages_Employees and Classified_Employees represent categories of the same entity, Employees. In this example, Employees would be the supertype; Wages_Employees and Classified_Employees would be the subtypes.
- Subtypes can be either mutually exclusive (disjoint) or overlapping (inclusive). A mutually exclusive category is when an entity instance can be in only one category.
- The above example is a mutually exclusive category. An employee can either be wages or classified but not both.
- An overlapping category is when an entity instance may be in two or more subtypes.
- An example would be a person who works for a university could also be a student at that same university.
- The completeness constraint requires that all instances of the subtype be represented in the supertype.
- Generalization hierarchies can be nested. That is, a subtype of one hierarchy can be a supertype of another.
- The level of nesting is limited only by the constraint of simplicity. Subtype entities may be the parent entity in a relationship but not the child.