當前位置:首頁 » 操作系統 » 資料庫最小函數依賴集

資料庫最小函數依賴集

發布時間: 2024-04-02 12:54:06

1. 有沒有人懂最小函數依賴集到底是個啥,資料庫基礎的,不懂怎麼得到最小函數依賴集,概念也看起來也很抽象

最小函數依賴集就是把函數依賴集依據化簡規則消除不必要的/重復的函數依賴。
求最小函數依賴集分三步:

1.將F中的所有依賴右邊化為單一元素

此題fd={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};

最小函數依賴集

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

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

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

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

演算法:計算最小函數依賴集。

輸入 一個函數依賴集

輸出 F的一個等價的最小函數依賴集G

步驟:① 用分解的法則,使F中的任何一個函數依賴的右部僅含有一個屬性;

② 去掉多餘的函數依賴:從第一個函數依賴X→Y開始將其從F中去掉,然後在剩下的函數依賴中求X的閉包X+,看X+是否包含Y,若是,則去掉X→Y;否則不能去掉,依次做下去。直到找不到冗餘的函數依賴;

③ 去掉各依賴左部多餘的屬性。一個一個地檢查函數依賴左部非單個屬性的依賴。例如XY→A,若要判Y為多餘的,則以X→A代替XY→A是否等價?若A屬於(X)+,則Y是多餘屬性,可以去掉。

舉例:已知關系模式R,U={A,B,C,D,E,G},F={AB→C,D→EG,C→A,BE→C,BC→D,CG→BD,ACD→B,CE→AG},求F的最小函數依賴集。

解1:利用演算法求解,使得其滿足三個條件

① 利用分解規則,將所有的函數依賴變成右邊都是單個屬性的函數依賴,得F為:F={AB→C,D→E,D→G,C→A,BE→C,BC→D,CG→B,CG→D,ACD→B,CE→A,CE→G}

② 去掉F中多餘的函數依賴

A.設AB→C為冗餘的函數依賴,則去掉AB→C,得:F1={D→E,D→G,C→A,BE→C,BC→D,CG→B,CG→D,ACD→B,CE→A,CE→G}

計算(AB)F1+:設X(0)=AB

計算X(1):掃描F1中各個函數依賴,找到左部為AB或AB子集的函數依賴,因為找不到這樣的函數依賴。故有X(1)=X(0)=AB,演算法終止。

(AB)F1+= AB不包含C,故AB→C不是冗餘的函數依賴,不能從F1中去掉。

B.設CG→B為冗餘的函數依賴,則去掉CG→B,得:F2={AB→C,D→E,D→G,C→A,BE→C,BC→D,CG→D,ACD→B,CE→A,CE→G}

計算(CG)F2+:設X(0)=CG

計算X(1):掃描F2中的各個函數依賴,找到左部為CG或CG子集的函數依賴,得到一個C→A函數依賴。故有X(1)=X(0)∪A=CGA=ACG。

計算X(2):掃描F2中的各個函數依賴,找到左部為ACG或ACG子集的函數依賴,得到一個CG→D函數依賴。故有X(2)=X(1)∪D=ACDG。

計算X(3):掃描F2中的各個函數依賴,找到左部為ACDG或ACDG子集的函數依賴,得到兩個ACD→B和D→E函數依賴。故有X(3)=X(2)∪BE=ABCDEG,因為X(3)=U,演算法終止。

(CG)F2+=ABCDEG包含B,故CG→B是冗餘的函數依賴,從F2中去掉。

C.設CG→D為冗餘的函數依賴,則去掉CG→D,得:F3={AB→C,D→E,D→G,C→A,BE→C,BC→D,ACD→B,CE→A,CE→G}

計算(CG)F3+:設X(0)=CG

計算X(1):掃描F3中的各個函數依賴,找到左部為CG或CG子集的函數依賴,得到一個C→A函數依賴。故有X(1)=X(0)∪A=CGA=ACG。

計算X(2):掃描F3中的各個函數依賴,找到左部為ACG或ACG子集的函數依賴,因為找不到這樣的函數依賴。故有X(2)=X(1),演算法終止。(CG)F3+=ACG。

(CG)F3+=ACG不包含D,故CG→D不是冗餘的函數依賴,不能從F3中去掉。

D.設CE→A為冗餘的函數依賴,則去掉CE→A,得:F4={AB→C,D→E,D→G,C→A,BE→C,BC→D,CG→D,ACD→B,CE→G}

計算(CG)F4+:設X(0)=CE

計算X(1):掃描F4中的各個函數依賴,找到左部為CE或CE子集的函數依賴,得到一個C→A函數依賴。故有X(1)=X(0)∪A=CEA=ACE。

計算X(2):掃描F4中的各個函數依賴,找到左部為ACE或ACE子集的函數依賴,得到一個CE→G函數依賴。故有X(2)=X(1)∪G=ACEG。

計算X(3):掃描F4中的各個函數依賴,找到左部為ACEG或ACEG子集的函數依賴,得到一個CG→D函數依賴。故有X(3)=X(2)∪D=ACDEG。

計算X(4):掃描F4中的各個函數依賴,找到左部為ACDEG或ACDEG子集的函數依賴,得到一個ACD→B函數依賴。故有X(4)=X(3)∪B=ABCDEG。因為X(4)=U,演算法終止。

(CE)F4+=ABCDEG包含A,故CE→A是冗餘的函數依賴,從F4中去掉。

③ 去掉F4中各函數依賴左邊多餘的屬性(只檢查左部不是單個屬性的函數依賴)由於C→A,函數依賴ACD→B中的屬性A是多餘的,去掉A得CD→B。

故最小函數依賴集為:F={AB→C,D→E,D→G,C→A,BE→C,BC→D,CG→D,CD→B,CE→G}

2. 資料庫:求F={A→B,B→A,B→C,A→C,C→A},最小(極小)函數依賴集合

利用分解規則,將所有的函數依賴變成右邊都是單個屬性的函數依賴。從題目來看,F中的任何一個函數依賴的右部僅含有一個屬性:{A→B,B→A,B→C,A→C,C→A}

第二步去冗餘的的順序不同,產生結果也會不同,故最小函數依賴集合不止一個,還可發現另一個最小(極小)函數依賴集合為:{A→B,B→A,A→C,C→A}

給定一個數集A,假設其中的元素為x。現對A中的元素x施加對應法則f,記作f(x),得到另一數集B。假設B中的元素為y。則y與x之間的等量關系可以用y=f(x)表示。函數概念含有三個要素:定義域A、值域C和對應法則f。其中核心是對應法則f,它是函數關系的本質特徵。

(2)資料庫最小函數依賴集擴展閱讀:

函數的對應法則通常用解析式表示,但大量的函數關系是無法用解析式表示的,可以用圖像、表格及其他形式表示。

函數與不等式和方程存在聯系(初等函數)。令函數值等於零,從幾何角度看,對應的自變數的值就是圖像與X軸的交點的橫坐標;從代數角度看,對應的自變數是方程的解。

另外,把函數的表達式(無表達式的函數除外)中的「=」換成「<」或「>」,再把「Y」換成其它代數式,函數就變成了不等式,可以求自變數的范圍。

熱點內容
電腦主機做伺服器下載快不 發布:2024-11-28 00:32:40 瀏覽:386
冷凍存儲盒 發布:2024-11-28 00:21:04 瀏覽:127
達內幼兒編程 發布:2024-11-28 00:21:02 瀏覽:320
我的世界下100層是什麼伺服器 發布:2024-11-28 00:16:50 瀏覽:548
怎麼改配置密碼 發布:2024-11-28 00:16:44 瀏覽:113
伺服器晶元v幾是什麼 發布:2024-11-28 00:15:37 瀏覽:599
家庭麥克需要什麼配置才能用 發布:2024-11-28 00:05:28 瀏覽:384
c語言then是什麼意思 發布:2024-11-27 23:54:07 瀏覽:195
提升訪問 發布:2024-11-27 23:41:39 瀏覽:821
為什麼學習編程 發布:2024-11-27 23:41:37 瀏覽:942