
FD:函数依赖1. FD的定义定义:R(U),X、Y为属性集,t1、t2为元组,若t1[X]=t2[X],则t1[Y]=t2[Y],称X函数决定Y函数或Y依赖于X,记作X→Y。例3-22 对实例3-21“学生选课”关系模式R,如果规定每个学生只能有一个姓名,每个课程号只能对应一门课程,则有以下FD:sno→snamecno→cname由于每个学生每选修一门课程只能有一个成绩,则有以下FD:(sno,cno)→score当然,还有以下FD:sno→sexsno→(sname,sex)例3-23 设关系模式R(ABCD),假设A与B为一对多联系,而C与D为一对一联系,试写出相应的FD。由于A与B为一对多联系,即每个A值有多个B值与之对应,即B值决定A值,可写出FD:B→A。同理,由于C与D为一对一联系,可写出FD:D→C和C→D。注意一对一、一对多联系(如学号和性别为一对多联系)的FD。2. FD和关键码的关系定义:R(U),若X→U,则称X是R的超键。如果X任一子集X1,有X1→U不成立,则称X是R的候选键。例3-24 对例3-22的关系模式R进行分析,有以下FD:(sno,cno)→(sno,sname,sex,cno,cname,score)即(sno,cno)为关系模式R(U)的候选键。虽然有以下FD:(sno,sname,cno)→(sno,sname,sex,cno,cname,score)但(sno,sname,cno)只是关系模式R(U)的超键而非候选键,因为(sno,sname,cno)包含多余的属性sname。结论:·若X是R的候选键,则对于任意Y,均有X→Y。eg. “学生选课”。 ·若X→Y,而X非超键,则R一定有冗余。eg. 例3-21,有cno→cname。 ·函数依赖表示数据的完整性约束。3. FD推理规则定义:若X→Y,且Y X,则称X→Y是“平凡的FD”,反之称为“非平凡的FD”。结论:平凡的FD是不可能不满足的FD(如X→X),要研究的是非平凡的FD。规则:·自含律 X→X。 ·自反律 若Y X,则X→Y。 ·增广律 若X→Y,则XZ→YZ。 ·传递律 若X→Y且WY→Z,则XW→Z。 ·分解规则 若X→YZ,则X→Y且X→Z。 ·合并规则 若X→Y且X→Z,则X→YZ。 ·复合规则 若X→Y且Z→W,则XZ→YW。
