① 用分解的法則,使f中的任何乙個函式依賴的右部僅含有乙個屬性;
② 去掉多餘的函式依賴:從第乙個函式依賴x→y開始將其從f中去掉,然後在剩下的函式依賴中求x的閉包x+,看x+是否包含y,若是,則去掉x→y;否則不能去掉,依次做下去。直到找不到冗餘的函式依賴;
③ 去掉各依賴左部多餘的屬性。乙個乙個地檢查經過第②步去掉了多餘依賴後的函式依賴左部非單個屬性的依賴。例如xy→a,若要判y為多餘的,則以x→a代替xy→a是否等價?若a屬於(x)+,則y是多餘屬性,可以去掉。
對於求最小函式依賴,首先必須將右屬性單一化,方便接下來的換算。接下來對於左屬性的冗餘判斷和多餘的函式依賴判斷沒有先後順序,不過作為個人來說更習慣先將多餘的函式依賴去掉,之後的判斷多餘的左屬性更快。
已知r(u,f)u=,f=
求r(u,f)的最小函式依賴集
1.左屬性單一化
f=;2.去掉多餘的依賴
①假設abd->e冗餘,則在
f1= (abd)的閉包為abdgf,其中不包括e所以abd->e不冗餘
假設ab->g冗餘,則在
f2= (ab)的閉包為abf,其中不包括g所以ab->g不冗餘
同理如上,將每個依賴判斷一下就能得到
f=3、判斷左屬性的冗餘
假如abd->e中的a冗餘,則(bd)的閉包為bdf ,不包含e。同理的abd中不冗餘。
cj->i中的c冗餘,則(j)的閉包為j,不包含i;如果j冗餘,則(c)的閉包為cji,包含i。所以j為冗餘,改為c->i。
綜上所得:f=
最小函式依賴集的判斷
1.將f右側全部分解為只有乙個屬性 2.去掉冗餘項 從第乙個函式依賴x y開始,假設將其從f中去掉,在剩下的函式依賴中求x的閉包,看y是屬於x的閉包中。如果屬於,則去掉x y 如果不屬於,則保留。依次掃瞄.3.去掉冗餘屬性 選取左邊屬性個數 1的所有依賴,假設xy a。先將xy a換成y a,判斷a...
函式依賴 多值依賴
一 函式依賴 functional dependency 的概念 函式依賴是資料依賴的一種,它反映屬性或屬性組之間相依存,互相制約的關係,即反映現實世界的約束關係。設r u 是屬性u上的乙個關係模式,x和y均為u 的子集,r為r的任一關係,如果對於r中的任意兩個元組u,v,只要有u x v x 就有...
函式依賴 FD
函式依賴 fd 1 函式依賴的定義 領會 設有關係模式r a1,a2,an 或簡記為r u x,y是u的子集,r是 r的任一具體關係,如果對r的任意兩個元組t1,t2,由t1 x t2 x 導致t1 y t2 y 則稱x函式決 定y,或y函式依賴於x,記為x y。x y為模式r的乙個函式依賴。其實函...