求最小依賴集

2021-08-20 07:06:17 字數 1039 閱讀 2231

這個比較煩,要寫好多好多好多qaq。

例:u=(a,b,c,d,e,g)   f=,求f最小依賴集。

解:

第一步:右邊單一化。

f1=第二步:逐個求,在去掉它的f中求閉包,如果包含右邊屬性,則表示這個函式依賴要去掉。

bg->c:求(bg)+=bcdeg,包含右邊屬性c,所以去掉。

bd->e:(bd)+=bd,不包含右邊e,所以不用去掉。

dg->c:(dg)+=dg,也不用去掉。

adg->b:(adg)+=u,包含b,所以去掉。

adg->c:(adg)+包含c,去掉。(在這裡,求閉包的時候,不能再用前面去掉的函式依賴了,所以如果從後往前判斷,可能不用去掉adg->b,所以最小依賴集不唯一,寫出乙個即可。)

ag->b:(ag)+=ag,不用去掉。

b->d:(b)+=b,不用去掉。

所以f2=

第三步:對左邊屬性單一化,判斷冗餘,代替。

bd->e:b->e,求(b)+=bd,包含d,所以d冗餘。

d->e,求(d)+=d,所以b不冗餘。

所以用b->e代替bd->e。

dg->c:d->c,(d)+=d,所以g不冗餘。

g->c,(g)+=g,所以d不冗餘。

ag->b:a->b,(a)+=a,所以g不冗餘。

g->b,(g)+=g,所以a不冗餘。

所以fm=。

求最小函式依賴集

用分解的法則,使f中的任何乙個函式依賴的右部僅含有乙個屬性 去掉多餘的函式依賴 從第乙個函式依賴x y開始將其從f中去掉,然後在剩下的函式依賴中求x的閉包x y1 閉包就是由乙個屬性直接或間接推導出的所有屬性的集合,例如 f 由a可直接得到b和d,間接得到c,則a的閉包就是 看x 是否包含y,若是,...

求最小函式依賴集的方法

求最小函式依賴集分三步 1.將f中的所有依賴右邊化為單一元素 此題fd 已經滿足 2.去掉f中的所有依賴左邊的冗餘屬性.作法是屬性中去掉其中的乙個,看看是否依然可以推導 此題 abd e,去掉a,則 bd 不含e,故不能去掉,同理b,d都不是冗餘屬性 ab g,也沒有 cj i,因為c 其中包含i所...

求候選碼和最小函式依賴集

1 求候選碼 設關係模式r為 boisqd f 關係中l類 只出現在左邊 l ib 關係中r類 只出現在右邊 r dq 關係中lr類 兩邊都有 lr s 關係中nlr類 兩邊都沒有 nlr o nlr類o一定是侯選碼的一部分。然後看l類能不能推r類並滿足u boisqd i s s d 所以i d ...