【数据库系统原理】第四章 高级数据库模型:E/R模型及其设计规则、约束

文章目录

第四章 高级数据库模型

4.1 E/R 模型

E-R 模型中的主要元素及其概念

  1. 实体 Entity:客观存在并可相互区别的事物。可以是具体的人、事、物或抽象的概念。
  2. 实体集 Entity Set(矩形):相似实体的集合。
  3. 属性 Attribute(椭圆):实体集中的实体具有的某一特性。可以用多个属性来表示一个实体。
  4. 联系 Relationship(菱形):现实世界中,表示事物内部或事物之间的联系;信息世界中,表示实体集内部或实体集之间的联系。

联系的种类

  • 多对一联系 如果 E 中的任一实体可以通过 R 与 F 中的 至多一个实体联系,则 R 是从 E 到 F 的多对一联系。

【数据库系统原理】第四章 高级数据库模型:E/R模型及其设计规则、约束
  • 一对一联系
  • 如果 R 既是从 E 到 F 的多对一联系, 又是从 F 到 E 的多对一联系,则 R 是一对一联系。
  • 当 R 是一对一联系时,F 中的每一个实体 最多可以和 E 中的一个实体相联系。
    【数据库系统原理】第四章 高级数据库模型:E/R模型及其设计规则、约束
  • 多对多联系
  • 定义:如果 R 既不是从 E 到 F 的多对一联系,也不是从 F 到 E 的多对一联系,则 R 是多对多联系。
  • 对定义的理解:
    1. 多对一联系是多对多联系的特殊情况,一对一联系是多对一联系的特殊情况。
      【数据库系统原理】第四章 高级数据库模型:E/R模型及其设计规则、约束
      【数据库系统原理】第四章 高级数据库模型:E/R模型及其设计规则、约束
  • E-R 图中的箭头表示”最多一个”,若 E 到 F 是多对一关系,则 E -> F。
  • 例:一对一关系
    【数据库系统原理】第四章 高级数据库模型:E/R模型及其设计规则、约束

; 多路联系

  • 定义:两个以上实体集之间的联系,由菱形到它设计的每个实体集的连线表示。
  • 多路联系中的箭头 多路联系中的关系同时发生在两方以上。 多路联系中,箭头指向的实体集是其他 (n – 1) 个实体集的函数。

    表明该实体集是其他 (n – 1) 个实体集 共同唯一决定的结果。

联系中的角色 role

如果在一个联系中, 同一个实体集出现两次或多次,则为该实体集与联系间的每一条连线命名,称为角色。

联系的属性

联系的属性,可以通过创建一个实体集,将联系的属性转移到该实体集,并在该实体集和联系之间增加相应的连线。

【数据库系统原理】第四章 高级数据库模型:E/R模型及其设计规则、约束

多路联系到二元联系的转换 P79

  • 连接(connecting)实体集:它的实体是多路联系的联系集的元组。
  • 针对 组成连接实体集的每一个实体集,从连接实体集中引入多对一联系。
    【数据库系统原理】第四章 高级数据库模型:E/R模型及其设计规则、约束
  • 如果一个实体集扮演多个角色,则每一个角色就是一个联系。

E-R 图中的子类 subclass

  • 定义:子类指实体集中的某些实体,它是原实体集的特例,具有特殊性,比原实体集具有更多的属性。
  • 表示:A isa B(A 是 B 的子类联系,在 E-R 图中是一个三角形,顶角朝向父类)
    【数据库系统原理】第四章 高级数据库模型:E/R模型及其设计规则、约束
  • 每一个 isa 联系都是一对一的

; 4.2 E-R 模型的设计规则

  • 忠实性:所设计的实体集、属性和联系必须要能够 反映应用需求背景中的实际情况
  • 避免冗余:同一件事在模型中多次出现。
  • 造成存储空间的浪费,需要更多的同步处理机制来保持数据的一致性。
  • 存在危险:① 数据冗余; ② 更新异常的可能。
  • 简单性考虑:用尽可能少的元素来描述模型,必要时再逐个补充。
  • 联系的选择:联系也可能产生冗余。
  • 如果一个联系可以从其他的联系中导出,则应被舍弃。
  • 选择正确的元素种类:实体集或者属性
  • 属性比实体集或联系更容易实现,但不是所有情况都适用。
  • 属性集替代实体集 E 的三个条件
    1. 所有与 E 有关的联系必须有指向 E 的箭头。( E 必须是多对一联系的一方
    2. 若 E 有多个属性,则必须没有属性依赖于其他属性( E 的唯一键是它所有的属性
    3. 没有联系包含 E 多次
  • 满足以上三个条件的实体集 E 转换为属性的方法
    • 如果从实体集 F 到 E 有多对一联系 R,那么删除 R 并把 E 的属性作为 F 的属性,当属性名发生冲突时,进行重命名。
    • 如果有多路联系 R 的箭头指向 E,把 E 的属性作为 R 的属性,并删除从 R 到 E 的弧。

      例:

      【数据库系统原理】第四章 高级数据库模型:E/R模型及其设计规则、约束
      【数据库系统原理】第四章 高级数据库模型:E/R模型及其设计规则、约束
  • 连接实体集:用实体集代替多路联系

4.3 E-R 模型中的约束

常见的约束

  • 键约束:属性/属性集,每个实体的键取值唯一;
  • 引用完整性约束: 引用值必须先存在
  • 其他约束:联系的度、域约束、自定义约束等。

E-R 模型中的键

  • 定义:实体集 E 的一个属性或属性集。对于E的任意两个不同实体,他们在键上的取值不完全相同(但允许部分相同)
  • 对定义的理解:
  • 每个实体集 必须有一个键,若实体集有多个键,则选择一个作为主键;
  • 在 isa 层次中,要求根实体集(父类)的键所需的所有属性,并且每个实体集的键都可在父类中找到它的组成部分。
    【数据库系统原理】第四章 高级数据库模型:E/R模型及其设计规则、约束

Original: https://blog.csdn.net/m0_52052747/article/details/124045884
Author: JKL27
Title: 【数据库系统原理】第四章 高级数据库模型:E/R模型及其设计规则、约束

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/556131/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球