Generalization and Specialization:
In the entity relationship model, the entities are represented in a hierarchical manner. We can generalize the entities which will provide more information about the entity. In this the entities are grouped together and defined with their similar characteristics. But specialization is a way different from generalization. In generalization, the entities are grouped together in one generalized entity. Let Tim is a student, then he will be generalized in the entity STUDENT.
Consider the following example:
In the above example, it can be seen that the student is a high level entity which is categorized into three sub entities. The sub entities are the names and these names are of students (relating to high level entity). Therefore, categorizing a high level entity to a low level entity is called generalization.
Therefore, the entities Tim, Stuart and Abraham are in generalized form now and are described under the entity Student.
We can also say that the generalization is a process of abstraction to view a number of objects as a single class. In this process the user concentrates more on the general and same characteristics of the entities. The super class is made in generalization in which entities of common characteristics are extracted. Generalization is a bottom up approach because in generalization, more than two entities of lower level are combined from a high level entity. The common characteristics of entities include attributes and methods.
Generalization in database management system is represented by the following symbol:
Specialization is far different from generalization. The specialization is a process in which new characteristics are defined of the existing entities or classes of objects. Through this process we can define one or more than one new classes of objects. In specialization, a number of entities can be further categorized into sub classes that will be based on their characteristics. It should be noted here that in generalization, the concept of super classes is used and in specialization we used the concept of sub classes. Generalization is a bottom up approach whereas; specialization is a top down approach.
In specialization unlike generalization, the entities of higher level can be broken down to entities of low level. Consider the following example:
In the above example, it can be seen that the student is a high level entity which is split into three sub entities. The sub entities are the names and these names are of students (relating to high level entity). Therefore, splitting a high level entity to a low level entity is called specialization.
Specialization in database management system is represented by the following symbol: