#第六章.关系数据理论
1. 第一范式(1NF):每一个分量必须是不可分的数据项
2. 数据依赖:一个关系内部属性和属性之间的约束关系
最重要的是函数依赖和多值依赖
3. 一个好的模式应当不会发生插入异常、删除异常、更新异常。同时数据冗余尽可能少。
- 插入异常:应该插入的数据未被插入
- 删除异常:不该删除的数据被删除
- 更新异常:更新时系统花费大量代价维护数据完整性
- 数据冗余:浪费存储空间、修改麻烦、潜在的数据不一致性
4. 函数依赖
某个属性集决定另一个属性集时,称另一属性集依赖于该属性集。
设R(U)集U上的关系模式,x、y是U的子集。
- 非平凡的函数依赖:x→y,但y⊄x,则称x→y是非平凡的函数依赖
- 平凡的函数依赖:x→y,但y⊆x,则称x→y是平凡的函数依赖
- 完全函数依赖:如果x→y,并且对于x的任何一个真子集x0,都有x0 -/→ y,则称y对x完全函数依赖
- 部分函数依赖:y不完全依赖于x,称y对x部分函数依赖
- 传递函数依赖:x→y,y→z, 且y⊄x,z⊄y,称z对x传递函数依赖
5. 码概念的补充
- 之前的一些概念
- 超码:剩余属性组部分函数依赖于某一属性组,则称这一属性组为超码。候选码是最小的超码
- 外码:一个关系模式的属性/属性组不是这个关系的主码/候选码,但却是另一个关系模式的主码/候选码,则称这一属性/属性组为外码
6. 规范化:一个低一级范式的关系模式通过模式分解,转换为若干个高一级范式的关系模式,这种过程叫做规范化
- 规范化的基本思想:逐步消除数据依赖中的不合适部分
- 模式设计原则:一事一地
- 规范化的实质:概念的单一化
7. 2NF:若R∈1NF,且消除了非主属性对主属性的部分函数依赖,则R∈2NF
8. 3NF:若R∈2NF,且消除了非主属性对主属性的传递函数依赖,则R∈3NF
9. BCNF:若R∈3NF,且所有依赖关系的决定因素都是主属性,则R∈BCNF
10. 多值依赖:一个属性的值决定了其他属性的一组取值。
例子:教师的教工号决定了一组讲授课程的课程编号
11. 4NF:若R∈BCNF,且消除非平凡且非函数依赖的多值依赖,则R∈4NF
12. 模式的分解:不唯一
模式的分解原则:具有无损连接性、保持函数依赖