In this post, we will understand the difference between generalization and specialization in DBMS.
Generalization
It works using bottom-up approach.
The size of schema is reduced.
It is generally applied to a group of entities.
Inheritance is not used in generalization.
It can be defined as a process where grouping are created from multiple entity sets.
It takes the union of two or more lower-level entity sets, and produces a higher-level entity set.
Some of the common features are obtained in the resultant higher-level entity set.
The differences and similarities between the entities that need to be in union operation are ignored.
Example:
Pigeon, house sparrow, crow and dove can all be generalized as Birds −
Specialization
It uses a top-down approach.
The size of schema is increased.
It can be applied to a single entity.
It can be defined as process of creation of subgroups within an entity set.
It is the reverse of generalization.
It takes a subset of higher level entity, and forms a lower-level entity set.
A higher entity is split to form one or more low entity.
Inheritance can be used in this approach.
Example
A person has name, date of birth, gender, etc. These properties are common in all persons, human beings. But in a company, persons can be identified as employee, employer, customer, or vendor, based on what role they play in the company.