实体关系模型
实体集合 :
具有相同属性的实体的集合,组成实体集的实体称为实体集的外延
属性 :表示实体的一类数据
域:实体属性的取值的集合
简单属性与复合属性:
单值属性不能够再分解为更小的属性,复合属性可以由更多分解的属性组合而成
单值属性与多值属性
单值属性值只能够取一个值
多值属性可以对应一组值,可以对多值属性的个数进行上下限限制
派生属性
可以从其他属性中::计算::得到,称为派生属性,::派生属性不存储,在需要的时候临时进行计算::
联系集合
实体集之间的联系称为参与 :
如果一个实体集中的所有实体都参与了集合,称为实体全部参与联系,否则称实体部分参与联系
-
二元联系集
两个实体关系的联系集合
-
多元联系集
多个实体关系的联系集合
练习集的度
::参与联系集的实体的数量::称为联系集的度
联系集的约束
- 一对一
- 一对多
- 多对多
- 多对一
联系集的主码(A,B)
- 一对一 PRIMARY KEY(A) or PRIMARY KEY(B)
- 一对多 PRIMARY KEY(B) 选择多的B,具有唯一性
- 多对一 PRIMARY KEY(A)选择多的A,具有唯一性
- 多对多 : PRIMARY KEY (A) and PRIMARY KEY(B) 并集表现唯一性,符合主键
ER图
符号映射
- 矩形 : 实体集
- 菱形 : 关系集
- 单线段 : 连接实体集和关系集
- 椭圆 :实体集的属性
- 双椭圆 :多值属性
- 虚椭圆 : 派生属性
- 双矩形 : 弱实体集(依赖于其他实体集)
- 双线 :实体集全部参与关系集当中
- 下划线 :实体的PRIMARY KEY
- 虚下划线 :弱实体集的标识符
- 双菱形 :弱实体集的标示性联系
example :
上图为弱实体集 与 标识性联系 的example
以上为实体集customer的ER图形式 :
customer_id : 下划线 ,为该实体集的PRIMARY KEY
phone_number : 双椭圆,多值属性,可以有多个电话号码
age : 派生属性 ,可以由 date_of_birth 计算得到,并不需要储存
name、address : 都是复合属性
![在这里插入图以上为 ER图
实体集customer 与 account 与 联系集depositor连接, 联系集depositor中有着customer与account的PRIMARY KEY,同时该联系集也有自己的属性:access_date ,表示customer最后一次登录account的时间
ER图中 约束的表现方式
一对多 :带箭头的连线,多指向一 ,如 customer <——depositor——account表示 一个customer对应多个account
多对多 :用线段表示
完全参与 :双线连接 : 实体与联系之间的连线使用双线来表示
标识符表示约束 : 例如下图表示 customer与loan是一对多的关系
ER图扩展
-
specialization(is a) :由**超类创建子类的过程 **自顶向下 person is a customer
-
generalization : 由子类创建超类的过程 泛化 自底向上
实体集customer与实体集employee继承自person
person为超类 customer和employee为**子类*,特化与泛化是同一实质的不同方向
-
Aggregation (has a) : 聚集
将联系集看做是高级实体集 (联系与联系)
对 *关系 * 的理解
-
关系的属性
关系的属性一般出现在多对多的二元或三元关系上,一般一对多或一对一的关系不会放属性,因为这个时候关系的属性都可以放到一边的实体上,如下图:
Department与Employee之间是 一对一的关系, 在建模中我们可能用start_date属性来表示 员工进入部门的时间,这个关系可以放在is managed by 关系上,但也可以直接放在 Department或Employee实体上
-
关系中实体的存在性
关系中实体的存在可以是强制的或者可选的,如果关系中的某一端实体必须存在,则该实体是强制的,否则是可选的,强制存在则最小连通数为1,可选最小连通数为0(用○来表示)
-
泛化所表示的两种 重要约束
- 重叠性约束 : 各个子类型之间是排他的,即一个子类型不可能是另一个子类型
- 完备性约束 : 表示所有子类型在当前系统中是否能完全覆盖超类型
-
聚合中,子类型与超类型之间没有继承关系
-
三元关系
三元关系中连通数的确定方法:
- 以三元关系中的一个实体作为中心,假设另两个实体都只有一个实例
- 如果中心实体只有一个实例能与另两个实体的一个实例进行关联,则中心实体的联通数为1
- 如果中心实体有多个实例能够与另两个实体实例进行关联,则中心实体的联通数为多
三元关系的属性 属性值由三个实体的键的组合唯一确定