第6章 关系数据理论
针对具体问题,如何构造一个适合它的数据模式
数据库逻辑设计的工具--关系数据库的规范化理论
数据依赖是一个关系内部属性与属性之间的一种约束关系,这种约束关系是通过属性间值得相等与否体现出来的数据间相关联系。它是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的的体现。
最重要的两类数据依赖是函数依赖和多值依赖
存在问题:
- 数据冗余 (浪费大量的存储空间)
- 更新异常(Update Anomalies) (数据冗余 ,更新数据时,维护数据完整性代价大。)
- 插入异常(Insertion Anomalies)
- 删除异常(Deletion Anomalies)
一个好的模式应当不会发生插入异常、删除异常和更新异常,数据冗余应尽可能少
6.2 规范化
6.2.1 函数依赖
函数依赖和别的数据依赖一样是语义范畴的概念,只能根据语义来确定一个函数依赖
注意:函数依赖不是指关系模式的某个或某些关系满足的约束条件,而是指关系模式的一切关系均要满足的约束条件
2.平凡函数依赖与非平凡函数依赖
3.完全函数依赖与部分函数依赖
4 传递函数依赖
6.2.2 码
码是关系模式中的一个重要概念
主属性与非主属性
包含在任何一个候选码中的属性,称为主属性
不包含在任何码中的属性称为非主属性或非码属性
全码:整个属性组是码,称为全码
具体可参考https://blog.csdn.net/qq_38900441/article/details/104616918
6.2.3 范式
范式是符合某一种级别的关系模式的集合
关系数据库中的关系必须满足一定的要求,满足不同程度要求的为不同范式
每一个分量必须是不可分的数据项,则称为第一范式
6.2.4 第二范式
6.2.5 3NF
6.2.6 BCNF
如果关系模式R属于BCNF,必定有R属于3NF
如果R属于3NF,且R只有一个候选码,则R必属于BCNF。
6.2.7 多值依赖
- 对称性
- 传递性
- 函数依赖可以看作是多值依赖的特殊情况
6.2.8 4NF
4NF就是限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖
6.2.9
规范化小结
规范化的基本思想是逐步消除数据以来中不合适的部分,按照"一事一地"的模式设计原则
6.3 数据依赖的公理系统
闭包:R<U, F>中为F逻辑蕴涵的函数依赖的全体叫做F的闭包(closure)F+。
Armstrong公理系统是有效的、完备的。这里的有效性指的是:根据该公理由F出发推导出来的每个函数依赖一定都在F+中;完备性指的是:F+中的每一个函数依赖,必定可以由F通过该公理推导出来。
书上191页
6.4 模式的分解
- 分解具有无损连接性
- 分解要保持函数依赖
- 分解机要保持函数依赖,又要具有无损连接性
习题:略