求最小函数依赖集

更新时间:2023-10-19 11:07:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

关系模式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}

本文来源:https://www.bwwdw.com/article/38of.html

Top