E-R图
E-R图绘制步骤
- 收集信息
- 标识对象:标识数据库要管理的实体。
- 标识每个实体的属性。
- 标识对象之间的关系。
- 标识实体集之间的映射基数(一对一、一对多、多对多)。
E-R图符号
- 实体(n.):长方形
- 属性(n.):椭圆形
- 关系(v.):菱形
关系模式
E-R图向关系模式转化的规则
-
每个实体类型即为一个关系模式,实体的属性即为关系的属性,实体的码即为关系的码。
-
映射基数:
- 1 : 1 :将两个实体转换成的两个关系模式中的任意一个关系的属性中,加入另一个关系的码作为外码,以及联系关系的属性。
- 1 : n :在n端实体转换成的关系模式中,加入1端实体的码作为外码,以及联系关系的属性。
- m : n :将该联系关系转换成一个独立的关系模式:两端实体的码和联系关系的属性即为关系的属性,两端实体码的组合即为关系的码。
-
主码写在最前面,外码写在最后(但在联系关系的属性之前),主码用下划线标识。
关系模式的规范化理论
- 第一范式(1NF):
在同一关系表中,每个属性都不可再分。 - 第二范式(2NF):
表中的每个非主属性都完全依赖于主属性。
(第二范式要求每个表只描述一件事情) - 第三范式(3NF):
表中的非主属性之间不存在依赖关系。
关系模式的表示
- 关系模式的完整表示:R< U , D , Dom , F >
R:关系名
U:关系的属性集合
D:属性集U中属性的数据域
Dom:属性到域的映射
F:属性集U的数据依赖集 - 关系模式的三元组表示:R< U , F >
函数依赖
- 函数依赖:属性集 X 决定另一个属性集 Y 时,称属性集 Y 依赖于该属性集 X 。记作 X → \rightarrow →Y。
- 完全函数依赖:若对于属性集 X 的每一个真子集 X’ ,都有X → \rightarrow →’Y,则成 Y 对 X 完全函数依赖。
- 部分函数依赖:若对于属性集 X 的真子集 X’ ,存在X’ → \rightarrow →Y,则成 Y 对 X 部分函数依赖。
- 传递函数依赖:若属性集X → \rightarrow →Y,Y ↛ \nrightarrow ↛X,Y → \rightarrow →Z,则 Z 对 X 传递函数依赖。
- 逻辑蕴含:设 F 是模式R< U >的函数依赖集,X 和 Y 是属性集 U 的子集,若能从 F 中推出X → \rightarrow →Y,则称 F 逻辑蕴含X → \rightarrow →Y。
闭包
- 在关系模式 R< U , F >中,为 F 所逻辑蕴含的函数依赖的全体叫做 F 的闭包,记作 F+。
- 设有关系模式 R< U , F >,X 是 U 的子集,称所有从 F 推出的函数依赖集 X
→
\rightarrow
→Ai 中 Ai 的属性集为 X 的属性闭包,记作 XF+ 。
即: XF+={ Ai | Ai∈U , X → \rightarrow →Ai ∈F+}
闭包的求法
- 选 X 作为闭包 XF+ 的初值 XF(0)。
- XF(i+1) = XF(i) + 集合 A 。(集合 A 为 F 中发函数依赖Y → \rightarrow →Z,A ⊆ Z,Y ⊆ XF(i) )
- 重复步骤2,直到 XF(i) = XF(i+1),则 XF(i) 即为所求 XF+ 。