Generalization
Generalization
Using the ER model for bigger data creates a lot of complexity while designing a database model, So in order to
minimize the complexity Generalization, Specialization, and Aggregation were introduced in the ER model and these
were used for data abstraction in which an abstraction mechanism is used to hide details of a set of objects. Some of
the terms were added to the Enhanced ER Model, where some new concepts were added. These new concepts are:
Generalization
Specialization
Aggregation
Generalization
Generalization is the process of extracting common properties from a set of entities and creating a generalized entity
from it. It is a bottom-up approach in which two or more entities can be generalized to a higher-level entity if they
have some attributes in common. For Example, STUDENT and FACULTY can be generalized to a higher-level entity
called PERSON as shown in Figure 1. In this case, common attributes like P_NAME, and P_ADD become part of a
higher entity (PERSON), and specialized attributes like S_FEE become part of a specialized entity (STUDENT).
Generalization is also called as ‘ Bottom-up approach”.
Generalization
Specialization
In specialization, an entity is divided into sub-entities based on its characteristics. It is a top-down approach where the
higher-level entity is specialized into two or more lower-level entities. For Example, an EMPLOYEE entity in an
Employee management system can be specialized into DEVELOPER, TESTER, etc. as shown in Figure 2. In this
case, common attributes like E_NAME, E_SAL, etc. become part of a higher entity (EMPLOYEE), and specialized
attributes like TES_TYPE become part of a specialized entity (TESTER).
Specialization is also called as ” Top-Down approach”.
Specialization
Example of Relation
Aggregation
An ER diagram is not capable of representing the relationship between an entity and a relationship which may be
required in some scenarios. In those cases, a relationship with its corresponding entities is aggregated into a higher-
level entity. Aggregation is an abstraction through which we can represent relationships as higher-level entity sets.
For Example, an Employee working on a project may require some machinery. So, REQUIRE relationship is needed
between the relationship WORKS_FOR and entity MACHINERY. Using aggregation, WORKS_FOR relationship
with its entities EMPLOYEE and PROJECT is aggregated into a single entity and relationship REQUIRE is created
between the aggregated entity and MACHINERY.
Aggregation