Specialization is opposite to Generalization. It is a top-down approach in which one higher level entity can be broken down into two lower level entity. In specialization, some higher level entities may not have lower-level entity sets at all.
Take a group ‘Person’ for 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.
Similarly, in a school database, persons can be specialized as teacher, student, or a staff, based on what role they play in school as entities.
Aggregation is the process of compiling information on an object, thereby abstracting a higher level object. So, an entity Person is derived by aggregating the characteristics name, house_no., city and social security number (SSN).
Another form of aggregation says that it is abstracting a relationship between objects and viewing the relationship as an object. So, in Figure 3, the Enrollment relationship between entities student and Course entity can be viewed as entity REGISTRATION.
In simple terms, Aggregation is a process when relation between two entities is treated as a single entity.