消除决定属性集非码的非平凡函数依赖
1NF
消除非主属性对码的部分函数依赖
2NF
消除非主属性对码的传递函数依赖
3NF
消除主属性对码的部分和传递函数依赖
BCNF
消除非平凡且非函数依赖的多值依赖
4NF
消除不是由候选码所蕴含的连接依赖
5NF
以上三步也可以合并为一步:对原关系进行投影,消除决定属性不是候选码的任何函数依赖。
④对BCNF关系进行投影,消除原关系中非平凡且非函数依赖的多值依赖,从而产生一组4NF关系。
⑤对4NF关系进行投影,消除原关系中不是由候选码所蕴含的连接依赖,即可得到一组5NF关系。
5NF是最终范式。
1NF/2NF/3NF存在的问题: ①插入异常 ②删除异常 ③数据冗余度大 ④修改复杂
BCNF问题:①数据冗余度大 ②增加操作复杂 ③删除操作复杂 ④修改操作复杂
关系模式分解的三个定义(判断对关系模式的一个分解是否与原关系模式等价可以有三种不同的标准):
(1)分解具有"无损连接性"。
(2)分解要"保持函数依赖"。
(3)分解既要"保持函数依赖",又要具有"无损连接性"。
规范化理论提供了一套完整的模式分解算法,按照这套算法可以做到:
①若要求分解具有无损连接性,那么模式分解一定能够达到4NF。
②若要求分解保持函数依赖,那么模式分解一定能够达到3NF,但不一定能够达到BCNF。
③若要求分解既具有无损连接性,又保持函数依赖,则模式分解一定能够达到3NF,但不一定能够达到BCNF
BCNF的关系模式都具有如下3个性质:
①所有非主属性都完全函数依赖于每个候选码。
②所有主属性都完全函数依赖于每个不包含它的候选码。
③没有任何属性完全函数依赖于非码的任何一组属性。