求最小函式依賴

2021-10-05 08:26:04 字數 1551 閱讀 1489

第一步

對f中的函式依賴運用分解原則來建立乙個等價函式依賴集h,該集合中每乙個函式依賴的右部是單個屬性:

第一步之後的結果h=

第二步

考察每乙個函式依賴是否是必須的,去除非必要的函式依賴:

(1):考察bc→a,去掉函式依賴集會得到新的函式依賴集j=。則(bc)j+=bcdegh,不包含a,因此bc→a不能去掉。

(2):考察bc→e,j=。則(bc)j+=abcdegh,包含e,能去掉。

此時h=

(3):考察dc→e,j=。則(dc)j+=cdegh,包含e,能去掉。

此時h=

(4):考察dc→h,j=。則(dc)j+=cdge,不包含h,不能去掉

此時h=

(5):考察dg→e,j=。則(dg)j+=dg,不包含e,不能去掉。

此時h=

(6):考察b→c,j=。則(b)j+=bdge,不包含c,不能去掉。

此時h=

(7):考察b→d,j=。則(b)j+=abc,不包含d,不能去掉。

此時h=

(8):考察d→g,j=。則(d)j+=d,不包含g,不能去掉。

此時h=

所以第二步之後h=

第三步

考察每乙個左部為多個屬性的函式依賴,看左部的每個屬性是否是必須的,能否用更小的屬性集替代原有的屬性集。

首先從函式依賴①bc→a開始。

(1): 去除b

如果b可以去除,那麼可得到新的函式依賴集j=。去掉b後c在j上的閉包將比在h下函式決定更多的屬性,如果(c )j+=(c )h+或者a∈(c )h+,則說明去掉b得到的函式依賴集和原有的函式依賴集是等價的,可以用c→a替換bc→a。

( c)h+=c,不包含a,不能去除。

去除c

(b)h+=abcdegh,包含a,可以去除。

此時h=

(2):去除②中的d

(d)h+=dge,不包含h,不能去掉。

去除②中的c?

(c )h+=c,不包含h,不能去掉。

此時h=

(3):去掉③中的d

(g)h+=g,不含e,不能去掉。

去掉③中的g?

(d)h+=dge,包含e,可以去掉。

此時h=此時h=

所以最後的結果h=

求最小函式依賴集

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

求最小依賴集

這個比較煩,要寫好多好多好多qaq。例 u a,b,c,d,e,g f 求f最小依賴集。解 第一步 右邊單一化。f1 第二步 逐個求,在去掉它的f中求閉包,如果包含右邊屬性,則表示這個函式依賴要去掉。bg c 求 bg bcdeg,包含右邊屬性c,所以去掉。bd e bd bd,不包含右邊e,所以不...

求最小函式依賴集的方法

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