依赖的分类
传递依赖与直接依赖如何区分?
- 传递依赖: 借助传递规则、经过中间属性组传导而成立的依赖;
- 直接依赖: 非传递的依赖;
- 例子: 且 时, 由 得到的是传递依赖;
部分依赖与完全依赖如何区分?
- 部分依赖: 成立, 且存在 的真子集也能函数决定 ;
- 完全依赖: 成立, 且 的任一真子集都不能函数决定 ;
- 直觉: 部分依赖说明决定属性集里有多余的属性, 完全依赖说明每个属性都不可省;
依赖分类对应哪些范式要求?
| 范式 | 要消除的依赖 |
|---|---|
| 2NF | 部分函数依赖 |
| 3NF | 传递依赖 |
| 4NF | 多值依赖 |
- 说明: 每一级范式都针对上一级遗留的依赖类型继续分解, 详见 范式概览;
(source: 020-关系数据库设计理论.md §函数依赖/§传递依赖和直接依赖/§部分依赖/§完全依赖)