chp6_函数依赖的闭包举例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
函数依赖的闭包
定义:若F为关系模式R(U)的函数依赖集,
我们把F以及所有被F逻辑蕴涵的函数依赖的集合称为F的闭包,记为F+。即:
F+={X→Y|X→Y∈F∨“应用Armstong公理从F中导出的任何
X→Y”}
△ F包含于F+,如果F=F+,则F为函数依赖的一个完备集。
△规定:若X为U的子集,X→Φ属于F+。
计算X+ 算法:
a.初始化,令X+ = X;
b.在F中依次查找每个没有被标记的函数依赖,若“左边属性集”包含于X+,则令 X+= X+∪“右边属性集”, 并为访问过的函数依赖设置标记。
c.反复执行b直到X+不改变为止。
例4.3.3:已知关系模式R中
U={A,B,C,D, E, G},
F={AB→C, C→A, BC→D, ACD→B, D→EG, BE→C, CG→BD, CE→AG},
判断BD→AC是否属于F+
解:由D→EG知D→E,BD→BE… ①
又知BE→C,C→A 所以BE→A, BE→AC … ②
由①、②知,BD→AC,所以BD→AC被F所蕴涵,即BD→AC属于F+
例4.3.4:已知关系模式R中
U={A,B,C,E,H,P,G},
F={AC→PE, PG→A, B→CE, A→P, GA→B, GC→A, PAB→G, AE→GB, ABCP→H},
证明BG→HE属于F+
证:由B→CE知B→C,B→E, BG→GC… ①
又知GC→A,A→P 所以BG→A, BG→ABCP … ②
又ABCP→H,由①、②知BG→HE,所以BG→HE被F所蕴涵,
即BG→HE属于F+
属性集闭包
例4.3.5:设R=ABC, F={A→B, B→C},分别求A,B,C的闭包。
解:A+=ABC
B+=BC
C+=C
例4.3.6:已知关系模式R中
U={A,B,C,D, E, G},
F={AB→C, C→A, BC→D, ACD→B, D→EG, BE→C, CG→BD, CE→AG},
求(BD)+,判断BD→AC是否属于F+
解:(BD)+=BDEGCA
结论:(BD)+=ABCDEG,BD→AC可由F导出,即BD→AC属于F+
(推导:由于D→EG,则B D→BEG, 分解得B D→BE,又因为BE→C,则 BD→C,又因C→A,则BD→A,故BD→A C)
例4.3.7:已知关系模式R中
U={A,B,C,E, H, P, G},
F={AC→PE, PG→A, B→CE, A→P, GA→B,
GC→A, PAB→G, AE→GB, ABCP→H},
证明BG→HE属于F+
证:因为,(BG)+ =BGCEAPH,
所以BG→HE可由F导出,即BG→HE属于F+
(推导:由于B→CE,则分解得B→C, 增广得B G→GC,又因为GC→A,则 BG→A,又因A→P,则BG→P,故BG→ABCP→H… ①,
由于已知B→CE分解得B→E,故BG→E … ②,
由①②得BG→HE)
4、结论
判定函数依赖X→Y是否能由F导出的问题,
可转化为求X+并判定Y是否是X+子集的问题。
即求F闭包的问题可转化为求属性集闭包的问题。