9.2.1 函数依赖
基本概念:X和Y在数量上的对应关系,即给定一个X值,都会有一个Y值与之对应。可以说,X函数决定Y,或Y函数依赖于X,表示为X->Y
例如:对学生关系模式student(sno,sname,sdept,sage)有以下函数依赖关系:
sno->sname,sno->sdept,sno->sage
对学生选课关系模式sc(sno.cno,grade)有以下函数依赖关系:
(sno,cno)->grade
9.2.2 术语和符号
设有关系模式R(A1,A2,A3,An),X和Y均为关系模式的子集,则:
(1)若X->Y,但Y不包含于X,则称X->Y是非平凡的函数依赖。
(2)若Y不函数依赖于X
(3)如果XY,则称X为决定因子
(4)如果XY,并且Y
X,则记作X
Y
(5)如果 XY,并且对于XX的一个任意一个真子集X'都有X不依赖于Y,则称Y完全函数依赖于X,如果X'
Y成立,则称Y部分函数依赖于X。
1、Armstrong公理
(1)自反律
(2)增广律
(3)传递律
2、Armstrong公理推论
(1)合并规则
(2)分解规则
(3)伪传递规则
(4)复合规则
9.2.4 闭包及候选键求解方法
候选键为全部属性的表称为全键表。
1、函数依赖集的闭包
在关系模式R(U,F)中,U是R的全集,F是R上的一组函数依赖。所有被F逻辑蕴含的函数依赖的全集称为F的闭包,记作F+。
2、属性集闭包
步骤1:X+=X
步骤2:如果F中有某个函数依赖Y->Z满足Y包含X+,则X+Z
步骤3:重复步骤2,直到X+不在增大为止
3、候选键的求解方法
L类:仅出现在函数依赖左部的属性
R类:仅出现在函数依赖右部的属性
N类:在函数依赖左部和右部均不出现的属性
LR类:在函数依赖左部和右部均出现的属性
(1)若X是L类属性,则X一定包含在关系模式R的任意一个候选键中;若X+包含了R的全部属性,则X为关系模式R的唯一候选键。
(2)若X是R类属性,则X不包含在关系模式R的任何一个候选键中。
(3)若X是N类属性,则X一定包含在关系模式R的任何一个候选键中。
(4)若X是LR类属性,则X可能包含在关系模式R的某个候选键中。