基本概念:
如果有一个关系模式R(A1,A2,···,An),X和Y为{A1,A2,···,An}的子集,r是R的任一具体关系,那么对于关系r中的任意一个X值,都只有一个Y值与之对应,则称X函数决定Y或Y函数依赖于X。
基本术语于符号:
1)如果X→Y,但Y不包含于X,则称X→Y是非平凡依赖。
2)如果Y不函数依赖于X,则记作XY。
3)如果X→Y,则称X为决定因子。
4)如果X→Y,并且Y→X,则记作XY。
5)如果X→Y,并且对于X的任意真子集X'都有X'Y,则称Y完全函数依赖于X,记作XY;如果X'→Y成立,则称Y部分函数依赖于X,记作XY。
6)如果 x编辑y,(非平函数依赖,并且y不决定x)、yz,则称z传递函数依赖于x。
7)设k为关系模式R的一个属性或属性组,若满足:
KA1,KA2,...,KAn
则称K为关系模式R的候选键(或候选码)。称包含在候选键中的属性为主属性,不包含在任何候选码中的属性称为非主属性。
Armstrong公理:
1)自反律:若,则X→Y在R上成立。
2)增广律:若X→Y在R上成立,且,则XZ→YZ在R上也成立。
3)传递律:若X→Y和Y→Z在R上成立,则X→Z在R上成立。
Armstrong公理:
1)合并规则:若X→Y和X→Z在R上成立,则X→YZ在R上也成立。
2)分解规则:若X→Y和在R上成立,则X→Z在R上也成立。
3)伪传递规则:若X→Y和YW→Z在R上成立,则XW→Z在R上也成立。
4)复合规则:若X→Y和W→Z在R上成立,则XW→YZ在R上也成立。
函数依赖集的闭包求解方法:
步骤1:初始,=F。
步骤2:对 中的每个函数依赖f,在f上应用自反性和增广性,将结果加入 中;对 中的每一对函数依赖f1和f2,如果f1和f2可以使用传递律结合起来,则将结果加入 中。
步骤3:重复步骤2,知道 不再增大为止。
属性闭包集求解方法:
步骤1:初始,=X。
步骤2:如果F中有某个函数依赖Y→X满足,则。
步骤3:重复步骤2,直到不再增大为止。
候选键求解方法
对于给定的关系模式R(A1,A2,···,An)和函数依赖集F,现将R的属性分为如下四类:
1)L类:仅出现在函数依赖左部的属性。
2)R类:仅出现在函数依赖右部的属性。
3)N类:在函数依赖的左部和右部均不出现的属性。
4)LR类:在函数依赖的左部和右部均出现的属性。
求解步骤:
步骤1:先找L、N类。
步骤2:判断是否等于U。
步骤3:若不等于U则加上LR类。