1.轉(zhuǎn)換成3NF的保持函數(shù)依賴的分解
例1:關(guān)系模式R<U,F>,
其中U={C,T,H,R,S,G}
,F={CS→G,C→T,TH→R,HR→C,HS→R}
,將其分解成3NF并保持函數(shù)依賴。 解:根據(jù)算法進(jìn)行求解
(一)計算F的最小函數(shù)依賴集 ① 利用分解規(guī)則,將所有的函數(shù)依賴變成右邊都是單個屬性的函數(shù)依賴。由于F的所有函數(shù)依賴的右邊都是單個屬性,故不用分解 舉個例子就是:CS→GB 變成 CS→G CS→B ② 去掉F中多余的函數(shù)依賴 設(shè)CS→G為冗余的函數(shù)依賴,則去掉CS→G,得: F1={C→T,TH→R,HR→C,HS→R} 計算(CS)F1+: G不屬于(CS)F1+ 故這個不是冗余的函數(shù)依賴 同理:分別判斷,C→T,TH→R,HR→C,HS→R 是不是冗余的函數(shù)依賴 ③ 去掉F5中各函數(shù)依賴左邊多余的屬性(只檢查左部不是單個屬性的函數(shù)依賴),沒有發(fā)現(xiàn)左邊有多余屬性的函數(shù)依賴。 舉例:CS→G 去掉C得到S→G這是無法由后面的依賴推出的,同理去掉S,同樣的方法對其他所有的函數(shù)依賴進(jìn)行檢驗(yàn) (二)由于R中的所有屬性均在F中都出現(xiàn),所以轉(zhuǎn)下一步。 舉例: U={C,T,H,R,S,G},F(xiàn)={CS→G} 由于T,H,R沒有在F中出現(xiàn),于是將R1={THP}作為一個分解關(guān)系 故最小函數(shù)依賴集為: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是相同的左部,則將二者合并為一個關(guān)系C→AT
新聞熱點(diǎn)
疑難解答
圖片精選