9.2.1 基本概念
定义:
如果有一个关系模式R(A1,A2,...,An),X和Y为{A1,A2,...,An} 的子集,r为R的任一具体关系,t1、t2是r中的任意两个元组。如果由t1[X]=t2[ ]可以推导出t1[Y]=t2[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 一些术语和符号
9.2.3 函数依赖的推理规则
1.Arnstrong 公理
(1)自反律(reflexivity)。
若Y⊆ X⊆ U,则X在R上成立。即一组属性函数决定它的所有子集例如,对关系模式SC(Sno,Sname,Cno,Credit,Grade),有:(Sno,Cno)→Cno和(Sno,Cno)一Sno(2)增广律(augmentation)。
若X→Y在R上成立,且Z包含于U,则XZ→YZ在R上也成立。(3)传递律(transitivity)。
若X→Y和Y→Z在R上成立,则X→Z在R上也成立。
2. Armstrong公理推论
(1)合并规则(union rule)。
若X→Y和X→Z在R上成立,则X→YZ在R上也成立。
例如,对关系模式 Student(Sno,Sname,Sdept,Sage),有Sno→(Sname,Sdept),Sno→ Sage,则有Sno→(Sname,Sdept,Sage)成立。
(2)分解规则(decomposition rule)。
若X→Y和Z⊆ Y在R上成立,则X→Z在R上也成立。从合并规则和分解规则可得到如下重要结如果A…A,是关系模式R的属性集,那么X→A,…A。成立的充分必要条件是X→A(i=1,2.…,n)成立。
(3)伪传递规则(pseudo-transitivity rule)。
若 X→Y和YW→Z在R上成立,则XW→Z在R上也成立。(4)复合规则(composition rule)。
若X→Y和W→Z在R上成立,则 XW→YZ 在R上也成立。例如,对关系模式 SC(Sno,Sname,Cno,Credit,Grade),有: Sno→Sname和Cno→Credit成立则有:(Sno,Cno)→(Sname,Credit)
9.2.4 闭包及候选键求解方法
候选键的求解方法
对于给定的关系模式R(A1,A2,...,An)和函数依赖集F,将关系模式R的属性分为如下四类:
(1)L类:仅出现在函数依赖的左边的属性。
(2)R类:仅出现在函数依赖的右边的属性(非主属性)。
(3)N类:函数依赖左右边均不出现。
(4)LR类:函数依赖左右边均出现。
对R中的属性X,有以下结论:
(1)若X是L类属性,则X一定包含在关系模式R的任何一个候选键中;若X+包含了全部属性,则X为关系模式R的唯一候选键。
(2)若X是R类,则X不包含在关系模式R的任何一个候选键之中。
(3)若X是N类属性,则X一定包含在关系模式R的任何一个候选键之中。
(4)若X是LR类属性,则X可能包含在关系模式R的某个候选键之中。
判断候选键的步骤:
1.寻找L、N类的X属性;
2.判断(L,N)+是否等于U;
3.是,则为候选键,否则寻找LR类的X属性;
4.判断(L,N,LR)+是否等于U;
5.确定候选键。
9.2.5 极小函数依赖集