




版權(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ù)的組織和存儲(chǔ)方法與應(yīng)用程序互不
2、依賴、彼此獨(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)行階段首先要負(fù)責(zé)對(duì)用戶進(jìn)行數(shù)據(jù)庫方面的培訓(xùn)
3、;負(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),使得若修改文件的存儲(chǔ)結(jié)構(gòu)則必須修改程序。(4) 數(shù)據(jù)聯(lián)系弱
4、。文件與文件之間是獨(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)系類型?實(shí)體之間的聯(lián)系類型決定了數(shù)據(jù)庫設(shè)計(jì)時(shí)的結(jié)果,與數(shù)據(jù)庫的設(shè)計(jì)質(zhì)量密
5、切相關(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é)果。為了避免連接陷阱,必須明確實(shí)體之間的聯(lián)系和聯(lián)系類型,只在有聯(lián)系的實(shí)體之間進(jìn)行關(guān)聯(lián)操
6、作。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ú)立的特性,即修改概念結(jié)構(gòu)中的字段時(shí)不影響應(yīng)用程序。8. 為什么說概念數(shù)據(jù)庫和外部數(shù)據(jù)庫物理上并不真正存在?只有
7、存儲(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)(例如,用倒排文件代替多鏈表),那么僅僅需要把這些修改反映在存儲(chǔ)模式中,以使數(shù)據(jù)庫存儲(chǔ)系統(tǒng)能夠操作新的存儲(chǔ)數(shù)據(jù)庫。按這種方法,數(shù)據(jù)庫管理系統(tǒng)可以提供存儲(chǔ)(物理)數(shù)據(jù)獨(dú)立性。概
8、念模式是對(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)系數(shù)據(jù)模型包括關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系完整性約束三個(gè)重要因素。3. 對(duì)關(guān)系模型的操作都包括哪些?關(guān)系數(shù)據(jù)模型中的操作包
9、括:(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ù)模型中一般將數(shù)據(jù)完整性分為實(shí)體完整性、參照完整性和用戶定義完整性。5. 試述外部關(guān)鍵字的概念和作用,外部關(guān)鍵字是否允許為空值,為什么?如果一個(gè)屬性集不是所在關(guān)系
10、的關(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)鍵字的屬性不為空值、并且相應(yīng)的屬性值在關(guān)系中不存在(即保持唯一性),則可以執(zhí)行插入操作,否則不可以執(zhí)行插入操作。接著再檢查參照完整性規(guī)則,如果是向被參照關(guān)系插入元組,則無須檢查參照
11、完整性;如果是向參照關(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ī)則。如果刪除的是參照關(guān)系的元組,則不需要進(jìn)行參照完整性檢查,可以執(zhí)行刪除操作。如果刪除的是被參照關(guān)系的元組,則檢查被刪除元組的主關(guān)鍵字屬性的值是否被參照關(guān)系中某個(gè)元組的外部關(guān)鍵字引用,
12、如果未被引用則可以執(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)系的自然連接和等值連接的異同之處。自然連接和等值連接都是基于相等比較運(yùn)算的連接,但是自然連接要去掉重復(fù)的屬性,而等值連接卻不需要去掉重復(fù)的屬性。8. 以圖3-6的數(shù)據(jù)庫為例(可參照?qǐng)D5-1,該數(shù)據(jù)庫的實(shí)例)
13、,用關(guān)系代數(shù)完成以下檢索:注意:此處暫以 * 表示連接運(yùn)算符。1) 檢索在倉庫WH2工作的職工的工資。職工號(hào),工資(倉庫號(hào)="WH2"(職工)2) 檢索在上海工作的職工的工資。職工號(hào),工資(城市="上海"(倉庫) * 職工)3) 檢索北京的供應(yīng)商的名稱。供應(yīng)商名(地址="北京"(供應(yīng)商)4) 檢索目前與職工E6有業(yè)務(wù)聯(lián)系的供應(yīng)商的名稱。供應(yīng)商名(職工號(hào)="E6"(訂購單) * 供應(yīng)商)5) 檢索所有職工的工資都大于1220元的倉庫所在的城市。城市(倉庫) -城市(工資<=1220(職工) * 倉庫)6) 檢索
14、和北京的所有供應(yīng)商都有業(yè)務(wù)聯(lián)系的職工的工資。職工號(hào),工資(職工 * (訂購單÷供應(yīng)商號(hào)(地址="北京"(供應(yīng)商)7) 檢索至少和職工E1、E4、E7都有聯(lián)系的供應(yīng)商的名稱。供應(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ù)器和客戶工作站中,它既不像集中式系統(tǒng)那樣所有的應(yīng)用程序都在主機(jī)上執(zhí)行,也不像文件服務(wù)器網(wǎng)絡(luò)那樣所有的應(yīng)用程序都在客戶端執(zhí)行,
15、它可以使應(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)求和將結(jié)果反饋給用戶(包括管理請(qǐng)求隊(duì)列、管理緩存、響應(yīng)服務(wù)、管理結(jié)果和通知服務(wù)完成等)的工作。而客戶端計(jì)算
16、機(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ù)庫(如建立的用戶數(shù)據(jù)庫)的信息(包括數(shù)據(jù)庫的設(shè)置、對(duì)應(yīng)的操作系統(tǒng)文件名稱和位置等)、所有數(shù)據(jù)庫注冊(cè)用戶的信息以及系統(tǒng)配置設(shè)置等。(2) tempdb
17、數(shù)據(jù)庫。tempdb數(shù)據(jù)庫用于保存所有的臨時(shí)表和臨時(shí)存儲(chǔ)過程,它還可以滿足任何其它的臨時(shí)存儲(chǔ)要求。(3) model 數(shù)據(jù)庫。model數(shù)據(jù)庫是一個(gè)模板數(shù)據(jù)庫,當(dāng)使用CREATE DATABASE命令建立新的數(shù)據(jù)庫時(shí),新數(shù)據(jù)庫的第一部分總是通過復(fù)制model數(shù)據(jù)庫中的內(nèi)容創(chuàng)建,剩余部分由空頁填充。(4) msdb數(shù)據(jù)庫。msdb數(shù)據(jù)庫用于SQL Server代理程序調(diào)度報(bào)警和作業(yè)等系統(tǒng)操作。4. 試述SQL Server的CREATE DATABASE命令在創(chuàng)建數(shù)據(jù)庫時(shí)是如何申請(qǐng)物理存儲(chǔ)空間的?通過指定的物理文件名、文件的大小等向操作系統(tǒng)申請(qǐng)物理存儲(chǔ)空間。5. 試述SQL Server企業(yè)管理
18、器的功能。略。習(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的訂購單信息。SELECT * FROM 訂購單 WHERE 供應(yīng)商號(hào)=S6 AND 職工號(hào)=E64) 檢索出向供應(yīng)商S3發(fā)過訂購單的職工的職工號(hào)和
19、倉庫號(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)商號(hào)=供應(yīng)商.供應(yīng)商號(hào) )7) 檢索出和職工E1、E3都有聯(lián)系的北京的供應(yīng)商信息。SELEC
20、T * 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)商的名稱。SELECT 供應(yīng)商名 FROM 供應(yīng)商
21、 WHERE 供應(yīng)商號(hào) IN(SELECT 供應(yīng)商號(hào) FROM 訂購單 WHERE 職工號(hào) NOT IN(SELECT 職工號(hào) FROM 職工 WHERE 工資 < 1220)10) 檢索出向S4供應(yīng)商發(fā)出訂購單的倉庫所在的城市。SELECT 城市 FROM 倉庫 WHERE 倉庫號(hào) IN(SELECT 倉庫號(hào) FROM 職工 WHERE 職工號(hào) IN(SELECT 職工號(hào) FROM 訂購單 WHERE 供應(yīng)商號(hào)=S4)11) 檢索出在上海工作并且向S6供應(yīng)商發(fā)出了訂購單的職工號(hào)。SELECT 職工號(hào) FROM 職工 WHERE 倉庫號(hào) IN(SELECT 倉庫號(hào) FROM 倉庫 WHE
22、RE 城市=上海) AND 職工號(hào) IN(SELECT 職工號(hào) FROM 訂購單 WHERE 供應(yīng)商號(hào)=S6)12) 檢索出在廣州工作并且只向S6供應(yīng)商發(fā)出了訂購單的職工號(hào)。SELECT 職工號(hào) FROM 職工 WHERE 倉庫號(hào) IN(SELECT 倉庫號(hào) FROM 倉庫 WHERE 城市=廣州) AND 職工號(hào) IN(SELECT 職工號(hào) FROM 訂購單 WHERE 供應(yīng)商號(hào)=S6) AND 職工號(hào) NOT IN(SELECT 職工號(hào) FROM 訂購單 WHERE 供應(yīng)商號(hào)!=S6)13) 檢索出由工資多于1230元的職工向北京的供應(yīng)商發(fā)出的訂購單號(hào)。SELECT 訂購單號(hào) FROM 訂
23、購單 WHERE 職工號(hào) IN(SELECT 職工號(hào) FROM 職工 WHERE 工資>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ā)出訂購單的那些倉庫的平均面積。SELECT AVG(面積) FROM 倉庫 WHERE 倉
24、庫號(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 職工 WHERE 工資>1220 GROUP BY 倉庫號(hào)20) 檢索出和面積最小的倉庫有聯(lián)系的供應(yīng)商的個(gè)數(shù)。SELECT COUNT(*) FROM 供應(yīng)商 WHERE 供應(yīng)商號(hào) IN(SELECT 供應(yīng)商號(hào) FROM 訂購單 W
25、HERE 職工號(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ú)
26、立存在。利用視圖一方面可以限定對(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) 刪除由在上海倉庫工作的職
27、工發(fā)出的所有訂購單。DELETE FROM 訂購單 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è)方面的問題
28、:1) 嵌入識(shí)別問題。宿主語言的編譯程序不能識(shí)別SQL語句,所以首要的問題就是要解決如何區(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
29、. 試述游標(biāo)(Cursor)的作用,并解釋實(shí)現(xiàn)此功能的諸條語句的用途。宿主語言一般只能在單記錄方式下工作,即一次處理一個(gè)記錄。而SQL語句的查詢結(jié)果常常是一張表,它包含多個(gè)記錄,為此需要用游標(biāo)(CURSOR)作為橋梁做一些特殊處理,即利用游標(biāo)來臨時(shí)存放SQL語句的查詢結(jié)果,并利用游標(biāo)與宿主語言的主變量進(jìn)行數(shù)據(jù)交互。與游標(biāo)有關(guān)的命令共有四條:DECLARE CURSOR、OPEN、FETCH和CLOSE。其中DECLARE CURSOR用SQL SELECT語句說明一個(gè)游標(biāo);OPEN打開游標(biāo),即執(zhí)行說明游標(biāo)的SQL SELECT語句;FETCH從游表中讀一條記錄到主變量;CLOSE關(guān)閉游標(biāo)。8.
30、 試述為什么需要?jiǎng)討B(tài)SQL語句,分析游標(biāo)和動(dòng)態(tài)游標(biāo)的區(qū)別。有時(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.
31、 試為如下問題編寫、建立存儲(chǔ)過程,并定義合適的過程返回狀態(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 = 0 RETURN 0ELSERETURN -12) 給指定城市的所有倉庫增加x m2的面積。CREATE PROCEDURE upd_wh_area(city char(10),area numeric)ASUPDATE 倉庫 SET 面
32、積=面積 + area WHERE 城市=cityIF ERROR = 0 RETURN 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 = 0 RETURN 0ELSERETURN -11.列出向項(xiàng)目J1提供零件P1的供應(yīng)商號(hào);SELECT SNO FROM SPJ WHERE PNO=P1 AND JNO=J1;2.列出零件號(hào)碼,該零件是由供應(yīng)商提供給在同一城市的工
33、程項(xiàng)目;SELECT UNIQUE PNO FROM S,SPJ,J WHERE S.SNO=SPJ.SNO AND SPJ.JNO=J.JNO AND J.CITY=S.CITY;3.列出供應(yīng)商號(hào),該供應(yīng)商提供了最小號(hào)碼的紅色零件;SELECT SNO FROM SPJ WHERE PNO=(SELECT MIN(PNO) FROM P WHERE COLOR=RED);4.列出供應(yīng)商號(hào)碼,該供應(yīng)商至少提供一種由提供了紅色零件的供應(yīng)商提供的零件;SELECT UNIQUE SNO FROM SPJ WHERE PNO IN (SELECT PNO FROM SPJ WHERE SNO IN
34、(SELECT SNO FROM SPJ WHERE PNO IN (SELECT PNO FROM P WHERE COLOR=COLOR);5.列出在工程項(xiàng)目J1中由一個(gè)以上供應(yīng)商提供的零件號(hào)碼.SELECT PNO FROM SPJ WHERE JNO=J1 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 倉庫 W
35、HERE 城市=city) AND 職工號(hào) IN(SELECT 職工號(hào) FROM 訂購單 WHERE 供應(yīng)商號(hào)=sno)IF ERROR = 0 RETURN 0ELSERETURN 13. 試述觸發(fā)器的概念和作用。觸發(fā)器可以看作是一類特殊的存儲(chǔ)過程,它在滿足某個(gè)特定條件時(shí)自動(dòng)觸發(fā)執(zhí)行。觸發(fā)器是為表上的更新、插入、刪除操作定義的,也就是說當(dāng)表上發(fā)生更新、插入或刪除操作時(shí)觸發(fā)器將執(zhí)行。觸發(fā)器可以用于數(shù)據(jù)參照完整性和以下一些場(chǎng)合:s 觸發(fā)器可以通過級(jí)聯(lián)的方式對(duì)相關(guān)的表進(jìn)行修改。比如,對(duì)父表的修改,可以引起對(duì)子孫表的一系列修改,從而保證數(shù)據(jù)的一致性和完整性。s 觸發(fā)器可以禁止或撤消違反參照完整性的修
36、改。s 觸發(fā)器可以強(qiáng)制比用CHECK約束定義更加復(fù)雜的限制。4. 利用觸發(fā)器為圖5-1數(shù)據(jù)庫的訂購單關(guān)系建立參照完整性。建立插入觸發(fā)器CREATE TRIGGER ord_ins_triggerON 訂購單 FOR INSERTASIF (SELECT COUNT(*) FROM 職工 e,INSERTED i WHERE e.職工號(hào)=i.職工號(hào))=0 OR(SELECT COUNT(*) FROM 供應(yīng)商 s,INSERTED i WHERE s.供應(yīng)商號(hào)=i. 供應(yīng)商號(hào))=0)BEGINRAISERROR ('非法職工號(hào)或非法供應(yīng)商號(hào)', 1, 1)ROLLBACK TRA
37、NSACTIONEND建立更新觸發(fā)器略習(xí)題七1. 討論數(shù)據(jù)庫安全都與哪些安全問題有關(guān)?數(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
38、 Server的系統(tǒng)預(yù)定義角色為安全管理提供了哪些便利。SQL Server的系統(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)
39、管理。6. 試述GRANT語句中WITH GRANT OPTION子句的作用。WITH GRANT OPTION子句說明被授權(quán)用戶可以將指定的對(duì)象權(quán)限授予其他用戶。該子句僅對(duì)對(duì)象權(quán)限有效,對(duì)語句權(quán)限無效。7. 試述在REVOKE語句中GRANT OPTION FOR子句和CASCADE子句的作用。GRANT OPTION FOR說明只收回WITH GRANT OPTION權(quán)限;CASCADE說明級(jí)聯(lián)收回由于WITH GRANT OPTION授予的所有權(quán)限。GRANT OPTION FOR要與CASCADE一同使用,因?yàn)橐栈豔ITH GRANT OPTION權(quán)限,也應(yīng)該一同收回由于該子句產(chǎn)生的
40、所有授權(quán)。8. 試述禁止權(quán)限語句DENY的作用。禁止權(quán)限語句DENY的作用是禁止用戶從角色繼承指定的權(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ù)的
41、原子性和一致性不受其他事務(wù)的影響)和持久性(事務(wù)對(duì)數(shù)據(jù)庫所施加的所有更新都是永久的)。3. 并發(fā)控制都會(huì)產(chǎn)生哪些干擾問題?并討論之。并發(fā)事務(wù)可能會(huì)存在的干擾問題主要有:s 丟失更新問題s 未提交依賴問題s 不一致分析問題s 幻象讀問題討論略。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ù)施
42、加這種共享鎖。當(dāng)需要對(duì)一個(gè)記錄或一組記錄進(jìn)行更新時(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ù)處于長期等待狀態(tài)的現(xiàn)象稱為死鎖。為了避免死鎖,一般可以采取兩種方式:s 相同順序法:所有的事務(wù)約定都按相同的順序來封
43、鎖表;s 一次封鎖法:為了完成一個(gè)事務(wù),一次性封鎖所需要的全部表。8. 什么是事務(wù)的隔離性?如何劃分事務(wù)的隔離級(jí)別?事務(wù)的隔離性是指一個(gè)事務(wù)應(yīng)該與其他事務(wù)“隔離”,它在完成過程中不受其他事務(wù)的影響和干擾。“隔離”則意味著并發(fā)程度的降低。為了既能保證數(shù)據(jù)的一致性、又盡可能提高系統(tǒng)的并發(fā)執(zhí)行效率,為此將隔離級(jí)別劃分為如下4個(gè)級(jí)別:s 未提交讀(READ UNCOMMITTED):事務(wù)隔離的最低級(jí)別,僅可保證不讀取物理損壞的數(shù)據(jù),這是4個(gè)隔離級(jí)別中限制最小的級(jí)別。s 提交讀(READ COMMITTED):可以保證不讀取“臟”數(shù)據(jù)。s 可重復(fù)讀(REPEATABLE READ):可以保證讀一致性,避
44、免不一致分析問題。s 可串行化(SERIALIZABLE):事務(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
45、 Server中利用文件和文件組備份為數(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ù)語,并分別
46、給出兩個(gè)例子:函數(shù)依賴、部分函數(shù)依賴、完全函數(shù)依賴、傳遞函數(shù)依賴、主屬性。略2. 找出圖5-1所示數(shù)據(jù)庫各個(gè)關(guān)系中的函數(shù)依賴。倉庫關(guān)系上的函數(shù)依賴:倉庫號(hào)城市,倉庫號(hào)面積職工關(guān)系上的函數(shù)依賴:職工號(hào)倉庫號(hào),職工號(hào)工資訂購單關(guān)系上的函數(shù)依賴:訂購單號(hào)職工號(hào),訂購單號(hào)供應(yīng)商號(hào),訂購單號(hào)訂購日期供應(yīng)商關(guān)系上的函數(shù)依賴:供應(yīng)商號(hào)供應(yīng)商名,供應(yīng)商名供應(yīng)商號(hào),供應(yīng)商號(hào)地址,供應(yīng)商名地址3. 試證明如下結(jié)論(引理9.1):XA1A2An的充分必要條件是XAk成立(k=1,2, ,n)。證明:略4. 設(shè)有關(guān)系模式R(U,F),U=A,B,C,D,E,F(xiàn)=ABE,DEB,BC,CE,EA1) 計(jì)算所有函數(shù)依賴左
47、部關(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分別代表屬性職工、工程、時(shí)數(shù)和工資,則:1) 確定這個(gè)關(guān)系的關(guān)鍵字;AB2) 找出這個(gè)
48、關(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)系?2NF5) 計(jì)算該關(guān)系上函數(shù)依賴集的最小覆蓋;Fm=AB->C, A->
49、D6) 將該關(guān)系分解成盡可能高的范式,并指明是第幾范式?分解為R1(A,B,C)和R2(A,D)結(jié)果為4NF6. 一個(gè)關(guān)系有4個(gè)字段A、B、C、D,這里A和B構(gòu)成復(fù)合關(guān)鍵字,問滿足下列函數(shù)依賴的關(guān)系是第幾范式?1) A、B、C、D都函數(shù)依賴于AB。BCNF或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ù)依賴ABD, ACE, BCD,DA,EB,現(xiàn)將R分解成關(guān)系模式S(A, B, C)
50、和其他一些關(guān)系模式,請(qǐng)給出在關(guān)系模式S上成立的函數(shù)依賴。ACB,BCA習(xí)題十1. 試敘述概念數(shù)據(jù)庫設(shè)計(jì)和邏輯數(shù)據(jù)庫設(shè)計(jì)的區(qū)別,并說明各自的主要工作內(nèi)容。概念數(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ù)模型。一般在概念設(shè)計(jì)階段主要工作內(nèi)容有:s 確定實(shí)體;s 確定實(shí)體的屬性;s 確定實(shí)體的標(biāo)識(shí)屬性(關(guān)鍵字);s 確定實(shí)
51、體間的聯(lián)系和聯(lián)系類型;s 確定實(shí)現(xiàn)實(shí)體間聯(lián)系的屬性(外部關(guān)鍵字或連接屬性);s 畫出表示概念模型的E-R圖;除此之外,為了以后對(duì)模式進(jìn)行規(guī)范化,還需要:s 確定屬性間的依賴關(guān)系。而在邏輯設(shè)計(jì)階段一般主要工作內(nèi)容有:s 確定各個(gè)關(guān)系模式的主關(guān)鍵字,考慮實(shí)體完整性;s 確定各個(gè)關(guān)系模式的外部關(guān)鍵字,考慮參照完整性;s 確定各個(gè)關(guān)系模式中屬性的約束、規(guī)則和默認(rèn)值,考慮域完整性;s 根據(jù)用戶需求設(shè)計(jì)視圖;s 考慮安全方案和用戶使用權(quán)限等。2. 物理數(shù)據(jù)庫設(shè)計(jì)主要包括哪些內(nèi)容?物理數(shù)據(jù)庫設(shè)計(jì)的內(nèi)容是設(shè)計(jì)數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)和物理實(shí)現(xiàn)方法。一般包括如下內(nèi)容:s 估算數(shù)據(jù)庫的數(shù)據(jù)存儲(chǔ)量;s 設(shè)計(jì)數(shù)據(jù)庫設(shè)備;s
52、安排數(shù)據(jù)庫的存儲(chǔ);s 設(shè)計(jì)索引;s 設(shè)計(jì)備份策略等。3. 到Sybase公司的網(wǎng)站()下載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ù)類型的支持,從而推動(dòng)了面向?qū)ο髷?shù)據(jù)庫的發(fā)展。由于關(guān)系數(shù)據(jù)庫不直接支持復(fù)雜數(shù)據(jù)類型,致使一些必須使用復(fù)雜數(shù)據(jù)類
53、型的應(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稱作子類。子類不僅可以繼承基類的所有性質(zhì),還可以在子類中定義新的性質(zhì)。繼承性使得基類中的代碼可以共享和重用,所以繼承性有助于軟件可重用
54、性的實(shí)現(xiàn)。多態(tài)性是指同一個(gè)函數(shù)可以有多種作用,即: 同一個(gè)函數(shù)根據(jù)不同的引用對(duì)象可以完成不同的功能; 同一個(gè)函數(shù)即便引用同一個(gè)對(duì)象,但由于傳遞的參數(shù)不同也可以完成不同的功能。多態(tài)性可以為整個(gè)應(yīng)用和所有對(duì)象內(nèi)部提供一個(gè)一致的接口,沒有必要為相同的動(dòng)作命名和編寫不同的函數(shù),它完全可以根據(jù)引用的對(duì)象不同、傳遞的消息不同來完成不同的功能。這樣做也與現(xiàn)實(shí)世界中管理和運(yùn)作方法相吻合。3. 面向?qū)ο髷?shù)據(jù)庫的研究方法主要有哪些?面向?qū)ο髷?shù)據(jù)庫的研究方法目前主要有以下三種:s 擴(kuò)充關(guān)系數(shù)據(jù)模型。將成熟的關(guān)系數(shù)據(jù)庫與面向?qū)ο髷?shù)據(jù)庫方法結(jié)合起來,可減少研制工作量、縮短研制周期。這種方法的弱點(diǎn)是不能全面支持面向?qū)ο蟮?/p>
55、特征。s 在面向?qū)ο笳Z言中嵌入數(shù)據(jù)庫功能而形成面向?qū)ο髷?shù)據(jù)庫。該方法的關(guān)鍵是如何在面向?qū)ο笳Z言中增加持久性對(duì)象的存儲(chǔ)管理。使用此方法受到面向?qū)ο笳Z言的一些限制。s 開發(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)該具備如下的基本內(nèi)容和特征:s 在數(shù)據(jù)模型方面支持對(duì)象、復(fù)合對(duì)象、封裝、類、繼承、重載、滯后聯(lián)編、多態(tài)性等基本概念。其中復(fù)合對(duì)象的概念包括支持生成復(fù)合對(duì)象的構(gòu)造器(元組、集合、包、列表、數(shù)組等)。s
56、數(shù)據(jù)庫管理系統(tǒng)除了具有傳統(tǒng)的數(shù)據(jù)庫管理系統(tǒng)所具有的功能(如并發(fā)控制、故障和恢復(fù))外,還支持永久對(duì)象、長事務(wù)處理和嵌套事務(wù),具有版本管理和模式演化的能力,能維護(hù)數(shù)據(jù)完整性,適合在分布式環(huán)境下工作。s 數(shù)據(jù)庫訪問界面要支持消息傳遞,提供計(jì)算能力完備的數(shù)據(jù)庫程序設(shè)計(jì)語言,能解決數(shù)據(jù)庫語言與宿主語言的某些不匹配問題,提供類似SQL的非過程化查詢功能。5. SQL99支持ORDBMS、還是OODBMS?SQL99支持的是ORDBMS。6. 比較RDBMS、ORDBMS和OODBMS,然后分別描述一個(gè)適合使用RDBMS、ORDBMS和OODBMS的應(yīng)用,并說明原因。略習(xí)題十二1. 解釋ODBC的概念。ODBC(O
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 雙人合作開店合同范本
- 關(guān)于凈化車間合同范本
- 北京住建委 合同范本
- 醫(yī)院聘用護(hù)士合同范本
- 代發(fā)協(xié)作合同范本
- 制冷設(shè)備批發(fā)采購合同范本
- 委托代理水果合同范本
- 錯(cuò)時(shí)停車位租賃合同
- 勞務(wù)公司送人合同范本
- 廚具倉庫租賃合同范本
- 撤場(chǎng)通知書( 模板)
- 天津市基本醫(yī)療保險(xiǎn)意外傷害首診報(bào)告卡
- richcui美國sspc富鋅底漆解讀
- IATF169492016內(nèi)部審核報(bào)告范例
- 人教版高中地理必修一全冊(cè)測(cè)試題(16份含答案)
- 成果導(dǎo)向(OBE)教育理念課件
- 交通運(yùn)輸概論全套PPT完整教學(xué)課件
- 西北工業(yè)大學(xué)英文簡(jiǎn)介
- 《動(dòng)畫場(chǎng)景設(shè)計(jì)》第一章 動(dòng)畫場(chǎng)景設(shè)計(jì)概述
- 2023年湖北宜昌伍家新城投資控股集團(tuán)有限公司招聘筆試題庫含答案解析
- 內(nèi)燃平衡重式叉車
評(píng)論
0/150
提交評(píng)論