文章目录
第四章 高级数据库模型
4.1 E/R 模型
E-R 模型中的主要元素及其概念
- 实体 Entity:客观存在并可相互区别的事物。可以是具体的人、事、物或抽象的概念。
- 实体集 Entity Set(矩形):相似实体的集合。
- 属性 Attribute(椭圆):实体集中的实体具有的某一特性。可以用多个属性来表示一个实体。
- 联系 Relationship(菱形):现实世界中,表示事物内部或事物之间的联系;信息世界中,表示实体集内部或实体集之间的联系。
联系的种类
- 多对一联系 如果 E 中的任一实体可以通过 R 与 F 中的 至多一个实体联系,则 R 是从 E 到 F 的多对一联系。
- 一对一联系
- 如果 R 既是从 E 到 F 的多对一联系, 又是从 F 到 E 的多对一联系,则 R 是一对一联系。
- 当 R 是一对一联系时,F 中的每一个实体 最多可以和 E 中的一个实体相联系。
- 多对多联系
- 定义:如果 R 既不是从 E 到 F 的多对一联系,也不是从 F 到 E 的多对一联系,则 R 是多对多联系。
- 对定义的理解:
- 多对一联系是多对多联系的特殊情况,一对一联系是多对一联系的特殊情况。
- 多对一联系是多对多联系的特殊情况,一对一联系是多对一联系的特殊情况。
- E-R 图中的箭头表示”最多一个”,若 E 到 F 是多对一关系,则 E
->
F。 - 例:一对一关系
; 多路联系
- 定义:两个以上实体集之间的联系,由菱形到它设计的每个实体集的连线表示。
- 多路联系中的箭头 多路联系中的关系同时发生在两方以上。 多路联系中,箭头指向的实体集是其他 (n – 1) 个实体集的函数。
表明该实体集是其他 (n – 1) 个实体集 共同唯一决定的结果。
联系中的角色 role
如果在一个联系中, 同一个实体集出现两次或多次,则为该实体集与联系间的每一条连线命名,称为角色。
联系的属性
联系的属性,可以通过创建一个实体集,将联系的属性转移到该实体集,并在该实体集和联系之间增加相应的连线。
多路联系到二元联系的转换 P79
- 连接(connecting)实体集:它的实体是多路联系的联系集的元组。
- 针对 组成连接实体集的每一个实体集,从连接实体集中引入多对一联系。
- 如果一个实体集扮演多个角色,则每一个角色就是一个联系。
E-R 图中的子类 subclass
- 定义:子类指实体集中的某些实体,它是原实体集的特例,具有特殊性,比原实体集具有更多的属性。
- 表示:A isa B(A 是 B 的子类联系,在 E-R 图中是一个三角形,顶角朝向父类)
- 每一个 isa 联系都是一对一的。
; 4.2 E-R 模型的设计规则
- 忠实性:所设计的实体集、属性和联系必须要能够 反映应用需求背景中的实际情况。
- 避免冗余:同一件事在模型中多次出现。
- 造成存储空间的浪费,需要更多的同步处理机制来保持数据的一致性。
- 存在危险:① 数据冗余; ② 更新异常的可能。
- 简单性考虑:用尽可能少的元素来描述模型,必要时再逐个补充。
- 联系的选择:联系也可能产生冗余。
- 如果一个联系可以从其他的联系中导出,则应被舍弃。
- 选择正确的元素种类:实体集或者属性
- 属性比实体集或联系更容易实现,但不是所有情况都适用。
- 属性集替代实体集 E 的三个条件
- 所有与 E 有关的联系必须有指向 E 的箭头。( E 必须是多对一联系的一方)
- 若 E 有多个属性,则必须没有属性依赖于其他属性( E 的唯一键是它所有的属性)
- 没有联系包含 E 多次。
- 满足以上三个条件的实体集 E 转换为属性的方法:
- 如果从实体集 F 到 E 有多对一联系 R,那么删除 R 并把 E 的属性作为 F 的属性,当属性名发生冲突时,进行重命名。
- 如果有多路联系 R 的箭头指向 E,把 E 的属性作为 R 的属性,并删除从 R 到 E 的弧。
例:
- 连接实体集:用实体集代替多路联系
4.3 E-R 模型中的约束
常见的约束
- 键约束:属性/属性集,每个实体的键取值唯一;
- 引用完整性约束: 引用值必须先存在;
- 其他约束:联系的度、域约束、自定义约束等。
E-R 模型中的键
- 定义:实体集 E 的一个属性或属性集。对于E的任意两个不同实体,他们在键上的取值不完全相同(但允许部分相同)
- 对定义的理解:
- 每个实体集 必须有一个键,若实体集有多个键,则选择一个作为主键;
- 在 isa 层次中,要求根实体集(父类)的键所需的所有属性,并且每个实体集的键都可在父类中找到它的组成部分。
Original: https://blog.csdn.net/m0_52052747/article/details/124045884
Author: JKL27
Title: 【数据库系统原理】第四章 高级数据库模型:E/R模型及其设计规则、约束
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/556131/
转载文章受原作者版权保护。转载请注明原作者出处!