1.轉換成3NF的保持函數依賴的分解
例1:關系模式R<U,F>,
其中U={C,T,H,R,S,G}
,F={CS→G,C→T,TH→R,HR→C,HS→R}
,將其分解成3NF并保持函數依賴。 解:根據算法進行求解
(一)計算F的最小函數依賴集 ① 利用分解規則,將所有的函數依賴變成右邊都是單個屬性的函數依賴。由于F的所有函數依賴的右邊都是單個屬性,故不用分解 舉個例子就是:CS→GB 變成 CS→G CS→B ② 去掉F中多余的函數依賴 設CS→G為冗余的函數依賴,則去掉CS→G,得: F1={C→T,TH→R,HR→C,HS→R} 計算(CS)F1+: G不屬于(CS)F1+ 故這個不是冗余的函數依賴 同理:分別判斷,C→T,TH→R,HR→C,HS→R 是不是冗余的函數依賴 ③ 去掉F5中各函數依賴左邊多余的屬性(只檢查左部不是單個屬性的函數依賴),沒有發現左邊有多余屬性的函數依賴。 舉例:CS→G 去掉C得到S→G這是無法由后面的依賴推出的,同理去掉S,同樣的方法對其他所有的函數依賴進行檢驗 (二)由于R中的所有屬性均在F中都出現,所以轉下一步。 舉例: U={C,T,H,R,S,G},F={CS→G} 由于T,H,R沒有在F中出現,于是將R1={THP}作為一個分解關系 故最小函數依賴集為:F={CS→G,C→T,TH→R,HR→C,HS→R} (三)對F按具有相同左部的原則分為: R1=CSG,R2=CT,R3=THR,R4=HRC,R5=HSR。 所以ρ={R1(CSG),R2(CT),R3(THR),R4(HRC),R5(HSR)}。 相同左部分的原則:
舉例:C→T ,C→A是相同的左部,則將二者合并為一個關系C→AT
新聞熱點
疑難解答