实体-联系模型
文章目录
一、实体和实体集
(1)实体的基本概念
实体的定义
客观存在并且可以相互区分的任何事物,可以是实际对象,也可以是抽象概念
实体的值
实体的值是该实体每个属性值的列表
实体的型
实体的型用其属性名的列表表示
实体的码
超码
能够惟一确定实体集中每个实体的属性集称为该实体集的超码
候选码
真子集都不是超码的极小超码是候选码
主码
主码是指数据库的设计者选中的,用来区分同一实体集中不同实体的候选码
码
“码”表示主码或候选码,而超码是码的超集
实体的属性
实体属性的定义
实体所代表的事物具有的某种特性,每个实体都可以用一组属性来刻画
实体属性的分类
简单属性
简单属性指的是不能划分成更小部分的属性
复合属性
复合属性和简单属性相对应,是可以划分成更小部分的属性
单值属性
单值属性是特定的实体在该属性上只能取单个值的属性
多值属性
多值属性是特定的实体在该属性上可以取多个值的属性
基本属性
基本属性是不能通过其他属性的值推导出来(即它的值必须存储在系统中)的属性
派生属性
派生属性的值可以从其他相关属性或实体计算得到,因此派生属性又称计算属性
实体的参与类型
设R是一个联系,涉及实体集E。实体集E中的实体参与联系 可以是强制的或随意的。如果实体集E中的每个实体都必须参与联系 R, 则称E对联系R的参与是强制的
,或全部参与
否则,E对联系R的参与是随意的
,或部分参与
(2)实体集的基本概念
实体集的定义
实体集是具有相同属性的实体的集合
实体集的值
实体集的值是该实体集中所有实体值的集合
实体集的型
实体集的型用其属性名的列表表示
二、联系
(1)联系的基本概念
联系
联系是多个实体之间的相互关联
联系集
联系集是相同类型联系的集合
联系的形式化定义
设E1, E2, …, En是n(n ∈ \isin ∈ 2)个实体集,它们不必互不相同。联系集R是{(e1, e2, …, en) | e1 ∈ \isin ∈E1, e2 ∈ \isin ∈ E2, …, en ∈ \isin ∈ En}的一个子集,其中(e1, e2, …, en) ∈ \isin ∈ R是一个联系,n是联系的度(元),联系集R的型可以用(E1
, E2, …, En)表示
(2)联系的类型
一对一联系(1:1联系)
如果E1中的每个实体最多与E2中的一个实体相关联,并且E2中的每个实体也最多与E1中的一个实体相关联,则称E1和E2之间的联系为一对一联系(强调最多一个,可以没有)
- 例如,实体集“部门”和“经理”之间的联系“管理”可以是一对一联系。一个部门最多有一个经理,也可以没有;一个经理可能刚刚被提拔,没有到任何部门任职。
一对多联系(1:n联系)
如果E1中的每个实体都可以与E2中任意多个实体相关联,而E2中的每个实体最多与E1中一个实体相关联,则称这种联系为E1到E2的一对多联系(多个强调0个1个或多个)
- 例如,实体集“职工”到实体集“部门”的联系“属于”就可以是多对一联系。一个部门有多个职工,新成立的部门可能没有职工;一个职工属于一个部门,也可能新来的职工没有到任何部门任职。
多对多联系(m:n联系)
如果E1中的每个实体都可以与E2中任意多个实体相关联,并且E2中的每个实体也可以与E1中任意多个实体相关联,则称E1和E2之间联系为多对多的联系
- 例如,学生和课程之间的联系“选修”就是多对多联系。一门课程可以有多个学生,一个学生可以选修多门课程。
(3)联系的属性
联系也可以具有属性这种情况经常出现在多对多联系中,这种属性与参与联系的实体都相关
- 例如,考虑前面提到的实体集Students和Courses之间的联系SC。(s, c) ∈ \isin ∈SC表示学生s选修了课程c。成绩是与联系集SC的特定元组(s, c)相关联的,因此应当将成绩作为SC的属性。
三、实体联系图
(1)实体联系图要素
- 实体:用矩形框表示
- 联系:用菱形框表示
- 属性:用椭圆形框表示
(2)实体的处理
- 实体集:矩形框
- 实体集名写在框内,并用无向边把实体集和它的属性连接起来
(3)联系的处理
处理方法一:
- 联系R是一对一的,则每条无向边旁均用1标记
- 如果联系R是实体集E2, …, Ek到实体集E1的多对一联系,则R 与E1之间的无向边用1标记,其余的无向边用小写字母m, n, p等标记,或都用“*”号标记
- 如果联系R是多对多的,则每条无向边都用小写字母m, n, p等标记,或都用“*”号标记
处理方法二:
- 联系R是一对一的,用有向边标记
- 如果联系R是实体集E2, …, Ek到实体集E1的多对一联系,则R 与E1之间用有向边标记,其余的用无向边标记
- 如果联系R是多对多的,则都用无向边标记
还可以在 E-R 图中标明实体对联系的参与和参与度。如果实体集 的实体全部参与联系则E-R, 之间用双线连接(有向或无向边),否则用单线连接有向或无向边)。
注:
- 同一实体集内部也会存在联系
- 多个实体集之间也会存在联系
(4)属性的处理
- 多值属性:用双实线椭圆
- 简单属性、 单值属性、 基本属性、复合属性:用单实线椭圆
- 派生属性:用虚线椭圆
四、弱实体集
(1)弱实体集和强实体集
弱实体集的定义
如果一个实体集的任何属性集都不足以形成该实体集的码,则称该实体集为弱实体集
强实体集
存在码的实体集称为强实体集
弱实体集和强实体集的关系
- 一个弱实体必须参与标识性联系
- 有的弱实体集还可以与多个标识实体集关联,该弱实体集的码由诸标识实体集的码和弱实体集的分辨符的组合
(2)基本概念
标识实体集
弱实体集必须与另一个称作标识实体集或属主实体集的强实体集相关联才有意义
标识性联系
标识实体集与弱实体集相关联的联系称为标识性联系
分辨符(部分码)
如果一个属性可以惟一确定存在依赖于同一个强实体的弱实体,则称该属性集为弱实体集的分辨符
弱实体的码
弱实体集的标识实体集的码和该弱实体集的分辨符共同形成弱实体集的码
(3)弱实体集的表示
- 弱实体集:用双实线矩形表示
- 标识性联系:用双实线菱形表示
- 分辨符:下划虚线
(4)弱实体集的处理方法
另一种处理弱实体集的方法
把它作为其标识实体集的一个多值复合属性
不好的设计方法
将强实体集的码添加到弱实体集的属性集中,将弱实体集转化成强实体集