数据库系统笔记4-Entity-Relationship Model E-R模型

E-R图

  • 矩形表示为实体集Entity Sets
  • 菱形表示为关系集Relationship Sets
  • 连接线将实体集连接到关系集
  • 椭圆Ellipse表示属性Attributes

关系集

成员

基数约束 Cardinality Constraints

使用有指向的箭头表示“一”,使用无指向的线表示“多”,则关系和实体集之间可以有这些:

一对一关系


一个顾客通过借贷关系最多与一个贷款相关联,同时一个贷款也至多与一个顾客相关联

一对多关系


这里一份贷款最多能与一个顾客相关联,但是一个顾客能够有多份贷款

多对多关系

  • 一份贷款与多个顾客相关联
  • 一个顾客有多份贷款

实体集与关系集中的参与度 Participation

全部参与 Total Participation

实体集中的每一个实体都参与到关系集R的至少一个关系中,则实体集E在关系集R中的参与称为全部的Total

在上面的例子中贷款实体在借贷关系中的参与是全部的,因为每一个贷款都必定有一个顾客实体与之关联

部分参与 Partial Participation

实体集中只有部分实体参与到了R的联系中,则实体集E到关系集R的参与称为部分的Partial

上面的例子中,顾客实体在贷款关系中的参与是部分的,因为并不是所有顾客都有一份贷款

关系集的度 Degree

参与关系集的实体集的数目称为关系集的

关系集的实体集的参与数目大于2的情况是很少的,绝大多数度都为2,即Binary,度为3时称为Ternary

三元关系ER图举例

三元关系中的约束

  • 在三元或度更高的关系集中,至多允许一个有指向的箭头来表示基数约束

若需要有更多的单项箭头,则有两种办法,假设ABC三个实体间存在关系R,有指向B和C的箭头

  1. 每个A在B和C之间与一个单独的实体相关联
  2. 每对实体(A,B)都与一个独立的实体C相关联,(A,C)与单独的实体B相关联

非二元关系集转化为二元关系

一般,任何的非二元关系都可以表示成二元关系的形式,假设ABC三个实体以关系R连接:

使用新的实体E代替关系R的位置,并在E和ABC之间设置关系Ra,Rb,Rc。若实体R有属性,则将这些属性赋值给实体E;并为E创建一个特殊的标志属性special identifying,通过这些属性来区分实体集中的各个实体,针对关系集R中的每个联系ai,bi,ci,在实体集E中创建新的实体ei并在三个新的关系集中插入新的联系:Ra中插入(ei,ai),在Rb中插入(ei,bi),在Rc中插入(ei,ci)

弱实体集 Weak Entity

没有主键的实体集称为弱实体集,其存在取决于标识实体集Identifying Entity Set的存在,必须通过一个全部参与一对多,的关系来与弱实体集相关联,这个标识关系使用双线菱形在ER图中表示。

  • 弱实体集使用双线矩形来表示
  • 使用虚线dashed下划线underline来标识处弱实体中的标识键discriminator

ER设计决策

  • 实体集中的属性如何用来标识一个对象
  • 使用实体集还是关系集来标识真实世界中存在的概念
  • 三元关系与二元关系的使用
  • 强实体与弱实体的使用

转换为关系模式 Relational Schema