版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第3部分 習題及其解答第一章的兩道題年齡性別單位姓名程序員職稱編號M結束時間開始時間設計N價格程序名稱程序專利號版權聯系電話廠址工廠名稱工廠月薪1M雇用期N姓名性別職稱工人編號N雇用工人單價產品名月產量生產產品號產品規(guī)格3-2 習題22.6 分別把習題1.10、習題1.11的ER圖轉換成關系模型數據結構?!緟⒖即鸢浮?習題1.10的ER圖可轉換成如下的關系模型數據結構。 程序員(編號,姓名,性別,年齡,單位,職稱),其中編號是關鍵字; 程序(程序名稱,版權,專利號,價格),其中程序名稱是關鍵字; 設計(編號,程序名稱,開始時間,結束時間),其中(編號,程序名稱)是關鍵字。2習題1.11的ER圖
2、可轉換成如下的關系模型數據結構。 工廠(工廠名稱,廠址,聯系電話),其中工廠名稱是關鍵字; 產品(產品號,產品名,規(guī)格,單價),其中產品號是關鍵字; 工人(工人編號,姓名,性別,職稱,工廠名稱,雇用期,月薪),其中工人編號是關鍵字,工廠名稱是外關鍵字,雇用期和月薪是聯系屬性; 生產(工廠名稱,產品號,月產量),其中(工廠名稱,產品號)是關鍵字,生產關系是表示聯系的。2.8 判斷下列情況,分別指出它們具體遵循那一類完整性約束規(guī)則?1用戶寫一條語句明確指定月份數據在112之間有效。2關系數據庫中不允許主鍵值為空的元組存在。3從A關系的外鍵出發(fā)去找B關系中的記錄,必須能找到。【解答】1用戶用語句指定
3、月份數據在112之間有效,遵循用戶定義的完整性約束規(guī)則。2關系數據庫中不允許主鍵值為空的元組存在,遵循實體完整性約束規(guī)則;3從A關系的外鍵出發(fā)去找B關系的記錄,必須能找到,遵循引用完整性約束規(guī)則。 2.9 判斷下列情況,分別指出他們是用DML還是用DDL來完成下列操作?1創(chuàng)建“學生”表結構。2對“學生”表中的學號屬性,其數據類型由“整型”修改為“字符型”。3把“學生”表中學號“021”修改為“025”。【解答】1創(chuàng)建“學生”表結構,即定義一個關系模式,用DDL完成。2修改“學生”表中學號屬性的數據類型,即修改關系模式的定義,用DDL完成。3修改“學生”表中學號屬性的數據值,即對表中的數據進行操
4、作,用DML完成。2.12 給出兩個學生選修課程關系A和B,屬性為姓名、課程名、成績。分別寫出后列各關系代數運算的結果關系。關系B姓名課程名成績黃邊晴C+語言86李紅數學89葉晴數學73關系A姓名課程名成績李紅數學89羅杰明英語78陳小東數據庫901A和B的并、交、差、乘積、自然聯接。2s成績> '80' (A); s2= '數學'3<'90' (B); p1,3(A); p課程名(B)。3p1,3(s2='數學'(B);p姓名(s成績>'75'(AB);p姓名(s課程名='數學'
5、課程名='英語' (A-B)。4; 。5AB; AB; AB ?!窘獯稹?結果關系見表3.2(a)表3.2(e)。表3.2(a) AB結果關系姓名課程名成績李紅數學89羅杰明英語78陳小東數據庫90黃邊晴C+語言86葉晴數學73表3.2(c) AB結果關系姓名課程名成績羅杰明英語78陳小東數據庫90表3.2(b) AB結果關系姓名課程名成績李紅數學89表3.2(d) A×B結果關系A.姓名A.課程名A.成績B.姓名B.課程名B.成績李紅數學89黃邊晴C+語言86李紅數學89李紅數學89李紅數學89葉晴數學73羅杰明英語78黃邊晴C+語言86羅杰明英語78李紅數學89羅
6、杰明英語78葉晴數學73陳小東數據庫90黃邊晴C+語言86陳小東數據庫90李紅數學89陳小東數據庫90葉晴數學73表3.2(e) AB結果關系姓名課程名成績李紅數學892結果關系見表3.2(f)表3.2(i)。表3.2(f) s成績>' 80'(A) 結果關系姓名課程名成績李紅數學89陳小東數據庫90表3.2(g) s2='數學'3<'90' (B) 結果關系姓名課程名成績李紅數學89葉晴數學73表3.2(i) p課程名(B) 結果關系課程名C+語言數學表3.2(h) p1,3(A) 結果關系姓名成績李紅89羅杰明78陳小東903結果
7、關系見表3.2(j)表3.2(l)。表3.2(k) p姓名(s成績>'75'(AB) 結果關系姓名李紅表3.2(j) p1,3(s2='數學'(B) 結果關系姓名成績李紅89葉晴73表3.2(l) p姓名(s課程名='數學'課程名='英語'(A-B) 結果關系姓名羅杰明4結果關系見表3.2(m)表3.2(n)。表3.2(m) 結果關系A.姓名A.課程名A.成績B.姓名B.課程名B.成績李紅數學89李紅數學89表3.2(n) 結果關系A.姓名A.課程名A.成績B.姓名B.課程名B.成績李紅數學89葉晴數學735結果關系見表3.
8、2(o)表3.2(q)。表3.2(p) AB 結果關系姓名課程名成績李紅數學89羅杰明英語78陳小東數據庫90表3.2(o) AB 結果關系姓名課程名成績李紅數學89羅杰明英語78陳小東數據庫90黃邊晴C+語言86葉晴數學73表3.2(q) AB 結果關系姓名課程名成績李紅數學89黃邊晴C+語言86葉晴數學732.15假設教學數據庫中已建立三個關系:學生關系 student(sno,sname,sex,birth,height,class,address) 課程關系 course(cno,cname,credit) 選修關系 elective(sno,cno,grade) 用關系代數表達式表達
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 已知關系模式R(A,B,C,D,E)和函數依賴集 F=
12、ABC, BD, CE, ECB, ACB, DBE,試問ACBE能否從F導出?【解答】 方法一:運用推理規(guī)則推導。 對已知的ACB和BD,根據Å3傳遞律,ACD成立; 對已證的ACD和已知的DBE,根據Å3傳遞律,ACBE成立;即ACBE能從F中導出。 方法二:按算法2.1(求屬性集合X關于函數依賴集F的閉包X+),求(AC)+。(1) 置初始值 A=,A*=AC;(2) 因AA*,置A=AC;(3) 第一次掃描F,找到CE和ACB,其左部ÍAC,故置A*=ACEB。搜索完,轉(4);(4) 因AA*,置A=ACEB;(5) 第二次掃描F,找到ABC,BD和EC
13、B,其左部ÍACEB,故置A*=ACEBD。搜索完,轉(6);(6) 因AA*,置A=ACEBD;(7) 第三次掃描F,找到DBE,其左部ÍACEBD,故置A*=ACEBD。搜索完,轉(8);(8) 因A=A*,轉(9);(9) 輸出A*,即(AC)+=ACEBD。因為BEÍ(AC)+ ,所以ACBE能夠從F中導出。方法三:運行算法2.1的VB程序,輸入相應數據后,得出(AC)+=ACEBD,如圖3.5所示。因為BEÍ(AC)+ ,所以ACBE能夠從F中導出。圖3.5 運行算法2.1的VB程序,求(AC)+。2求屬性集BG關于F的閉包(BG)+,其算法步
14、驟如下:(1) 置初始值 A=,A*=BG;(2) 因AA*,置A=BG;(3) 第一次掃描F,找到BCE,其左部ÍBG,故置A*=BGCE。搜索完,轉(4);(4) 因AA*,置A=BGCE;(5) 第二次掃描F,找到GCA,其左部ÍBGCE,故置A*=BGCEA。搜索完,轉(6);(6) 因AA*,置A=BGCEA;(7) 第三次掃描F,找到ACPE,AP,GAB和AEGB,其左部ÍBGCEA,故置A*=BGCEAP。搜索完,轉(8);(8) 因AA*,置A=BGCEAP;(9) 第四次掃描F,找到PGA,PABG和ABCPH,其左部ÍBGCEAP,
15、故置A*=BGCEAPH。搜索完,轉(10);(10) 因AA*,置A=BGCEAPH;(11) 第五次掃描F,找不到其左部ÍBGCEAPH的函數依賴,轉(12);(12) 因A=A*,轉(13);(13) 輸出A*,即(BG)+=BGCEAPH。 運行算法2.1的VB程序,輸入相應數據后,可驗證(BG)+=BGCEAPH,如圖3.7所示。圖3.7 運行算法2.1的VB程序,求(BG)+。2.29 已知關系模式R(A,B,C,D,E)和函數依賴集F=AD,ED,DB,BCD,DCA,問分解=R1(A,B),R2(A,E),R3(E,C),R4(D,B,C),R5(A,C)是否為R的無
16、損聯接分解。【解答】1根據“測試一個分解是否為無損連接分解”的算法,首先建立習題2.29的初始R表,如表3.6(1)所示。表3.6(1) 習題2.29的初始R表ABCDEABAEECDBCACa1a1b31b41a1a2b22b32a2b52b13b23a3a3a3b14b24b34a4b54b15a5a5b45b552反復檢查F的每一個函數依賴,修改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,對AD,五行的A同為a1,把這五行的D均改為a4; 表格不能再修改了,算法終止,結果R表如表3.6(2)所示。第3行全為a,即是R的無損聯接分解。若本題用算法2.2的VB程序解題,結果見圖3.8。表3.6(2) 習題2.29的結果R表ABCDEABAEECDBCACa1a1a1a1a1a2a2a2a2a2b13b23a3a3a3a4a4a4a4a4b15a5a5b45b55圖3.8 習題2.29用算法2.2的VB程序解題2.30 試分析下列分解是
18、否具有無損聯接和保持函數依賴的特點。1設R1(ABC),F1=AB,1=AB,AC。2設R2(ABC),F2=AC,BC,2=AB,AC。3設R3(ABC),F3=AB,3=AB,BC。4設R4(ABC),F4=AB,BC,4=AC,BC。5設R5(ABC),F5=ABC,CA,5=AC,BC。【解答】1因為ABAC=A,AB-AC=B,AB成立,所以分解1具有無損連接性。運行算法2.2的VB程序如圖3.9(a)所示,驗證結果正確。因為 pAB(F1)pAC(F1) = AB = F1 ;所以分解1是保持函數依賴集F1的。圖3.9(a) 分解1具有無損連接性2因為ABAC=A,AC-AB=C,
19、AC成立,所以分解2具有無損連接性。運行算法2.2的VB程序如圖3.9(b)所示,驗證結果正確。因為 pAB(F2)pAC(F2) = AC F2 ;所以分解2不具有保持函數依賴特性。圖3.9(b) 分解2具有無損連接性 3因為(ABBC)(AB-BC),而且(ABBC)(BC-AB),所以分解3不具有無損連接特性。運行算法2.2的VB程序如圖3.9(c)所示,驗證結果正確。因為 pAB(F3)pBC(F3) = AB = F3 ;所以分解3是保持函數依賴集F3的。圖3.9(c) 分解3不具有無損連接特性4因為(ACBC)(AC-BC),而且(ACBC)(BC-AC),所以分解4不具有無損連接
20、特性。運行算法2.2的VB程序如圖3.9(d)所示,驗證結果正確。因為 pAC(F4)pBC(F4) = BC F4 ;所以分解4不具有保持函數依賴特性。圖3.9(d) 分解4不具有無損連接特性5因為ACBC=C,AC-BC=A,CA成立,所以分解5具有無損連接性。運行算法2.2的VB程序如圖3.9(e)所示,驗證結果正確。因為 pAC(F5)pBC(F5) = CA F5 ;所以分解5不具有保持函數依賴特性。圖3.9(e) 分解5具有無損連接性2.32 已知關系模式R(A,B,C,D)和函數依賴集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 已知關系模式R(A,B,C,D)和函數依賴集F=AC,DC,BDA,=AB,ACD,BCD是R的一個分解。試證明相對于F不是無損聯接分解。【解答】 相對于F不是無損連接分解,見圖3.12。圖3.12 分解=AB,ACD,BCD相對于F不是無損連接分解
22、2.34 已知關系模式R(A,B,C,D)和函數依賴集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丟失了函數依賴集F中的AB和BC,所以該分解不具有保持函數依賴特性。2. 對R1(ACD)和R2(BD)做如下分析。 在R1(ACD)中,有AC,DC,(AD)+=ACD;(AD)是鍵,C是非主屬性。R1為1NF,但R1中的非主屬性C部分依賴于候選鍵,所以R1不是2NF,也不是3NF和BCNF。可把R1為進一步分
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是無損連接分解,但丟失了函數依賴DC。圖3.13(b) 把R1為分解為DC,AD,也是無損連接分解在分解DC,AD中,DC有DC,D是鍵,C是非主屬性,DC為BCNF;AD的鍵是(AD),AD也為BCNF。分解DC,AD是無損連接分解,但丟失了函數依賴AC。 在R2(BD)中,有DB,D+=DB;D為鍵且B不在D中,所以R2是BCNF。2.35 已知關系
24、模式R(A,B,C,D)和函數依賴集F1=AB,BC;F2=BC,CD。R的一個分解=AB,BC,CD。1若F1是R上的函數依賴集,相對于F1是無損連接分解嗎?2若F2是R上的函數依賴集,相對于F2是無損連接分解嗎?在分析過程中,如果認為不是無損連接分解,試舉出反例說明?!窘獯稹?1如圖3.14(a)所示,相對于F1不是無損連接分解。圖3.14(a) 相對于F1不是無損連接分解 假設關系模式R的一個實例r如表3.7(a)所示。r的分解見表3.7(b),(c),(d)。ABBCCD的結果關系見表3.7(e)。顯然易見,相對于F1不是無損連接分解。表3.7 不是無損連接分解的實例說明(e) 連接后
25、的關系ABCD1155226633334747(d) CDCD3347(c) BCBC2633(b) ABAB1526(a) 關系實例rABCD15263347 2如圖3.14(b)所示,相對于F2是無損連接分解。圖3.14(b) 相對于F2是無損連接分解2.36 有關系模式R(學號Sno,課程號Cno,成績Grade,任課教師Tname,教師電話Ttel),假設:每個學生選修一門課只取得一個成績;每門課只有一個教師任教;不存在教師同名的情況;每個教師只有一個家庭電話。1寫出關系模式R的函數依賴集和候選關鍵字。2把R分解成2NF模式集并說明理由。3把R分解成3NF模式集并說明理由。4把R分解成BCNF模式集并說明理由。【解答】1關系模式R中主要的函數依賴有:(Sno,Cno)Grade 每個學生選修一門課后,對應取得一個成績;CnoTname 每門課只有一個教師任教;TnameTtel 每個教師只有一個家庭電話;(Sno,Cno)(Sno,Cno,Grade,Tname,Ttel) 鍵(Sno,Cno)惟一決定表中的一行。在R中,Sno,C
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024至2030年中國雙面白板紙行業(yè)投資前景及策略咨詢研究報告
- 裝修材料購買合同書范本
- 產品質量風險識別與評估合同
- 定制物品買賣協(xié)議
- 保險買賣協(xié)議模板
- 白銀借貸協(xié)議
- 臨時工勞動合同范本咖啡師適用版
- 二手摩托車出售協(xié)議
- 個人探險借款合同樣本
- 臨時餐飲服務員合同模板
- DB32T 3695-2019 房屋面積測算技術規(guī)程
- 施工企業(yè)項目商務策劃管理要點及實務
- 沈鼓集團LNG離心壓縮機組匯報
- 塑料包裝袋出廠檢驗報告單
- 超聲引導腰叢阻滯
- 香港公司購銷合同模板(標準版)
- 分布式光伏發(fā)電項目EPC總承包合同
- 機電專業(yè)例會會議記錄
- CPK計算表格EXCEL模板
- (完整版)食品加工廠可行性研究報告
- SQE工作手冊范本
評論
0/150
提交評論