數(shù)據(jù)庫課后答案.doc_第1頁
數(shù)據(jù)庫課后答案.doc_第2頁
數(shù)據(jù)庫課后答案.doc_第3頁
數(shù)據(jù)庫課后答案.doc_第4頁
數(shù)據(jù)庫課后答案.doc_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第一章 數(shù)據(jù)庫系統(tǒng)概述基本概念:1.數(shù)據(jù)模型:數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作、完整性約束2.完整性約束:實體、參照、用戶定義3.實體、屬性、碼4.三級模式結(jié)構(gòu):外模式、模式、內(nèi)模式第一章 數(shù)據(jù)庫系統(tǒng)概述4 使用數(shù)據(jù)庫系統(tǒng)有什么有點?P4數(shù)據(jù)結(jié)構(gòu)化數(shù)據(jù)的共享性高、冗余度低、易擴充數(shù)據(jù)獨立性高DBMS對數(shù)據(jù)進(jìn)行統(tǒng)一的管理和控制6 數(shù)據(jù)庫管理系統(tǒng)的主要功能有哪些?P6數(shù)據(jù)定義功能數(shù)據(jù)操縱功能數(shù)據(jù)庫的事務(wù)管理和運行管理數(shù)據(jù)庫的建立和維護功能其他功能9 簡述數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu),這種結(jié)構(gòu)的優(yōu)點是什么?P7-9模式(邏輯模式):模式結(jié)構(gòu)的中間層,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。外模式(用戶模式):是數(shù)據(jù)庫用戶能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。內(nèi)模式(存儲模式):是數(shù)據(jù)物理結(jié)構(gòu)和存儲方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方式。優(yōu)點:三級模式是對數(shù)據(jù)的三個抽象級別,它把數(shù)據(jù)的具體組織留給DBMS管理,使用戶能邏輯地、抽象地處理數(shù)據(jù),而不必關(guān)心數(shù)據(jù)在計算機中的具體表示方式與存儲方式。第一章 數(shù)據(jù)庫系統(tǒng)概述10 什么是數(shù)據(jù)庫的邏輯獨立性、物理獨立性?為什么數(shù)據(jù)庫系統(tǒng)具有數(shù)據(jù)與程序的獨立性?P9邏輯獨立性:當(dāng)模式改變時,由DBA對各個外模式/模式作相應(yīng)改變,從而保持外模式不變。因此依據(jù)外模式所編寫的應(yīng)用程序也可以不必改變。物理獨立性:當(dāng)數(shù)據(jù)庫的存儲結(jié)構(gòu)改變時,由數(shù)據(jù)庫管理員對模式/內(nèi)模式映像作相應(yīng)改變,可以使模式保持不變,從而應(yīng)用程序也不必改變,保證了數(shù)據(jù)與程序的物理獨立性。數(shù)據(jù)庫之所以能夠具有數(shù)據(jù)與程序的獨立性,是由兩級映射所提供的邏輯獨立性和物理獨立性所保證的。11 什么是數(shù)據(jù)模型?其作用和三要素是什么?P11-12數(shù)據(jù)模型是對現(xiàn)實世界數(shù)據(jù)特征的抽象。用來描述數(shù)據(jù)、組織數(shù)據(jù)和對數(shù)據(jù)進(jìn)行操作的。三要素:數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作、數(shù)據(jù)的完整性約束條件151617第二章 關(guān)系數(shù)據(jù)庫2 解釋概念關(guān)系:P25定義2.2關(guān)系模式:P27關(guān)系數(shù)據(jù)庫:P27主鍵:候選鍵:外鍵: P25主屬性:3 關(guān)系的性質(zhì) P26任意兩個元組不能完全相同關(guān)系中元組的次序是不重要的,次序可以任意交換關(guān)系種屬性的次序是不重要的,次序可以任意交換同一列中的分量必須來自同一個域,是同一類型的數(shù)據(jù)屬性必須有不同的名稱,不同的屬性可以出自相同的域每一分量必須取原子量6 關(guān)系數(shù)據(jù)語言的特點和分類 P28特點:具有完備的表達(dá)能力,是非過程化的集合操作語言,功能強,能夠嵌入高級語言中使用。分類:關(guān)系代數(shù)語言、關(guān)系演算語言(元組關(guān)系演算語言、域關(guān)系演算語言)、具有關(guān)系代數(shù)和關(guān)系演算雙重特點的語言7 關(guān)系模型的完整性規(guī)則?在參照完整性中,為什么外鍵屬性的值也可以為空,什么情況下才可以為空?P29實體完整性規(guī)則:關(guān)系中的元組在主屬性上不能有空值;參照完整性規(guī)則:外鍵得知不允許參照不存在的相應(yīng)表的主鍵的值;用戶定義的完整性規(guī)則:用戶根據(jù)具體應(yīng)用的語義定義的完整性規(guī)則。當(dāng)外鍵非本表的主屬性時可以取空值。11在下列表中完成相應(yīng)的操作S (s#,sname,sex,age)C (c#,cname,teacher)SC (s#,c#,grade)(1) 檢索LIU老師所授課程的課程號和課程名: c#,cname(teacher=LIU(C)(2) 檢索年齡大于22歲的男同學(xué)的學(xué)號和姓名: s#,sname(sex=男 age22(S)(3) 檢索學(xué)號為S3的學(xué)生所學(xué)課程的課程號與任課老師姓名: c#,teacher(s#=S3 (SC) C)(4) 檢索WANG同學(xué)不學(xué)的課程的課程號: c#(C)-c#(sname=WANG(SCS)(5) 檢索至少選修LIU老師所授課程中一門課程的女學(xué)生的姓名:sname (teacher=LIU(C) SC s#,sname(sex=女( S)(6) 檢索全部學(xué)生都選修的課程的課程號與課程名: c#, cname,s#(SC C) s#(S)(7) 檢索選修課程包含LIU老師所授全部課程的學(xué)生的學(xué)號: s#, c#(SC) c#(teacher=LIU(C)第三章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL1 SQL具有哪些特點?P50綜合統(tǒng)一高度非過程化面向集合的操作方式以同一種語法結(jié)構(gòu)提供多種使用方式語言簡潔,易學(xué)易用8 什么是基本表、視圖,兩者有什么區(qū)別?基本表:本身獨立存在的表,一個關(guān)系對應(yīng)一個基本表;視圖:從一個或多個基本表或視圖導(dǎo)出的表,是關(guān)系數(shù)據(jù)庫系統(tǒng)為用戶提供從不同角度觀察和使用數(shù)據(jù)庫中數(shù)據(jù)的一種機制。視圖是虛表,在數(shù)據(jù)庫中只存放視圖的定義,而不存放視圖所對應(yīng)的數(shù)據(jù),這些數(shù)據(jù)仍存放在原來的基本表中。10 是否所有視圖都可以更新?為什么?并不是所有視圖都可以更新,因為有些視圖的更新操作不能唯一地、有意義地轉(zhuǎn)換為對相應(yīng)基本表的更新。第三章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL3建立chap2習(xí)題10的各表,包括主鍵和外鍵CREATE TABLE S(sno char(6) primary key,sname char(20),status int,city char(20);CREATE TABLE P( pno char(6) primary key, pname char(20), color char(10), weight real);CREATE TABLE J( jno char(6) primary key, jname char(40), city char(20);CREATE TABLE SPJ(sno char(6) foreign key references S(sno),pno char(6) foreign key references P(pno),jno char(6) foreign key references J(jno),qty int,primary key (sno, pno,jno);4 在第3題所建的表中完成下列操作(1)求供應(yīng)工程J1零件的供應(yīng)商號碼SNO: select distinct sno from SPJ where jno=J1;(2)求供應(yīng)工程J1零件P1的供應(yīng)商號碼SNO: select sno from SPJ where jno=J1 and pno=P1;(3)求供應(yīng)工程J1零件為紅色的供應(yīng)商號碼SNO: select sno from SPJ where jno=J1 and pno in (select pno from P where color=紅);或: select sno from SPJ,P where SPJ.pno=P.pno and SPJ.jno=J1 and P.color=紅;(4)求沒有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號JNO:方法一(不相關(guān)子查詢): select jno from J where jno not in (select jno from SPJ,S,P where SPJ.sno=S.sno and SPJ.pno=P.pno and city=天津 and color=紅);(5)求至少使用了供應(yīng)商S1所供應(yīng)的全部零件的工程號JNO:P67例3.46select distinct jno from SPJ A wherenot exists (select * from SPJ B where sno=S1 and not exists (select * from SPJ C where C.pno=B.pno and C.jno=A.jno);5建立market 庫中的3個表CREATE TABLE customers(customerid char(6) primary key,cname char(20),city char(10);CREATE TABLE goods(goodid char(6) primary key,gname char(20),price real,provider char(20),stocks int,status int);CREATE TABLE orders(orderid char(6) primary key,goodid char(6) foreign key references goods(goodid),customerid char(6) foreign key references customers(customerid),quantity int,ordersum real,date datetime);6針對market數(shù)據(jù)庫完成下列操作(1) 查找所有上??蛻舻男畔?Select * from customers where city=上海;(2) 查找所有商品的名稱、庫存量、價格及折價25%后的價格,并使用別名discount標(biāo)識折扣價。結(jié)果按價格由低到高排序 Select gname,stocks,price,price*0.75 Discount from goods order by price(3) 查找商品名中包含computer的商品編號、名稱及價格 Select goodid,gname,price from goods where gname like %computer%(4) 查找?guī)齑媪看笥?00小于500的商品名稱、庫存量和單價 Select stocks,gname,price from goods where stocks between 100 and 500(5) 查找2007.7.1至2007.12.31期間,訂貨金額大于30000的所有訂單的客戶姓名、商品名稱、單價、訂貨數(shù)量和訂貨金額Select cname,gname,price,quantity,ordersumfrom customers,goods,orderswhere customers. customerid=orders. customerid and goods. goodid=orders. goodid and date between2007-7-1and2007-12-31 and ordersum30000(6) 查找訂單編號、商品編號、和客戶編號,要求按日期對訂單進(jìn)行分組,并只顯示訂貨數(shù)量超過200的訂單信息 Select customerid, goodid, orderid from orders where quantity200 Group by date, customerid, goodid, orderid(7) 查找所有北京客戶的訂單信息,要求用不相關(guān)查詢 Select * from orders where customerid in (Select customerid from customers where city=北京 )(8) 查找不是天津客戶的訂單信息 Select * from orders where customeid not in (Select customeid from customers where city=天津 )(9) 查找所有西安客戶的相關(guān)信息以及他們的訂單情況 Select c.customerid, cname, city, orderid, goodid, quantity, ordersum,date from customers c,orders o where c.customerid=o.customerid and city=西安UNION Select customerid, cname, city, null, null, null, null, null from customers where city=西安 and customerid not in (select o.customerid from customers c,orders o where c.customerid= o.customerid and city=西安)(10) 將所有的庫存量大于500的商品價格下調(diào)15% Update goods Set price=price*0.85 where stocks500(11) 將庫存量為0的所有商品記錄刪除 Delete from goods where stocks=0(12) 將新數(shù)據(jù)插入到商品表中 Insert into goods values(T10056,計算機,5300, 清華同方, 20,0)11 在market庫上完成下列操作(1)建立北京客戶訂單視圖CREATE VIEW Bj_orders(orderid,gname,quantity,customerid, cname) AS select orderid,gname,quantity, orders.customerid,cname from orders,customers,goods where customers. customerid=orders.customerid and goods. goodid=orders.goodid and city=beijing(2) 針對(1)中的視圖查詢客戶張三的所有訂單信息 Select * from Bj_orders where Cname=張三12 在market數(shù)據(jù)庫上完成下列操作(1) 允許用戶李明對orders表進(jìn)行插入、刪除操作GRANT insert,delete on orders to 李明(2) 將查詢goods表和修改單價的權(quán)限授予用戶李四GRANT update(price),select on goods to 李四(3) 將查詢goods表的權(quán)限授予用戶王二,并允許他將此權(quán)限授予他人GRANT select on goods to 王二 with grant option第四章 存儲過程和觸發(fā)器1 什么是存儲過程?為什么要使用存儲過程?P89存儲過程是指經(jīng)過預(yù)先編譯的SQL語句的集合,可以以一種可執(zhí)行的形式永久地存儲在數(shù)據(jù)庫中。運行速度快.模塊化編程.減少網(wǎng)絡(luò)通信量.保證系統(tǒng)的安全性2 簡述觸發(fā)器的概念和作用。P95觸發(fā)器是在滿足某個特定條件時自動觸發(fā)執(zhí)行的專用存儲過程用于保證表中的數(shù)據(jù)遵循數(shù)據(jù)庫設(shè)計者確定的規(guī)則和約束5 在market數(shù)據(jù)庫上完成下列操作(1) 編寫存儲過程shanghai,查看上海客戶的信息 Create procedure shanghai As select * from customers where city=上海(2) 便攜存儲過程goods,查看指定商品的信息,商品編號作為輸入?yún)?shù) CREATE PROC querygoods queryid char(6) AS Select * From goods Where goodid=queryid;(3) 編寫存儲過程goodssum,查看指定客戶的所有訂單的訂貨總金額數(shù),客戶編號作為輸入?yún)?shù),訂貨總金額數(shù)作為輸出參數(shù)。 CREATE PROC goodssum cid char(6), osum int output AS Select osum=sum(ordersum) From orders Where customerid=cid(4) 編寫存儲過程insertgoods,向goods表中插入一條記錄。 Create procedure insertGoods Goodnum char(6), Goodname char(20), Gprice real, Gprovider char(20), Gstocks int, Gstate int As insert into goods values(Goodnum, Goodname, Gprice, Gprovider, Gstocks, Gstate )(5) 在customers表上建立刪除觸發(fā)器,實現(xiàn)customers表和orders表的級聯(lián)刪除 Create trigger C_delete on customers after delete As delete from orders where customerid in (select customerid from deleted)(6) 在orders表上建立插入觸發(fā)器,當(dāng)向表中添加一條訂貨記錄時,若訂單中的商品狀態(tài)為整理(status=1),則不能插入該條記錄。 Create trigger Goods_insert on orders after insert As if (select status from goods,inserted where goods.goodid=inserted.goodid)=1 begin print 不能插入 Rollback transaction end(7) 在orders表上建立插入觸發(fā)器,當(dāng)添加訂單時,減少goods表中相應(yīng)商品的庫存量 Create trigger Orders_insert1 on orders after insert As update goods set stocks=stocks - (select quantity from inserted) where goodid in (select goodid from inserted)(8) 在orders表上建立觸發(fā)器,不允許對訂單日期進(jìn)行修改。 Create trigger Goods_update on orders after update As if update(date) begin print 不能更新日期 Rollback transaction end(9) 若在orders表中添加一條訂單記錄時,則該訂單中的商品必須在goods表中存在,否則不允許添加。 Create trigger Orders_insert2 on orders after insert As if( select count(*) from goods, inserted where goods.goodid=inserted.goodid)=0 begin print 該商品不存在 Rollback transaction end第五章 關(guān)系數(shù)據(jù)庫規(guī)范化理論1.名詞解釋P104 函數(shù)依賴、平凡函數(shù)依賴、非平凡函數(shù)依賴、部分函數(shù)依賴、完全函數(shù)依賴、傳遞函數(shù)依賴P105 候選鍵、主鍵、外鍵、全鍵、1NF、2NFP107 2NF、BCNFP111 4NFP110 多值依賴4 R(商店編號,商品編號,數(shù)量,部門編號,負(fù)責(zé)人)規(guī)定:每個商店的每種商品只在一個部門銷售; 每個商店的每個部門只有一個負(fù)責(zé)人; 每個商店的每種商品只有一個庫存數(shù)量。(1)寫出關(guān)系R的基本函數(shù)依賴: (商店編號,商品編號) 庫存數(shù)量 (商店編號,商品編號) 部門編號 (商店編號,部門編號) 負(fù)責(zé)人(2) 關(guān)系模式R達(dá)到了第幾范式?為什么? 因為關(guān)系R的鍵是(商店編號,商品編號) 而所有非主屬性均對鍵是完全函數(shù)依賴。 但存在傳遞函數(shù)依賴:(商店編號,商品編號) (商店編號,部門編號)(商店編號,部門編號) 負(fù)責(zé)人(商店編號,商品編號) 負(fù)責(zé)人(3) 如果R不屬于3NF,將R分解成3NF模式集 R1(商店編號,商品編號,部門編號,數(shù)量) R2(商店編號,部門編號,負(fù)責(zé)人)5. 給定關(guān)系SC為第幾范式?是否存在插入、刪除異常?若存在,說明發(fā)生原因。將他分解為高一級范式后能否解決操作異常問題? 插入異常:某個教師如未代課,則不能插入該教師的信息。 刪除異常:刪除教授某一門課的所有教師的信息會導(dǎo)致該課程信息的丟失。 因為存在部分與傳遞函數(shù)依賴,所以 關(guān)系SC鍵(SNO,CNO) 函數(shù)依賴: (SNO,CNO)Grade,Iname CNO Ctitle Iname Iloca 分解為高一級范式,要消除部分函數(shù)依賴: SC1(SNO,CNO,Grade,Iname,Ilocal) SC2(CNO,Ctitle) 由于仍存在傳遞函數(shù)依賴Iname Iloca ,所以不能解決異常。11. 建立訂貨系統(tǒng)的數(shù)據(jù)庫關(guān)系模式顧客信息(顧客號,地址,賒購限額,余額,折扣)訂單信息(訂單號,顧客號,收貨地

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論