




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
數據庫作業答案-整理第一頁,共24頁。推薦閱讀書目《OraclePL/SQL最佳實踐》,機械工業出版社《數據挖掘概念與技術》韓家煒,機械工業出版社《BuildingtheDataWarehouse》W.H.Inmon第二頁,共24頁。第一章1.8列出文件處理系統和DBMS的四個主要區別第三頁,共24頁。第一章1.9解釋物理數據獨立性的概念,以及它在數據庫系統中的重要性。物理數據獨立性:物理獨立性是指用戶的應用程序與存儲在磁盤上的數據庫中數據是相互獨立的。即,數據在磁盤上怎樣存儲由DBMS管理,用戶程序不需要了解,應用程序要處理的只是數據的邏輯結構,這樣當數據的物理存儲改變了,應用程序不用改變。重要性:實現應用程序與存儲在磁盤上的數據相分離,應用程序不依賴與物理模式,不隨物理模式的改變而改變。第四頁,共24頁。第二章2.9考慮圖2-15所示銀行數據庫系統:(a)適當的主碼是什么?branch(branch_name,branch_city,assets)customer(customer_name,customer_street,customer_city)loan(loan_number,branch_name,amount)borrower(customer_name,loan_number)account(account_number,branch_name,balance)depositor(customer_name,account_number)(b)給出你選擇的主碼,確定適當的外碼。loan:branch_namereferencesbranchaccount:branch_namereferencesbranchborrower:customer_namereferencescustomerloan_numberreferencesloandepositor:customer_namereferencescustomer account_numberreferencesaccount第五頁,共24頁。第二章2.10考慮圖2-8所示advisor關系,advisor的主碼是s_id。假設一個學生可以有多位指導老師。那么s_id還是advisor關系的主碼嗎?如果不是,advisor的主碼會是什么呢?答案:不能,s_id不再是advisor的主碼。因為可能存在多個元組有著相同的s_id,此時s_id不能用來區別不同的元組。advisor的主碼應該是s_id,i_id。2.11解釋術語關系和關系模型在意義上的區別答案:關系模式(relationschema)是一種定義類型,關系(relation)是這種類型的一個實例2.12考慮圖2-14所示關系數據庫。給出關系代數表達式來表示下列每一個查詢:a.找出為“FirstBankCorporation”工作的所有員工姓名。b.找出為“FirstBankCorporation”工作的所有員工的姓名和居住城市c.找出為“FirstBankCorporation”工作且掙錢超過10000美元的所有員工的姓名、街道地址和居住城市。第六頁,共24頁。第二章答案:2.13考慮2-15所示銀行數據庫。對于下列每個查詢,給出一個關系代數表達式:a.找出貸款額度超過10000美元的所有貸款號b.找出所有這樣的存款人姓名,他擁有一個存款額大于6000美元的賬戶c.找出所有這樣的存款人的姓名,他在“Uptown”支行擁有一個存款額大于6000美元的賬戶第七頁,共24頁。第二章答案:a.Πloan_number(σamount>10000(loan))b.Πcustomer_name(σbalance>6000(depositor?account))c.Πcustomer_name(σ(branch_name=”Uptown”
∧balance>6000)(depositor?account))第八頁,共24頁。第三章3.11使用大學模式,用SQL寫出如下查詢.a.找出所有至少選修了一門Comp.Sci.課程的學生姓名,保證結果中沒有重復的姓名b.找出所有沒有選修在2009年春季之前開設的任何課程的學生的ID和姓名c.找出每個系老師的最高工資值。可以假設每個系至少有一位老師d.從前述查詢所計算出的每個系最高工資中選出最低值答案:a.selectnamefromstudentnaturaljointakesnaturaljoincoursewherecourse.dept=’Comp.Sci.’;b.selectid,namefromstudentexceptselectid,namefromstudentnaturaljointakeswhereyear<2009;C.selectdept,max(salary)frominstructorgroupbydept;d.selectmin(maxsalary)from(selectdept,max(salary)asmaxsalaryfrominstructorgroupbydept);第九頁,共24頁。第三章3.12使用大學模式,用SQL寫出如下查詢。a.創建一門課程“CS-001”,其名稱為“WeeklySeminar”,學分為0b.創建該課程在2009年秋季的一個課程段,sec_id為1c.讓Comp.Sci.系的每個學生選修上述課程段d.刪除名為Chavez的學生選修上述課程段的信息e.刪除課程CS-001。如果在運行此刪除語句之前,沒有先刪除這門課的授課信息(課程段),會發生什么事?f.刪除課程名稱中包含“database”的任意課程的任意課程段所對應的所有takes元組,在課程名的匹配中忽略大小寫答案:a.insertintocoursevalues(’CS-001’,’WeeklySeminar’,’Comp.Sci.’,0);b.insertintosectionvalues(’CS-001’,1,’Autumn’,2009,null,null,null);C.insertintotakesselectid,’CS-001’,1,’Autumn’,2009,nullfromstudentwheredeptname=’Comp.Sci.’;第十頁,共24頁。第三章d.deletefromtakeswherecourseid=’CS-001’andsectionid=1andyear=2009andsemester=’Autumn’andidin(selectidfromstudentwherename=’Chavez’);e.deletefromcoursewherecourse_id=‘CS-001’;(會出現違反外鍵規則。因為section有外鍵指向course,如果直接從course刪除CS-001的信息,此時section中關于CS-001的字段在course中找不到關聯)f.deletefromtakeswherecourseidin(selectcourseidfromcoursewherelower(title)like’%database%’);3.13寫出對應于圖3-18中模式的SQLDDL.在數據類型上做合理的假設,確保聲明主碼和外碼.第十一頁,共24頁。第三章3.13寫出對應于圖3-18中模式的SQLDDL.在數據類型上做合理的假設,確保聲明主碼和外碼.答案:createtableperson(driver_idvarchar(50),namevarchar(50),addressvarchar(50),primarykey(driver_id));createtablecar(licensevarchar(50),modelvarchar(50),yearinteger,primarykey(license));createtableaccident(report_numberinteger,datedate,locationvarchar(50),primarykey(report_number));createtableowns(driver_idvarchar(50),licensevarchar(50),primarykey(driver_id,license)foriegnkey(driver_id)referencespersonforiegnkey(license)referencescar);createtableparticipated(report_numberinteger,licensevarchar(50),driver_idvarchar(50),damage_amountinteger,primarykey(report_number,license)foriegnkey(license)referencescarforiegnkey(report_number)referencesaccident));第十二頁,共24頁。第三章3.14考慮圖3-18中的保險公司數據庫,其中加下劃線的是主碼。對這個關系數據庫構造如下的SQL查詢:a.找出在“JohnSmith”的車有關的交通事故的數量b.對事故報告編號為“AR2197”中的車牌是“AABB2000”的車輛損壞保險費用更新到3000美元答案:a.selectcount(*)fromaccidentwhereexits(select*fromparticipated,owns,personwhereowns.driver_id=person.driver_=‘JohnSmith’andowns.license=participated.licenseandaccident.report_number=participated.report_number)b.updateparticipatedsetdamage_amount=3000wherereport_number=”AR2197”andlicense=”AABB2000”第十三頁,共24頁。第三章3.15考慮圖3-19中的銀行數據庫,其中加下劃線的是主碼。對這個關系數據庫構造如下的SQL查詢:a.找出在“Brooklyn”的所有支行都有賬戶的所有客戶b.找出銀行的所有貸款額的總和c.找出總資產至少比位于Brooklyn的某一家支行要多的所有支行名字答案:a.withbranchcountas(selectcount(*)fromBranchWherebranch_city=’Brooklyn’)selectcustomer_namefromcustomercwherebranchcount=(selectcount(distinctbranch_name)from(customernaturaljoindepositornaturaljoinaccountnaturaljoinbranch)asdwhered.customer_name=c.customre_name)b.selectsum(amount)fromloanc.selectbranch_namefrombranchwhereassets>some(selectassetsfrombranchwherebranch_city=’Brooklyn’)第十四頁,共24頁。第四章4.12對于圖4-11中的數據庫,寫出一個查詢來找到那些沒有經理的雇員。注意一個雇員可能只是沒有列出其經理,或者可能有null經理。使用外連接書寫查詢,然后不用外連接再重寫查詢。答案:使用外連接:selectemployee_namefromemployeenaturalleftouterjoinmanageswheremanager_nameisnull;
不使用外連接:selectemplyee_namefromemployeewherenotexists(selectemployee_namefrommanageswheremanages.employee_name=emplyee.employee_nameandmanages.manager_nameisnotnull);第十五頁,共24頁。第四章4.12對于圖4-11中的數據庫,寫出一個查詢來找到那些沒有經理的雇員。注意一個雇員可能只是沒有列出其經理,或者可能有null經理。使用外連接書寫查詢,然后不用外連接再重寫查詢。答案:使用外連接:selectemployee_namefromemployeenaturalleftouterjoinmanageswheremanager_nameisnull;
不使用外連接:selectemplyee_namefromemployeewherenotexists(selectemployee_namefrommanageswheremanages.employee_name=emplyee.employee_nameandmanages.manager_nameisnotnull);第十六頁,共24頁。第四章4.13在什么情況下,查詢select*fromstudentnaturalfullouterjointakesnaturalfullouterjoincourse將包含在屬性titles上取空值的元組?答案:情況一:course元組中存在title屬性為null的元組情況二:存在一個學生,沒有上任何課(即takes里面沒有此學生的ID)
4.14給定學生每年修到的學分總數,如何定義視圖tot_credits(year,num_credits)答案:createviewtot_credits(year,num_credits)as (selectyear,sum(credits) fromtakesnaturaljoincourse groupbyyear)第十七頁,共24頁。第六章6.10a.∏name(student?takes?∏course_id(?dept_name=‘Comp.Sci.’(course)))b.∏ID,name(student)?∏ID,name(?year<2009(student?takes))c.dept_nameɡmax(salary)(instructor)d.ɡmin(maxsal)(dept_nameɡmax(salary)asmaxsal(instructor))6.11a.∏person_name(?company_name=“FirstBankCorporation”(works))b.∏person_name,city(employee?(?company_name=“FirstBankCorporation”(works)))c.∏person_name,street,city(?(company_name=“FirstBankCorporation”∧salary>10000)(works?employee))d.∏person_name(employee?works?company)e.∏company_name(company÷(∏city(?company_name=“SmallBankCorporation”(company))))6.12a.?instrcnt>1(course_id,section_id,year,semesterɡcount(*)asinstrcnt(teaches))b.∏course_id,section_id,year,semester(?ID<>other_ID(takes?ρtakes1(ID2,course_id,section_id,year,semester)(takes)))第十八頁,共24頁。第七章7.20(a)author(name,address,URL)book(ISBN,title,year,price)customer(email,name,address,phone)publisher(name,address,phone,URL)shopping_basket(basket_id)warehouse(code,address,phone)7.20(b)(c)
第十九頁,共24頁。第八章8.6因為A->BC,所以有A->B和A->C;因為A->B和B->D,所以A->D;因為A->CD和CD->E,所以A->E;又因為A->A,所以綜上有A->ABCDE;因為E->A,所以由傳遞性E->ABCDE;因為CD->E,同理有CD->ABCDE;因為B->D和BC->CD,所以BC->ABCDE還有C->C,D->D,BD->D。所以F的閉包有BD->B,BD->D,C->C,D->D,BD->BD,B->D,B->B,B->BDR的候選碼為A,BC,CD,E。8.27由result={B},以及F中的類似β→γ形式的FDs,發現滿足β?result的是B→B和B→D。所以result={B,D}。所以B+={B,D}。8.30(1)無損連接分解,維持數據庫的正確性。(2)保持依賴分解,快速檢查更新的正確性(3)最小化重復信息,盡可能地使用最小的空8.31因為BCNF并不總是保持依賴的,有些情況下BCNF的分解會妨礙對某些函數依賴的高效檢查,BCNF也可能會保留一些冗余,所以有時候也會選擇其它范式,比如3NF。
第二十頁,共24頁。第十四章14.12原子性:原子性的用途在于保證程序執行的步驟集合作為一個單一的、不可分割的單元出現,使事務不可分割,要么執行其全部內容,要么不執行。隔離性:該特性確保事務正常執行而不被來自并發執行的數據庫語句所干擾。持久性:持久性使得事務的操作在系統崩潰后也是持久的。一致性:一致性要求一個事物作為原子從一個一致的數據庫狀態開始獨立地運行,且事務結束時數據庫也必須再次是一致的。14.13(1)活動狀態->部分提交狀態->提交狀態事務開始執行,執行完最后一條語句,并成功完成輸出。(2)活動狀態->部分提交狀態->失敗狀態->中止狀態事務開始執行,執行完最后一條語句,發生硬件或邏輯故障使其無法輸出,正常執行不能繼續,事務回滾到初始狀態。(3)活動狀態->失敗狀態->中止狀態事務開始執行,在執行語句操作中發生硬件或邏輯錯誤,正常的執行不能繼續,事務回滾到初始狀態。
第二十一頁,共24頁。第十四
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新人職場心態培訓
- 陽光心態心理健康教育
- 醫院藥事培訓
- 中班健康活動:守護微笑 從“齒”開始
- 兒病人心理護理
- 2024年青原山風景區見山集合店招聘店員筆試真題
- 校長教育工作匯報
- 秋冬季節健康教育
- 房地產供應鏈管理
- 華漁版104教育系統架構解析
- DB44-T 2410-2023紅樹林生態修復工程評價技術規程
- YY/T 1830-2022電動氣壓止血儀
- 臨床、口腔醫師申報衛生高級職稱工作量登記表
- GB/T 10045-2018非合金鋼及細晶粒鋼藥芯焊絲
- GB 7099-2015食品安全國家標準糕點、面包
- 2023年納雍縣財政局系統事業單位招聘筆試題庫及答案解析
- 2023年廣東省普通高中學業水平考試及參考答案
- 建筑工程模板施工工藝技術要點講義豐富課件
- 永能選煤廠生產安全事故應急救援預案
- 浙江省建設領域簡易勞動合同(A4版本)
- 位置度公差以及其計算
評論
0/150
提交評論