關(guān)系數(shù)據(jù)庫理論補(bǔ)充資料

字號:

函數(shù)依賴與屬性關(guān)系如果兩個(gè)屬性之間的聯(lián)系是多對多的,則它們之間不存在函數(shù)依賴關(guān)系。
     設(shè)有屬性集X,Y以及關(guān)系模式R:如果X,Y之間是1:1的聯(lián)系(如學(xué)校和校長),則X和Y之間存在函數(shù)依賴X->Y和Y->X.如果X,Y之間是m:1的聯(lián)系(如學(xué)號和姓名),則存在函數(shù)依賴X->Y.如果X,Y之間是m:n的聯(lián)系(如學(xué)生和課程),則X和Y之間不存在函數(shù)依賴。
     例1:在關(guān)系模式中,如果屬性A和B存在1對1的聯(lián)系,則說____________. A.A->B B.B->A C.A?->B D.以上都不對正確答案是:。C
     例2:當(dāng)屬性B函數(shù)依賴與A時(shí),屬性A與B的聯(lián)系是_____________. A. 1對多B.多對1 C.多對多D.以上都不對正確答案:B
     關(guān)鍵碼的求解理論和算法對于給定的關(guān)系R(A1A2…An)和函數(shù)依賴集F,可將其屬性分為4類:L類:僅出現(xiàn)在F函數(shù)依賴左部的屬性R類:僅出現(xiàn)在F函數(shù)依賴右部的屬性N類:在F函數(shù)依賴的左右兩部均未出現(xiàn)的屬性LR類:在F函數(shù)依賴的左右兩部均出現(xiàn)的屬性定理:對于給定的關(guān)系模式R及其函數(shù)依賴集F,若X是R的L類屬性,則X必為R的任一關(guān)鍵碼的成員。
     推論:對于給定的關(guān)系模式R及其函數(shù)依賴集F,若X是R的L類屬性,且X+包含了R的全部屬性,則X必為R的關(guān)鍵碼。
     例;設(shè)有關(guān)系模式R(A,B,C,D),其函數(shù)依賴集F={D->B,B->D,AD->B,AC->D},求R的所有關(guān)鍵碼。
     解:考察F發(fā)現(xiàn),A,C兩屬性是L類屬性,由以上的定理可知,AC必是R的關(guān)鍵碼,又因?yàn)锳C+=ABCD,所以AC是R的關(guān)鍵碼。
     用計(jì)算閉包的方法尋找鍵碼A+=A,B+=B,C+=C,D+=DB AB+=ABD,AC+=ABCD,AD+=ABD,BC+=BCD,BD+=BD,CD+=CDB ABC+=ABCD,ABD+=ABD,BCD+=BCD,ADC+=ABCD ABCD+=ABCD考察以上計(jì)算閉包的結(jié)果可以得知:超鍵是AC,ABC,ADC,ABCD. A,C都包含在所有的超鍵中,并且AC是的鍵碼這兩種方法得出的結(jié)果是相同的。顯然,對于具有較多屬性的R,使用前面一種方法要簡單的多。大家應(yīng)該掌握前面一種方法。
     上述例子中沒有R類屬性,B,D都是LR類屬性。
     定理:對于給定的關(guān)系模式R及其函數(shù)依賴集F,若X是R的R類屬性,則X不是R的任何關(guān)鍵碼的成員。
     定理:對于給定的關(guān)系模式R及其函數(shù)依賴集F,若X是R的N類屬性,則X必為R的任一關(guān)鍵碼的成員。
     例:設(shè)有關(guān)系模式R(A,B,C,D,E,P),R的函數(shù)依賴集為F={A->D,E->D,D->B,BC->D,DC->A},求R的所有關(guān)鍵碼。
     解:考察F發(fā)現(xiàn),屬性E,C是L類屬性,故E,C必在R的任何關(guān)鍵碼中。
     又因?yàn)閷傩訮是N類屬性,所以P也在R的任何關(guān)鍵碼中。
     而CEP+=ABCDEP,所以CEP是R的關(guān)鍵碼。
     推論:對于給定的關(guān)系模式R及其函數(shù)依賴集F,如果X是R的N類和L類組成的屬性集,且X+包含了R的全部屬性,則X是R的鍵碼。
     關(guān)系模式的范式一定要把1NF,2NF,3NF,BCNF的定義理解透徹。此外要記住任何二元關(guān)系都是BCNF.例題:如下關(guān)系R是____________.材料號材料名生產(chǎn)廠M1線材武漢M2型材武漢M3板材廣東M4型材武漢
     A.1NF B.2NF C.3NF D.BCNF正確答案是:B分析:首先該關(guān)系是1NF.其次以上關(guān)系上存在的函數(shù)依賴有:材料號->材料名,材料名->材料號,材料號->生產(chǎn)廠以上關(guān)系的鍵碼是材料號。
     可以看到,非主屬性生產(chǎn)廠對鍵碼材料號存在傳遞依賴。但是不存對鍵碼的部分依賴。
     所以該關(guān)系不是3NF,是2NF.