DBMS Generalization vs Specialization and Aggregation
Generalization vs Specialization
|BASIS FOR COMPARISON||GENERALIZATION||SPECIALIZATION|
|Basic||It proceeds in a bottom-up manner.||It proceeds in a top-down manner.|
|Function||Generalization extracts the common features of multiple entities to form a new entity.||Specialization splits an entity to form multiple new entities that inherit some feature of the splitting entity.|
|Entities||The higher level entity must have lower level entities.||The higher level entity may not have lower level entities.|
|Size||Generalization reduces the size of a schema.||Specialization increases the size of a schema.|
|Application||Generalization entities on group of entities.||Specialization is applied on a single entity.|
|Result||Generalization results in forming a single entity from multiple entities.||Specialization results in forming the multiple entity from a single entity.|
Aggregation represents relationship between a whole object and its component. Using aggregation we can express relationship among relationships. Aggregation shows ‘has-a’ or ‘is-part-of’ relationship between entities where one represents the ‘whole’ and other ‘part’.
Consider a ternary relationship Works_On between Employee, Branch and Manager. Now the best way to model this situation is to use aggregation, So, the relationship-set, Works_On is a higher level entity-set. Such an entity-set is treated in the same manner as any other entity-set. We can create a binary relationship, Manager, between Works_On and Manager to represent who manages what tasks.