跳转至

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): 用于约束最少参与的数量。分为以下两种情况:

  1. 全参与:每个实体都至少参与一次这个联系。用双线表示。
  2. 部分参与:有些实体可以不参与该联系。

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分为以下两种:

  1. disjoint(不相交):一个实体至多属于一个下层实体集
  2. overlapping(重叠):一个实体可同时属于多个下层实体集

按照“一个上层实体是不是至少属于一个下层实体集(纵向关系)”,分为以下两种:

  1. total(完全泛化):上层实体中的每个实体都必须至少属于一个下层实体集
  2. 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:

alt text

alt text

ER图版本2:

alt text

alt text

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