數據庫系統概述----求屬性集X關於F的閉包XF+


屬性集X關於函數依賴集F的閉包XF+ 的求解過程

一、定義:

  設F為屬性集U上的一組函數依賴,X⊆U,XF+ ={A | X→ A能y由F根據Armstrong公理推導出 }XF+ 稱為屬性集X關於函數依賴集F的閉包

二、用途

  1.若判斷X→Y是否能由F根據Armstrong公理推導出,則求出XF+ ,判斷Y是否為XF+ 的子集;若YXF+ 的子集,則X→Y能由F根據Armstrong公理推導出,否則不能。

  2.如果XF+ = UXR<U , F>的候選碼。

三、求解算法

R<U , F>,求屬性X(X ⊆ U)關於U上的函數依賴集F的閉包XF+  

  1. 輸入:X,F
  2. 輸出:XF+  
  3. 步驟:

      (1)令X0 =X,=0

      (2)求MID,這里的 MID ={A| (∃V) (∃W) (V→W ∈ F ⋀ V ⊆Xi  ⋀ A∈W ) }; 也就是說先令MID' 為空集,對於F中的每一個函數依賴Y→Z,滿足屬性集Y⊆Xi ,那么MID' =MID'Z;最終的MID' 即為所求的MID

      (3)Xi+1 =MID∪Xi 

      (4)判斷Xi+1 =Xi 是否相等

      (5)若相等或Xi+1 = U,則Xi+1 就是XF+ ,算法終止。

      (6)若不相等,則令i = i +1,返回第(2)步。

四、例子說明:

  已知關系模式R<U,F>,其中U={A,B,C,D,E}F={AB→C,B→D,C→E,EC→B,AC→B},求XF+ 。

(1)令X0 =AB,求X1

    先求此時的MID

      因為F中有ABC,BD,所以MID=CD

    所以得X1=X0MID=AB∪CD=ABCD;

    又因為X0≠X1且X1U,所以要繼續求X2;  //   如果這時X0=X1了,那么根據求解算法第(5)步,X1即為所要求得的XF+ 

(2)有X1=ABCD,求X2

    先求此時的MID

      因為F中有CE,ACB,所以MID=BE;  //  ABC,BD在第(1)步中已經出現了所以這里忽略

      所以得X2=X1MID =ABCD∪BE=ABCDE;

      因為此時X2U 了,所以根據求解算法第(5)步,X2即為所要求得的XF+ ,算法結束。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM