规范化是通过修改表以减少冗余和矛盾的一系列动作。
关系型数据库定义了3中范式:
第一范式:
- 列仅包含原子值
- 没有重复的组
第二范式:
- 满足第一范式
非部分函数依赖
如果表中一些组合键的(但不是全部)值确定了一个非键列的值,则表包含部分函数依赖。第二范式表是完全函数依赖,意味着组合表中任何一列值改变,将导致非键列的值需要被更新。
书名,作者,作者的顺序,作者的联系方式。其中作者的顺序是完全依赖书名和作者,是完全函数依赖;而作者的联系方式只依赖于作者,是部分函数依赖。
3.第三范式:
- 满足第二范式
- 没有传递依赖
如果一个非键列的值确定了另一个非键列的值,则表中包含传递依赖。在第三范式的表中,非键列相互独立并且只依赖于主键列。