求最小函数依赖集
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关系模式R(U,F)中,U=ABCDEG,F={B->D,DG->C,BD->E,AG->B,ADG->BC} 求F的最小函数依赖集
方法如下:
1.根据分解规则,将函数依赖的右端分解成单个属性
该题目的话要将:BC分解成单个属性。
F={ADG->B,ADG->C,······}
2.对于F中的每个函数X->A,设G=F-{X->A},如果A属于X的闭包,则将X->A从中删除,否则保留。
该题目:
1)G=F-{B->D},则B的闭包={B},包不含D,则保留
2)G=F-{DG->C},则DG的闭包={DG},不包含C,则保留
3)G=F-{BD->E},则BD的闭包={BD},不包含E,则保留
4)G=F-{AG->B},则AG的闭包={AG},不包含B,则保留
5)G=F-{ADG->B},则ADG的闭包={ADGBCE},包含B,则删除
6)G=F-{ADG->C},则ADG的闭包={ADGBCE},包含C,则删除
F={B->D,DG->C,BD->E,AG->B}
R(U, F),U=ABCDEF, F={AD→E, AC→E, BC→F, BCD→AF, BD→A, AB→F, A→C}求最小函数依赖集
答案是:
分解右部为属性组的函数依赖,得
F={AD→E,AC→E,BC→F,BCD→A,BCD→F,BD→A,AB→F,A→C}
对于AD→E,∵(AD)的闭包=ADCE, 又∵E不属于ACDE
∴AD→E 冗余
对于AC→E,∵(AC)的闭包=AC,又∵E不属于AC,∴AC→E不冗余
对于BC→F,∵(BC)的闭包=BC,又∵F不属于BC,∴BC→F 不冗余对于BCD→A,∵(BCD)的闭包=ABCDEF,又∵A不属于ABCDEF ∴BCD→A 冗余
对于BCD→F,∵(BCD)的闭包=ABCDEF,又∵F不属于ABCDEF ∴BCD→F 冗余
对于BD→A,∵(BD)的闭包=BD,又∵A不属于BD,∴BD→A 不冗余对于AB→F,∵(AB)的闭包=ABCDEF,又∵F属于ABCDEF ∵AB→F 冗余
对于A→C,∵A的闭包=A,又∵C不属于A,∴A→C 不冗余
∴F的最小函数依赖集为{AC→E,BC→F,BD→A,A→C}