5.1,问题的提出
五元组R(U,D,dom,F)的定义,重点讨论三元组R(U,F)。
常见的三个模式设计毛病:1,插入异常;2,删除异常;3,大量冗余
5.2,规范化
5.2.1,函数依赖
函数依赖的定义。在r中不存在X值相等而Y值不相等的两个元组。
非平凡函数依赖和平凡函数依赖的定义。X->Y但是Y不属于X,不平凡的函数依赖。X->Y且Y属于X,频繁的函数依赖。
完全函数依赖和部分函数依赖的定义。X->Y,且X的任意真子集都不能->Y,则是完全函数依赖。
传递函数依赖(间接函数依赖)。X->Y,Y不->X,Y->Z,则X间接->Z。
5.2.2,码
候选码。若K完全决定F,则K为候选码。
主码。候选码中选一个。
主属性。候选码中的每一个属性均为主属性。
全码(没有任何候选码所以只能将整个属性组作为码,称为全码)。
外码。在本关系中属于非主属性,但是在其他某一关系中属于主属性。
5.2.3,范式
范式是什么?
5.2.4,2NF
什么是符合第二范式2NF?关系符合1NF,且所有非主属性完全依赖于码。
不符合第二范式会带来一些问题,解决方案就是通过各种方式让其符合第二范式(比如拆表)。
5.2.5,3NF
什么是符合3NF?所有非主属性既不是部分依赖于码,又不是传递依赖于码。
5.2.6,BCNF
什么是符合BCNF?每一个决定因素都包含码,而不是被码包含。BCNF是对3NF的强化,即BCNF必为3NF,但是3NF不一定是BCNF。
5.2.7,多值依赖
什么是多值依赖?对于R(U,F),有X,Y,Z满足Z=U-X-Y,对任意一对(x,z),有一组y值,这组值仅仅取决于x的取值而于z无关。记为X->->Y。说简单一些,只要X不变,无论Z怎么变,Y都是一组特定的值。当X-->Y,且Z=空集时,成为平凡的多值依赖。
多值依赖的六大性质:
1,对称性,若X-->Y,则必有X-->Z(Z=U-X-Y);
2,传递性,X-->Y,X-->Z,X-->Z-Y;
3,函数依赖是多值依赖的特殊情况,即函数依赖是一种多值依赖;
4,X-->Y,X-->Z,则X-->Y并Z;
5,X-->Y,X-->Z,则X-->Y交Z;
6,X-->Y,X-->Z,则X-->Y-Z,X-->Z-Y;
多值依赖与函数依赖的两大区别:
1,多值依赖大范围成立,小范围依然成立,反之不然;而函数依赖不在乎范围。
2,X->Y,则X->Y'成立;X-->Y,X-->Y'不一定成立。(Y'属于Y)。
5.2.8,4NF
什么是符合4NF?对于R的每个非平凡多值依赖X-->Y,X都含有码。也就是说要使其满足4NF,要么X含有码,要么全是平凡多值依赖。
5.3,数据依赖的公理系统
F逻辑蕴含X->Y是什么意思?对于一个R(U,F),如果有X->Y,则称F逻辑蕴含X->Y。
三条定律:
三条定律推论出的三条规则:
闭包算法:
闭包等价的充要条件:
最小依赖集的定义:
极小化处理的三步算法:
网友评论