互联网数据库问答资料第四章
编辑整理:浙江自考网 发表时间:2018-05-23 【大 中 小】
§4
数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系,是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。现在人们已经提出了许多种类型的数据依赖,其中最重要的是函数依赖和多值依赖。
关系模式规范化时一般应遵循以下原则:
(1)关系模式进行无损连接分解。
(2)合理选择规范化程度。
(3)正确性与可实现性原则。
关系模式规范化的基本步骤如图所示。
①对1NF关系进行投影,消除原关系中非主属性对码的函数依赖,将1NF关系转换为若干个2NF关系。
②对2NF关系进行投影,消除原关系中非主属性对码的传递函数依赖,从而产生一组3NF关系。
③对3NF关系进行投影,消除原关系中主属性对码的部分函数依赖和传递函数依赖(也就是说,使决定属性都成为投影的候选码),得到一组BCNF关系。
消除决定属性集非码的非平凡函数依赖
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个性质:
①所有非主属性都完全函数依赖于每个候选码。
②所有主属性都完全函数依赖于每个不包含它的候选码。
③没有任何属性完全函数依赖于非码的任何一组属性。
浙江自考网声明:
1、由于各方面情况的调整与变化,本网提供的考试信息仅供参考,考试信息以省考试院及院校官方发布的信息为准。
2、本网信息来源为其他媒体的稿件转载,免费转载出于非商业性学习目的,版权归原作者所有,如有内容与版权问题等请与本站联系。