《《數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用》第6章習(xí)題答案》由會(huì)員分享,可在線閱讀,更多相關(guān)《《數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用》第6章習(xí)題答案(4頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第6章關(guān)系數(shù)據(jù)理論
1. 理解下列術(shù)語(yǔ)的定義:
函數(shù)依賴、部分函數(shù)依賴、完全函數(shù)依賴、傳遞依賴、候選碼、碼、主碼、外碼、全碼、1NF、2NF、3NF、BCNF、4NF。
解:
函數(shù)依賴:設(shè)R(U)是屬性集U上的關(guān)系模式。X,Y是U的子集,若對(duì)于R(U)的任意一個(gè)可能的關(guān)系r,r中不可能存在兩個(gè)元組在X上的屬性相等,而在Y上的屬性值不等,則稱X函數(shù)確定Y或Y函數(shù)依賴于X,記作X→Y。
部分函數(shù)依賴:如果X→Y,但Y不完全函數(shù)依賴于X,則稱Y對(duì)X 部分函數(shù)依賴(Partial Functional Dependency),記作:XPY。
完全函數(shù)依賴:如果X→Y,但對(duì)于X中的任意一個(gè)真
2、子集X',都有Y不依賴于X',即X'?Y,則稱Y對(duì)X完全函數(shù)依賴(Full Functional Dependency),記作:XFY。
傳遞依賴:如果X→Y,Y→Z,且Y?X,Y?X,則稱Z對(duì)X傳遞函數(shù)依賴(Transitive Functional Dependency)。記作:XTZ。
候選碼:若關(guān)系中的某一屬性組的值能惟一地標(biāo)識(shí)一個(gè)元組,則稱該屬性組為候選碼 (Candidate key)。
主碼:若一個(gè)關(guān)系有多個(gè)候選碼,則選定其中一個(gè)為主碼(Primarykey) 。
外部碼:設(shè)F是基本關(guān)系R的一個(gè)或一組屬性,但不是關(guān)系R的碼,如果F與基本關(guān)系S的主碼
3、Ks相對(duì)應(yīng),則稱F是基本關(guān)系R的外部碼(Foreign key),簡(jiǎn)稱外碼。
全碼:最復(fù)雜的情況,整個(gè)屬性組是碼,稱為全碼(All-key)。
1NF:若一個(gè)關(guān)系模式R中每一個(gè)屬性值都是一個(gè)不可再分的最小數(shù)據(jù)單元,則稱關(guān)系模式滿足第一范式,記作R∈1NF。
2NF:若R∈1NF,且每一個(gè)非主屬性完全函數(shù)依賴于R的碼,則R∈2NF。
3NF:關(guān)系模式R<U,F(xiàn)>中若不存在這樣的候選碼X,屬性組Y及非主屬性Z(Z?Y)使得X→Y,Y→Z成立,則稱R<U,F(xiàn)>∈3NF。
BCNF:關(guān)系模式R<U,F(xiàn)>∈1NF。若對(duì)于R中的每一個(gè)函數(shù)依賴X→Y且Y?X,X
4、必含有碼,則R<U,F(xiàn)>∈BCNF。
4NF:關(guān)系模式R<U,F(xiàn)>Î1NF,如果對(duì)于R的每個(gè)非平凡多值依賴X®®Y(YËX),X都含有碼,則稱R<U,F(xiàn)>Î4NF。
2. 下面的結(jié)論哪些是正確的?哪些是錯(cuò)誤的?對(duì)于錯(cuò)誤的請(qǐng)給出一個(gè)反例說(shuō)明。
(1) 任何一個(gè)二目關(guān)系是屬于3NF的。
(2) 任何一個(gè)二目關(guān)系是屬于BCNF的。
(3) 任何一個(gè)二目關(guān)系是屬于4NF的。
(4) 當(dāng)且僅當(dāng)函數(shù)依賴A→B在R上成立,關(guān)系R(A,B,C)等于投影R1(A,B)和R2(A,B)的連接。
(5) 若R.A
5、→R.B,R.B→R.C則R.A→R.C。
(6) 若R.A→R.B,R.A→R.C則R.A→R.(B,C)。
(7) 若R.B→R.A,R.C→R.A則R.(B,C)→R.A。
(8) 若R.(B,C)→R.A,則R.B→R.A,R.C→R.A。
解:
(1) 正確,因?yàn)殛P(guān)系模式中只有兩個(gè)屬性,所以無(wú)傳遞。
(2) 正確,按BCNF的定義,若XàY,且Y不是X的子集時(shí),每個(gè)決定因素都包含碼,對(duì)于二目關(guān)系決定因素必然包含碼。詳細(xì)證明如下:
證明:設(shè)R為一個(gè)二目關(guān)系R(A1,A2),則屬性A1和A2之間可能存在以下幾種依賴關(guān)系:
A、A1→A2,但A2?A1,則關(guān)系R的
6、碼為A1,決定因素都包含碼,所以,R是BCNF。
B、A1→A2,A2→A1,則關(guān)系R的碼為A2,所以決定因素都包含碼,R是BCNF。
(3) 正確,因?yàn)橹挥袃蓚€(gè)屬性,所以無(wú)非平凡的多值依賴。
(4) 正確。
(5) 正確。
(6) 正確。
(7) 正確。
(8) 錯(cuò)誤。
3. 汽車(chē)保險(xiǎn)公司管理客戶和保險(xiǎn)車(chē)輛信息。每位客戶擁有一輛或多輛汽車(chē)。每輛汽車(chē)可能發(fā)生0次或多次交通事故??蛻粜枰怯浀男畔{照號(hào)、姓名、住址、電話、等信息。車(chē)輛需要登記車(chē)輛編號(hào)、車(chē)型、出廠年份、駕照號(hào)等信息。事故需要登記事故編號(hào)、事故發(fā)生日期、發(fā)生地點(diǎn)、車(chē)輛編號(hào)、賠償金等信息。根據(jù)上述描述,列舉可能的函
7、數(shù)依賴(不必列舉平凡函數(shù)依賴)。
解:
關(guān)系模式:
客戶(駕照號(hào),姓名,住址,電話)
車(chē)輛(車(chē)輛編號(hào),車(chē)型,出廠年份)
事故(事故編號(hào),事故發(fā)生日期,發(fā)生地點(diǎn),賠償金)
存在的函數(shù)依賴:
客戶(駕照號(hào)→姓名,駕照號(hào)→住址,駕照號(hào)→電話)
車(chē)輛(車(chē)輛編號(hào)→車(chē)型,車(chē)輛編號(hào)→出廠年份、車(chē)輛編號(hào)→駕照號(hào))
事故(事故編號(hào)→事故發(fā)生日期,事故編號(hào)→發(fā)生地點(diǎn),事故編號(hào)→賠償金、事故編號(hào)→車(chē)輛編號(hào))
4. 設(shè)關(guān)系模式R(A,B,C,D,E,F(xiàn)),函數(shù)依賴集F={A→C,C→A,B→AC,D→AC,BD→A}。
(1) 求出R的候選碼。
(2) 求出F的最小函數(shù)依賴集。
解:
(1
8、) B、D。
(2) ① 將F中每個(gè)函數(shù)依賴的右部均變成單屬性。則,
F={A→C,C→A,B→A,B→C,D→A,D→C,BD→A};
② 去掉F中各函數(shù)依賴左部多余的屬性。
在BD→A中,由于存在B→A和D→A因此,BD→A為多余的函數(shù)依賴,可去掉。
③ 去掉F中冗余的函數(shù)依賴。
由于B→A可由B®C和C→A推出,因此,可去掉B→A。
D→A可由D→C和C→A推出,因此,可去掉D→A。
因此,F(xiàn)m={A→C,C→A,B→C,D→C }。
5. 設(shè)X→Y在關(guān)系模式R中成立。如果存在Z?X使得Z→Y成立,則稱函數(shù)依賴X→Y稱為部分函數(shù)依賴,并稱Y部分函數(shù)依賴于X;
9、否則稱X→Y為完全函數(shù)依賴,并稱Y完全依賴于X。使用完全函數(shù)依賴概念給出2NF的等價(jià)定義。
解:
若R∈1NF,且R的所有函數(shù)依賴都滿足完全函數(shù)依賴,則R∈2NF。
6. 證明:
(1) 如果R的所有屬性都是主屬性,則R是3NF。
(2) 如果R的碼包含R的所有屬性(全碼),則R是BCNF。
解:
(1) 證明:關(guān)系模式R<U,F(xiàn)>中若不存在這樣的候選碼X,屬性組Y及非主屬性Z(Z?Y)使得X→Y,Y→Z成立,則稱R<U,F(xiàn)>∈3NF。因?yàn)槿绻鸕的所有屬性都是主屬性,即沒(méi)有非主屬性,則不存在非主屬性對(duì)碼的部分和傳遞函數(shù)依賴。因此如果R的所有屬性都是主屬性,
10、則R是3NF。
(2) 證明: BCNF要求關(guān)系范式滿足1NF,且每一個(gè)函數(shù)依賴的決定因子都包含碼。而全碼的關(guān)系滿足1NF,且只有一個(gè)決定因子,即關(guān)系模式包含的所有屬性。因此如果R的碼包含R的所有屬性(全碼),則R是BCNF。
7. 在關(guān)系模式設(shè)計(jì)中,有沒(méi)有理由設(shè)計(jì)一個(gè)屬于2NF,但不屬于更高范式的關(guān)系模式?解釋你的答案。
解:
沒(méi)有理由。因?yàn)?NF是表示所有屬性都必須依賴于碼,保證在表內(nèi)所有的屬性都是非冗余或者說(shuō)都是相關(guān)的,必不可少的。3NF是在2NF的基礎(chǔ)上的增強(qiáng),既然2NF是屬性依賴于碼,那么就可能存在一種依賴情況:A依賴B,B依賴C ,這樣既可推出A依賴C這樣就表示A既依賴于B
11、也依賴于C,那么你可以選擇B也可以選擇C做主碼,那么違反了主碼要唯一的基本原則,這樣是不合適的。所以說(shuō)3NF是在2NF的增強(qiáng),確定了主碼必須唯一,消除了2NF的傳遞依賴性。因此,3NF是一個(gè)可用關(guān)系模式應(yīng)滿足的最低范式,也就是說(shuō),如果一個(gè)關(guān)系不服從3NF,這個(gè)關(guān)系其實(shí)是不可用的。
8. 設(shè)關(guān)系R和函數(shù)依賴F:R(W,X,Y,Z)F={X→Z,WX→Y},試求:
(1) 關(guān)系R屬于第幾范式?
(2) 如果關(guān)系R不屬于BCNF,請(qǐng)將關(guān)系R逐步分解為BCNF。
解:
(1) R是1NF。侯選碼為WX,則Y,Z為非主屬性,又由于X→Z,因此F中存在非主屬性對(duì)侯選碼的部分函數(shù)依賴。
(2)
12、 將關(guān)系分解為:
R1(W,X,Y),F(xiàn)1 = { WX→Y }
R2(X,Z),F(xiàn)2 = { X→Z }
消除了非主屬性對(duì)碼的部分函數(shù)依賴。F1和F2中的函數(shù)依賴都是非平凡的,并且決定因素是候選碼,所以上述關(guān)系模式是BCNF。
9. 設(shè)有關(guān)系模式R(EGHIJ),R的函數(shù)依賴集F={E→I,J→I,I→G,GH→I,IH→E},求:
(1) R的候選關(guān)鍵字
(2) 判斷s={EG,EJ,JH,IGH,EH}是否為無(wú)損連接分解?
(3) 將R分解為3NF,并具有無(wú)損連接性和保持函數(shù)依賴性。
解:
(1) 由函數(shù)依賴集F可知,該關(guān)系模式的候選碼為JH。
(2) s={EG,EJ,JH,IGH,EH}是無(wú)損連接分解。
(3) 去掉在函數(shù)依賴集右側(cè)出現(xiàn)的,剩下JH,(JH)+=EGHIJ,所以候選碼只有JH。
第一、求出最小依賴集Fm=F;
第二、沒(méi)有不在F中出現(xiàn)的屬性
第三、沒(méi)有那個(gè)依賴X→A∈F,且XA=U;
第四、沒(méi)有相同的左部,所以每個(gè)依賴自成一組ρ={EI,JI,IG,GHI,IHE}
第五、τ=ρ?{JH},τ={EI,JI,IG,GHI,IHE,JH }
友情提示:部分文檔來(lái)自網(wǎng)絡(luò)整理,供您參考!文檔可復(fù)制、編制,期待您的好評(píng)與關(guān)注!
4 / 4