06.关系数据库理论
问题的提出
- 关系模式的表示
- 关系模式由五部分组成, 是一个五元组:
R(U, D, DOM, F)
- R: 关系名
- U: 一组属性
- D: 属性组U中的属性所来自的域
- DOM: 属性到域的映射
- F: 属性组U上的一组数据依赖
- 关系模式由五部分组成, 是一个五元组:
- 数据依赖
- 一个关系内部属性之间的一种约束关系
- 函数依赖 (FD)
- 多值依赖 (MVD)
- 函数依赖
x->y 表示为 y函数依赖于x
- 函数依赖存在的问题
- 数据冗余
- 更新异常
- 插入异常
- 删除异常
- 函数依赖的解决方式
- 把单一的模式分成多个关系模式
- 分离不合适的函数依赖
规范化
函数依赖
-
x->y 表示为 x函数确定y 或 y函数依赖于x
-
非平凡函数依赖 平凡函数依赖
-
完全函数依赖(F) 部分函数依赖(P)
-
传递函数依赖
码 (关键字/键)
-
候选码
- 主属性
- 非属性
- 全码: 属性组的所有属性都是码
-
超码
-
主码
-
外码
范式
-
符合某一种级别的关系模式的集合
2NF
-
消除非主属性对码的部分函数依赖
-
每一个非主属性都完全函数依赖于任何一个候选码
-
不属于2NF, 会产生
- 插入异常
- 删除异常
- 修改复杂
-
解决方法: 用投影分解把关系模式分成多个关系模式
3NF
-
消除非主属性对码的传递函数依赖
BCNF
-
消除主属性对码的部分和传递函数依赖
-
是修正的第三范式
-
函数依赖左边必须是码
-
性质
- 所有非主属性都完全函数依赖于每个候选码
- 所有主属性都完全函数依赖于每个不包含它的候选码
- 没有任何属性完全函数依赖于非码的任何一组属性
-
如果一个关系数据库中的所有关系模式都属于BCNF, 那么在函数依赖范畴内, 它已实现了模式的彻底分解
多值依赖**
-
平凡多值依赖
-
非平凡多值依赖
-
性质
- 有对称性
- 有传递性
- 函数依赖是多值依赖的特殊情况
-
多值依赖与函数依赖的区别
-
多值依赖的有效性与属性集的范围有关
-
4NF
-
消除非平凡且非函数依赖的多值依赖