最小函式依賴集的求解過程

2021-10-11 16:28:16 字數 804 閱讀 2896

①先拆右邊,假如依賴集f中的右邊項包含不止乙個屬性,那麼將這些項都拆為單個項。例如a->bc,拆分為a->b和a->c

②去除冗餘依賴項,例如a->c和ab->c,那麼就要去除ab->c這個冗餘項

③拆左邊,假如依賴集f中的左邊項包含不止乙個屬性,那麼將這些項中的第乙個屬性先遮住,看剩下的屬性能否推出結果,不行的話就換第二屬性遮住,看剩餘的屬性能否推出結果,以此類推

例題

已知g=,求最小函式依賴集

答:1.先拆右邊

將g中依賴項右邊包含兩個屬性的拆為單個屬性

拆完g=

2.去除冗餘依賴項

訣竅:乙個個試

①先去掉a->b,發現剩餘的沒法推出b,所以a->b不是冗餘項

②以此類推,最後發現g中不存在冗餘項

3.再拆左邊

①第乙個左邊包含兩個屬性的為cd->e,先遮住c,看能否由d->e。首先由a->c可獲得c,那麼c與剩下的d就能推出e,因此c為冗餘屬性;然後再遮住d,看能否由c->e,因為a->b,a->c中都得不到d,因此沒法組成cd->e,所以d不是冗餘項。

經過第一步得出的g暫為

②以此類推,第二個左邊包含兩個屬性的為be->f,先遮住b,看能否由e->f。因為a->b可獲得b,那麼b與剩下的e就能推出f,因此b為冗餘屬性;然後在遮住e,看能否由b->f,因為d->e,那麼be->f,因此e也可以為冗餘屬性。可知最小函式依賴集不止乙個

暫定g為

③同上,最後g為

最小函式依賴集為

求最小函式依賴集

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

最小函式依賴集的判斷

1.將f右側全部分解為只有乙個屬性 2.去掉冗餘項 從第乙個函式依賴x y開始,假設將其從f中去掉,在剩下的函式依賴中求x的閉包,看y是屬於x的閉包中。如果屬於,則去掉x y 如果不屬於,則保留。依次掃瞄.3.去掉冗餘屬性 選取左邊屬性個數 1的所有依賴,假設xy a。先將xy a換成y a,判斷a...

求最小函式依賴集的方法

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