數(shù)據(jù)庫原理及應(yīng)用習(xí)題參考答案_第1頁
數(shù)據(jù)庫原理及應(yīng)用習(xí)題參考答案_第2頁
數(shù)據(jù)庫原理及應(yīng)用習(xí)題參考答案_第3頁
數(shù)據(jù)庫原理及應(yīng)用習(xí)題參考答案_第4頁
數(shù)據(jù)庫原理及應(yīng)用習(xí)題參考答案_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫原理及應(yīng)用習(xí)題參考答案習(xí)題1 1-1 文件系統(tǒng)階段的數(shù)據(jù)管理有哪些特點(diǎn)? 答:文件系統(tǒng)階段主要有5個特點(diǎn):數(shù)據(jù)以“文件”形式長期保存;數(shù)據(jù)的邏輯結(jié)構(gòu)與物理結(jié)構(gòu)有了區(qū)別;文件組織已多樣化;數(shù)據(jù)面向應(yīng)用;對數(shù)據(jù)的操作以記錄為單位。1-2 文件系統(tǒng)階段的數(shù)據(jù)管理有些什么缺陷?試舉例說明。 答:主要有3個缺陷:數(shù)據(jù)冗余;數(shù)據(jù)不一致性;數(shù)據(jù)聯(lián)系弱。 例如學(xué)校里教務(wù)處、財務(wù)處、保健處建立的文件中都有學(xué)生詳細(xì)資料,如聯(lián)系電話,家庭住址等。這就是“數(shù)據(jù)”冗余;如果某個學(xué)生搬家,就要修改3個部門文件中的數(shù)據(jù),否則會引起同一數(shù)據(jù)在3個部門中不一致;產(chǎn)生上述問題的原因是這3個部門的文件中數(shù)據(jù)沒有聯(lián)系。1-3

2、數(shù)據(jù)庫階段的數(shù)據(jù)管理有哪些特色? 答:主要有5個特點(diǎn):采用數(shù)據(jù)模型可以表示復(fù)雜的數(shù)據(jù)結(jié)構(gòu);有較高的數(shù)據(jù)獨(dú)立性;為用戶提供了方便的用戶接口;提供了4個方面的數(shù)據(jù)控制功能;對數(shù)據(jù)的操作以數(shù)據(jù)項為單位,增加了系統(tǒng)的靈活性。1-4 什么是數(shù)據(jù)獨(dú)立性?在數(shù)據(jù)庫中有哪兩級獨(dú)立性? 答:數(shù)據(jù)獨(dú)立性是指應(yīng)用程序與DB的數(shù)據(jù)結(jié)構(gòu)之間的相互獨(dú)立。在物理結(jié)構(gòu)改變時,盡量不影響應(yīng)用程序,稱為物理獨(dú)立性;在邏輯結(jié)構(gòu)改變時,盡量不影響應(yīng)用程序,稱之為邏輯數(shù)據(jù)獨(dú)立性。1-5 試解釋DB、DBMS和DBS三個概念。 答:DB是長期存儲在計算機(jī)內(nèi)、有組織的、統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合。 DBMS是位于用戶與0S之間的一層數(shù)據(jù)管理

3、軟件,它為用戶或應(yīng)用程序提供訪問DB的方法。 DBS是實現(xiàn)有組織地、動態(tài)地存儲大量關(guān)聯(lián)數(shù)據(jù)、方便多用戶訪問的計算機(jī)硬件、軟件和數(shù)據(jù)資源組成的系統(tǒng),即采用數(shù)據(jù)庫技術(shù)的計算機(jī)系統(tǒng)。1-6 SQL Server 2005有哪些數(shù)據(jù)類型?答:SQL Server中數(shù)據(jù)類型分為整型、浮點(diǎn)型、二進(jìn)制數(shù)據(jù)型、邏輯型、字符型、文本型、圖形型、日期時間型、貨幣型、自定義類型、可變數(shù)據(jù)類型和表數(shù)據(jù)類型。1-7 列舉SQL Server 2005中新增的主要功能。 答:SQL Server 2005中新增的主要功能有: Notification Services增強(qiáng)功能; Reporting Services增強(qiáng)功

4、能,其中包括:報表功能的增強(qiáng)功能、Reporting Services設(shè)計時增強(qiáng)功能、Reporting Services可編程性的增強(qiáng)功能、Reporting Services可管理性和部署的增強(qiáng)功能; 新增的Service Broker以實現(xiàn)SQL Server中的消息傳遞方面具有以下優(yōu)勢:高伸縮性、消息協(xié)調(diào)、排序和鎖定、集成數(shù)據(jù)庫數(shù)據(jù)、集成數(shù)據(jù)庫安全性; 數(shù)據(jù)庫引擎增強(qiáng)功能; 數(shù)據(jù)訪問接口方面的增強(qiáng)功能; SQL Server Analysis Services(SSAS)的增強(qiáng)功能; Integration Services的增強(qiáng)功能; 在可管理性、可用性、可編程性、移動性、可伸縮性和

5、性能方面提供了改進(jìn)。 工具和實用工具增強(qiáng)功能;1-8 SQL Server 2005的實用程序和常用工具有哪些? 答:SQL Server 2005給出的常用應(yīng)用程序和實用工具有:企業(yè)管理器、查詢分析器、商業(yè)智能開發(fā)平臺、SQL Server分析器、SQL Server 2005數(shù)據(jù)庫引擎優(yōu)化程序、SQL Server 配置管理器等。習(xí)題22-1 名詞解釋邏輯數(shù)據(jù) 物理數(shù)據(jù) 聯(lián)系的元數(shù) 1:1聯(lián)系1:N聯(lián)系 M:N聯(lián)系 數(shù)據(jù)模型 概念數(shù)據(jù)模型 外模式 概念模式 內(nèi)模式 外模式/模式映象模式/內(nèi)模式映象 數(shù)據(jù)獨(dú)立性 物理數(shù)據(jù)獨(dú)立性 邏輯數(shù)據(jù)獨(dú)立性答:邏輯數(shù)據(jù):指程序員或用戶用以操作的數(shù)據(jù)形式。物

6、理數(shù)據(jù):指存儲設(shè)備上存儲的數(shù)據(jù)。聯(lián)系的元數(shù):與一個聯(lián)系有關(guān)的實體集個數(shù),稱為聯(lián)系的元數(shù)。1:1聯(lián)系:如果實體集El中每個實體至多和實體集E2中的一個實體有聯(lián)習(xí),反之亦然,那么El和E2的聯(lián)系稱為“l(fā):1聯(lián)系”。1:N聯(lián)系:如果實體集El中每個實體可以與實體集E2中任意個(零個或多個)實體有聯(lián)系,而E2中每個實體至多和El中一個實體有聯(lián)系,那么El和E2的聯(lián)系是“1:N聯(lián)系”。M:N聯(lián)系:如果實體集El中每個實體可以與實體集E2中任意個(零個或多個)實體有聯(lián)系,反之亦然,那么El和E2的聯(lián)系稱為“M:N聯(lián)系”。數(shù)據(jù)模型:能表示實體類型及實體間聯(lián)系的模型稱為“數(shù)據(jù)模型”。概念數(shù)據(jù)模型:獨(dú)立于計算機(jī)

7、系統(tǒng)、完全不涉及信息在計算機(jī)中的表示、反映企業(yè)組織所關(guān)心的信息結(jié)構(gòu)的數(shù)據(jù)模型。外模式:是用戶用到的那部分?jǐn)?shù)據(jù)的描述。概念模式:數(shù)據(jù)庫中全部數(shù)據(jù)的整體邏輯結(jié)構(gòu)的描述。內(nèi)模式:DB在物理存儲方面的描述。外模式/模式映象:用于定義外模式和概念模式之間數(shù)據(jù)結(jié)構(gòu)的對應(yīng)性。模式/內(nèi)模式映象:用于定義概念模式和內(nèi)模式之間數(shù)據(jù)結(jié)構(gòu)的對應(yīng)性。數(shù)據(jù)獨(dú)立性:應(yīng)用程序和DB的數(shù)據(jù)結(jié)構(gòu)之間相互獨(dú)立,不受影響。物理數(shù)據(jù)獨(dú)立性:在DB的物理結(jié)構(gòu)改變時,盡量不影響應(yīng)用程序。邏輯數(shù)據(jù)獨(dú)立性:在DB的邏輯結(jié)構(gòu)改變時,盡量不影響應(yīng)用程序。2-2 邏輯記錄與物理記錄、邏輯文件與物理文件有哪些聯(lián)系和區(qū)別?答:邏輯數(shù)據(jù)是用戶用以操作的數(shù)

8、據(jù)形式,是抽象的概念化數(shù)據(jù)。物理數(shù)據(jù)是實際存放在存儲設(shè)備上的數(shù)據(jù)。邏輯數(shù)據(jù)與物理數(shù)據(jù)在結(jié)構(gòu)上可以差別很大,需通過兩級映象來進(jìn)行數(shù)據(jù)傳輸和格式轉(zhuǎn)換。從以上的解釋可以看出,邏輯記錄和邏輯文件是用戶在程序中使用的記錄和文件,而物理記錄和物理文件是指磁盤上的記錄和文件。邏輯記錄、文件與物理記錄、文件在結(jié)構(gòu)、組成上可以有很大的差異,而數(shù)據(jù)庫管理軟件就是通過三級結(jié)構(gòu)兩級映象來實現(xiàn)邏輯數(shù)據(jù)與物理數(shù)據(jù)之間的轉(zhuǎn)換。 2-3 試述ER模型、層次模型、網(wǎng)狀模型、關(guān)系模型和面向?qū)ο竽P偷闹饕攸c(diǎn)。答:ER模型直接表示實體類型及實體間聯(lián)系,與計算機(jī)系統(tǒng)無關(guān),充分反映用戶的需求,用戶容易理解。層次模型的數(shù)據(jù)結(jié)構(gòu)為樹結(jié)構(gòu),

9、記錄之間聯(lián)系通過指針實現(xiàn),查詢較快,但DML屬于過程化的語言,操作復(fù)雜。網(wǎng)狀模型的數(shù)據(jù)結(jié)構(gòu)為有向圖,記錄之間聯(lián)系通過指針實現(xiàn),查詢較快,并且容易實現(xiàn)M:N聯(lián)系,但DML屬于過程化的語言,編程較復(fù)雜。關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)為二維表格,容易為初學(xué)者理解。記錄之間聯(lián)系通過關(guān)鍵碼實現(xiàn)。DML屬于非過程化語言,編程較簡單。面向?qū)ο竽P湍芡暾枋霈F(xiàn)實世界的數(shù)據(jù)結(jié)構(gòu),具有豐富的表達(dá)能力,能表達(dá)嵌套、遞歸的數(shù)據(jù)結(jié)構(gòu)。但涉及的知識面較廣,用戶較難理解,這種模型尚未普及。 2-4 數(shù)據(jù)之間的聯(lián)系在各種結(jié)構(gòu)數(shù)據(jù)模型中是怎么實現(xiàn)的?答:在層次、網(wǎng)狀模型中,數(shù)據(jù)之間的聯(lián)系通過指針實現(xiàn)的;在關(guān)系模型中,數(shù)據(jù)之間聯(lián)系通過外鍵和

10、主鍵間聯(lián)系實現(xiàn)的;在面向?qū)ο竽P椭?,?shù)據(jù)之間嵌套、遞歸聯(lián)系通過對象標(biāo)識符(OID)實現(xiàn)的。2-5 DB的三級模式結(jié)構(gòu)描述了什么問題?試詳細(xì)解釋。答:DB的三級模式結(jié)構(gòu)是對數(shù)據(jù)的三個抽象級別,分別從外部(用戶)級、概念級和內(nèi)部級去觀察數(shù)據(jù)庫。外部級是用戶使用的局部數(shù)據(jù)庫的邏輯結(jié)構(gòu),其描述稱為外模式。概念級是DB的整體邏輯結(jié)構(gòu),其描述稱為概念模式。內(nèi)部級是DB的物理結(jié)構(gòu),其描述稱為內(nèi)模式。2-6 試述概念模式在數(shù)據(jù)庫結(jié)構(gòu)中的重要地位。答:數(shù)據(jù)按外模式的描述提供給用戶,按內(nèi)模式的描述存儲在磁盤中,而概念模式提供了連接這蘧級的相對穩(wěn)定的中間觀點(diǎn),并使得兩級的任何一級的改變都不受另一級的牽制。2-7 什

11、么是數(shù)據(jù)獨(dú)立性?其目的是什么?數(shù)據(jù)庫獨(dú)立性是指應(yīng)用程序與DB的數(shù)據(jù)結(jié)構(gòu)之間相互獨(dú)立。其目的是在物理結(jié)構(gòu)改變或邏輯結(jié)構(gòu)改變時,盡量不影響應(yīng)用程序。習(xí)題3 3-1 名詞解釋:關(guān)系模式 關(guān)系實例 屬性 元組 超鍵 候選鍵主鍵 外鍵 實體完整性規(guī)則 參照完整性規(guī)則答:關(guān)系模式:是對關(guān)系的描述,包括模式名、諸屬性名、值域名和模式的主鍵。關(guān)系實例:關(guān)系模式具體的值,稱為關(guān)系實例。屬性:即字段或數(shù)據(jù)項,與二維表中的列對應(yīng)。屬性個數(shù),稱為元數(shù)。元組:即記錄,與二維表中的行對應(yīng)。元組個數(shù),稱為基數(shù)。超鍵:能惟一標(biāo)識元組的屬性或?qū)傩约?,稱為關(guān)系的超鍵。候選鍵:不含有多余屬性的超鍵,稱為候選鍵。主鍵:正在使用的、用

12、于標(biāo)識元組的候選鍵,稱為主鍵。外鍵:屬性集F是模式S的主鍵,在模式R中也出現(xiàn),那么稱F是模式R的外鍵。實體完整性規(guī)則:實體的主鍵值不允許是空值。參照完整性規(guī)則:依賴關(guān)系中的外鍵值或者為空值,或者是相應(yīng)參照關(guān)系中某個主鍵值。3-2 為什么關(guān)系中的元組沒有先后順序,且不允許有重復(fù)元組?答:由于關(guān)系定義為元組的集合,而集合中的元素是沒有順序的,因此關(guān)系中的元組也譬沒有先后的順序(對用戶而言)。這樣既能減少邏輯排序,又便于在關(guān)系數(shù)據(jù)庫中引進(jìn)集合論的理論。每個關(guān)系模式都有一個主鍵,在關(guān)系中主鍵值是不允許重復(fù)的。如果關(guān)系中有重復(fù)元組,那么其主鍵值肯定相等,起不了惟一標(biāo)識作用,因此關(guān)系中不允許有重復(fù)元組。

13、3-3 外健值何時允許為空?何時不允許為空?答:在依賴表中,當(dāng)外鍵是主鍵的組成部分時,外鍵值不允許為空;否則外鍵值允許為空。3-4 笛卡爾積、等值連接和自然連接三者之間有什么區(qū)別?答:笛卡兒積是一個基本操作,而等值連接和自然連接是組合操作。設(shè)關(guān)系R的元數(shù)為r,元組個數(shù)為m;關(guān)系S的元數(shù)為s。,元組個數(shù)為n。那么,RS的元數(shù)為r+s,元組個數(shù)為mn;ijR S的元數(shù)也是r+s,但元組個數(shù)小于等于mn;R S的元數(shù)小于等于r+s,元組個數(shù)也小于等于mn: 3-5 設(shè)有關(guān)系R和S,如圖3.18所示。ABC327465247733ABC374253RS圖3.18 關(guān)系R和S22計算RS,R-S,RS,

14、RS,3,2(S),B5(R),R S,R S。ABC327436524477335RSABC324654773R-SABC723RSR.AR.BR.CS.AS.BS.C332277446655224477773333373737374242424253535353RSCB53423,2(S)ABC742433B5(R)R.AR.BR.CS.AS.BS.C723345R S22ABC723R SBC 3-6 設(shè)有關(guān)系R和S,如圖3.19所示。計算R S,R S,A=C(RS)。ABacdbbeBCbebcadRS圖3.19 關(guān)系R和SABCaaccdbbbbecdcdaR SAR.BS.BCa

15、accbbbbbbbbcdcdR SB23SEX=M(SC) CNAME,TEACHER(SNO=S3(SC C) SNAME(SEX=FTEACHER=LIU(S SC C) CNO(C)-CNO(SNAME=WANG(S SC) 1(1=425(SCSC) CNO,CNAME(C (SNO,CNO(SC)SNO(S) SNO,CNO(SC)CNO(TEACHER=LIU(C) 3-8 在3.7題的三個關(guān)系中,用戶有一查詢語句:檢索數(shù)學(xué)系的學(xué)生選修計算機(jī)系開設(shè)的課程的課程名和任課教師姓名。 試寫出該查詢的關(guān)系代數(shù)表達(dá)式。 試寫出該查詢優(yōu)化的關(guān)系代數(shù)表達(dá)式。 畫出該查詢初始的關(guān)系代數(shù)表達(dá)式的語

16、法樹。 使用3.5.3節(jié)的優(yōu)化算法,對語法樹進(jìn)行優(yōu)化,并畫出優(yōu)化后的語法樹。 解: CNAME,TEACHER(DEPT=數(shù)學(xué)系(S SC C) 設(shè)L1=SNO(DEPT=數(shù)學(xué)系(S),L2=SNO,CNO(SC),則優(yōu)化的關(guān)系代數(shù)表達(dá)式為:CNAME,TEACHER(SC.CNO=C.CNO(SC.CNO(S.SNO=SC.SNO(L1L2)C) 查詢初始的關(guān)系代數(shù)表達(dá)式可表達(dá)為: CNAME,TEACHER(DEPT=數(shù)學(xué)系(L(S.SNO=SC.SNOSC.CNO=C.CNO(SSC)C) 此處L為S、SC、C中的全部屬性(公共屬性只取一次)。LS.SNO=SC.SNOSC.CNO=C.

17、CNODEPT=數(shù)學(xué)系CNAME,TEACHERSSCC 優(yōu)化后的語法樹為DEPT=數(shù)學(xué)系CNAME,TEACHERSSCSC.CNO=C.CNOSC.CNOS.SNO=SC.SNOSNOSNO,CNOC 3-9 為什么要對關(guān)系代數(shù)表達(dá)式進(jìn)行優(yōu)化? 答:關(guān)系代數(shù)表達(dá)式由關(guān)系代數(shù)操作組合而成。操作中,以笛卡爾積和連接操作最費(fèi)時間,并生成大量的中間結(jié)果。如果直接按表達(dá)式書寫的順序執(zhí)行,必將花費(fèi)很多時間,并生成大量的中間結(jié)果,效率較低。在執(zhí)行前,由DBMS的查詢子系統(tǒng)先對關(guān)系代數(shù)表達(dá)式進(jìn)行優(yōu)化,盡可能先執(zhí)行選擇和投影操作,以便減少中間結(jié)果,節(jié)省時間。優(yōu)化工作是由DBMS做的,用戶書寫時不必關(guān)心優(yōu)化一

18、事,仍以簡練的形式書寫。習(xí)題4 4-1 名詞解釋 基本表 視圖 實表 相關(guān)子查詢 聯(lián)接查詢嵌套查詢 交互式SQL 嵌入式SQL 游標(biāo) 答:基本表:實際存儲在數(shù)據(jù)庫中的表,稱為基本表。視圖:是從基本表或其他視圖中導(dǎo)出的表,它本身不獨(dú)立存儲在數(shù)據(jù)庫中,也就是數(shù)據(jù)庫中只存放視圖的定義而不存放視圖的數(shù)據(jù)。實表:是對基本表的別稱。相關(guān)子查詢:SELECT語句嵌套時,子查詢中查詢條件依賴于外層查詢中的值,因此子查詢要反復(fù)求值供外層查詢使用。這種子查詢稱為相關(guān)子查詢。連接查詢:查詢時要從多個基本表中提取數(shù)據(jù),此時把多個基本表寫在同一層的FROM子句中,這種查詢形式稱為連接查詢。嵌套查詢:查詢時要從多個基本表

19、中提取數(shù)據(jù),此時把多個基本表分別放在不同層次上的FROM子句中,這種查詢形式稱為嵌套查詢。交互式SQL:在終端交互方式使用的SQL語言。嵌入式SQL:嵌入在高級語言的程序中使用的SQL語言。游標(biāo):游標(biāo)是與某一查詢相聯(lián)系的符號名。游標(biāo)有游標(biāo)關(guān)系和游標(biāo)指針兩層含義。在游標(biāo)打開時,游標(biāo)(指針)指向查詢結(jié)果的第一個記錄之前。 4-2 對于教務(wù)管理數(shù)據(jù)庫的三個基本表 S(SNO,SNAME, SEX, AGE,SDEPT) SC(SNO,CNO,GRADE) C(CNO,CNAME,CDEPT,TNAME) 試用SQL的查詢語句表達(dá)下列查詢: 檢索LIU老師所授課程的課程號和課程名。 檢索年齡大于23歲

20、的男學(xué)生的學(xué)號和姓名。 檢索學(xué)號為200915146的學(xué)生所學(xué)課程的課程名和任課教師名。 檢索至少選修LIU老師所授課程中一門課程的女學(xué)生姓名。 檢索WANG同學(xué)不學(xué)的課程的課程號。 檢索至少選修兩門課程的學(xué)生學(xué)號。 檢索全部學(xué)生都選修的課程的課程號與課程名。 檢索選修課程包含LIU老師所授課程的學(xué)生學(xué)號。解: SELECT CNO,CNAME FROM C WHERE TEACHER=LIU; SELECT SNO,SNAME FROM S WHERE AGE23 AND SEX=M; SELECT CNAME,TEACHER FROM SC,C WHERE SC.CNO=C.CNO AND

21、 SNO=200915146 SELECT SNAME (連接查詢方式) FROM S,SC,C WHERE S.SNO=SC.SNO AND SC.CNO=C.CNO AND SEX=F AND TEACHER=LIU; 或:SELECT SNAME (嵌套查詢方式) FROM S WHERE SEX=FAND SNO IN (SELECT SNO FROM SC WHERE CNO IN (SELECT CNO FROM C WHERE TEACHER=LIU)或:SELECT SNAME (存在量詞方式)FROM SWHERE SEX=F AND EXISTS(SELECT* FROM

22、SC WHERE SC.SNO=S.SNO AND EXISTS(SELECT * FROM C WHERE C.CNO=SC.CNO AND TEACHER=LIU) SELECT CNO FROM C WHERE NOT EXISTS (SELECT * FROM S,SC WHERE S.SNO=SC.SNO AND SC.CNO=C.CNO AND SNAME=WANG); SELECT DISTINCT X.SNO FROM SC AS X,SC AS Y WHERE X.SNO=Y.SNO AND X.CNO!=Y.CNO; SELECT CNO.CNAME FROM C WHER

23、E NOT EXISTS (SELECT * FROM S WHERE NOT EXISTS (SELECT * FROM SC WHERE SNO=S.SNO AND CNO=C.CNO); SELECT DISTINCT SNOFROM SC AS XWHERE NOT EXISTIS(SELECT * FROM C WHERE TEACHER=LIU AND NOT EXISTS (SELECT * FROM SC AS Y WHERE Y.SNO=X.SNO AND Y.CNO=C.CNO); 4-3 試用SQL查詢語句表達(dá)下列對4.2題中教務(wù)管理數(shù)據(jù)庫的三個基本表S、SC、C查詢:

24、統(tǒng)計有學(xué)生選修的課程門數(shù)。 求選修4號課程的學(xué)生的平均年齡。 求LIU老師所授課程的每門課程的學(xué)生平均成績。 統(tǒng)計每門課程的學(xué)生選修人數(shù)(超過10人的課程才統(tǒng)計)。要求輸出課程號和選修人數(shù),查詢結(jié)果按人數(shù)降序排列,若人數(shù)相同,按課程號升序排列。 檢索學(xué)號比WANG同學(xué)大,而年齡比他小的學(xué)生姓名。 檢索姓名以WANG打頭的所有學(xué)生的姓名和年齡。 在SC中檢索成績?yōu)榭罩档膶W(xué)生學(xué)號和課程號。 求年齡大于女同學(xué)平均年齡的男學(xué)生姓名和年齡。 求年齡大于所有女同學(xué)年齡的男學(xué)生姓名和年齡。解: SELECT COUNT(DISTINCT CNO) FROM SC; SELECT AVG(AGE) FROM

25、S,SC WHERE S.SNO=SC.SNO AND CNO=4AND SEX=F; SELECT C.CNO,AVG(GRADE) FROM SC,C WHERE SC.CNO=C.CNO AND TEACHER=LIU; SELECT CNO,COUNT(SNO) FROM SC GROUP BY CNO HAVING COUNT(*)10 ORDER BY 2 DESC,1; SELECT SNAME FROM S WHERE SNOALL(SELECT SNO FROM S WHERE SNAME=WANG AND AGE(SELECT AVG(AGE) FROM S WHERE S

26、EX=F); SELECT SNAME,AGE FROM S WHERE SEX=MAND AGEALL(SELECT AGE FROM S WHERE SEX=F); 4-4 試用SQL更新語句表達(dá)對4.2給出的教務(wù)管理數(shù)據(jù)庫中三個基本表S、SC、C進(jìn)行如下更新操作: 往基本表S中插入一個學(xué)生元組(200912143,張晶,21)。 在基本表S中檢索每一門課程成績都大于等于80分的學(xué)生學(xué)號、姓名和性別,并把檢索到的值送往另一個已存在的基本表STUDENT(SNO,SNAME,SEX)。 在基本表SC中刪除尚無成績的選課元組。 把張成民同學(xué)在SC中的選課記錄全部刪去。 把選修高等數(shù)學(xué)課程中不及

27、格的成績?nèi)扛臑榭罩怠?把低于總平均成績的女同學(xué)成績提高5%。 在基本表SC中修改4號課程的成績,若成績小于等于75分時提高5%,若成績大于75分時提高4%(用兩個UPDATE語句實現(xiàn))。解: INSERT INTO S(SNO,SNAME,AGE) VALUES(200912143,張晶,21); INSERT INTO STUDENT(SNO,SNAME,SEX) SELECT SNO,SNAME,SEX FROM S WHERE SNO IN (SELECT SNO FROM SCWHERE 80=ALL(SELECT GRADE FROM SC GROUP BY SNO); DELET

28、E FROM SC WHERE GRADE IS NULL; DELETE FROM SC WHERE SNO IN(SELECT SNO FROM S WHERE SNAME=張民) UPDATE SC SET GRADE=NULL WHERE GRADE60 AND CNO IN(SELECT CNO FROM C WHERE CNAME=高等數(shù)學(xué)); UPDATE SC SET GRADE=GRADE*1.05 WHERE SNO IN(SELECT SNO FROM S WHERE SEX=F) AND GRADE75; UPDATE SC SET GRADE=GRADE*1.05 W

29、HERE CNO=4AND GRADE80; SELECT SNO,AVG_GRADE FROM S_GRADE WHERE C_NUM(SELECT C_NUM FROM S_GRADE SNO=200912121); UPDATE S_GRADE SET C_NUM=C_NUM+1 WHERE SNO=200915122 DELETE FROM S_GRADE WHERE C_NUM4;答: 允許查詢。相應(yīng)的操作如下:SELECT SNO,COUNT(CNO) AS C_NUM,AVG(GRADE) AS AVG_GRADEFROM SCGROUP BY SNO; 允許查詢。相應(yīng)的操作如下

30、:SELECT SNO,COUNT(CNO)AS C_NUMFROM SCGROUP BY SNOHAVING AVG(GRADE)80; 允許查詢。相應(yīng)的操作如下:SELECT SNO,AVG(GRADE) AS AVG_GRADEFROM SCGROUP BY SNOHAVING COUNT(CNO)(SELECT COUNT(CNO) FROM SC GROUP BY SNO HAVING SNO=200912121); 不允許。C_NUM是對SC中的學(xué)生選修課程的門數(shù)進(jìn)行統(tǒng)計,在未更改SC表時,要在視圖S_GRADE中更改門數(shù),是不可能的。 不允許。在視圖S_GRADE中刪除選修課程的

31、門數(shù)在4門以上的學(xué)生元組,勢必造成SC中這些學(xué)生學(xué)習(xí)元組的刪除,這不一定是用戶的原意,因此使用分組和聚合操作的視圖,不允許用戶執(zhí)行更新操作。4-7 預(yù)處理方式對于嵌入式SQL的實現(xiàn)有什么重要意義?答:此時宿主語言的編譯程序不必改動,只要提供一個SQL函數(shù)定義庫,供編譯時使用。預(yù)處理方式只是把源程序中的SQL語句處理成宿主語言的函數(shù)調(diào)用形式。4-8 SQL的集合處理方式與宿主語言單記錄處理方式之間如何協(xié)調(diào)?答:用游標(biāo)機(jī)制協(xié)調(diào)。把SELECT語句查詢結(jié)果定義成游標(biāo)關(guān)系,以使用文件的方式來使用游標(biāo)關(guān)系。與游標(biāo)有關(guān)的SQL語句有4個:游標(biāo)定義,游標(biāo)打開,游標(biāo)推進(jìn),游標(biāo)關(guān)閉。4-9嵌入式SQL的DML語

32、句何時不必涉及到游標(biāo)?何時必須涉及到游標(biāo)?答:不使用游標(biāo)的SQL語句有下面兩種情況: INSERT、DELETE、UPDATE語句,只要加上前綴和結(jié)束標(biāo)志,就能嵌入在宿主語言程序中使用; 對于SELECT語句,如果已知查詢結(jié)果肯定是單元組,也可不必涉及游標(biāo)操作。 使用游標(biāo)的SQL語句有下面兩種情況: 當(dāng)SELECT語句查詢結(jié)果是多個元組時,必須用游標(biāo)機(jī)制把多個元組一次一個地傳遞給主程序處理: 對游標(biāo)指向元組進(jìn)行修改或刪除操作時,也涉及到游標(biāo)。 4.10 用T-SQL語句創(chuàng)建教務(wù)管理數(shù)據(jù)庫(JWGL),在SQL Server 2005的查詢分析器的環(huán)境中驗證習(xí)題4.2、習(xí)題4.3和習(xí)題4.4的有

33、關(guān)內(nèi)容。略。習(xí)題5 5-1 解釋下列名詞函數(shù)依賴 函數(shù)依賴集F的閉包F+ 最小依賴集 無損分解保持函數(shù)依賴 1NF 2NF 3NFBCNF答: 函數(shù)依賴:設(shè)有關(guān)系模式R(U),X和Y是屬性集U的子集,若對于R(U)的任意一個可能的關(guān)系r,r中不可能存在兩個元組在X上的屬性值相等,而在Y上的屬性值不等,則稱X函數(shù)確定Y或Y函數(shù)依賴(Functional Dependency,簡記為FD)于X,記作XY。函數(shù)依賴集F的閉包F+:被F邏輯蘊(yùn)涵的函數(shù)依賴全體構(gòu)成的集合,稱為F的閉包,記為F+。最小依賴集:設(shè)F是屬性集U上的FD集,F(xiàn)min是F的最小依賴集,那么Fmin應(yīng)滿足下列四個條件:(Fmin)+

34、=F+;每個FD的右邊都是單屬性;Fmin中沒有冗余的FD;每個FD的左邊沒有冗余的屬性。ki=1無損分解:設(shè)關(guān)系模式R,F(xiàn)是R上的FD集,=Rl,Rk是R的一個分解。如果對R中滿足F的每一關(guān)系r,都有r= Ri(r),那么稱分解相對F是“無損分解”。保持函數(shù)依賴:設(shè)關(guān)系模式R,F(xiàn)是R上的FD分解,=R1,Rk是R的一個分解,如果有那么稱分解p保持FD集F。1NF:如果關(guān)系模式R的每個關(guān)系r的屬性值都是不可分的原子值,那么稱R是1NF的模式。2NF:如果R是1NF的模式,且每個非主屬性完全函數(shù)依賴于R的候選鍵,那么稱R是2NF的模式。3NF:如果R是1NF的模式,且每個非主屬性都不傳遞依賴于R

35、的候選鍵,那么稱R是3NF的模式。BCNF:如果R是1NF的模式,且每個屬性都不傳遞依賴于R的候選鍵,那么稱R是BCNF的模式。 5-2 已知關(guān)系模式R(ABC),F(xiàn)是R上成立的FD集,F(xiàn)=AB,BC,試寫出F的閉包F+。解:根據(jù)已知條件和推理規(guī)則,可知F+有43個FD:A AB AC ABC B CAA ABA ACA ABCA BB CCAB ABB ACB ABCB BC AC ABC ACC ABCC BBCAAB ABAB ACAB ABCAB BCAAC ABAC ACAC ABCAC BCBABC ABBC ACBC ABCBC BCCAABC ABABC ACABC ABCAB

36、C BCBC5-3 設(shè)關(guān)系模式R(ABCD),F(xiàn)是R上成立的FD集,F(xiàn)=AB,CB,則相對于F,試寫出關(guān)系模式R的關(guān)鍵碼。并說明理由。解:R的關(guān)鍵碼為ACD。因為從已知的F,只能推出ACDABCD。 5-4 設(shè)關(guān)系R(ABCDE)上FD集為F,并且F=ABC,CDE,BD,EA。求出R的候選鍵。 解:R的候選鍵有4個:A、E、CD和BC。5-5 設(shè)關(guān)系模式R(ABC),F(xiàn)是R上成立的FD集,F(xiàn)=BC,CA,那么分解=AB,AC相對于F,是否無損分解和保持FD?并說明理由。A B CABACa1 a2 b13a1 b22 a3A B CABACa1 a2 b13a1 b22 a3由FD答:已知F

37、=BC,CA,而AB(F)=BA,AC(F)=CA,顯然這個分解丟失了FD:BC。對于保持無損分解:無a行,所以是有損分解。 5-6 設(shè)關(guān)系模式R(ABCD),F(xiàn)是R上成立的FD集,F(xiàn)=AB,BC,AD,DC,=AB,AC,BD是R的一個分解。 相對于F,是無損分解嗎?為什么? 試求F在的每個模式上的投影。 保持F嗎?為什么?答: 用測試過程可以知道,相對于F是損失分解。 AB(F)=AB,AC(F)=AC,BD(F)=。 顯然,分解相對于F不保持FD分解,因為丟失了BC,AD,DC等三個FD。5-7 設(shè)關(guān)系模式R(ABCD),R上的FD集F=AC,DC,BDA,試說明=AB, ACD,BCD

38、相對于F是損失分解的理由。答:根據(jù)已知的F集,不可能把初始表格修改為一個全a行的表格,因此相對于F是損失分解。 5-8 設(shè)關(guān)系模式R(ABCD),F(xiàn)是R上成立的FD集,F(xiàn)=ABCD,AD。 試說明R不是2NF模式的理由。 試把R分解成2NF模式集。答: 從已知的函數(shù)依賴集F,可知R的候選鍵是AB。另外,由ABCD可推出ABD,再由AD可知ABD是部分(局部)函數(shù)依賴,因此R不是2NF模式。 如果將R分解成=AD,ABC,則是2NF模式集。 5-9 設(shè)關(guān)系模式R(ABC),F(xiàn)是R上成立的FD集,F(xiàn)=CB,BA。 試說明R不是3NF模式的理由。 試把R分解成3NF模式集。答: 從已知函數(shù)依賴集F可

39、知,R的候選鍵是C。由CB,BA可知,CA是一個傳遞依賴,因此R不是3NF模式。 此時如果將R分解成=CB,BA,則是3NF模式集。 5-10設(shè)有關(guān)系模式R(職工編號,日期,日營業(yè)額,部門名,部門經(jīng)理),該模式統(tǒng)計商店里每個職工的日營業(yè)額,以及職工所在的部門和經(jīng)理信息。如果規(guī)定:每個職工每天只有一個營業(yè)額;每個職工只在一個部門工作;每個部門只有一個經(jīng)理。試回答下列問題: 根據(jù)上述規(guī)定,寫出模式R的基本FD和關(guān)鍵碼; 說明R不是2NF的理由,并把R分解成2NF模式集; 進(jìn)而分解成3NF模式集。解: 基本的FD有三個: (職工編號,日期) 日營業(yè)額 職工編號 部門名 部門名 部門經(jīng)理 R的關(guān)鍵碼為:(職工編號,日期)。 R中有兩個這樣的FD: (職工編號,日期)(部門名,部門經(jīng)理) 職工編號 (部門名,部門經(jīng)理)可見前一個FD是局部依賴,所以R不是2NF模式。R應(yīng)分解Rl(職工編號,部門名,部門經(jīng)理) R2(職工編號,日期,日營業(yè)額)此處,Rl和R2都是2NF模式。 R2已是3NF模式。在R1中,存在兩個FD:職工編號 部門名 部門名 部門經(jīng)理因此,“職工編號 部門經(jīng)理”是一個傳遞依賴,Rl不是3NF模式。R1應(yīng)分解成R11(職工編號,部門名) R12(部門名,部門經(jīng)理)這樣,=R11,Rl2,R2是一個3N

溫馨提示

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

最新文檔

評論

0/150

提交評論