Lec5 ER图
阅读信息
1318 字 10 分钟 本页总访问量 加载中...
实体与联系
概念与定义
几个概念:
- 实体(entity): 一个现实世界中存在的、能和其他对象区分开的对象。实体集(entity set)是有相同属性的实体的集合。esp.,在数据表中,每一行是一个entity,每一列是一个attribute,整个表是一个entity set。
- 联系(relationship): 若干实体之间的关联。联系集(relationship set)是同类型联系的集合。
- 属性(attribute): 描述实体或联系的某些性质。可以分为以下几种(只是作为分析问题,SQL中一定为原子属性):
- 简单属性(原子性的属性)、复合属性(可继续拆分)
- 单值属性(一个实体对应一个值)、多值属性(一个实体可对应多个值)
-
基属性、派生属性(能由基属性推导得出)
-
联系的度(degree): 参与一个联系集的实体集的个数。esp.,度为3时为三元联系,表示“A在不同的B下有不同的C”这类关系。
映射基数和参与约束分别表示参与数量的上限和下限:
映射基数(mapping cardinality): 指一个实体可以和另外多少个实体相联系的数量上限。分为一对一、一对多、多对一、多对多这四种情况。
参与约束(participation): 用于约束最少参与的数量。分为以下两种情况:
- 全参与:每个实体都至少参与一次这个联系。用双线表示。
- 部分参与:有些实体可以不参与该联系。
Q:上述概念和key有什么联系?
cardinality与key的关系:一对多时,“多”的一方为super key;多对多时,super key为两者主键相结合。
ER图的表示
Cardinality和participation:
- 基数约束:箭头表示“一”,直线表示“多”
- 参与约束:双线表示“全参与”,单线表示“部分参与”
- 或联合表达:用
A..B,其中A表示最少、B表示最多。B可用用*表示上限不限。
弱实体集
弱实体集(weak entity set): 没有super key的实体集。即它不能只靠自己的属性唯一标识自己,而要依靠其他实体集(表)。
弱实体集的存在依赖于一个强实体集,这个强实体集叫属主实体集(owner entity set)或标识实体集(identifying entity set)。弱实体集和其属主的联系称为标识性联系(identifying relationship)。
分辨符(discriminator)/部分码(partial key): 在弱实体集中,某些属性可用于在同一个强实体集中区分不同的弱实体集,这些属性集称为分辨符或部分码。
Q:弱实体集的super key是什么?
弱实体集的super key = 强实体集的super key + 弱实体集自身的discriminator。
扩展ER特性
特殊化与泛化
特殊化(specialization): 从一个“大类”向下细分成更具体的“小类”。在ER图中,用ISA的倒三角形表示,三角形上面是上层实体集,下面连接各个下层实体集,三角形旁写约束。
按照“一个上层实体能不能同时属于多个下层实体集(横向关系)”,specialization分为以下两种:
- disjoint(不相交):一个实体至多属于一个下层实体集
- overlapping(重叠):一个实体可同时属于多个下层实体集
按照“一个上层实体是不是至少属于一个下层实体集(纵向关系)”,分为以下两种:
- total(完全泛化):上层实体中的每个实体都必须至少属于一个下层实体集
- partial(部分泛化):上层实体中的实体,不一定必须属于某个下层实体集
泛化(generalization): 将若干具有共同特征的实体集合并成一个更高层实体集
聚合
聚合(aggregation): 允许将一个联系的整体作为一个更高层的对象,去参加新的联系。
ER图
| 类型 | 图形 |
|---|---|
| 实体集 | 矩形 |
| 联系集 | 菱形 |
| 属性 | 椭圆 |
| 多值属性 | 双椭圆 |
| 派生属性 | 虚线椭圆 |
| 复合属性 | 分叉结构的椭圆 |
| 联系上的属性 | 椭圆连在菱形上 |
| 参与/基数 | 连接线 |
| 全参与 | 双线 |
| 部分参与 | 单线 |
| 一 | 箭头 |
| 多 | 直线 |
| 主码 | 下划线 |
| 分辨符 | 虚线下划线 |
实体集的表示
老版(?)ER图中,方框表示表,圆形表示属性(实下划线表示主键),菱形连接不同表、表示关系。Recursive relationship set中,在关系的箭头上标角色的名字。关系中的“一”画成箭头,全参与画成双线(或用x..x形式表示,第一个x表示出现次数下届,第二个x表示上界,*表示若干)。
三元关系:P在不同A下有不同的B。
弱实体集(weak entity set):所有属性的组合都不能作为super key,必须和另一实体结合才能唯一确定,弱实体集的属性成为部分码(partitial key)。自身有super key的成为强实体集,在ER图中用虚下划线表示。若强实体集和弱实体集联系,一定是一(强)对多(弱)关系。具体用table表示时,必须和属主实体集中的主键合并成一张表,不用另外用一张表表示relationship。
泛化ER图:一种实体集下细分,分为完全泛化和部分泛化,细分的子集分为disjoint和overlapping。
ER图版本1:


ER图版本2:


UML(Unified Modeling Language,统一建模语言):一种标准化的建模语言,用于描述软件系统的结构和行为,也是一种ER图的表现形式。