泛化聚合
ER 模型具有以概念分层方式表达数据库实体的能力。 随着层次结构的上升,它概括了实体的视图,并且随着我们深入层次结构,它为我们提供了包含的每个实体的详细信息。
在这种结构中向上称为泛化,其中实体组合在一起以表示更泛化的视图。 例如,一个名为 Mira 的特定学生可以与所有学生一起泛化。 该实体应为学生,并且该学生为人。 反过来称为专业化,其中一个人是学生,而那个学生是 Mira。
泛化
如上所述,泛化实体的过程,其中泛化实体包含所有泛化实体的属性,称为泛化。 在泛化中,多个实体基于它们的相似特征被组合成一个泛化实体。 例如,鸽子、麻雀、乌鸦和鸽子都可以概括为鸟类。
![泛化](https://www.w3ccoo.com/dbms/images/generalization.png)
聚合
聚合与泛化相反。 在聚合中,一组实体根据其特征分为子组。 以"人"组为例。 一个人有姓名、出生日期、性别等。这些属性在所有人、人类中是共有的。 但在公司中,可以根据个人在公司中扮演的角色将其识别为员工、雇主、客户或供应商。
![Specialization](https://www.w3ccoo.com/dbms/images/specialization.png)
类似地,在学校数据库中,根据个人在学校中作为实体所扮演的角色,他们可以被聚合为教师、学生或教职员工。
继承
我们使用 ER-Model 的所有上述特性来在面向对象编程中创建对象类。 实体的详细信息通常对用户隐藏; 这个过程称为抽象。
继承是泛化和专业化的一个重要特征。 它允许低级实体继承高级实体的属性。
![继承](https://www.w3ccoo.com/dbms/images/inheritance.png)
例如,Person 类的属性(例如姓名、年龄和性别)可以被较低级别的实体(例如 Student 或 Teacher)继承。