版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第3部分 習題及其解答第一章的兩道題年齡性別單位姓名程序員職稱編號M結(jié)束時間開始時間設(shè)計N價格程序名稱程序?qū)@柊鏅?quán)聯(lián)系電話廠址工廠名稱工廠月薪1M雇用期N姓名性別職稱工人編號N雇用工人單價產(chǎn)品名月產(chǎn)量生產(chǎn)產(chǎn)品號產(chǎn)品規(guī)格3-2 習題22.6 分別把習題1.10、習題1.11的ER圖轉(zhuǎn)換成關(guān)系模型數(shù)據(jù)結(jié)構(gòu)?!緟⒖即鸢浮?習題1.10的ER圖可轉(zhuǎn)換成如下的關(guān)系模型數(shù)據(jù)結(jié)構(gòu)。 程序員(編號,姓名,性別,年齡,單位,職稱),其中編號是關(guān)鍵字; 程序(程序名稱,版權(quán),專利號,價格),其中程序名稱是關(guān)鍵字; 設(shè)計(編號,程序名稱,開始時間,結(jié)束時間),其中(編號,程序名稱)是關(guān)鍵字。2習題1.11的ER圖
2、可轉(zhuǎn)換成如下的關(guān)系模型數(shù)據(jù)結(jié)構(gòu)。 工廠(工廠名稱,廠址,聯(lián)系電話),其中工廠名稱是關(guān)鍵字; 產(chǎn)品(產(chǎn)品號,產(chǎn)品名,規(guī)格,單價),其中產(chǎn)品號是關(guān)鍵字; 工人(工人編號,姓名,性別,職稱,工廠名稱,雇用期,月薪),其中工人編號是關(guān)鍵字,工廠名稱是外關(guān)鍵字,雇用期和月薪是聯(lián)系屬性; 生產(chǎn)(工廠名稱,產(chǎn)品號,月產(chǎn)量),其中(工廠名稱,產(chǎn)品號)是關(guān)鍵字,生產(chǎn)關(guān)系是表示聯(lián)系的。2.8 判斷下列情況,分別指出它們具體遵循那一類完整性約束規(guī)則?1用戶寫一條語句明確指定月份數(shù)據(jù)在112之間有效。2關(guān)系數(shù)據(jù)庫中不允許主鍵值為空的元組存在。3從A關(guān)系的外鍵出發(fā)去找B關(guān)系中的記錄,必須能找到。【解答】1用戶用語句指定
3、月份數(shù)據(jù)在112之間有效,遵循用戶定義的完整性約束規(guī)則。2關(guān)系數(shù)據(jù)庫中不允許主鍵值為空的元組存在,遵循實體完整性約束規(guī)則;3從A關(guān)系的外鍵出發(fā)去找B關(guān)系的記錄,必須能找到,遵循引用完整性約束規(guī)則。 2.9 判斷下列情況,分別指出他們是用DML還是用DDL來完成下列操作?1創(chuàng)建“學生”表結(jié)構(gòu)。2對“學生”表中的學號屬性,其數(shù)據(jù)類型由“整型”修改為“字符型”。3把“學生”表中學號“021”修改為“025”。【解答】1創(chuàng)建“學生”表結(jié)構(gòu),即定義一個關(guān)系模式,用DDL完成。2修改“學生”表中學號屬性的數(shù)據(jù)類型,即修改關(guān)系模式的定義,用DDL完成。3修改“學生”表中學號屬性的數(shù)據(jù)值,即對表中的數(shù)據(jù)進行操
4、作,用DML完成。2.12 給出兩個學生選修課程關(guān)系A(chǔ)和B,屬性為姓名、課程名、成績。分別寫出后列各關(guān)系代數(shù)運算的結(jié)果關(guān)系。關(guān)系B姓名課程名成績黃邊晴C+語言86李紅數(shù)學89葉晴數(shù)學73關(guān)系A(chǔ)姓名課程名成績李紅數(shù)學89羅杰明英語78陳小東數(shù)據(jù)庫901A和B的并、交、差、乘積、自然聯(lián)接。2s成績> '80' (A); s2= '數(shù)學'3<'90' (B); p1,3(A); p課程名(B)。3p1,3(s2='數(shù)學'(B);p姓名(s成績>'75'(AB);p姓名(s課程名='數(shù)學'
5、課程名='英語' (A-B)。4; 。5AB; AB; AB ?!窘獯稹?結(jié)果關(guān)系見表3.2(a)表3.2(e)。表3.2(a) AB結(jié)果關(guān)系姓名課程名成績李紅數(shù)學89羅杰明英語78陳小東數(shù)據(jù)庫90黃邊晴C+語言86葉晴數(shù)學73表3.2(c) AB結(jié)果關(guān)系姓名課程名成績羅杰明英語78陳小東數(shù)據(jù)庫90表3.2(b) AB結(jié)果關(guān)系姓名課程名成績李紅數(shù)學89表3.2(d) A×B結(jié)果關(guān)系A(chǔ).姓名A.課程名A.成績B.姓名B.課程名B.成績李紅數(shù)學89黃邊晴C+語言86李紅數(shù)學89李紅數(shù)學89李紅數(shù)學89葉晴數(shù)學73羅杰明英語78黃邊晴C+語言86羅杰明英語78李紅數(shù)學89羅
6、杰明英語78葉晴數(shù)學73陳小東數(shù)據(jù)庫90黃邊晴C+語言86陳小東數(shù)據(jù)庫90李紅數(shù)學89陳小東數(shù)據(jù)庫90葉晴數(shù)學73表3.2(e) AB結(jié)果關(guān)系姓名課程名成績李紅數(shù)學892結(jié)果關(guān)系見表3.2(f)表3.2(i)。表3.2(f) s成績>' 80'(A) 結(jié)果關(guān)系姓名課程名成績李紅數(shù)學89陳小東數(shù)據(jù)庫90表3.2(g) s2='數(shù)學'3<'90' (B) 結(jié)果關(guān)系姓名課程名成績李紅數(shù)學89葉晴數(shù)學73表3.2(i) p課程名(B) 結(jié)果關(guān)系課程名C+語言數(shù)學表3.2(h) p1,3(A) 結(jié)果關(guān)系姓名成績李紅89羅杰明78陳小東903結(jié)果
7、關(guān)系見表3.2(j)表3.2(l)。表3.2(k) p姓名(s成績>'75'(AB) 結(jié)果關(guān)系姓名李紅表3.2(j) p1,3(s2='數(shù)學'(B) 結(jié)果關(guān)系姓名成績李紅89葉晴73表3.2(l) p姓名(s課程名='數(shù)學'課程名='英語'(A-B) 結(jié)果關(guān)系姓名羅杰明4結(jié)果關(guān)系見表3.2(m)表3.2(n)。表3.2(m) 結(jié)果關(guān)系A(chǔ).姓名A.課程名A.成績B.姓名B.課程名B.成績李紅數(shù)學89李紅數(shù)學89表3.2(n) 結(jié)果關(guān)系A(chǔ).姓名A.課程名A.成績B.姓名B.課程名B.成績李紅數(shù)學89葉晴數(shù)學735結(jié)果關(guān)系見表3.
8、2(o)表3.2(q)。表3.2(p) AB 結(jié)果關(guān)系姓名課程名成績李紅數(shù)學89羅杰明英語78陳小東數(shù)據(jù)庫90表3.2(o) AB 結(jié)果關(guān)系姓名課程名成績李紅數(shù)學89羅杰明英語78陳小東數(shù)據(jù)庫90黃邊晴C+語言86葉晴數(shù)學73表3.2(q) AB 結(jié)果關(guān)系姓名課程名成績李紅數(shù)學89黃邊晴C+語言86葉晴數(shù)學732.15假設(shè)教學數(shù)據(jù)庫中已建立三個關(guān)系:學生關(guān)系 student(sno,sname,sex,birth,height,class,address) 課程關(guān)系 course(cno,cname,credit) 選修關(guān)系 elective(sno,cno,grade) 用關(guān)系代數(shù)表達式表達
9、下列查詢:1檢索學習課程號為C06的學生學號與成績。2檢索學習課程號為C06的學生學號與姓名。3檢索學習課程名為ENGLISH的學生學號與姓名。4檢索選修課程號為C02或C06的學生學號。5檢索至少選修課程號為C02和C06的學生學號。6檢索沒有選修C06課程的學生姓名及其所在班級。7檢索學習全部課程的學生姓名。8檢索學習課程中包含了S08學生所學課程的學生學號?!窘獯稹?檢索學習課程號為C06的學生學號與成績。psno, grade (scno='C06' (elective) 或 p1,3 (s2='C06' (elective)2檢索學習課程號為C06的學
10、生學號與姓名。psno, sname (scno='C06' (studentelective)3檢索學習課程名為ENGLISH的學生學號與姓名。psno, sname (scname='ENGLISH' (studentelectivecourse)4檢索選修課程號為C02或C06的學生學號。psno (scno='C02'cno='C06' (elective)5檢索至少選修課程號為C02和C06的學生學號。psno (s1=42='C02'5='C06' (elective´elec
11、tive)6檢索沒有選修C06課程的學生姓名及其所在班級。psname, class (student) - psname, class (scno='C06' (studentelective)7檢索學習全部課程的學生姓名。psname (student(psno, cno (elective) ¸ pcno (course)8檢索學習課程中包含了S08學生所學課程的學生學號。psno, cno (elective) ¸ (pcno (ssno='S08' (elective)2.25 已知關(guān)系模式R(A,B,C,D,E)和函數(shù)依賴集 F=
12、ABC, BD, CE, ECB, ACB, DBE,試問ACBE能否從F導(dǎo)出?【解答】 方法一:運用推理規(guī)則推導(dǎo)。 對已知的ACB和BD,根據(jù)Å3傳遞律,ACD成立; 對已證的ACD和已知的DBE,根據(jù)Å3傳遞律,ACBE成立;即ACBE能從F中導(dǎo)出。 方法二:按算法2.1(求屬性集合X關(guān)于函數(shù)依賴集F的閉包X+),求(AC)+。(1) 置初始值 A=,A*=AC;(2) 因AA*,置A=AC;(3) 第一次掃描F,找到CE和ACB,其左部ÍAC,故置A*=ACEB。搜索完,轉(zhuǎn)(4);(4) 因AA*,置A=ACEB;(5) 第二次掃描F,找到ABC,BD和EC
13、B,其左部ÍACEB,故置A*=ACEBD。搜索完,轉(zhuǎn)(6);(6) 因AA*,置A=ACEBD;(7) 第三次掃描F,找到DBE,其左部ÍACEBD,故置A*=ACEBD。搜索完,轉(zhuǎn)(8);(8) 因A=A*,轉(zhuǎn)(9);(9) 輸出A*,即(AC)+=ACEBD。因為BEÍ(AC)+ ,所以ACBE能夠從F中導(dǎo)出。方法三:運行算法2.1的VB程序,輸入相應(yīng)數(shù)據(jù)后,得出(AC)+=ACEBD,如圖3.5所示。因為BEÍ(AC)+ ,所以ACBE能夠從F中導(dǎo)出。圖3.5 運行算法2.1的VB程序,求(AC)+。2求屬性集BG關(guān)于F的閉包(BG)+,其算法步
14、驟如下:(1) 置初始值 A=,A*=BG;(2) 因AA*,置A=BG;(3) 第一次掃描F,找到BCE,其左部ÍBG,故置A*=BGCE。搜索完,轉(zhuǎn)(4);(4) 因AA*,置A=BGCE;(5) 第二次掃描F,找到GCA,其左部ÍBGCE,故置A*=BGCEA。搜索完,轉(zhuǎn)(6);(6) 因AA*,置A=BGCEA;(7) 第三次掃描F,找到ACPE,AP,GAB和AEGB,其左部ÍBGCEA,故置A*=BGCEAP。搜索完,轉(zhuǎn)(8);(8) 因AA*,置A=BGCEAP;(9) 第四次掃描F,找到PGA,PABG和ABCPH,其左部ÍBGCEAP,
15、故置A*=BGCEAPH。搜索完,轉(zhuǎn)(10);(10) 因AA*,置A=BGCEAPH;(11) 第五次掃描F,找不到其左部ÍBGCEAPH的函數(shù)依賴,轉(zhuǎn)(12);(12) 因A=A*,轉(zhuǎn)(13);(13) 輸出A*,即(BG)+=BGCEAPH。 運行算法2.1的VB程序,輸入相應(yīng)數(shù)據(jù)后,可驗證(BG)+=BGCEAPH,如圖3.7所示。圖3.7 運行算法2.1的VB程序,求(BG)+。2.29 已知關(guān)系模式R(A,B,C,D,E)和函數(shù)依賴集F=AD,ED,DB,BCD,DCA,問分解=R1(A,B),R2(A,E),R3(E,C),R4(D,B,C),R5(A,C)是否為R的無
16、損聯(lián)接分解?!窘獯稹?根據(jù)“測試一個分解是否為無損連接分解”的算法,首先建立習題2.29的初始R表,如表3.6(1)所示。表3.6(1) 習題2.29的初始R表ABCDEABAEECDBCACa1a1b31b41a1a2b22b32a2b52b13b23a3a3a3b14b24b34a4b54b15a5a5b45b552反復(fù)檢查F的每一個函數(shù)依賴,修改R表中的元素,一直到表格不能修改為止。 對AD,第1,2,5行的A同為a1,把這三行的D均改為b14; 對ED,第2,3行的E同為a5,把這兩行的D均改為b14; 對DB,第1,2,3,5行的D同為b14,把這四行的B均改為a2; 對BCD,第3
17、,4,5行的BC同為(a2,a3),把這三行的D均改為a4; 對DCA,第3,4,5行的DC同為(a4,a3),把這三行的A均改為a1; 重復(fù)掃描F,對AD,五行的A同為a1,把這五行的D均改為a4; 表格不能再修改了,算法終止,結(jié)果R表如表3.6(2)所示。第3行全為a,即是R的無損聯(lián)接分解。若本題用算法2.2的VB程序解題,結(jié)果見圖3.8。表3.6(2) 習題2.29的結(jié)果R表ABCDEABAEECDBCACa1a1a1a1a1a2a2a2a2a2b13b23a3a3a3a4a4a4a4a4b15a5a5b45b55圖3.8 習題2.29用算法2.2的VB程序解題2.30 試分析下列分解是
18、否具有無損聯(lián)接和保持函數(shù)依賴的特點。1設(shè)R1(ABC),F1=AB,1=AB,AC。2設(shè)R2(ABC),F2=AC,BC,2=AB,AC。3設(shè)R3(ABC),F3=AB,3=AB,BC。4設(shè)R4(ABC),F4=AB,BC,4=AC,BC。5設(shè)R5(ABC),F5=ABC,CA,5=AC,BC。【解答】1因為ABAC=A,AB-AC=B,AB成立,所以分解1具有無損連接性。運行算法2.2的VB程序如圖3.9(a)所示,驗證結(jié)果正確。因為 pAB(F1)pAC(F1) = AB = F1 ;所以分解1是保持函數(shù)依賴集F1的。圖3.9(a) 分解1具有無損連接性2因為ABAC=A,AC-AB=C,
19、AC成立,所以分解2具有無損連接性。運行算法2.2的VB程序如圖3.9(b)所示,驗證結(jié)果正確。因為 pAB(F2)pAC(F2) = AC F2 ;所以分解2不具有保持函數(shù)依賴特性。圖3.9(b) 分解2具有無損連接性 3因為(ABBC)(AB-BC),而且(ABBC)(BC-AB),所以分解3不具有無損連接特性。運行算法2.2的VB程序如圖3.9(c)所示,驗證結(jié)果正確。因為 pAB(F3)pBC(F3) = AB = F3 ;所以分解3是保持函數(shù)依賴集F3的。圖3.9(c) 分解3不具有無損連接特性4因為(ACBC)(AC-BC),而且(ACBC)(BC-AC),所以分解4不具有無損連接
20、特性。運行算法2.2的VB程序如圖3.9(d)所示,驗證結(jié)果正確。因為 pAC(F4)pBC(F4) = BC F4 ;所以分解4不具有保持函數(shù)依賴特性。圖3.9(d) 分解4不具有無損連接特性5因為ACBC=C,AC-BC=A,CA成立,所以分解5具有無損連接性。運行算法2.2的VB程序如圖3.9(e)所示,驗證結(jié)果正確。因為 pAC(F5)pBC(F5) = CA F5 ;所以分解5不具有保持函數(shù)依賴特性。圖3.9(e) 分解5具有無損連接性2.32 已知關(guān)系模式R(A,B,C,D)和函數(shù)依賴集F=AB,BC,AD,DC,=AB,AC,AD是R的一個分解。1求出F在的每個模式上的投影。2相
21、對于F是無損連接分解嗎?3保持依賴嗎?【解答】1p(AB)(F)=AB;p(AC)(F)=AC;p(AD)(F)=AD;2相對于F是無損連接分解,見圖3.11。圖3.11 分解=AB,AC,AD相對于F是無損連接分解3因為 p(AB)(F)p(AC)(F)p(AD)(F)=AB,AC,AD,與F比較,丟失了BC和DC,所以分解不保持依賴。2.33 已知關(guān)系模式R(A,B,C,D)和函數(shù)依賴集F=AC,DC,BDA,=AB,ACD,BCD是R的一個分解。試證明相對于F不是無損聯(lián)接分解?!窘獯稹?相對于F不是無損連接分解,見圖3.12。圖3.12 分解=AB,ACD,BCD相對于F不是無損連接分解
22、2.34 已知關(guān)系模式R(A,B,C,D)和函數(shù)依賴集F=AB,BC,DB,1把R分解成ACD,BD,試求F在這兩個模式上的投影。2R1(ACD)和R2(BD)是BCNF嗎?如果不是,請作進一步分解?!窘獯稹?1p(ACD)(F)=AC,DC; p(BD)(F)=DB。分解ACD,BD丟失了函數(shù)依賴集F中的AB和BC,所以該分解不具有保持函數(shù)依賴特性。2. 對R1(ACD)和R2(BD)做如下分析。 在R1(ACD)中,有AC,DC,(AD)+=ACD;(AD)是鍵,C是非主屬性。R1為1NF,但R1中的非主屬性C部分依賴于候選鍵,所以R1不是2NF,也不是3NF和BCNF??砂裄1為進一步分
23、解為AC,AD或DC,AD,見圖3.13(a)和3.13(b)。圖3.13(a) 把R1為分解為AC,AD,是無損連接分解在分解AC,AD中,AC有AC,A是鍵,C是非主屬性,AC為BCNF;AD的鍵是(AD),AD也為BCNF。分解AC,AD是無損連接分解,但丟失了函數(shù)依賴DC。圖3.13(b) 把R1為分解為DC,AD,也是無損連接分解在分解DC,AD中,DC有DC,D是鍵,C是非主屬性,DC為BCNF;AD的鍵是(AD),AD也為BCNF。分解DC,AD是無損連接分解,但丟失了函數(shù)依賴AC。 在R2(BD)中,有DB,D+=DB;D為鍵且B不在D中,所以R2是BCNF。2.35 已知關(guān)系
24、模式R(A,B,C,D)和函數(shù)依賴集F1=AB,BC;F2=BC,CD。R的一個分解=AB,BC,CD。1若F1是R上的函數(shù)依賴集,相對于F1是無損連接分解嗎?2若F2是R上的函數(shù)依賴集,相對于F2是無損連接分解嗎?在分析過程中,如果認為不是無損連接分解,試舉出反例說明。【解答】 1如圖3.14(a)所示,相對于F1不是無損連接分解。圖3.14(a) 相對于F1不是無損連接分解 假設(shè)關(guān)系模式R的一個實例r如表3.7(a)所示。r的分解見表3.7(b),(c),(d)。ABBCCD的結(jié)果關(guān)系見表3.7(e)。顯然易見,相對于F1不是無損連接分解。表3.7 不是無損連接分解的實例說明(e) 連接后
25、的關(guān)系A(chǔ)BCD1155226633334747(d) CDCD3347(c) BCBC2633(b) ABAB1526(a) 關(guān)系實例rABCD15263347 2如圖3.14(b)所示,相對于F2是無損連接分解。圖3.14(b) 相對于F2是無損連接分解2.36 有關(guān)系模式R(學號Sno,課程號Cno,成績Grade,任課教師Tname,教師電話Ttel),假設(shè):每個學生選修一門課只取得一個成績;每門課只有一個教師任教;不存在教師同名的情況;每個教師只有一個家庭電話。1寫出關(guān)系模式R的函數(shù)依賴集和候選關(guān)鍵字。2把R分解成2NF模式集并說明理由。3把R分解成3NF模式集并說明理由。4把R分解成BCNF模式集并說明理由?!窘獯稹?關(guān)系模式R中主要的函數(shù)依賴有:(Sno,Cno)Grade 每個學生選修一門課后,對應(yīng)取得一個成績;CnoTname 每門課只有一個教師任教;TnameTtel 每個教師只有一個家庭電話;(Sno,Cno)(Sno,Cno,Grade,Tname,Ttel) 鍵(Sno,Cno)惟一決定表中的一行。在R中,Sno,C
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工作總結(jié)之風電實習總結(jié)
- 工作總結(jié)之動漫公司實習總結(jié)
- 銀行合規(guī)管理制度實施規(guī)劃
- 《保險代理機構(gòu)規(guī)定》課件
- 《政府透明度完美版》課件
- 《保安培訓(xùn)教材》課件
- 教師師德演講范文(30篇)
- 探究熔化與凝固的特點課件粵教滬版
- 《信用保險培訓(xùn)》課件
- 八年級英語Hasitarrivedyet課件
- 重要隱蔽單元工程(關(guān)鍵部位單元工程)質(zhì)量等級簽證表
- 2025蛇年年終總結(jié)新年計劃工作總結(jié)模板
- 勞動用工風險課件
- DB11 827-2011 廢舊爆炸物品銷毀處置安全規(guī)程
- 小學二年級數(shù)學上冊-加減乘除法口算題800道
- 拒絕校園欺凌·守護身心健康(初高中版)
- 語 文病句專題講練-2024-2025學年統(tǒng)編版語文七年級上冊
- 第三單元(復(fù)習課件)一年級語文上冊(統(tǒng)編版2024秋)
- 2024年大學試題(計算機科學)-數(shù)字圖像處理考試近5年真題集錦(頻考類試題)帶答案
- 北京市2023-2024學年七年級上學期期末考試數(shù)學試題(含答案)2
- 文旅深度融合長期發(fā)展規(guī)劃
評論
0/150
提交評論