v函数依赖数据库
v平凡函数依赖与非平凡函数依赖函数
在关系SC(Sno, Cno, Grade)中,spa
非平凡函数依赖: (Sno, Cno) → Gradeblog
平凡函数依赖: (Sno, Cno) → Sno class
(Sno, Cno) → Cnov彻底函数依赖与部分函数依赖date
v传递函数依赖im
在R(U)中,若是X→Y,(Y 属于X) ,Y→X Y→Z, 则称Z对X传递函数依赖。d3
记为:X → Z数据
设K为R<U,F>中的属性或属性组合。若K U, 则K称为R的侯选码(Candidate Key)规范化
第一范式(1NF)
一个关系模式R的全部属性都是不可分的基本数据项
第一范式是对关系模式的最起码的要求。不知足第一范式的数据库模式不能称为关系数据库
第二范式(2NF)
若R∈1NF,且每个非主属性彻底函数依赖于码,则R∈2NF。
第三范式(3NF)
若R∈3NF,则每个非主属性既不部分依赖于码也不传递依赖于码。
BC范式(BCNF)(重点看例3)
若R∈BCNF
全部非主属性对每个码都是彻底函数依赖
全部的主属性对每个不包含它的码,也是彻底函数依赖
没有任何属性彻底函数依赖于非码的任何一组属性
每个决定属性因素都包含码
例题:
例1:关系模式S(Sno,Sname,Sdept,Sage)
假定S有两个码Sno,Sname
S∈3NF。
S ∈ BCNF
例2:关系模式SJP(S,J,P)
n 函数依赖:(S,J)→P;(J,P)→S
n (S,J)与(J,P)均可以做为候选码,属性相交
n SJP∈3NF,
n SJP∈BCNF
例3:在关系模式STJ(S,T,C)中,S表示学生,T表示教师,C表示课程。
函数依赖:
(S,C)→T,(S,T)→C,T→C
(S,C)和(S,T)都是候选码
v STJ∈3NF
没有任何非主属性对码传递依赖或部分依赖
v STJ不属于BCNF
T是决定因素,T不包含码
第四范式(4NF)
第五范式(5NF)
例:学校中某一门课程由多个教师讲授,他们使用相同的一套参考书。每一个教员能够讲授多门课程,每种参考书能够供多门课程使用。
解:
非规范化关系:
Teaching∈BCNF
Teaching具备惟一候选码(C,T,B), 即全码
(1)多值依赖具备对称性(若X→→Y,则X→→Z,其中Z=U-X-Y)
(2)多值依赖具备传递性(若X→→Y,Y→→Z, 则X→→Z –Y)
(3)函数依赖是多值依赖的特殊状况(若X→Y,则X→→Y)
(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
综合的例子:
学生选课(学号,姓名,课程号,成绩)
属性不可分,是1NF;存在非主属性对键码的 部分依赖(学号,课程号→姓名),不是2NF
学生(学号,姓名,系别,系主任)
键码为单属性,不存在部分依赖,是2NF;
存在非主属性对键码的传递依赖(学号→系别;系别→系主任;学号→系主任),不是3NF
学生(学号,姓名,年龄)
非主属性(姓名,年龄)对键码不存在部分依赖和传递依赖,是3NF;
主属性(学号)对键码也不存在部分依赖和传递依赖,是BCNF。