數(shù)據(jù)庫課后答案_第1頁
數(shù)據(jù)庫課后答案_第2頁
數(shù)據(jù)庫課后答案_第3頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、數(shù)據(jù)庫系統(tǒng)及應(yīng)用 (第二版)習(xí)題解答習(xí)題一1. 什么是數(shù)據(jù)庫? 數(shù)據(jù)庫是相互關(guān)聯(lián)的數(shù)據(jù)的集合,它用綜合的方法組織數(shù)據(jù),具有較小的數(shù)據(jù)冗余,可 供多個(gè)用戶共享, 具有較高的數(shù)據(jù)獨(dú)立性, 具有安全控制機(jī)制, 能夠保證數(shù)據(jù)的安全、 可靠, 允許并發(fā)地使用數(shù)據(jù)庫,能有效、及時(shí)地處理數(shù)據(jù),并能保證數(shù)據(jù)的一致性和完整性。2. 簡(jiǎn)要概述數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)和數(shù)據(jù)庫系統(tǒng)各自的含義。 數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)和數(shù)據(jù)庫系統(tǒng)是三個(gè)不同的概念,數(shù)據(jù)庫強(qiáng)調(diào)的是相互關(guān)聯(lián)的 數(shù)據(jù),數(shù)據(jù)庫管理系統(tǒng)是管理數(shù)據(jù)庫的系統(tǒng)軟件,而數(shù)據(jù)庫系統(tǒng)強(qiáng)調(diào)的是基于數(shù)據(jù)庫的計(jì)算 機(jī)應(yīng)用系統(tǒng)。3. 數(shù)據(jù)獨(dú)立性的含義是什么? 數(shù)據(jù)獨(dú)立性是指數(shù)據(jù)的組織

2、和存儲(chǔ)方法與應(yīng)用程序互不依賴、彼此獨(dú)立的特性。這種特 性使數(shù)據(jù)的組織和存儲(chǔ)方法與應(yīng)用程序互不依賴,從而大大降低應(yīng)用程序的開發(fā)代價(jià)和維護(hù) 代價(jià)。4. 數(shù)據(jù)完整性的含義是什么? 保證數(shù)據(jù)正確的特性在數(shù)據(jù)庫中稱之為數(shù)據(jù)完整性。5. 簡(jiǎn)要概述數(shù)據(jù)庫管理員的職責(zé)。 數(shù)據(jù)庫管理員的職責(zé)可以概括如下:(1) 首先在數(shù)據(jù)庫規(guī)劃階段要參與選擇和評(píng)價(jià)與數(shù)據(jù)庫有關(guān)的計(jì)算機(jī)軟件和硬件,要與 數(shù)據(jù)庫用戶共同確定數(shù)據(jù)庫系統(tǒng)的目標(biāo)和數(shù)據(jù)庫應(yīng)用需求,要確定數(shù)據(jù)庫的開發(fā)計(jì)劃;(2) 在數(shù)據(jù)庫設(shè)計(jì)階段要負(fù)責(zé)數(shù)據(jù)庫標(biāo)準(zhǔn)的制定和共用數(shù)據(jù)字典的研制,要負(fù)責(zé)各級(jí)數(shù) 據(jù)庫模式的設(shè)計(jì),負(fù)責(zé)數(shù)據(jù)庫安全、可靠方面的設(shè)計(jì);(3) 在數(shù)據(jù)庫運(yùn)行階段

3、首先要負(fù)責(zé)對(duì)用戶進(jìn)行數(shù)據(jù)庫方面的培訓(xùn);負(fù)責(zé)數(shù)據(jù)庫的轉(zhuǎn)儲(chǔ)和 恢復(fù);負(fù)責(zé)對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行維護(hù);負(fù)責(zé)監(jiān)視數(shù)據(jù)庫的性能,并調(diào)整、改善數(shù)據(jù)庫的性 能, 提高系統(tǒng)的效率; 繼續(xù)負(fù)責(zé)數(shù)據(jù)庫安全系統(tǒng)的管理; 在運(yùn)行過程中發(fā)現(xiàn)問題、 解決問題。6. 文件系統(tǒng)用于數(shù)據(jù)管理存在哪些明顯的缺陷? 文件系統(tǒng)用于數(shù)據(jù)管理明顯存在如下缺陷:(1) 數(shù)據(jù)冗余大。這是因?yàn)槊總€(gè)文件都是為特定的用途設(shè)計(jì)的,因此就會(huì)造成同樣的數(shù)據(jù)在多個(gè)文件中重復(fù)存儲(chǔ)。(2) 數(shù)據(jù)不一致性。這往往是由數(shù)據(jù)冗余造成的,在進(jìn)行更新時(shí),稍不謹(jǐn)慎就會(huì)造成同 一數(shù)據(jù)在不同文件中的不一致。(3) 程序和數(shù)據(jù)之間的獨(dú)立性差。應(yīng)用程序依賴于文件的存儲(chǔ)結(jié)構(gòu),使得若

4、修改文件的 存儲(chǔ)結(jié)構(gòu)則必須修改程序。(4) 數(shù)據(jù)聯(lián)系弱。文件與文件之間是獨(dú)立的,文件之間的聯(lián)系必須通過程序來構(gòu)造。因 此,文件系統(tǒng)是一個(gè)不具有彈性的、 無結(jié)構(gòu)的數(shù)據(jù)集合, 不能反映現(xiàn)實(shí)世界事物之間的聯(lián)系。習(xí)題二1. 數(shù)據(jù)的三種疇的含義是什么? 數(shù)據(jù)需要我們的認(rèn)識(shí)、理解、整理、規(guī)和加工,然后才能存放到數(shù)據(jù)庫中。數(shù)據(jù)從現(xiàn)實(shí) 生活進(jìn)入到數(shù)據(jù)庫實(shí)際經(jīng)歷了現(xiàn)實(shí)世界階段(認(rèn)識(shí)、理解) 、信息世界階段(規(guī)、提升)和機(jī) 器世界階段 (管理),我們也把之稱為數(shù)據(jù)的三種疇, 數(shù)據(jù)在三種疇中的概念、 術(shù)語都有些不 同。2. 對(duì)以下問題分析實(shí)體之間的聯(lián)系,并分別畫出 E-R 圖:略3. 試述為什么要討論實(shí)體之間的聯(lián)系

5、類型? 實(shí)體之間的聯(lián)系類型決定了數(shù)據(jù)庫設(shè)計(jì)時(shí)的結(jié)果,與數(shù)據(jù)庫的設(shè)計(jì)質(zhì)量密切相關(guān)。4. 多對(duì)多聯(lián)系如何轉(zhuǎn)換成一對(duì)多聯(lián)系?并舉例說明。通過引入一個(gè)表示聯(lián)系的實(shí)體,將原來兩個(gè)實(shí)體之間的一個(gè)多對(duì)多的聯(lián)系轉(zhuǎn)換成分別與 表示聯(lián)系的實(shí)體之間的兩個(gè)一對(duì)多的聯(lián)系。例如,倉庫和材料兩個(gè)實(shí)體之間存在著多對(duì)多的 聯(lián)系,即一個(gè)倉庫可以存放多種材料,一種材料可以存放在多個(gè)倉庫;通過引入一個(gè)庫存實(shí) 體轉(zhuǎn)換為倉庫與庫存之間的一對(duì)多聯(lián)系和材料與庫存之間的一對(duì)多聯(lián)系。5. 解釋連接陷阱的概念,在操作數(shù)據(jù)庫時(shí)如何避免連接陷阱? 所謂連接陷阱就是誤認(rèn)為本來不存在聯(lián)系的兩個(gè)實(shí)體之間存在聯(lián)系,從而強(qiáng)行進(jìn)行連接 操作,自然得到錯(cuò)誤的結(jié)果。

6、為了避免連接陷阱,必須明確實(shí)體之間的聯(lián)系和聯(lián)系類型,只 在有聯(lián)系的實(shí)體之間進(jìn)行關(guān)聯(lián)操作。6. 傳統(tǒng)的三大數(shù)據(jù)模型是哪些?它們分別是如何表示實(shí)體之間的聯(lián)系的? 傳統(tǒng)的三大數(shù)據(jù)模型是層次模型、 網(wǎng)狀模型和關(guān)系模型。 層次模型用層次結(jié)構(gòu)表示聯(lián)系, 它的典型代表 IMS 用層次型表示聯(lián)系; 網(wǎng)狀模型用網(wǎng)狀結(jié)構(gòu)表示聯(lián)系, 它的典型代表 CODASYL 用系表示聯(lián)系;關(guān)系模型用關(guān)系表示聯(lián)系。7. 解釋存儲(chǔ)數(shù)據(jù)獨(dú)立性和概念數(shù)據(jù)獨(dú)立性的區(qū)別。存儲(chǔ)數(shù)據(jù)獨(dú)立性強(qiáng)調(diào)的是應(yīng)用程序與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)相互獨(dú)立的特性,即修改數(shù)據(jù)的存 儲(chǔ)方法或數(shù)據(jù)結(jié)構(gòu)時(shí)不影響應(yīng)用程序;而概念數(shù)據(jù)獨(dú)立性強(qiáng)調(diào)的是應(yīng)用程序與數(shù)據(jù)的概念結(jié) 構(gòu)相互獨(dú)立

7、的特性,即修改概念結(jié)構(gòu)中的字段時(shí)不影響應(yīng)用程序。8. 為什么說概念數(shù)據(jù)庫和外部數(shù)據(jù)庫物理上并不真正存在?只有存儲(chǔ)數(shù)據(jù)庫是物理上存在的數(shù)據(jù)庫,概念數(shù)據(jù)庫是存儲(chǔ)數(shù)據(jù)庫的抽象,它反映了數(shù) 據(jù)庫的全局邏輯結(jié)構(gòu);而外部數(shù)據(jù)庫是概念數(shù)據(jù)庫的部分抽取,它反映了數(shù)據(jù)庫的局部邏輯 結(jié)構(gòu)。9. 說明在DBMS存儲(chǔ)模式、概念模式和外部模式的作用。存儲(chǔ)模式描述了數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu),它包括對(duì)存儲(chǔ)數(shù)據(jù)庫中每個(gè)文件以及字段的描述, 包括用于實(shí)現(xiàn)輔助關(guān)鍵字或存儲(chǔ)文件間聯(lián)系的指針字段的細(xì)節(jié)。存儲(chǔ)數(shù)據(jù)庫利用存儲(chǔ)模式組 織和存取存儲(chǔ)數(shù)據(jù)庫中的文件。如果要修改存儲(chǔ)數(shù)據(jù)庫的結(jié)構(gòu)(例如,用倒排文件代替多鏈 表),那么僅僅需要把這些修改反映

8、在存儲(chǔ)模式中, 以使數(shù)據(jù)庫存儲(chǔ)系統(tǒng)能夠操作新的存儲(chǔ)數(shù) 據(jù)庫。按這種方法,數(shù)據(jù)庫管理系統(tǒng)可以提供存儲(chǔ)(物理)數(shù)據(jù)獨(dú)立性。概念模式是對(duì)概念數(shù)據(jù)庫的描述,它包括對(duì)概念文件及概念文件之間聯(lián)系的描述。概念 數(shù)據(jù)庫不包含真正的數(shù)據(jù),一切都是由存儲(chǔ)數(shù)據(jù)庫決定的。外部模式則是對(duì)外部數(shù)據(jù)庫的描述,它需要說明外部文件、構(gòu)成外部文件的字段及這些 外部文件之間的聯(lián)系。數(shù)據(jù)庫管理系統(tǒng)提供了外部模式與概念模式之間的映象以及概念模式與存儲(chǔ)模式之間的 映象,使用戶通過外部數(shù)據(jù)庫或概念數(shù)據(jù)庫來操作存儲(chǔ)數(shù)據(jù)庫。習(xí)題三1. 解釋屬性與值域的區(qū)別。屬性是二維表中的列,而值域是列或?qū)傩缘娜≈祰?. 關(guān)系模型的三個(gè)組成部分是什么?關(guān)系

9、數(shù)據(jù)模型包括關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系完整性約束三個(gè)重要因素。3. 對(duì)關(guān)系模型的操作都包括哪些?關(guān)系數(shù)據(jù)模型中的操作包括:(1)傳統(tǒng)的集合運(yùn)算:并( Union )、交( Intersection )、差( Difference )、廣義笛卡爾積( Extended Cartesian Product);(2)專門的關(guān)系運(yùn)算:選擇( Select )、投影( Project )、連接( Join )、除( Divide );(3)有關(guān)的數(shù)據(jù)操作:查詢(Query)、插入(Insert )、刪除(Delete )、修改(Update )。4. 關(guān)系模型的完整性規(guī)則都有哪些? 在關(guān)系數(shù)據(jù)模型

10、中一般將數(shù)據(jù)完整性分為實(shí)體完整性、參照完整性和用戶定義完整性。5. 試述外部關(guān)鍵字的概念和作用,外部關(guān)鍵字是否允許為空值,為什么?如果一個(gè)屬性集不是所在關(guān)系的關(guān)鍵字,但是是其他關(guān)系的關(guān)鍵字,則該屬性集稱為外 部關(guān)鍵字。外部關(guān)鍵字用于實(shí)現(xiàn)表與表之間的參照完整性。外部關(guān)鍵字是否允許為空值取決于語義的規(guī)定。外部關(guān)鍵字的取值或者為空值、或者為 被參照關(guān)系中的某個(gè)關(guān)鍵字字段的值。6. 分別敘述在進(jìn)行插入、刪除、更新操作時(shí)都需要進(jìn)行哪些完整性檢查,并說明理由。(1) 執(zhí)行插入操作時(shí)需要分別檢查實(shí)體完整性規(guī)則、參照完整性規(guī)則和用戶定義完整性 規(guī)則。首先檢查實(shí)體完整性規(guī)則,如果插入元組的主關(guān)鍵字的屬性不為空值

11、、并且相應(yīng)的屬性 值在關(guān)系中不存在(即保持唯一性) ,則可以執(zhí)行插入操作,否則不可以執(zhí)行插入操作。接著再檢查參照完整性規(guī)則,如果是向被參照關(guān)系插入元組,則無須檢查參照完整性; 如果是向參照關(guān)系插入元組,則要檢查外部關(guān)鍵字屬性上的值是否在被參照關(guān)系中存在對(duì)應(yīng) 的主關(guān)鍵字的值,如果存在則可以執(zhí)行插入操作,否則不允許執(zhí)行插入操作。另外,如果插 入元組的外部關(guān)鍵字允許為空值,則當(dāng)外部關(guān)鍵字是空值時(shí)也允許執(zhí)行插入操作。最后檢查用戶定義完整性規(guī)則,如果插入的元組在相應(yīng)的屬性值上遵守了用戶定義完整 性規(guī)則,則可以執(zhí)行插入操作,否則不可以執(zhí)行插入操作。(2) 執(zhí)行刪除操作時(shí)一般只需要檢查參照完整性規(guī)則。如果刪

12、除的是參照關(guān)系的元組,則不需要進(jìn)行參照完整性檢查,可以執(zhí)行刪除操作。如果刪除的是被參照關(guān)系的元組,則檢查被刪除元組的主關(guān)鍵字屬性的值是否被參照關(guān) 系中某個(gè)元組的外部關(guān)鍵字引用, 如果未被引用則可以執(zhí)行刪除操作; 否則可能有三種情況:1) 不可以執(zhí)行刪除操作,即拒絕刪除;2) 可以刪除,但需同時(shí)將參照關(guān)系中引用了該元組的對(duì)應(yīng)元組一起刪除,即執(zhí)行級(jí)聯(lián) 刪除;3) 可以刪除,但需同時(shí)將參照關(guān)系中引用了該元組的對(duì)應(yīng)元組的外部關(guān)鍵字置為空 值,即空值刪除。(3) 執(zhí)行更新操作可以看作是先刪除舊的元組,然后再插入新的元組。所以執(zhí)行更新操 作時(shí)的完整性檢查綜合了上述兩種情況。7. 試述關(guān)系的自然連接和等值連

13、接的異同之處。自然連接和等值連接都是基于相等比較運(yùn)算的連接,但是自然連接要去掉重復(fù)的屬性, 而等值連接卻不需要去掉重復(fù)的屬性。8. 以圖 3-6 的數(shù)據(jù)庫為例(可參照?qǐng)D 5-1 ,該數(shù)據(jù)庫的實(shí)例) ,用關(guān)系代數(shù)完成以下檢 索:注意:此處暫以 * 表示連接運(yùn)算符。1)檢索在倉庫 WH2工作的職工的工資。n職工號(hào),工資(T倉庫號(hào)=WH2(職工)2)檢索在工作的職工的工資。n職工號(hào),工資(T城市= ( 倉庫 ) * 職工 )3)檢索的供應(yīng)商的名稱。n供應(yīng)商名(c地址 =(供應(yīng)商 )4)檢索目前與職工 E6有業(yè)務(wù)聯(lián)系的供應(yīng)商的名稱。n供應(yīng)商名(c職工號(hào)=E6(訂購單)* 供應(yīng)商)5)檢索所有職工的工資

14、都大于 1220 元的倉庫所在的城市。n城市(倉庫)-n城市(c工資=1220(職工)* 倉庫)6)檢索和的所有供應(yīng)商都有業(yè)務(wù)聯(lián)系的職工的工資。n職工號(hào),工資 (職工* (訂購單十 n供應(yīng)商號(hào)(c地址=(供應(yīng)商)7)檢索至少和職工 E1、E4、E7 都有聯(lián)系的供應(yīng)商的名稱。n供應(yīng)商名 (訂購單十(“ E1” , ” E4” , ” E7”)*供應(yīng)商)9. 試述關(guān)系數(shù)據(jù)庫系統(tǒng)的三層模式結(jié)構(gòu)。略習(xí)題四1. 簡(jiǎn)述客戶 / 服務(wù)器結(jié)構(gòu)的概念,并說明客戶 / 服務(wù)器結(jié)構(gòu)與文件服務(wù)器網(wǎng)絡(luò)結(jié)構(gòu)的區(qū) 別??蛻? 服務(wù)器結(jié)構(gòu)的基本思想是應(yīng)用程序或應(yīng)用邏輯可以根據(jù)需要?jiǎng)澐衷诜?wù)器和客戶 工作站中,它既不像集中式系

15、統(tǒng)那樣所有的應(yīng)用程序都在主機(jī)上執(zhí)行,也不像文件服務(wù)器網(wǎng) 絡(luò)那樣所有的應(yīng)用程序都在客戶端執(zhí)行,它可以使應(yīng)用程序合理負(fù)擔(dān)在服務(wù)器和客戶端。客戶/ 服務(wù)器結(jié)構(gòu)與文件服務(wù)器網(wǎng)絡(luò)結(jié)構(gòu)的硬件拓?fù)浣Y(jié)構(gòu)很相似,它們的根本區(qū)別在于: 客戶 /服務(wù)器結(jié)構(gòu)的服務(wù)器可以執(zhí)行應(yīng)用程序;而文件服務(wù)器的服務(wù)器只是一個(gè)數(shù)據(jù)共享器, 它不能執(zhí)行應(yīng)用程序。2. 在客戶 /服務(wù)器結(jié)構(gòu)中,數(shù)據(jù)庫服務(wù)器和客戶端計(jì)算機(jī)是如何分工的? 數(shù)據(jù)庫服務(wù)器應(yīng)完成數(shù)據(jù)管理、信息共享、安全管理、以及一些更高級(jí)的管理。它是一個(gè)開放的體系結(jié)構(gòu),可以接受來自各種應(yīng)用程序和開發(fā)工具的客戶端的連接;它除了要管理 集中的數(shù)據(jù)庫之外,還要處理來自客戶端的數(shù)據(jù)訪問請(qǐng)

16、求和將結(jié)果反饋給用戶(包括管理請(qǐng) 求隊(duì)列、管理緩存、響應(yīng)服務(wù)、管理結(jié)果和通知服務(wù)完成等)的工作。而客戶端計(jì)算機(jī)是面向最終用戶的,所以它的主要任務(wù)是提供友好的用戶界面,提交數(shù) 據(jù)訪問請(qǐng)求以及接收和處理數(shù)據(jù)庫的返回結(jié)果, 組織返回?cái)?shù)據(jù)的輸出 (如生成數(shù)據(jù)瀏覽窗口、 生成數(shù)據(jù)報(bào)表和圖形等) ,提供初步的數(shù)據(jù)驗(yàn)證功能等。3. SQL Server 在安裝后默認(rèn)創(chuàng)建了哪幾個(gè)系統(tǒng)數(shù)據(jù)庫?分別敘述它們的作用。SQL Server 在安裝后默認(rèn)創(chuàng)建了 4 系統(tǒng)數(shù)據(jù)庫,它們是:(1) master 數(shù)據(jù)庫。 master 數(shù)據(jù)庫用于存儲(chǔ) SQL Server 系統(tǒng)的所有系統(tǒng)級(jí)信息,包括 所有的其它數(shù)據(jù)庫(如建立

17、的用戶數(shù)據(jù)庫)的信息(包括數(shù)據(jù)庫的設(shè)置、對(duì)應(yīng)的操作系統(tǒng)文 件名稱和位置等) 、所有數(shù)據(jù)庫注冊(cè)用戶的信息以及系統(tǒng)配置設(shè)置等。(2) tempdb 數(shù)據(jù)庫。 tempdb 數(shù)據(jù)庫用于保存所有的臨時(shí)表和臨時(shí)存儲(chǔ)過程,它還可以滿 足任何其它的臨時(shí)存儲(chǔ)要求。(3) model數(shù)據(jù)庫。model數(shù)據(jù)庫是一個(gè)模板數(shù)據(jù)庫,當(dāng)使用CREATBDATABAS命令建立新的數(shù)據(jù)庫時(shí),新數(shù)據(jù)庫的第一部分總是通過復(fù)制 model 數(shù)據(jù)庫中的容創(chuàng)建,剩余部分由空 頁填充。(4) msdb數(shù)據(jù)庫。msdb數(shù)據(jù)庫用于SQL Server代理程序調(diào)度報(bào)警和作業(yè)等系統(tǒng)操作。4. 試述SQL Server的CREATE DATABA

18、S命令在創(chuàng)建數(shù)據(jù)庫時(shí)是如何申請(qǐng)物理存儲(chǔ)空間 的?通過指定的物理文件名、文件的大小等向操作系統(tǒng)申請(qǐng)物理存儲(chǔ)空間。5. 試述 SQL Server 企業(yè)管理器的功能。略。習(xí)題五1. 試概述SQL語言的功能。SQL 是一種一體化的語言,它包括了數(shù)據(jù)定義、數(shù)據(jù)查詢、數(shù)據(jù)操縱和數(shù)據(jù)控制等方面 的功能,它可以完成數(shù)據(jù)庫活動(dòng)中的全部工作。2. 以圖5-1的數(shù)據(jù)庫為例,用 SQL完成以下檢索:1) 檢索在的供應(yīng)商的名稱。SELECT * FROM 供應(yīng)商 WHERE地址=2) 檢索發(fā)給供應(yīng)商 S6的訂購單號(hào)。SELECT訂購單號(hào) FROM訂購單 WHERE供應(yīng)商號(hào)=S63)檢索出職工E6發(fā)給供應(yīng)商S6的訂購單

19、信息。SELECT * FROM訂購單 WHERE供應(yīng)商號(hào)=S6 AND職工號(hào)=E64)檢索出向供應(yīng)商 S3發(fā)過訂購單的職工的職工號(hào)和倉庫號(hào)。SELECT職工號(hào),倉庫號(hào) FROM職工WHERE職工號(hào)IN(SELECT職工號(hào)FROM訂購單 WHERE供應(yīng)商號(hào)=S3)5)檢索出目前與 S3供應(yīng)商沒有聯(lián)系的職工信息。SELECT * FROM 職工 WHERE職工號(hào) NOT IN(SELECT職工號(hào)FROM訂購單 WHERE供應(yīng)商號(hào)=S3)6)檢索出目前沒有任何訂購單的供應(yīng)商信息。SELECT * FROM 供應(yīng)商 WHERE NOT EXISTS(SELECT * FROM 訂購單 WHERE供應(yīng)

20、商號(hào)=供應(yīng)商.供應(yīng)商號(hào))7)檢索出和職工E1、E3都有聯(lián)系的的供應(yīng)商信息。SELECT * FROM 供應(yīng)商 WHERE供應(yīng)商號(hào) IN(SELECT供應(yīng)商號(hào) FROM訂購單 WHERE職工號(hào)=E1) AND 供應(yīng)商號(hào) IN(SELECT供應(yīng)商號(hào) FROM訂購單 WHERE職工號(hào)=E3)8)檢索出目前和華通電子公司有業(yè)務(wù)聯(lián)系的每個(gè)職工的工資。SELECT職工號(hào),工資FROM職工 WHERE職工號(hào)IN(SELECT職工號(hào)FROM訂購單 WHERE供應(yīng)商號(hào)IN (SELECT供應(yīng)商號(hào) FROM供應(yīng)商 WHERE供應(yīng)商名=華通電子公司)9)檢索出與工資在 1220元以下的職工沒有聯(lián)系的供應(yīng)商的名稱。S

21、ELECT供應(yīng)商名FROM供應(yīng)商WHERE供應(yīng)商號(hào)IN(SELECT供應(yīng)商號(hào) FROM訂購單 WHERE職工號(hào) NOT IN (SELECT 職工號(hào) FROM 職工 WHEREX資 1230) AND 供應(yīng)商號(hào)IN(SELECT 供應(yīng)商號(hào) FROM 供應(yīng)商 WHERE地址 =)14) 檢索出倉庫的個(gè)數(shù)。SELECT COUNT(*) FROM倉庫15) 檢索出有最大面積的倉庫信息。SELECT * FROM 倉庫 WHERE面積=(SELECT MAX面積)FROM 倉庫)16) 檢索出所有倉庫的平均面積。SELECT AVG面積)FROM 倉庫17) 檢索出向 S4 供應(yīng)商發(fā)出訂購單的那些倉

22、庫的平均面積。SELECT AVG面積)FROM 倉庫 WHERE倉庫號(hào) IN(SELECT倉庫號(hào)FROM職工 WHERE職工號(hào)IN(SELECT職工號(hào)FROM訂購單 WHERE供應(yīng)商號(hào)=S4)18) 檢索出每個(gè)城市的供應(yīng)商個(gè)數(shù)。SELECT 地址,COUNT(*) FROM 供應(yīng)商 GROUP BY地址19) 檢索出每個(gè)倉庫中工資多于 1220 元的職工個(gè)數(shù)。SELECT 倉庫號(hào),COUNT(*) FROM 職工 WHEREX資 1220 GROUP BY倉庫號(hào)20) 檢索出和面積最小的倉庫有聯(lián)系的供應(yīng)商的個(gè)數(shù)。SELECT COUNT(*) FROM供應(yīng)商 WHERE供應(yīng)商號(hào) IN(SEL

23、ECT供應(yīng)商號(hào) FROM訂購單 WHERE職工號(hào)IN(SELECT職工號(hào) FROM職工WHERE倉庫號(hào)IN(SELECT倉庫號(hào)FROM倉庫 WHERE面積=(SELECT MIN(面積)FROM 倉庫)21)檢索出工資低于本倉庫平均工資的職工信息。SELECT * FROM 職工 out WHERE 工資(SELECT AVG工資)FROM職工inne WHERE倉庫號(hào)=out.倉庫號(hào))3. 試述關(guān)系數(shù)據(jù)庫中視圖(View )的含義和作用。在關(guān)系數(shù)據(jù)庫中,視圖也稱作窗口,即視圖是操作基本表的窗口。在三層數(shù)據(jù)庫體系結(jié) 構(gòu)中,視圖是外部數(shù)據(jù)庫,它是從基本表中派生出來的并依賴于基本表,它并不獨(dú)立存在

24、。利用視圖一方面可以限定對(duì)數(shù)據(jù)的訪問 (對(duì)數(shù)據(jù)列起到安全保護(hù)的作用) ,另一方面又可 以簡(jiǎn)化對(duì)數(shù)據(jù)的訪問 (用戶可以直接通過視圖訪問數(shù)據(jù)庫) 。除此之外, 從三層數(shù)據(jù)庫體系結(jié) 構(gòu)的角度它還提供了概念數(shù)據(jù)獨(dú)立性。4. 以圖5-1的數(shù)據(jù)庫為例,用 SQL語句完成以下更新操作,并討論數(shù)據(jù)完整性約束對(duì) 這些操作的影響:1)插入一個(gè)新的供應(yīng)商元組(S9,智通公司,)。INSERT INTO 供應(yīng)商 VALUES(S9, 智通公司 , )2)刪除目前沒有任何訂購單的供應(yīng)商。DELETE FROM供應(yīng)商 WHERE供應(yīng)商號(hào) NOT IN(SELECT 供應(yīng)商號(hào) FROM 訂購單 )3)刪除由在倉庫工作的職工

25、發(fā)出的所有訂購單。DELETE FROIMT購單 WHERE職工號(hào) IN(SELECT職工號(hào)FROM職工 WHERE倉庫號(hào)IN(SELECT 倉庫號(hào) FROM 倉庫 WHERE城市=)4)的所有倉庫增加100m2的面積。UPDATE倉庫SET 面積=面積+100 WHERE城市=5)給低于所有職工平均工資的職工提高5%的工資。UPDATE職工SET工資=工資*1.05 WHERE工資(SELECT AVG工資)FROM 職工)5. SQL要嵌入到宿主語言中使用要解決哪幾方面的問題?把SQL嵌入到宿主語言中使用必須要解決以下三個(gè)方面的問題:1)嵌入識(shí)別問題。宿主語言的編譯程序不能識(shí)別SQL語句,

26、所以首要的問題就是要解決如何區(qū)分宿主語言的語句和SQL語句。2)宿主語言與SQL語言的數(shù)據(jù)交互問題。SQL語句的查詢結(jié)果必須能夠交給宿主語言處理,宿主語言的數(shù)據(jù)也要能夠交給SQL語句使用。3)宿主語言的單記錄與 SQL的多記錄的問題。宿主語言一般一次處理一條記錄,而SQL常常處理的是記錄(元組)的集合,這個(gè)矛盾必須解決。6. 試述預(yù)編譯的作用。宿主語言的編譯系統(tǒng)不能識(shí)別 SQL語句。解決這個(gè)問題的一般方法是,為 SQL語句加一 個(gè)特殊的前綴,在用宿主語言的編譯系統(tǒng)編譯源程序之前,首先由預(yù)編譯系統(tǒng)將SQL語句轉(zhuǎn)換為宿主語言的合法函數(shù)調(diào)用。7. 試述游標(biāo)( Cursor )的作用,并解釋實(shí)現(xiàn)此功能

27、的諸條語句的用途。宿主語言一般只能在單記錄方式下工作,即一次處理一個(gè)記錄。而SQL語句的查詢結(jié)果常常是一表,它包含多個(gè)記錄,為此需要用游標(biāo)(CURSOR作為橋梁做一些特殊處理,即利用游標(biāo)來臨時(shí)存放 SQL語句的查詢結(jié)果,并利用游標(biāo)與宿主語言的主變量進(jìn)行數(shù)據(jù)交互。與游標(biāo)有關(guān)的命令共有四條: DECLARE CURSOROPEN FETCH和CLOSE其中DECLARCURSOR 用SQLSELECT語句說明一個(gè)游標(biāo);OPEN丁開游標(biāo),即執(zhí)行說明游標(biāo)的 SQLSELECT語句;FETCH 從游表中讀一條記錄到主變量; CLOSE關(guān)閉游標(biāo)。8. 試述為什么需要?jiǎng)討B(tài) SQL語句,分析游標(biāo)和動(dòng)態(tài)游標(biāo)的區(qū)

28、別。有時(shí)候在編程序時(shí) SQL語句或語句的參數(shù)和格式不能確定,應(yīng)用程序只能在執(zhí)行時(shí)才知 道需要什么樣的SQL語句,即必須在應(yīng)用程序執(zhí)行時(shí)動(dòng)態(tài)建立SQL語句。定義游標(biāo)的SQL語句是靜態(tài)的;而定義動(dòng)態(tài)游標(biāo)的SQL語句是動(dòng)態(tài)生成的。習(xí)題六1. 什么是存儲(chǔ)過程?為什么要使用存儲(chǔ)過程?存儲(chǔ)過程是經(jīng)過預(yù)編譯的 T-SQL語句的集合,它存放在數(shù)據(jù)庫中,當(dāng)用戶執(zhí)行存儲(chǔ)過程 時(shí),存儲(chǔ)過程在數(shù)據(jù)庫服務(wù)器上運(yùn)行。利用存儲(chǔ)過程可以避免在網(wǎng)絡(luò)上傳輸大量無用的信息或原始數(shù)據(jù),只需要傳輸調(diào)用存儲(chǔ) 過程的指令和數(shù)據(jù)庫服務(wù)器返回的處理結(jié)果, 這樣可以大大提高網(wǎng)絡(luò)數(shù)據(jù)庫應(yīng)用系統(tǒng)的性能。2. 試為如下問題編寫、建立存儲(chǔ)過程,并定義合

29、適的過程返回狀態(tài)碼和信息(均以圖 5-1 的數(shù)據(jù)庫為例) :1) 插入一個(gè)新的供應(yīng)商元組。CREATE PROCEDURE ins_sup(sno CHAR(3),sname CHAR (16),addr CHAR (10)ASINSERT INTO 供應(yīng)商 VALUES(sno,sname,addr)IF ERROR = 0RETURN 0ELSERETURN -12) 給指定城市的所有倉庫增加x m2 的面積。CREATE PROCEDURE upd_wh_area(city char(10),area numeric)ASUPDATE倉庫 SET 面積= 面積 + area WHERE

30、城市=cityIF ERROR = 0RETURN 0ELSERETURN -13) 檢索某職工發(fā)給某供應(yīng)商的訂購單信息。CREATE PROCEDURE get_ord(eno CHAR(4),sno CHAR(3)ASSELECT * FROM訂購單 WHERE職工號(hào)=eno AND供應(yīng)商號(hào)=snoIF ERROR = 0RETURN 0ELSERETURN -11. 列出向項(xiàng)目 J1 提供零件 P1 的供應(yīng)商號(hào) ;SELECT SNO FROM SPJ WHERE PNPO1= AND JNO= J1;2. 列出零件 , 該零件是由供應(yīng)商提供給在同一城市的工程項(xiàng)目 ;SELECTUNIQ

31、UEPNOFROMS,SPJ,J WHERES.SNO=SPJ.SNOANDSPJ.JNO=J.JNO AND J.CITY=S.CITY;3. 列出供應(yīng)商號(hào) , 該供應(yīng)商提供了最小的紅色零件 ;SELECT SNO FROM SPJ WHERE PNO=(SELECT MIN(PNO) FROM P WHERE COLOR=RED);4. 列出供應(yīng)商 , 該供應(yīng)商至少提供一種由提供了紅色零件的供應(yīng)商提供的零件 ; SELECT UNIQUE SNO FROM SPJ WHERE PNO IN(SELECT PNO FROM SPJ WHERE SNO IN(SELECT SNO FROM S

32、PJ WHERE PNO IN(SELECT PNO FROM P WHERE COLOCRO=LOR );5. 列出在工程項(xiàng)目 J1 中由一個(gè)以上供應(yīng)商提供的零件 .SELECT PNO FROM SPJ WHERE JNJO1= GROUP BY PNO HAVING COUNT(*)1;4) 檢索在某城市工作并且向某供應(yīng)商發(fā)了訂購單的職工號(hào)。CREATE PROCEDURE get_eno(city CHAR(10),sno CHAR(3)ASSELECT職工號(hào) FROM職工WHERE倉庫號(hào)IN(SELECT 倉庫號(hào) FROM 倉庫 WHERE城市=city) AND 職工號(hào) IN(SE

33、LECT職工號(hào)FROM訂購單 WHERE供應(yīng)商號(hào)=sno)IF ERROR = 0RETURN 0ELSERETURN- 13. 試述觸發(fā)器的概念和作用。觸發(fā)器可以看作是一類特殊的存儲(chǔ)過程,它在滿足某個(gè)特定條件時(shí)自動(dòng)觸發(fā)執(zhí)行。觸發(fā) 器是為表上的更新、插入、刪除操作定義的,也就是說當(dāng)表上發(fā)生更新、插入或刪除操作時(shí) 觸發(fā)器將執(zhí)行。觸發(fā)器可以用于數(shù)據(jù)參照完整性和以下一些場(chǎng)合: 觸發(fā)器可以通過級(jí)聯(lián)的方式對(duì)相關(guān)的表進(jìn)行修改。比如,對(duì)父表的修改,可以引起 對(duì)子表的一系列修改,從而保證數(shù)據(jù)的一致性和完整性。觸發(fā)器可以禁止或撤消違反參照完整性的修改。觸發(fā)器可以強(qiáng)制比用 CHECK勺束定義更加復(fù)雜的限制。4.

34、利用觸發(fā)器為圖 5-1 數(shù)據(jù)庫的訂購單關(guān)系建立參照完整性。 。 建立插入觸發(fā)器CREATE TRIGGER ord_ins_triggerON 訂購單 FOR INSERTASIF (SELECT COUNT(*) FROM 職工 e,INSERTED iWHERE e職工號(hào)=i.職工號(hào))=0 OR(SELECT COUNT(*) FROM供應(yīng)商 s,INSERTED iWHERE s供應(yīng)商號(hào)=i. 供應(yīng)商號(hào))=0)BEGINRAISERROR (非法職工號(hào)或非法供應(yīng)商號(hào) , 1, 1)ROLLBACK TRANSACTIONEND建立更新觸發(fā)器略習(xí)題七1. 討論數(shù)據(jù)庫安全都與哪些安全問題有關(guān)

35、? 數(shù)據(jù)庫安全實(shí)際涉及到很多方面,除了數(shù)據(jù)庫管理系統(tǒng)應(yīng)該具有安全保護(hù)功能之外,還 需要從管理機(jī)制、人員行為、操作系統(tǒng)安全和網(wǎng)絡(luò)安全等多個(gè)方面采取措施。2. 試述數(shù)據(jù)庫的自主存取控制和強(qiáng)制存取控制的區(qū)別和各自的特點(diǎn)。 自主存取控制的特點(diǎn)是由用戶“自主”地控制數(shù)據(jù)庫對(duì)象的訪問權(quán)限;而強(qiáng)制存取控制 的特點(diǎn)是嚴(yán)格的分層次管理,有嚴(yán)格的等級(jí)制度。3. 試述角色管理在數(shù)據(jù)庫安全控制中的作用。 角色管理類似于用戶組的管理,可以將數(shù)據(jù)庫的所有用戶劃分成不同的角色,這樣可以 簡(jiǎn)化用戶管理,使用戶管理和權(quán)限管理更加簡(jiǎn)潔、清楚。4. 試述 SQL Server 的系統(tǒng)預(yù)定義角色為安全管理提供了哪些便利。SQL Se

36、rver 的系統(tǒng)管理是由系統(tǒng)管理員(默認(rèn)是 sa 用戶)負(fù)責(zé)的,而系統(tǒng)預(yù)定義角色 正是系統(tǒng)管理員職責(zé)的分解,通過一些系統(tǒng)預(yù)定義角色的用戶來協(xié)助系統(tǒng)管理員進(jìn)行管理, 可以減輕系統(tǒng)管理員( sa 用戶)的工作負(fù)擔(dān),對(duì)系統(tǒng)管理來說又有更明確的職責(zé)劃分。5. 試述語句授權(quán)和對(duì)象授權(quán)各自的含義和作用。語句授權(quán)是指對(duì)執(zhí)行創(chuàng)建數(shù)據(jù)庫對(duì)象的語句的授權(quán),這種權(quán)限一般歸系統(tǒng)管理員( sa ) 或數(shù)據(jù)庫管理員(DBO管理;對(duì)象授權(quán)是指對(duì)可以在數(shù)據(jù)庫對(duì)象執(zhí)行的操作的授權(quán),這種權(quán)限一般由數(shù)據(jù)庫對(duì)象擁有者 (DBOO管理,也可以由系統(tǒng)管理員 (sa)或數(shù)據(jù)庫管理員(DBO 管理。6. 試述 GRAN語句中 WITH GR

37、ANT OPTIO子句的作用。WITH GRANT OPTION?句說明被授權(quán)用戶可以將指定的對(duì)象權(quán)限授予其他用戶。該子句 僅對(duì)對(duì)象權(quán)限有效,對(duì)語句權(quán)限無效。7. 試述在 REVOK語句中 GRANT OPTION FO子句和 CASCAD子句的作用。GRANTOPTIONFOR說明只收回WITHGRANQPTION權(quán)限;CASCAD說明級(jí)聯(lián)收回由于 WITH GRANQPTION授予的所有權(quán)限。GRANQPTIONFOR要與CASCAD一同使用,因?yàn)橐栈?WITH GRANT OPTIONS限,也應(yīng)該一同收回由于該子句產(chǎn)生的所有授權(quán)。8試述禁止權(quán)限語句 DENY勺作用。禁止權(quán)限語句 DEN

38、Y勺作用是禁止用戶從角色繼承指定的權(quán)限。9. 什么是數(shù)據(jù)庫的審計(jì)功能?系統(tǒng)管理員(或數(shù)據(jù)庫管理員)可以通過審計(jì)日志審計(jì)、跟蹤所有用戶對(duì)數(shù)據(jù)庫的操作 活動(dòng),可以確定哪些客戶、什么時(shí)間、進(jìn)行了哪些操作(任何操作)等,這種功能稱作數(shù)據(jù) 庫的審計(jì)功能。10. 統(tǒng)計(jì)數(shù)據(jù)庫有哪些特殊的安全性問題? 統(tǒng)計(jì)數(shù)據(jù)庫的安全性問題主要是指不允許從統(tǒng)計(jì)信息推導(dǎo)出名細(xì)信息。習(xí)題八1. 什么是事務(wù)? 事務(wù)是構(gòu)成單一邏輯工作單元的操作集合。2. 解釋事務(wù)的 ACID 性質(zhì)。事務(wù)的 ACID 性質(zhì)指事務(wù)具有原子性 (即不可分割) 、一致性(要能保證數(shù)據(jù)庫的一致性) 隔離性(事務(wù)的原子性和一致性不受其他事務(wù)的影響)和持久性(事

39、務(wù)對(duì)數(shù)據(jù)庫所施加的所 有更新都是永久的) 。3. 并發(fā)控制都會(huì)產(chǎn)生哪些干擾問題?并討論之。 并發(fā)事務(wù)可能會(huì)存在的干擾問題主要有:丟失更新問題未提交依賴問題不一致分析問題 幻象讀問題討論略。4. 請(qǐng)舉出兩個(gè)并發(fā)的程序進(jìn)行更新操作時(shí)相互干擾的例子。略5. 利用事務(wù)概念和封鎖技術(shù)重做第 4 題,使干擾不發(fā)生。略6. 分別解釋共享封鎖、更新封鎖和獨(dú)占封鎖的含義。 共享封鎖是為讀操作設(shè)置的一種封鎖,目的是想讀到一組不變的數(shù)據(jù),也就是在讀數(shù)據(jù) 的過程中,不允許其他用戶對(duì)該數(shù)據(jù)進(jìn)行任何修改操作。這種封鎖可以保證最大的并發(fā)性, 任何數(shù)量的用戶都可以同時(shí)對(duì)同樣的數(shù)據(jù)施加這種共享鎖。當(dāng)需要對(duì)一個(gè)記錄或一組記錄進(jìn)行

40、更新時(shí)(只是修改,不包括插入和刪除)使用更新封 鎖,該封鎖的目的是防止其他用戶在同一時(shí)刻修改同一記錄。已經(jīng)實(shí)施更新封鎖的記錄,拒 絕來自其他用戶的更新封鎖或獨(dú)占封鎖。獨(dú)占封鎖也叫排他封鎖,這是最嚴(yán)格的一類封鎖。當(dāng)需要對(duì)表實(shí)施插入、刪除或修改操 作時(shí),應(yīng)該使用獨(dú)占封鎖。已經(jīng)實(shí)施獨(dú)占封鎖的表,拒絕來自其他用戶的任何封鎖,但不拒 絕其他用戶的一般讀操作。7. 什么是死鎖?如何避免發(fā)生死鎖?當(dāng)兩個(gè)(或多個(gè))并發(fā)的事務(wù)分別等待對(duì)方釋放封鎖的資源,而使事務(wù)處于長(zhǎng)期等待狀 態(tài)的現(xiàn)象稱為死鎖。為了避免死鎖,一般可以采取兩種方式: 相同順序法:所有的事務(wù)約定都按相同的順序來封鎖表; 一次封鎖法:為了完成一個(gè)事務(wù)

41、,一次性封鎖所需要的全部表。8. 什么是事務(wù)的隔離性?如何劃分事務(wù)的隔離級(jí)別? 事務(wù)的隔離性是指一個(gè)事務(wù)應(yīng)該與其他事務(wù) “隔離”,它在完成過程中不受其他事務(wù)的影 響和干擾?!案綦x”則意味著并發(fā)程度的降低。為了既能保證數(shù)據(jù)的一致性、又盡可能提高系統(tǒng)的 并發(fā)執(zhí)行效率,為此將隔離級(jí)別劃分為如下 4 個(gè)級(jí)別:未提交讀(READ UNCOMMITTED事務(wù)隔離的最低級(jí)別,僅可保證不讀取物理損壞的數(shù)據(jù),這是 4 個(gè)隔離級(jí)別中限制最小的級(jí)別。提交讀(READ COMMITTED可以保證不讀取“臟”數(shù)據(jù)??芍貜?fù)讀(REPEATABLE READ可以保證讀一致性,避免不一致分析問題??纱谢⊿ERIALIZA

42、BLE):事務(wù)隔離的最高級(jí)別,事務(wù)之間完全隔離;如果事務(wù)在 可串行化隔離級(jí)別上運(yùn)行,則可以保證任何并發(fā)重疊事務(wù)均是串行的。9. 試敘述在備份與恢復(fù)技術(shù)中數(shù)據(jù)庫日志的作用。日志則是對(duì)備份的補(bǔ)充,它可以看作是一個(gè)值班日記,它將記錄下所有對(duì)數(shù)據(jù)庫的更新 操作。這樣就可以在備份完成時(shí)立刻刷新并啟用一個(gè)數(shù)據(jù)庫日志,數(shù)據(jù)庫日志是實(shí)時(shí)的,它 將忠實(shí)地記錄下所有對(duì)數(shù)據(jù)庫的更新操作。因此,當(dāng)磁盤出現(xiàn)故障造成數(shù)據(jù)庫損壞時(shí),就可 以首先利用備份恢復(fù)數(shù)據(jù)庫 (恢復(fù)大部分?jǐn)?shù)據(jù)) ,然后再運(yùn)行數(shù)據(jù)庫日志, 即將備份后所做的 更新操作再重新做一遍,從而將數(shù)據(jù)庫完全恢復(fù)。10. 試述在 SQL Server 中利用文件和文件

43、組備份為數(shù)據(jù)庫恢復(fù)提供了什么樣的便利? 利用文件和文件組進(jìn)行備份,則當(dāng)建立數(shù)據(jù)庫的某個(gè)物理存儲(chǔ)介質(zhì)出現(xiàn)故障時(shí),可以只恢復(fù)發(fā)生故障的存儲(chǔ)介質(zhì)上的物理文件或文件組,而不需要恢復(fù)整個(gè)數(shù)據(jù)庫,這可以大大縮 短數(shù)據(jù)庫恢復(fù)所需要的時(shí)間。11. 針對(duì)不同的故障類型(事務(wù)故障和介質(zhì)故障) ,試討論恢復(fù)的策略和方法。略12. 試討論備份系統(tǒng)數(shù)據(jù)庫的重要性。系統(tǒng)數(shù)據(jù)庫(在 SQL Server 上特別是 master 數(shù)據(jù)庫)是管理用戶數(shù)據(jù)庫的數(shù)據(jù)庫,如 果系統(tǒng)數(shù)據(jù)庫一旦損壞,整個(gè)系統(tǒng)的使用都將受到影響。所以系統(tǒng)數(shù)據(jù)庫的安全和可靠是用 戶數(shù)據(jù)庫可以正常使用的基礎(chǔ)。習(xí)題九1. 理解、定義如下術(shù)語,并分別給出兩個(gè)例子

44、:函數(shù)依賴、部分函數(shù)依賴、完全函數(shù)依 賴、傳遞函數(shù)依賴、主屬性。略2. 找出圖 5-1 所示數(shù)據(jù)庫各個(gè)關(guān)系中的函數(shù)依賴。倉庫關(guān)系上的函數(shù)依賴:倉庫號(hào)T城市,倉庫號(hào)T面積職工關(guān)系上的函數(shù)依賴:職工號(hào)T倉庫號(hào),職工號(hào)T工資訂購單關(guān)系上的函數(shù)依賴:訂購單號(hào)T職工號(hào),訂購單號(hào)T供應(yīng)商號(hào),訂購單號(hào)T訂購日期供應(yīng)商關(guān)系上的函數(shù)依賴:供應(yīng)商號(hào)T供應(yīng)商名,供應(yīng)商名T供應(yīng)商號(hào),供應(yīng)商號(hào)T地址,供應(yīng)商名T地址3. 試證明如下結(jié)論(引理 9.1 ):XT A1A2A的充分必要條件是 Xt Ak成立(k=1,2,,n)。證明:略4. 設(shè)有關(guān)系模式 R(U,F(xiàn)), U= A, B, C, D, E , F= ABT E

45、, DET B, BT C, CT E, ET A1)計(jì)算所有函數(shù)依賴左部關(guān)于函數(shù)依賴集F的屬性集閉包;(AB) +=A,B,C,E(DE) +=A,B,C,D,EB+=A,B,C,EC+=A,C,EE+=A,E2)確定關(guān)系模式 R上的所有侯選關(guān)鍵字;DE3)求 F 的所有最小覆蓋。Fm=F-AB-E5. 假設(shè)有一個(gè)名為參加的關(guān)系,該關(guān)系有屬性:職工(職工名) 、工程(工程名) 、時(shí)數(shù) 花費(fèi)在工程上的小時(shí)數(shù)) 和工資(職工的工資) ;一個(gè)參加記錄描述一個(gè)職工花費(fèi)在一個(gè)工 程上的總時(shí)數(shù)和他的工資;另外,一個(gè)職工可以參加多個(gè)工程,多個(gè)職工可以參加同一個(gè)工 程。請(qǐng)回答如下各問題:用A、B、C D分別

46、代表屬性職工、工程、時(shí)數(shù)和工資,則:1) 確定這個(gè)關(guān)系的關(guān)鍵字;AB2) 找出這個(gè)關(guān)系中的所有函數(shù)依賴;AB-C , A-D3) 指出這個(gè)關(guān)系上的哪些函數(shù)依賴會(huì)帶來操作異?,F(xiàn)象;D 對(duì)關(guān)鍵字 AB 的部分函數(shù)依賴可能會(huì)帶來如下問題: 數(shù)據(jù)冗余:一個(gè)職工參加多個(gè)工程,則職工的工資值會(huì)重復(fù); 更新異常:當(dāng)改變職工的工資時(shí),可能會(huì)只修改了一部分,從而造成數(shù)據(jù)不一致; 插入異常:當(dāng)一個(gè)職工尚未承擔(dān)工程,但要插入職工信息(如工資)則不允許(因?yàn)闆] 有完整的關(guān)鍵字) ;刪除異常:當(dāng)某個(gè)工程結(jié)束,刪除工程信息時(shí),可能會(huì)將職工信息(如工資)一同刪除 (如果職工只參加了一項(xiàng)工程) 。4) 這個(gè)關(guān)系是第幾式關(guān)系?

47、2NF5) 計(jì)算該關(guān)系上函數(shù)依賴集的最小覆蓋;Fm=AB-C, A-D6) 將該關(guān)系分解成盡可能高的式,并指明是第幾式? 分解為 R1(A,B,C) 和 R2(A,D)結(jié)果為 4NF6. 一個(gè)關(guān)系有4個(gè)字段A B CD,這里A和B構(gòu)成復(fù)合關(guān)鍵字,問滿足下列函數(shù)依 賴的關(guān)系是第幾式?1) A、B、C D都函數(shù)依賴于 ABBCNF或 4NF2) A、B、 C、D都函數(shù)依賴于AB,而D還函數(shù)依賴于C。2NF3) A、B、 C、D都函數(shù)依賴于AB,而D還函數(shù)依賴于B。1NF4) A、B、 C、D都函數(shù)依賴于AB,而B還函數(shù)依賴于C。3NF7. 設(shè)有關(guān)系模式 R(A, B, C, D, E),并有函數(shù)依

48、賴ABt D, ACE, BCD,DA,EB, 現(xiàn)將R分解成關(guān)系模式 S(A, B, C)和其他一些關(guān)系模式,請(qǐng)給出在關(guān)系模式S上成立的函數(shù)依賴。ACtB, BCtA習(xí)題十1. 試敘述概念數(shù)據(jù)庫設(shè)計(jì)和邏輯數(shù)據(jù)庫設(shè)計(jì)的區(qū)別,并說明各自的主要工作容。 概念數(shù)據(jù)庫設(shè)計(jì)是不依賴于任何數(shù)據(jù)庫管理系統(tǒng)的,它是對(duì)用戶信息需求的歸納。概念 設(shè)計(jì)的結(jié)果得到的是數(shù)據(jù)庫的概念結(jié)構(gòu),或稱概念數(shù)據(jù)模型,由于它是從現(xiàn)實(shí)世界的角度進(jìn) 行的抽象和描述,所以與具體的硬件環(huán)境和軟件環(huán)境均無關(guān)。而在邏輯數(shù)據(jù)庫首先要考慮實(shí) 現(xiàn)數(shù)據(jù)庫的數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型是什么,并將概念數(shù)據(jù)模型轉(zhuǎn)換為數(shù)據(jù)庫管理 系統(tǒng)支持的數(shù)據(jù)模型。一般在概

49、念設(shè)計(jì)階段主要工作容有:確定實(shí)體; 確定實(shí)體的屬性; 確定實(shí)體的標(biāo)識(shí)屬性(關(guān)鍵字) ; 確定實(shí)體間的聯(lián)系和聯(lián)系類型; 確定實(shí)現(xiàn)實(shí)體間聯(lián)系的屬性(外部關(guān)鍵字或連接屬性) ; 畫出表示概念模型的 E-R 圖;除此之外,為了以后對(duì)模式進(jìn)行規(guī)化,還需要: 確定屬性間的依賴關(guān)系。而在邏輯設(shè)計(jì)階段一般主要工作容有: 確定各個(gè)關(guān)系模式的主關(guān)鍵字,考慮實(shí)體完整性; 確定各個(gè)關(guān)系模式的外部關(guān)鍵字,考慮參照完整性; 確定各個(gè)關(guān)系模式中屬性的約束、規(guī)則和默認(rèn)值,考慮域完整性; 根據(jù)用戶需求設(shè)計(jì)視圖; 考慮安全方案和用戶使用權(quán)限等。2. 物理數(shù)據(jù)庫設(shè)計(jì)主要包括哪些容? 物理數(shù)據(jù)庫設(shè)計(jì)的容是設(shè)計(jì)數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)和物理實(shí)

50、現(xiàn)方法。一般包括如下容: 估算數(shù)據(jù)庫的數(shù)據(jù)存儲(chǔ)量; 設(shè)計(jì)數(shù)據(jù)庫設(shè)備; 安排數(shù)據(jù)庫的存儲(chǔ);設(shè)計(jì)索引; 設(shè)計(jì)備份策略等。3. 到 Sybase 公 司 的 ( ) 下 載 PowerDesigner 的 試 用 版 , 實(shí) 踐 利 用 PowerDesigner 進(jìn)行數(shù)據(jù)庫建模的方法和過程。略習(xí)題十1. 面向?qū)ο髷?shù)據(jù)庫是在什么背景下產(chǎn)生的?為什么需要面向?qū)ο髷?shù)據(jù)庫? 在信息管理領(lǐng)域之外還有很多新的應(yīng)用領(lǐng)域迫切需要使用數(shù)據(jù)庫,如計(jì)算機(jī)輔助設(shè)計(jì)(CAD、多媒體技術(shù)(音頻、視頻文件的存儲(chǔ)和處理)等,這些應(yīng)用往往需要存儲(chǔ)大量的復(fù) 雜類型的數(shù)據(jù),同時(shí)面向?qū)ο蟮母拍詈图夹g(shù)也強(qiáng)烈地引發(fā)了數(shù)據(jù)庫對(duì)復(fù)雜數(shù)據(jù)類型的支

51、持, 從而推動(dòng)了面向?qū)ο髷?shù)據(jù)庫的發(fā)展。由于關(guān)系數(shù)據(jù)庫不直接支持復(fù)雜數(shù)據(jù)類型,致使一些必須使用復(fù)雜數(shù)據(jù)類型的應(yīng)用實(shí)現(xiàn) 起來不是很方便、并且效率較低。另外關(guān)系模型也不支持構(gòu)造類型和繼承,這都使得人們希 望發(fā)展面向?qū)ο蟮臄?shù)據(jù)庫。2. 什么是對(duì)象的封裝性、繼承性和多態(tài)性? 封裝性是指將類的數(shù)據(jù)和操作封裝在類定義中,對(duì)用戶來講類的“功能”是可見的,而實(shí)現(xiàn)部分是封裝在類定義中的,用戶是看不見的。這種封閉性保證了每個(gè)對(duì)象的實(shí)現(xiàn)都獨(dú)立 于其他對(duì)象的細(xì)節(jié),從而有利于保證軟件的質(zhì)量。繼承性是指可以利用已有的類去定義新的類。如果根據(jù)類A定義類B,則說類B繼承了類A,同時(shí)把類 A稱作基類,把類 B稱作子類。子類不僅可

52、以繼承基類的所有性質(zhì),還可以 在子類中定義新的性質(zhì)。繼承性使得基類中的代碼可以共享和重用,所以繼承性有助于軟件 可重用性的實(shí)現(xiàn)。多態(tài)性是指同一個(gè)函數(shù)可以有多種作用,即: 同一個(gè)函數(shù)根據(jù)不同的引用對(duì)象可以完成不同的功能; 同一個(gè)函數(shù)即便引用同一個(gè)對(duì)象,但由于傳遞的參數(shù)不同也可以完成不同的功能。多態(tài)性可以為整個(gè)應(yīng)用和所有對(duì)象部提供一個(gè)一致的接口,沒有必要為相同的動(dòng)作命名 和編寫不同的函數(shù),它完全可以根據(jù)引用的對(duì)象不同、傳遞的消息不同來完成不同的功能。 這樣做也與現(xiàn)實(shí)世界中管理和運(yùn)作方法相吻合。3. 面向?qū)ο髷?shù)據(jù)庫的研究方法主要有哪些? 面向?qū)ο髷?shù)據(jù)庫的研究方法目前主要有以下三種:擴(kuò)充關(guān)系數(shù)據(jù)模型。

53、 將成熟的關(guān)系數(shù)據(jù)庫與面向?qū)ο髷?shù)據(jù)庫方法結(jié)合起來, 可減少研 制工作量、縮短研制周期。這種方法的弱點(diǎn)是不能全面支持面向?qū)ο蟮奶卣鳌T诿嫦驅(qū)ο笳Z言中嵌入數(shù)據(jù)庫功能而形成面向?qū)ο髷?shù)據(jù)庫。 該方法的關(guān)鍵是如何在面 向?qū)ο笳Z言中增加持久性對(duì)象的存儲(chǔ)管理。使用此方法受到面向?qū)ο笳Z言的一些限制。開發(fā)全新的數(shù)據(jù)模型, 從底層實(shí)現(xiàn)面向?qū)ο髷?shù)據(jù)庫系統(tǒng)。 這是最徹底的方法, 缺點(diǎn)是 難度大,一方面缺乏統(tǒng)一的數(shù)據(jù)模式及形式化理論,另一方面在查詢優(yōu)化、視圖及數(shù)據(jù)庫工 具方面仍為空白。4. 面向?qū)ο髷?shù)據(jù)庫應(yīng)該具備哪些基本特征? 一個(gè)面向?qū)ο髷?shù)據(jù)庫系統(tǒng)應(yīng)該具備如下的基本容和特征:在數(shù)據(jù)模型方面支持對(duì)象、復(fù)合對(duì)象、封裝、類

54、、繼承、重載、滯后聯(lián)編、多態(tài)性等 基本概念。其中復(fù)合對(duì)象的概念包括支持生成復(fù)合對(duì)象的構(gòu)造器(元組、集合、包、列表、 數(shù)組等)。數(shù)據(jù)庫管理系統(tǒng)除了具有傳統(tǒng)的數(shù)據(jù)庫管理系統(tǒng)所具有的功能 (如并發(fā)控制、 故障和 恢復(fù))外,還支持永久對(duì)象、長(zhǎng)事務(wù)處理和嵌套事務(wù),具有版本管理和模式演化的能力,能 維護(hù)數(shù)據(jù)完整性,適合在分布式環(huán)境下工作。數(shù)據(jù)庫訪問界面要支持消息傳遞, 提供計(jì)算能力完備的數(shù)據(jù)庫程序設(shè)計(jì)語言, 能解決 數(shù)據(jù)庫語言與宿主語言的某些不匹配問題,提供類似SQL的非過程化查詢功能。5. SQL99支持 ORDBMS還是 OODBMSSQL99支持的是ORDBMS6. 比較RDBIM3ORDBM和OODBMSS后分別描述一個(gè)適合使用RDBMSORDBM和 OODBMS的應(yīng)用,并說明原因。略習(xí)題十二1. 解釋ODBC勺概念。O D B C( Open DataBase Connectivity )的全稱是開放數(shù)據(jù)庫互連,它是一種訪問數(shù)據(jù)庫 的統(tǒng)一界面標(biāo)準(zhǔn)。2. 應(yīng)用程序是如何通過 ODBC訪問數(shù)據(jù)庫的?應(yīng)用程序通過調(diào)用 ODBC函數(shù)可以完成對(duì)數(shù)據(jù)庫的訪問操作,它所執(zhí)行的任務(wù)或完成的工 作包括: 請(qǐng)求對(duì)數(shù)據(jù)源的連接, 獲取連接句柄; 指定事務(wù)控制方式; 定義接收結(jié)果的數(shù)據(jù)區(qū); 向數(shù)據(jù)源發(fā)送SQL語句;接收SQL的查詢結(jié)果;處理出錯(cuò)信息,并將出

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論