【數據庫】轉換成BCNF的保持無損鏈接的分解

轉換成BCNF的保持無損鏈接的分解算法

算法1:ide

     

例3: 關係模式R<U,F>,其中U={C,T,H,R,S,G},函數

F={CS→G,C→T,TH→R,HR→C,HS→R},將其分解成BCNF並保持無損鏈接。.net

 

 

 

     

例4:關係模式R<U,F>,其中:U={A,B,C,D,E},F={A→C,C→D,B→C,DE→C,CE→A},將其分解成BCNF並保持無損鏈接。blog

      解:it

      ① 令ρ={R(U,F)}。class

      ② ρ中不是全部的模式都是BCNF,轉入下一步。im

      ③ 分解R:R上的候選關鍵字爲BE(由於全部函數依賴的右邊沒有BE)。考慮A→C函數依賴不知足BCNF條件(因A不包含候選鍵BE),將其分解成 R1(AC)、R2(ABDE)。計算R1和R2的最小函數依賴集分別爲:F1={A→C},F2={B→D,DE→D,BE→A}。其中B→D是因爲 R2中沒有屬性C且B→C,C→D;DE→D是因爲R2中沒有屬性C且DE→C,C→D;BE→A是因爲R2中沒有屬性C且B→C,CE→A。又因爲 DE→D是蘊含關係,能夠去掉,故F2={B→D,BE→A}。img

      分解R2:R2上的候選關鍵字爲BE。考慮B→D函數依賴不知足BCNF條件,將其分解成R21(BD)、R22(ABE)。計算R21和R22的最小函數依賴集分別爲:F21={B→D},F22={BE→A}。di

      因爲R22上的候選關鍵字爲BE,而F22中的全部函數依賴知足BCNF條件。故R能夠分解爲無損鏈接性的BCNF如:ρ={R1(AC),R21(BD),R22(ABE)}

原文:http://blog.csdn.net/ristal/article/details/6652020

相關文章
相關標籤/搜索