最小函式依賴集

最小函式依賴集

如果函式依賴集F滿足下列條件,則稱F為最小函式依賴集或最小覆蓋。

① F中的任何一個函式依賴的右部僅含有一個屬性;

② F中不存在這樣一個函式依賴X→A,使得F與F-{X→A}等價;

③ F中不存在這樣一個函式依賴X→A,X有真子集Z使得F-{X→A}∪{Z→A}與F等價。

解法,例題,

解法

求解最小函式依賴集分三步:
1.將F中的所有依賴右邊化為單一元素
2.去掉F中的所有依賴左邊的冗餘屬性.
3.去掉F中所有冗餘依賴關係.

例題

F={abd->e,ab->g,b->f,c->j,cj->i,g->h}
1.將F中的所有依賴右邊化為單一元素
此題F={abd->e,ab->g,b->f,c->j,cj->i,g->h};已經滿足
2.去掉F中的所有依賴左邊的冗餘屬性.
做法是屬性中去掉其中的一個,看看是否依然可以推導
此題:abd->e,去掉a,則(bd)+不含e,故不能去掉,同理b,d都不是冗餘屬性
ab->g,也沒有
cj->i,因為c+={c,j,i}其中包含i所以j是冗餘的.cj->i將成為c->i
F={abd->e,ab->g,b->f,c->j,c->i,g->h};
3.去掉F中所有冗餘依賴關係.
做法為從F中去掉某關係,如去掉(X->Y),然後在F中求X+,如果Y在X+中,則表明x->是多餘的.需要去掉.
此題如果F去掉abd->e,F將等於{ab->g,b->f,c->j,c->i,g->h},而(abd)+={a,d,b,f,g,h},其中不包含e.所以不是多餘的.
同理(ab)+={a,b,f}也不包含g,故不是多餘的.
b+={b}不多餘,c+={c,i}不多餘.
c->i,g->h不多餘.
故都不能去掉.
所以所求最小函式依賴集為 F={abd->e,ab->g,b->f,c->j,c->i,g->h}.

相關詞條

熱門詞條

聯絡我們