DBMS增强型ER模型怎么设计和使用?

文章导读
Previous Quiz Next ER 模型用于直观地表示数据库设计过程。ER 图中有几个组件。我们可以在一定程度上扩展这个 ER 模型,使其更加通用。
📋 目录
  1. 增强型 ER 模型基础
  2. 子类和父类
  3. 属性和关系的继承
  4. EER 模型中的特化和泛化
  5. 特化和泛化的约束
  6. 高级特性:Union Types 和 Categories
  7. 结论
A A

DBMS - 增强型 ER (EER) 模型



Previous
Quiz
Next

ER 模型用于直观地表示数据库设计过程。ER 图中有几个组件。我们可以在一定程度上扩展这个 ER 模型,使其更加通用。

增强型实体-关系 (EER) 模型通过添加高级概念来扩展基本的 ER 模型,以表示更复杂的数据结构。这种改进在需要更高精度的领域建模数据库时特别有价值。例如工程、电信和地理信息系统。

在本章中,我们将了解 EER 模型的主要元素。此外,我们还将简要介绍子类、父类、继承和特化等基础知识。我们将在本教程的后续章节中更详细地讨论它们。

增强型 ER 模型基础

ER 模型为创建数据库模式提供了基础工具。这在许多商业和工业应用中很有用。但是,随着数据库应用的演进,对更复杂的建模工具的需求也随之增加。这些工具能够通过复杂的 relationship 和数据约束以更高的准确性进行表示。EER 模型通过添加新特性如 subclassessuperclassesinheritanceunion types 来满足这些需求。

子类和父类

EER 模型使用了在 OOPs 编程中常见的子类和父类等概念。父类表示一般的实体类型,而子类则是该实体的更具体的分组。

例如,考虑 EMPLOYEE 实体类型。在一个公司中,EMPLOYEE 类别可能包括 SECRETARY、ENGINEER、TECHNICIAN 和 MANAGER 等不同的组。现在,这些子组都构成了 EMPLOYEE 的子类。

示例图 − EER 图使用 圆圈连接子类及其父类。线条连接这些实体,阐释了 relationship。在本例中,EMPLOYEE 是父类,而 SECRETARY、ENGINEER 和 TECHNICIAN 是子类。

Subclasses and Superclasses

在这里,父类与其子类之间的关系通常被描述为“IS-A”关系。这种关系意味着子类的任何实例本质上也是父类的实例。例如,SECRETARY 实体在数据库中也是 EMPLOYEE 实体。这种关系表明子类可以访问其父类中定义的所有属性和 relationship。

属性和关系的继承

继承是 OOPs 编程中的一个流行特性,它允许子类中的实体从其父类继承属性和 relationship。例如,EMPLOYEE 实体类型可能具有名为 NameSsnAddress 的通用属性。SECRETARY 子类可以继承这些属性,同时添加自己的属性,如 Typing_speed

继承也适用于 relationship。如果 EMPLOYEE 实体参与 PROJECT relationship,则 SECRETARY 子类将继承这种参与,从而确保一致的数据结构。

EER 模型中的特化和泛化

特化和泛化是 EER 模型中两种相关的过程,用于细化实体分类的方式。

EER 模型中的特化

特化展示了如何基于不同的属性或特征定义实体类型的子集。在我们的示例中,可以基于支付方式创建 EMPLOYEE 的子类,如 HOURLY_EMPLOYEE 和 SALARIED_EMPLOYEE。这可以通过使用适用于相关子类的 Pay_scale 属性来实现。

因此,通过特化创建的子类可能具有特定属性和关系,这些不适用于超类。

EER 模型中的泛化

泛化是特化的反向过程。它通过识别共享特征,将相似的实体类型组合成更广泛的超类。例如,具有 License_plate_noPrice 等属性的实体类型 CAR 和 TRUCK 可以泛化为名为 VEHICLE 的超类。

实体特定的属性,如 TRUCK 的 No_of_axles 和 CAR 的 Max_speed,将保留在各自的子类中,同时从 VEHICLE 继承公共属性。

特化和泛化的约束

特化和泛化可以包含约束,这些约束定义了实体如何归属于子类。两种主要约束如下所述 –

  • Disjointness Constraint − 不相交约束表示一个实体只能属于一个子类。如果子类不相交,则 EMPLOYEE 不能同时是 SECRETARY 和 ENGINEER。这在图中用连接子类与超类的圆圈中的 "d" 表示。请查看下面的图示。
  • Completeness Constraint − 完备性约束用于实体必须至少属于一个子类(total specialization)或可以不属于任何子类存在(partial specialization)的情况。超类与圆圈之间可以用双线表示total specialization,而单线表示 partial specialization

示例 − 请查看下面的图示。在图 8.1 中,specialization {HOURLY_EMPLOYEE, SALARIED_EMPLOYEE} 是 disjoint 和 total 的。每个 EMPLOYEE 必须是 hourly 或 salaried,但不能两者兼是。

Constraints in Specialization and Generalization

在 EER 图中使用特化和泛化

在实践中,数据库设计师经常使用 specialization 从通用实体类型开始,创建特定子类型来处理特定属性或关系。相反,当发现共同点时,他们可能使用 generalization 来组合现有的实体类型。

高级特性:Union Types 和 Categories

有时,子类可能需要从多个超类继承。这种结构称为 categoryunion type。当实体类型跨多个父类共享属性时使用此结构。例如,在注册数据库中,车辆的 OWNER 可能是 PERSON、BANK 或 COMPANY。OWNER 子类将连接到所有这些超类。在上面的图中,我们使用 "" 符号表示 union 关系。

结论

在本章中,我们学习了 Enhanced ER 模型,它通过引入子类、超类、类型继承以及特化或泛化过程来扩展传统的 ER 模型。我们还回顾了这些特性如何实现更精确和灵活的数据库模式。我们还涉及了诸如 disjointnesscompletenessconstraints,并查看了用于复杂关系的 union types。