函数依赖公理体系
• 3、候选键的一般求解法 • ⑥ 在剩余的属性中依次取两个属性、三个
属性,…,将其记为集合B,并求(XB)F+ :若(XB)F+包含了R的全部属性,且自身 不包含已求出的候选键,则XB为R的一个 候选键; • ⑦ 重复⑥,直到Y中的属性按⑥的组合依 次取完为止; • ⑧ 输出候选键,算法结束。
2020/6/3
2020/6/3
1、函数依赖集的等价与覆盖
• 定义5.5 • 设F和G是两个函数依赖集,如果F+=
G+,则称F和G等价。如果F和G等价,则 称F覆盖G,同时也称G覆盖F。
2020/6/3
定理
• 定理5.7 F+=G+的充要条件是FG+和 GF+。
所 有
F
F+= G+
X→Y G+
X→Y能否Y由GX根G据+ ?公理导出?
2020/6/3
三、最小函数依赖集
• 一个函数依赖集F的闭包F+通常包含 很多函数依赖,有些函数依赖是无意义的 ,如平凡的函数依赖,还有一些是可以推 导出的,即无关的函数依赖。如果将每一 个函数依赖看作是对关系的一个约束,要 检查F+中的每一个函数依赖对应的约束, 显然是一件很繁重的任务。如果能找出一 个与F等价的、包含较少数目函数依赖的 函数依赖集G,则可以简化此工作。最小 函数依赖集的概念由此而提出。
② F22=
ABC , CA , BCD , ACDB , DE , DG , BEC , CGD,CEG
③ F3=
2020/6/3
ABC , CA , BCD, CDB , DE , DG , BEC , CGD , CEG
3、举例(续四)
• 例5.5:求函数依赖集F的最小函数依赖集
• 法2:
① F1=
必为R的唯一候选键; • (3)若X是R类属性,则X不是任一候选键的成员; • (4)若X是N类属性,则X必包含在R的某一候选键中; • (5)若X是R的N类属性和L类属性组成的属性集,且X
+包含了R的全部属性,则X是R的唯一候选键。
2020/6/3
四、候选键的求解方法
• 3、候选键的一般求解方法 • ① 将所有属性分为L、R、N和LR四类,
• 1,…,n)均成立。
作用:将一个FD分解成若干个右边是单属性 的FD。用于确定关系的主键。
2020/6/3
二、X关于F的闭包及其计算
• 例:已知关系模式R(A,B,C),其函数依赖 集为F={A→B,B→C},求函数依赖集F的 闭包F 。 +
A→ , AB→ , AC→ , ABC→ , B→ , C→ A→ A, AB→ A, AC→ A, ABC→ A, B→ B, C→ C A→ B, AB→ B, AC→ B, ABC→ B, B→ C,
2020/6/3
1、X关于F的闭包
• 设 有 关 系 模 式 R(U,F) 和 属 性 集
U={A1,A2,…,An}的子集X。则称所有用阿 姆斯特朗公理从F推导出的函数依赖X→Ai 的属性Ai组成的集合称为X关于F的闭包, 记为XF+,通常简记为X+。即
•
XF+={Ai|用公理从F推出的X→Ai}
Armstrong公理的推论 分解规则:若XY,且ZY,则XZ
2020/6/3
求解方法(续一)
• (2)去掉F中冗余的函数依赖 • 对于F中任一FD:XY • ① G = F-{XY}; • ② 求X关于G的闭包XG+; • ③ 看XG+是否包含Y。如果XG+包含Y,
则在G中逻辑蕴涵XY,说明XY是多余 的函数依赖,所以F=G;如果X+不包含Y ,则保留XY。
性; • ② R类:仅出现在F的函数依赖右部的属
性; • ③ N类:在F的FD左右两边均未出现的属
性; • ④ 2020/6/3 LR类:在F的FD左右两边均出现的属
四、候选键的求解方法
• 2、快速求解候选键的一个充分条件
• (1)若X是L类属性,则X必为R的某一候选键的成员; • (2)若X是L类属性,且X+包含了R的全部属性,则X
2、定理5.1
• Armstrong公理是正确的。 • 方法:从函数依赖的定义出发
• A1 自反律:若YX,则XY
• 证:设u、v为r的任意两个元组。 • 若u[X]=v[X],则u和v在X的任何子集
上必然相等。 • 由条件YX ,所以有:u[Y]=v[Y], • 由u、v的任意性,并根据函数依赖的定
F+= A→ C, AB→ C, AC→ C, ABC→ C, B→ BC,
A→ AB, AB→ AB, AC→ AB, ABC→ AB, BC→ , A→ AC, AB→ AC, AC→ AC, ABC→ AC, BC→ B, A→ BC, AB→ BC, AC→ BC, ABC→ BC, BC→ C, A→ ABC,AB→ ABC,AC→ ABC,ABC→ ABC,BC→ BC,
Armstrong公理导出的问题 求出X+,判定Y是否为X+的子集的问题。
2020/6/3
3、X关于F的闭包X+的计算
• 算法5.1 求属性集X关于函数依赖集F的闭 包X+
• 输入: • 关系模式R的全部属性集U,U上的函数
依赖集F,U的子集X。 • 输出: • X关于F的闭包X+。 • 计算方法:
2020/6/3
3、举例
• 例5.5:求函数依赖集F的最小函数依赖集
F=
• 法1:
ABC , CA , BCD , ACDB , DEG , BEC, CGBD,CEAG
① F1=
2020/6/3
ABC , CA , BCD , ACDB, DE,DG,BEC,CGB , CGD,CEA,CEG
3、举例(续一)
义,可得 XY。
2020/6/3
3、 阿姆斯特朗公理的推论
• 合并规则:若XY且XZ,则XYZ
• 分解规则:若XY,且ZY,则XZ
• 伪传递规则:若XY且WYZ,则 WXZ
证:
增广律 X Y
WX→ WY WY→ Z
传递律
WX→ Z
2020/6/3
4、定理5.2
• 如果Ai(i=1,…,n)是关系模式R的属性, 则XA1A2…An成立的充分必要条件是 XAi(i=
2020/6/3
主要内容
• 阿姆斯特朗公理及推论 • X关于F的闭包及其计算 • 最小函数依赖集 • 候选键的求解方法2020/6/3一、阿姆斯特朗公理及推论
问题引入:
侯选键
F=X→Y
F+
能从F导出的所有 X→Y
X→Y在R 中是否成立
推导工具?
是一系列推理规则 最早出现在1974年W.W.Armstrong的论文 里 他人与1977年提出改进形式
2020/6/3
小结
Armstrong公理 及推论
X→Y是否能从F导出
候选键
求最小FD集
L类、N类、LR类
YX+
求X+
FD右边 单属性
无多余FD
F+=G+
FD左边 无多余属性
2020/6/3
并令X代表L和N类,Y代表LR类; • ② 求XF+:若XF+包含了R的全部属性,则
X是R的唯一候选键,转⑧; • ③ 在Y中取一属性A,并求(XA)F+ :若
(XA)F+包含了R的全部属性,则XA为的一 个候选键; • ④ 重复③,直到Y中的属性依次取完为止 ;
2020/6/3
四、候选键的求解方法
四、候选键的求解方法
• 3、候选键的一般求解法
• 例:设有关系模式R(A,B,C,D,E),R的函
数 依 赖 集 F = {ABC,CDE,BD,EA} ,求R的所有候选键。
均为LR类,令Y=ABCDE。 A+=ABCDE E+=ABCDE BC+=ABCDE CD+=ABCDE R的候选键:A、E、BC和CD
FG+ GF+
2020/6/3
推论
• 每一个函数依赖集F都被其右端只有一 个属性的函数依赖组成的依赖集G所覆盖 。
作用:任一函数依赖集都可转化成由右端只 有单一属性的依赖组成的集合。
该结论是最小函数依赖集的基础。
2020/6/3
2、最小函数依赖集
• 满足下列条件的函数依赖集F称为最小 函数依赖集。
• 例5.5:求函数依赖集F的最小函数依赖集
② F21=
ABC , CA , BCD , ACDB, DE,DG , BEC , CGD , CEA,CEG
② F22=
ABC , CA , BCD , ACDB , DE , DG , BEC , CGD,CEG
2020/6/3
3、举例(续三)
• 例5.5:求函数依赖集F的最小函数依赖集
• 例5.5:求函数依赖集F的最小函数依赖集
① F1=
ABC , CA , BCD , ACDB, DE,DG,BEC,CGB , CGD,CEA,CEG
② F21=
ABC , CA , BCD , ACDB , DE , DG , BEC , CGD , CEA,CEG
2020/6/3
3、举例(续二)
2020/6/3
4、举例
• 例5.4 已知R(U),U={A,B,C,D,E,G}, R上的
FD集 • F={AB→C,C→A,BC→D,ACZD=E→GB BD=,X(0)
D→EG,BE→C, • CG→BD,CE→AG},
X+=ABCDEG
• X=BD,求X+,BD→A是否成立? • (1)X(0)=BA∈DB。D+,故BD→A成立 • (2)X(1)=BDEG • (3)X(2)=BCDEG