3.轉換成BCNF的保持無損連接的分解
例4:關系模式R<U,F>
,其中:U={A,B,C,D,E}, F={A→C,C→D,B→C,DE→C,CE→A},將其分解成BCNF并保持無損連接。
解:
① 令ρ={R(U,F)}。 ② ρ中不是所有的模式都是BCNF,轉入下一步。 ③ 分解R:R上的候選關鍵字為BE(因為所有函數依賴的右邊沒有BE)。考慮A→C函數依賴不滿足BCNF條件(因A不包含候選鍵BE),將其分解成R1(AC)、R2(ABDE)((U-C)(A))。計算R1和R2的最小函數依賴集分別為:F1={A→C},F2={B→D,DE→D,BE→A}(這個不是Fm,衹是它的一個等價)。其中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}。 分解R2:R2上的候選關鍵字為BE。考慮B→D函數依賴不滿足BCNF條件,將其分解成R21(BD)、R22(ABE)。計算R21和R22的最小函數依賴集分別為:F21={B→D},F22={BE→A}。 由于R22上的候選關鍵字為BE,而F22中的所有函數依賴滿足BCNF條件。故R可以分解為無損連接性的BCNF如:ρ={R1(AC),R21(BD),R22(ABE)}新聞熱點
疑難解答