數(shù)據(jù)庫知識點(diǎn)_第1頁
數(shù)據(jù)庫知識點(diǎn)_第2頁
數(shù)據(jù)庫知識點(diǎn)_第3頁
數(shù)據(jù)庫知識點(diǎn)_第4頁
數(shù)據(jù)庫知識點(diǎn)_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫系統(tǒng)概論》課程習(xí)題及參考答案緒論(教材37頁)1.試述數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)的概念。答:數(shù)據(jù):描述事物的符號記錄稱為數(shù)據(jù)。數(shù)據(jù)的種類有文字、圖形、圖像、聲音、正文等等。數(shù)據(jù)與其語義是不可分的。數(shù)據(jù)庫:數(shù)據(jù)庫是長期儲存在計(jì)算機(jī)內(nèi)、有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲存,具有較小的冗余度、較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并可為各種用戶共享。數(shù)據(jù)庫系統(tǒng):數(shù)據(jù)庫系統(tǒng)(DBS)是指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)構(gòu)成。數(shù)據(jù)庫系統(tǒng)由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員構(gòu)成。數(shù)據(jù)庫管理系統(tǒng):數(shù)據(jù)庫管理系統(tǒng)(DBMS)是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。用于科學(xué)地組織和存儲數(shù)據(jù)、高效地獲取和維護(hù)數(shù)據(jù)。DBMS主要功能包括數(shù)據(jù)定義功能、數(shù)據(jù)操縱功能、數(shù)據(jù)庫的運(yùn)行管理功能、數(shù)據(jù)庫的建立和維護(hù)功能。使用數(shù)據(jù)庫系統(tǒng)有什么好處?答:使用數(shù)據(jù)庫系統(tǒng)的好處是由數(shù)據(jù)庫管理系統(tǒng)的特點(diǎn)或優(yōu)點(diǎn)決定的。使用數(shù)據(jù)庫系統(tǒng)的好處很多,例如可以大大提高應(yīng)用開發(fā)的效率,方便用戶的使用,減輕數(shù)據(jù)庫系統(tǒng)管理人員維護(hù)的負(fù)擔(dān)等。為什么有這些好處,可以結(jié)合第5題來回答。使用數(shù)據(jù)庫系統(tǒng)可以大大提高應(yīng)用開發(fā)的效率。因?yàn)樵跀?shù)據(jù)庫系統(tǒng)中應(yīng)用程序不必考慮數(shù)據(jù)的定義、存儲和數(shù)據(jù)存取的具體路徑,這些工作都由DBMS來完成。此外,當(dāng)應(yīng)用邏輯改變,數(shù)據(jù)的邏輯結(jié)構(gòu)需要改變時(shí),由于數(shù)據(jù)庫系統(tǒng)提供了數(shù)據(jù)與程序之間的獨(dú)立性。數(shù)據(jù)邏輯結(jié)構(gòu)的改變是DBA的責(zé)任,開發(fā)人員不必修改應(yīng)用程序,或者只需要修改很少的應(yīng)用程序。從而既簡化了應(yīng)用程序的編制,又大大減少了應(yīng)用程序的維護(hù)和修改。使用數(shù)據(jù)庫系統(tǒng)可以減輕數(shù)據(jù)庫系統(tǒng)管理人員維護(hù)系統(tǒng)的負(fù)擔(dān)。因?yàn)镈BMS在數(shù)據(jù)庫建立、運(yùn)用和維護(hù)時(shí)對數(shù)據(jù)庫進(jìn)行統(tǒng)一的管理和控制,包括數(shù)據(jù)的完整性、安全性,多用戶并發(fā)控制,故障恢復(fù)等等都由DBMS執(zhí)行。總之,使用數(shù)據(jù)庫系統(tǒng)的優(yōu)點(diǎn)是很多的,既便于數(shù)據(jù)的集中管理,控制數(shù)據(jù)冗余,可以提高數(shù)據(jù)的利用率和一致性,又有利于應(yīng)用程序的開發(fā)和維護(hù)。6.數(shù)據(jù)庫管理系統(tǒng)的主要功能有哪些?答:數(shù)據(jù)庫管理系統(tǒng)的主要功能:①數(shù)據(jù)庫定義功能;②數(shù)據(jù)存取功能;③數(shù)據(jù)庫運(yùn)行管理;④數(shù)據(jù)庫的建立和維護(hù)功能。3.試述文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的區(qū)別和聯(lián)系。答:文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的區(qū)別:文件系統(tǒng)面向某一應(yīng)用程序,共享性差、冗余度大,獨(dú)立性差,紀(jì)錄內(nèi)有結(jié)構(gòu)、整體無結(jié)構(gòu),應(yīng)用程序自己控制。數(shù)據(jù)庫系統(tǒng)面向現(xiàn)實(shí)世界,共享性高、冗余度小,具有高度的物理獨(dú)立性和一定的邏輯獨(dú)立性,整體結(jié)構(gòu)化,用數(shù)據(jù)模型描述,由數(shù)據(jù)庫管理系統(tǒng)提供數(shù)據(jù)安全性、完整性、并發(fā)控制和恢復(fù)能力。文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的聯(lián)系是:文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)都是計(jì)算機(jī)系統(tǒng)中管理數(shù)據(jù)的軟件。5.試述數(shù)據(jù)庫系統(tǒng)的特點(diǎn)。答:數(shù)據(jù)庫系統(tǒng)的主要特點(diǎn):①數(shù)據(jù)結(jié)構(gòu)化數(shù)據(jù)庫系統(tǒng)實(shí)現(xiàn)整體數(shù)據(jù)的結(jié)構(gòu)化,這是數(shù)據(jù)庫的主要特征之一,也是數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的本質(zhì)區(qū)別。②數(shù)據(jù)的共享性高,冗余度低,易擴(kuò)充數(shù)據(jù)庫的數(shù)據(jù)不再面向某個(gè)應(yīng)用而是面向整個(gè)系統(tǒng),因此可以被多個(gè)用戶、多個(gè)應(yīng)用、用多種不同的語言共享使用。由于數(shù)據(jù)面向整個(gè)系統(tǒng),是有結(jié)構(gòu)的數(shù)據(jù),不僅可以被多個(gè)應(yīng)用共享使用,而且容易增加新的應(yīng)用,這就使得數(shù)據(jù)庫系統(tǒng)彈性大,易于擴(kuò)充。③數(shù)據(jù)獨(dú)立性高數(shù)據(jù)獨(dú)立性包括數(shù)據(jù)的物理獨(dú)立性和數(shù)據(jù)的邏輯獨(dú)立性。數(shù)據(jù)庫管理系統(tǒng)的模式結(jié)構(gòu)和二級映象功能保證了數(shù)據(jù)庫中的數(shù)據(jù)具有很高的物理獨(dú)立性和邏輯獨(dú)立性。④數(shù)據(jù)由DBMS統(tǒng)一管理和控制數(shù)據(jù)庫的共享是并發(fā)的共享,即多個(gè)用戶可以同時(shí)存取數(shù)據(jù)庫中的數(shù)據(jù)甚至可以同時(shí)存取數(shù)據(jù)庫中同一個(gè)數(shù)據(jù)。為此,DBMS必須提供統(tǒng)一的數(shù)據(jù)控制功能,包括數(shù)據(jù)的安全性保護(hù),數(shù)據(jù)的完整性檢查,并發(fā)控制和數(shù)據(jù)庫恢復(fù)。7.試述數(shù)據(jù)模型的概念、數(shù)據(jù)模型的作用和數(shù)據(jù)模型的三個(gè)要素。答:數(shù)據(jù)模型是數(shù)據(jù)庫中用來對現(xiàn)實(shí)世界進(jìn)行抽象的工具,是數(shù)據(jù)庫中用于提供信息表示和操作手段的形式構(gòu)架。一般地講,數(shù)據(jù)模型是嚴(yán)格定義的概念的集合。這些概念精確地描述系統(tǒng)的靜態(tài)特性、動態(tài)特性和完整性約束條件。因此數(shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束三部分組成。①數(shù)據(jù)結(jié)構(gòu)是所研究的對象類型的集合,是對系統(tǒng)的靜態(tài)特性的描述。②數(shù)據(jù)操作是指對數(shù)據(jù)庫中各種對象(型)的實(shí)例(值)允許進(jìn)行的操作的集合,包括操作及有關(guān)的操作規(guī)則,是對系統(tǒng)動態(tài)特性的描述。③數(shù)據(jù)的約束條件是完整性規(guī)則的集合,完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和依存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效、相容。8.試述概念模型的作用。答:概念模型實(shí)際上是現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層次。概念模型用于信息世界的建模,是現(xiàn)實(shí)世界到信息世界的第一層抽象,是數(shù)據(jù)庫設(shè)計(jì)人員進(jìn)行數(shù)據(jù)庫設(shè)計(jì)的有力工具,也是數(shù)據(jù)庫設(shè)計(jì)人員和用戶之間進(jìn)行交流的語言。定義并解釋概念模型中以下術(shù)語:實(shí)體,實(shí)體型,實(shí)體集,屬性,碼,實(shí)體聯(lián)系圖(E-R圖)答:實(shí)體客觀存在并可以相互區(qū)分的事物叫實(shí)體。實(shí)體型具有相同屬性的實(shí)體具有相同的特征和性質(zhì),用實(shí)體名及其屬性名集合來抽象和刻畫同類實(shí)體稱為實(shí)體型。實(shí)體集同型實(shí)體的集合稱為實(shí)體集。屬性實(shí)體所具有的某一特性,一個(gè)實(shí)體可由若干個(gè)屬性來刻畫。碼唯一標(biāo)識實(shí)體的屬性集稱為碼。實(shí)體聯(lián)系圖E-R圖提供了表示實(shí)體型、屬性和聯(lián)系的方法:?實(shí)體型:用矩形表示,矩形框內(nèi)寫明實(shí)體名。?屬性:用橢圓形表示,并用無向邊將其與相應(yīng)的實(shí)體連接起來。?聯(lián)系:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實(shí)體連接起來,同時(shí)在無向邊旁標(biāo)上聯(lián)系的類型(1:1,1:n或m:n)。第二章關(guān)系數(shù)據(jù)庫(教材74頁)1.試述關(guān)系模型的三個(gè)組成部分。答:關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系完整性約束三部分組成。2.試述關(guān)系數(shù)據(jù)語言的特點(diǎn)和分類。答:關(guān)系數(shù)據(jù)語言可以分為三類:關(guān)系代數(shù)語言例如ISBL。關(guān)系演算語言(元組關(guān)系演算語言例如APLHA,QUEL和域關(guān)系演算語言例如QBE)。具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語言例如SQL。這些關(guān)系數(shù)據(jù)語言的共同特點(diǎn)是,具有完備的表達(dá)能力,是非過程化的集合操作語言,功能強(qiáng),能夠嵌入高級語言中使用。定義并理解下列術(shù)語,說明它們之間的聯(lián)系與區(qū)別:1\域,關(guān)系,元組,屬性答:域是一組具有相同數(shù)據(jù)類型的值的集合。關(guān)系在域D1,D2,…,Dn上笛卡爾積D1×D2×…×Dn的子集稱為關(guān)系,表示為R(D1,D2,…,Dn)。元組關(guān)系中的每個(gè)元素是關(guān)系中的元組。屬性關(guān)系也是一個(gè)二維表,表的每行對應(yīng)一個(gè)元組,表的每列對應(yīng)一個(gè)域。由于域可以相同,為了加以區(qū)分,必須對每列起一個(gè)名字,稱為屬性(Attribute)。(2)主碼,候選碼,外部碼答:候選碼若關(guān)系中的某一屬性組的值能唯一地標(biāo)識一個(gè)元組,則稱該屬性組為候選碼(Candidatekey)。主碼若一個(gè)關(guān)系有多個(gè)候選碼,則選定其中一個(gè)為主碼(Primarykey)。外部碼設(shè)F是基本關(guān)系R的一個(gè)或一組屬性,但不是關(guān)系R的碼,如果F與基本關(guān)系S的主碼Ks相對應(yīng),則稱F是基本關(guān)系R的外部碼(Foreignkey),簡稱外碼?;娟P(guān)系R稱為參照關(guān)系(Referencingrelation),基本關(guān)系S稱為被參照關(guān)系(Referencedrelation)或目標(biāo)關(guān)系(Targetrelation)。關(guān)系R和S可以是相同的關(guān)系。(3)關(guān)系模式,關(guān)系,關(guān)系數(shù)據(jù)庫答:關(guān)系模式關(guān)系的描述稱為關(guān)系模式(RelationSchema)。它可以形式化地表示為R(U,D,dom,F(xiàn))。其中R為關(guān)系名,U為組成該關(guān)系的屬性名集合,D為屬性組U中屬性所來自的域,dom為屬性向域的映象集合,F(xiàn)為屬性間數(shù)據(jù)的依賴關(guān)系集合。關(guān)系在域D1,D2,…,Dn上笛卡爾積D1×D2×…×Dn的子集稱為關(guān)系,表示為R(D1,D2,…,Dn)。關(guān)系是關(guān)系模式在某一時(shí)刻的狀態(tài)或內(nèi)容。關(guān)系模式是靜態(tài)的、穩(wěn)定的,而關(guān)系是動態(tài)的、隨時(shí)間不斷變化的,因?yàn)殛P(guān)系操作在不斷地更新著數(shù)據(jù)庫中的數(shù)據(jù)。關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫也有型和值之分。關(guān)系數(shù)據(jù)庫的型也稱為關(guān)系數(shù)據(jù)庫模式,是對關(guān)系數(shù)據(jù)庫的描述,它包括若干域的定義以及在這些域上定義的若干關(guān)系模式。關(guān)系數(shù)據(jù)庫的值是這些關(guān)系模式在某一時(shí)刻對應(yīng)的關(guān)系的集合,通常就稱為關(guān)系數(shù)據(jù)庫。4.試述關(guān)系模型的完整性規(guī)則。在參照完整性中,為什么外部碼屬性的值也可以為空?什么情況下才可以為空?答:關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件。關(guān)系模型中可以有三類完整性約束:實(shí)體完整性、參照完整性和用戶定義的完整性。參見教材在參照完整性中,外部碼屬性的值可以為空,它表示該屬性的值尚未確定。但前提條件是該外部碼屬性不是其所在關(guān)系的主屬性。例如,在下面的“學(xué)生”表中,“專業(yè)號”是一個(gè)外部碼,不是學(xué)生表的主屬性,可以為空。其語義是,該學(xué)生的專業(yè)尚未確定。學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡)專業(yè)(專業(yè)號,專業(yè)名)而在下面的“選修”表中的“課程號”雖然也是一個(gè)外部碼屬性,但它又是“選修”表的主屬性,所以不能為空。因?yàn)殛P(guān)系模型必須滿足實(shí)體完整性。課程(課程號,課程名,學(xué)分)選修(學(xué)號,課程號,成績)6.等值連接與自然連接的區(qū)別是什么?答:自然連接(Naturaljoin)是一種特殊的等值連接,它要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且要在結(jié)果中把重復(fù)的屬性去掉。第三章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL(教材127頁)1.試述SQL語言的特點(diǎn)。答:①綜合統(tǒng)一,SQL語言集數(shù)據(jù)定義語言DDL、數(shù)據(jù)操縱語言DML、數(shù)據(jù)控制語言DCL的功能于一體。②高度非過程化,用SQL語言進(jìn)行數(shù)據(jù)操作,只要提出“做什么”,而無須指明“怎么做”,因此無需了解存取路徑,存取路徑的選擇以及SQL語句的操作過程由系統(tǒng)自動完成。③面向集合的操作方式,SQL語言采用集合操作方式,不僅操作對象、查找結(jié)果可以是元組的集合,而且一次插入、刪除、更新操作的對象也可以是元組的集合。④以同一種語法結(jié)構(gòu)提供兩種使用方式,SQL語言既是自含式語言,又是嵌入式語言。作為自含式語言,它能夠獨(dú)立地用于聯(lián)機(jī)交互的使用方式,也能夠嵌入到高級語言程序中,供程序員設(shè)計(jì)程序時(shí)使用。⑤語言簡捷,易學(xué)易用。2.試述SQL的定義功能。答:SQL的數(shù)據(jù)定義功能包括定義表、定義視圖和定義索引。SQL語言使用CREATETABLE語句定義建立基本表;ALTERTABLE語句修改基本表定義,DROPTABLE語句刪除基本表;建立索引使用CREATEINDEX語句建立索引,DROPINDEX語句刪除索引表;SQL語言使用CREATEVIEW命令建立視圖,DROPVIEW語句刪除視圖。6.什么是基本表?什么是視圖?兩者的區(qū)別和聯(lián)系是什么?答:基本表是本身獨(dú)立存在的表,在SQL中一個(gè)關(guān)系就對應(yīng)一個(gè)表。視圖是從一個(gè)或幾個(gè)基本表導(dǎo)出的表。視圖本身不獨(dú)立存儲在數(shù)據(jù)庫中,是一個(gè)虛表。即數(shù)據(jù)庫中只存放視圖的定義而不存放視圖對應(yīng)的數(shù)據(jù),這些數(shù)據(jù)仍存放在導(dǎo)出視圖的基本表中。視圖在概念上與基本表等同,用戶可以如同基本表那樣使用視圖,可以在視圖上再定義視圖。7.試述視圖的優(yōu)點(diǎn)。答:(1)視圖能夠簡化用戶的操作。(2)視圖使用戶能以多種角度看待同一數(shù)據(jù)。(3)視圖對重構(gòu)數(shù)據(jù)庫提供了一定程度的邏輯獨(dú)立性。(4)視圖能夠?qū)C(jī)密數(shù)據(jù)提供安全保護(hù)。8.所有的視圖是否都可以更新?為什么?答:不是。視圖是不實(shí)際存儲數(shù)據(jù)的虛表,因此對視圖的更新,最終要轉(zhuǎn)換為對基本表的更新。因?yàn)橛行┮晥D的更新不能唯一地有意義地轉(zhuǎn)換成對相應(yīng)基本表的更新,所以,并不是所有的視圖都是可更新的。9.哪類視圖是可以更新的,哪類視圖是不可更新的?各舉一例說明。答:基本表的行列子集視圖一般是可更新的。如教材3.5.3中的例1。若視圖的屬性來自集函數(shù)、表達(dá)式,則該視圖肯定是不可以更新的。如教材3.5.3中的S_G視圖。第四章數(shù)據(jù)庫安全性(148頁)1.什么是數(shù)據(jù)庫的安全性?答:數(shù)據(jù)庫的安全性是指保護(hù)數(shù)據(jù)庫以防止不合法的使用所造成的數(shù)據(jù)泄漏、更改或破壞。2.數(shù)據(jù)庫安全性和計(jì)算機(jī)系統(tǒng)的安全性有什么關(guān)系?答:安全性問題不是數(shù)據(jù)庫系統(tǒng)所獨(dú)有的,所有計(jì)算機(jī)系統(tǒng)都有這個(gè)問題。只是在數(shù)據(jù)庫系統(tǒng)中大量數(shù)據(jù)集中存放,而且為許多最終用戶直接共享,從而使安全性問題更為突出。系統(tǒng)安全保護(hù)措施是否有效是數(shù)據(jù)庫系統(tǒng)主要技術(shù)指標(biāo)之一。數(shù)據(jù)庫的安全性和計(jì)算機(jī)系統(tǒng)的安全性,包括計(jì)算機(jī)硬件、操作系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)等的安全性,是緊密聯(lián)系、相互支持的,因此在討論數(shù)據(jù)庫的安全性之前首先討論計(jì)算機(jī)系統(tǒng)安全性的一般問題。10.為什么強(qiáng)制存取控制提供了更高級別的數(shù)據(jù)庫安全性?答:強(qiáng)制存取控制(MAC)是對數(shù)據(jù)本身進(jìn)行密級標(biāo)記,無論數(shù)據(jù)如何復(fù)制,標(biāo)記與數(shù)據(jù)是一個(gè)不可分的整體,只有符合密級標(biāo)記要求的用戶才可以操縱數(shù)據(jù)庫,從而提供了更高級別的安全性。4.試述CC評估保證級劃分的基本內(nèi)容。答:CC的文本由三部分組成,三個(gè)部分相互依存,缺一不可。第一部分是“簡介和一般模型”,介紹CC中的有關(guān)術(shù)語、基本概念和一般模型以及與評估有關(guān)的一些框架,CC的附錄部分主要介紹“保護(hù)輪廓”和“安全目標(biāo)”的基本內(nèi)容。第二部分是安全功能要求,列出了一系列功能組件、子類和類。具體來說有11類,分別是安全審計(jì)、通信、密碼支持、用戶數(shù)據(jù)保護(hù)、標(biāo)識和鑒別、安全管理、隱私、TSF保護(hù)、資源利用、TOE訪問、可信路徑和信道。這11大類分為66個(gè)子類,由135個(gè)組件構(gòu)成。第三部分是安全保證要求,列出了一系列保證組件、子類和類,包括7個(gè)類,分別是配置管理、交付和運(yùn)行、開發(fā)、指導(dǎo)性文檔、生命周期支持、測試、脆弱性評定。這7個(gè)大類分為26個(gè)子類,由74個(gè)組件構(gòu)成。另外,第三部分中根據(jù)系統(tǒng)對安全保證要求的支持情況提出了評估保證級,并定義了保護(hù)輪廓PP和安全目標(biāo)ST的評估準(zhǔn)則,用于對PP和ST的評估。5.試述實(shí)現(xiàn)數(shù)據(jù)庫安全性控制的常用方法和技術(shù)。答:實(shí)現(xiàn)數(shù)據(jù)庫安全性控制的常用方法和技術(shù)有:(1)用戶標(biāo)識和鑒別:該方法由系統(tǒng)提供一定的方式讓用戶標(biāo)識自己的名字或身份。每次用戶要求進(jìn)入系統(tǒng)時(shí),由系統(tǒng)進(jìn)行核對,通過鑒定后才提供系統(tǒng)的使用權(quán)。(2)存取控制:通過用戶權(quán)限定義和合法權(quán)檢查確保只有合法權(quán)限的用戶訪問數(shù)據(jù)庫,所有未被授權(quán)的人員無法存取數(shù)據(jù)。例如C2級中的自主存取控制(DAC),B1級中的強(qiáng)制存取控制(MAC)。(3)視圖機(jī)制:為不同的用戶定義視圖,通過視圖機(jī)制把要保密的數(shù)據(jù)對無權(quán)存取的用戶隱藏起來,從而自動地對數(shù)據(jù)提供一定程度的安全保護(hù)。(4)審計(jì):建立審計(jì)日志,把用戶對數(shù)據(jù)庫的所有操作自動記錄下來放入審計(jì)日志中,DBA可以利用審計(jì)跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時(shí)間和內(nèi)容等。(5)數(shù)據(jù)加密:對存儲和傳輸?shù)臄?shù)據(jù)進(jìn)行加密處理,從而使得不知道解密算法的人無法獲知數(shù)據(jù)的內(nèi)容。6.什么是數(shù)據(jù)庫中的自主存取控制方法和強(qiáng)制存取控制方法?答:在自主存取控制中,用戶對于不同的數(shù)據(jù)庫對象有不同的存取權(quán)限,不同的用戶對同一對象也有不同的權(quán)限,而且用戶還可將其擁有的存取權(quán)限傳授給其他用戶。因此自主存取控制非常靈活。在強(qiáng)制存取控制中每一個(gè),每一個(gè)數(shù)據(jù)庫對象被標(biāo)以一定的密級,每一個(gè)用戶也被授予某一個(gè)級別的許可證。對于任意一個(gè)對象,只有具有合法許可證的用戶才可以存取。強(qiáng)制存取控制因此也相對比較嚴(yán)格。11.理解并解釋MAC機(jī)制中主體、客體、敏感度標(biāo)記的含義。答:主體是系統(tǒng)中的活動實(shí)體,既包括DBMS所管理的實(shí)際用戶,也包括代表用戶的各進(jìn)程??腕w是系統(tǒng)中的被動實(shí)體,是受主體操縱的,包括文件、基本表、索引、視圖等。對于主體和客體,DBMS為它們每個(gè)實(shí)例指派一個(gè)敏感度標(biāo)記。敏感度標(biāo)記被分成若干級別,例如絕密、機(jī)密、可信、公開等。主體的敏感度標(biāo)記稱為許可證級別,客體的敏感度標(biāo)記稱為密級。13.什么是數(shù)據(jù)庫的審計(jì)功能,為什么要提供審計(jì)功能?答:審計(jì)功能是指DBMS的審計(jì)模塊在用戶對數(shù)據(jù)庫執(zhí)行操作的同時(shí)把所有操作自動記錄到系統(tǒng)的審計(jì)日志中。因?yàn)槿魏蜗到y(tǒng)的安全保護(hù)措施都不是完美無缺的,蓄意盜竊破壞數(shù)據(jù)的人總可能存在。利用數(shù)據(jù)庫的審計(jì)功能,DBA可以根據(jù)審計(jì)跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時(shí)間和內(nèi)容等。第五章數(shù)據(jù)庫完整性(教材164頁)1.什么是數(shù)據(jù)庫的完整性?答:數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性。2.數(shù)據(jù)庫的完整性概念與數(shù)據(jù)庫的安全性概念有什么區(qū)別和聯(lián)系?答:數(shù)據(jù)的完整性和安全性是兩個(gè)不同的概念,但是有一定的聯(lián)系。前者是為了防止數(shù)據(jù)庫中存在不符合語義的數(shù)據(jù),防止錯(cuò)誤信息的輸入和輸出,即所謂垃圾進(jìn)垃圾出(GarbageInGarbageOut)所造成的無效操作和錯(cuò)誤結(jié)果。后者是保護(hù)數(shù)據(jù)庫防止惡意的破壞和非法的存取。也就是說,安全性措施的防范對象是非法用戶和非法操作,完整性措施的防范對象是不合語義的數(shù)據(jù)。3.什么是數(shù)據(jù)庫的完整性約束條件?可分為哪幾類?答:完整性約束條件是指數(shù)據(jù)庫中的數(shù)據(jù)應(yīng)該滿足的語義約束條件。一般可以分為六類:靜態(tài)列級約束、靜態(tài)元組約束、靜態(tài)關(guān)系約束、動態(tài)列級約束、動態(tài)元組約束、動態(tài)關(guān)系約束。4.RDBMS的完整性控制機(jī)制應(yīng)具有哪些功能?答:RDBMS的完整性控制機(jī)制應(yīng)具有三個(gè)方面的功能:(1)定義功能,即提供定義完整性約束條件的機(jī)制。(2)檢查功能,即檢查用戶發(fā)出的操作請求是否違背了完整性約束條件。(3)違約反應(yīng):如果發(fā)現(xiàn)用戶的操作請求使數(shù)據(jù)違背了完整性約束條件,則采取一定的動作來保證數(shù)據(jù)的完整性。5.RDBMS在實(shí)現(xiàn)參照完整性時(shí)需要考慮哪些方面?答:RDBMS在實(shí)現(xiàn)參照完整性時(shí)需要考慮以下幾個(gè)方面:①外碼是否可以接受空值②刪除被參照關(guān)系的元組時(shí)的考慮,這時(shí)系統(tǒng)可能采取的作法有三種:(a)級聯(lián)刪除(CASCADES)(b)受限刪除(RESTRICTED)(c)置空值刪除(NULLIFIES)③在參照關(guān)系中插入元組時(shí)的問題,這時(shí)系統(tǒng)可能采取的作法有:(a)受限插入(b)遞歸插入④修改關(guān)系中主碼的問題一般是不能用UPDATE語句修改關(guān)系主碼的。如果需要修改主碼值,只能先刪除該元組,然后再把具有新主碼值的元組插入到關(guān)系中。如果允許修改主碼,首先要保證主碼的唯一性和非空,否則拒絕修改。然后要區(qū)分是參照關(guān)系還是被參照關(guān)系。7.關(guān)系系統(tǒng)中,當(dāng)操作違反實(shí)體完整性、參照完整性和用戶定義的完整性約束條件時(shí),一般是如何分別進(jìn)行處理的?答:對于違反實(shí)體完整性和用戶定義的完整性的操作一般都采用拒絕執(zhí)行的方式進(jìn)行處理。而對于違反參照完整性的操作,并不都是簡單地拒絕執(zhí)行,有時(shí)要根據(jù)應(yīng)用語義執(zhí)行一些附加的操作,以保證數(shù)據(jù)庫的正確性。具體的處理可以參見上面第5題或《概論》10.2中相應(yīng)部分。第六章關(guān)系數(shù)據(jù)理論(教材195頁)1.理解并給出下列術(shù)語的定義:函數(shù)依賴、部分函數(shù)依賴、完全函數(shù)依賴、候選碼、主碼、外碼、全碼。答:函數(shù)依賴設(shè)R(U)是一個(gè)關(guān)系模式,U是R的屬性集合,X和Y是U的子集。對于R(U)的任意一個(gè)可能的關(guān)系r,如果r中不存在兩個(gè)元組,它們在X上的屬性值相同,而在Y上的屬性值不同,則稱"X函數(shù)確定Y"或"Y函數(shù)依賴于X",記作X→Y。完全函數(shù)依賴、部分函數(shù)依賴在R(U)中,如果X→Y,并且對于X的任何一個(gè)真子集X,都有X→Y,則稱Y對X完全函數(shù)依賴;若X→Y,但Y不完全函數(shù)依賴于X,則稱Y對X部分函數(shù)依賴;候選碼、主碼設(shè)K為R(U,F(xiàn))中的屬性或?qū)傩越M合,若K→U則K為R的候選碼。若候選碼多于一個(gè),則選定其中的一個(gè)為主碼。外碼:關(guān)系模式R中屬性或?qū)傩越MX并非R的碼,但X是另一個(gè)關(guān)系模式的碼,則稱X是R的外部碼也稱外碼。全碼整個(gè)屬性組是碼,稱為全碼(All-key)。5.試舉出三個(gè)多值依賴的實(shí)例。答:(1)關(guān)系模式MSC(M,S,C)中,M表示專業(yè),S表示學(xué)生,C表示該專業(yè)的必修課。假設(shè)每個(gè)專業(yè)有多個(gè)學(xué)生,有一組必修課。設(shè)同專業(yè)內(nèi)所有學(xué)生的選修的必修課相同,實(shí)例關(guān)系如下。按照語義對于M的每一個(gè)值Mi,S有一個(gè)完整的集合與之對應(yīng)而不問C取何值,所以M→→S。由于C與S的完全對稱性,必然有M→→C成立。MSCM1S1C1M1S1C2M1S2C1M1S2C2………………(2)關(guān)系模式ISA(I,S,A)中,I表示學(xué)生興趣小組,S表示學(xué)生,A表示某興趣小組的活動項(xiàng)目。假設(shè)每個(gè)興趣小組有多個(gè)學(xué)生,有若干活動項(xiàng)目。每個(gè)學(xué)生必須參加所在興趣小組的所有活動項(xiàng)目,每個(gè)活動項(xiàng)目要求該興趣小組的所有學(xué)生參加。按照語義有I→→S,I→→A成立。(3)關(guān)系模式RDP(R,D,P)中,R表示醫(yī)院的病房,D表示責(zé)任醫(yī)務(wù)人員,P表示病人。假設(shè)每個(gè)病房住有多個(gè)病人,有多個(gè)責(zé)任醫(yī)務(wù)人員負(fù)責(zé)醫(yī)治和護(hù)理該病房的所有病人。按照語義有R→→D,R→→P成立。第七章數(shù)據(jù)庫設(shè)計(jì)(教材234頁)1.試述數(shù)據(jù)庫設(shè)計(jì)過程。答:數(shù)據(jù)庫設(shè)計(jì)過程為:(1)需求分析(2)概念結(jié)構(gòu)設(shè)計(jì)(3)邏輯結(jié)構(gòu)設(shè)計(jì)(4)數(shù)據(jù)庫物理設(shè)計(jì)(5)數(shù)據(jù)庫實(shí)施(6)數(shù)據(jù)庫運(yùn)行和維護(hù)這是一個(gè)完整的實(shí)際數(shù)據(jù)庫及其應(yīng)用系統(tǒng)的設(shè)計(jì)過程。不僅包括設(shè)計(jì)數(shù)據(jù)庫本身,還包括數(shù)據(jù)庫的實(shí)施、數(shù)據(jù)庫運(yùn)行和維護(hù)。設(shè)計(jì)一個(gè)完善的數(shù)據(jù)庫應(yīng)用系統(tǒng)往往是上述六個(gè)階段的不斷反復(fù)。2.試述數(shù)據(jù)庫設(shè)計(jì)過程的各個(gè)階段上的設(shè)計(jì)描述。答:各階段的設(shè)計(jì)要點(diǎn)如下:(1)需求分析:準(zhǔn)確了解與分析用戶需求(包括數(shù)據(jù)與處理)。(2)概念結(jié)構(gòu)設(shè)計(jì):通過對用戶需求進(jìn)行綜合、歸納與抽象,形成一個(gè)獨(dú)立于具體DBMS的概念模型。(3)邏輯結(jié)構(gòu)設(shè)計(jì):將概念結(jié)構(gòu)轉(zhuǎn)換為某個(gè)DBMS所支持的數(shù)據(jù)模型,并對其進(jìn)行優(yōu)化。(4)數(shù)據(jù)庫物理設(shè)計(jì):為邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)和存取方法)。(5)數(shù)據(jù)庫實(shí)施:設(shè)計(jì)人員運(yùn)用DBMS提供的數(shù)據(jù)語言、工具及宿主語言,根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果建立數(shù)據(jù)庫,編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫,并進(jìn)行試運(yùn)行。(6)數(shù)據(jù)庫運(yùn)行和維護(hù):在數(shù)據(jù)庫系統(tǒng)運(yùn)行過程中對其進(jìn)行評價(jià)、調(diào)整與修改。3.試述數(shù)據(jù)庫設(shè)計(jì)過程中結(jié)構(gòu)設(shè)計(jì)部分形成的數(shù)據(jù)庫模式。答:數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)的不同階段形成數(shù)據(jù)庫的各級模式,即:在概念設(shè)計(jì)階段形成獨(dú)立于機(jī)器特點(diǎn),獨(dú)立于各個(gè)DBMS產(chǎn)品的概念模式,在本篇中就是E-R圖;在邏輯設(shè)計(jì)階段將E-R圖轉(zhuǎn)換成具體的數(shù)據(jù)庫產(chǎn)品支持的數(shù)據(jù)模型,如關(guān)系模型,形成數(shù)據(jù)庫邏輯模式;然后在基本表的基礎(chǔ)上再建立必要的視圖(View),形成數(shù)據(jù)的外模式;在物理設(shè)計(jì)階段,根據(jù)DBMS特點(diǎn)和處理的需要,進(jìn)行物理存儲安排,建立索引,形成數(shù)據(jù)庫內(nèi)模式。概念模式是面向用戶和設(shè)計(jì)人員的,屬于概念模型的層次;邏輯模式、外模式、內(nèi)模式是DBMS支持的模式,屬于數(shù)據(jù)模型的層次??梢栽贒BMS中加以描述和存儲。4.試述數(shù)據(jù)庫設(shè)計(jì)的特點(diǎn)。答:數(shù)據(jù)庫設(shè)計(jì)既是一項(xiàng)涉及多學(xué)科的綜合性技術(shù)又是一項(xiàng)龐大的工程項(xiàng)目。其主要特點(diǎn)有:(1)數(shù)據(jù)庫建設(shè)是硬件、軟件和干件(技術(shù)與管理的界面)的結(jié)合。(2)從軟件設(shè)計(jì)的技術(shù)角度看,數(shù)據(jù)庫設(shè)計(jì)應(yīng)該和應(yīng)用系統(tǒng)設(shè)計(jì)相結(jié)合,也就是說,整個(gè)設(shè)計(jì)過程中要把結(jié)構(gòu)(數(shù)據(jù))設(shè)計(jì)和行為(處理)設(shè)計(jì)密切結(jié)合起來。5.需求分析階段的設(shè)計(jì)目標(biāo)是什么?調(diào)查的內(nèi)容是什么?答:需求分析階段的設(shè)計(jì)目標(biāo)是通過詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對象(組織、部門、企業(yè)等),充分了解原系統(tǒng)(手工系統(tǒng)或計(jì)算機(jī)系統(tǒng))工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能。調(diào)查的內(nèi)容是“數(shù)據(jù)”和“處理”,即獲得用戶對數(shù)據(jù)庫的如下要求:(1)信息要求。指用戶需要從數(shù)據(jù)庫中獲得信息的內(nèi)容與性質(zhì)。由信息要求可以導(dǎo)出數(shù)據(jù)要求,即在數(shù)據(jù)庫中需要存儲哪些數(shù)據(jù)。(2)處理要求。指用戶要完成什么處理功能,對處理的響應(yīng)時(shí)間有什么要求,處理方式是批處理還是聯(lián)機(jī)處理。(3)安全性與完整性要求。6.數(shù)據(jù)字典的內(nèi)容和作用是什么?答:數(shù)據(jù)字典是系統(tǒng)中各類數(shù)據(jù)描述的集合。數(shù)據(jù)字典的內(nèi)容通常包括:數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲、處理過程五個(gè)部分。其中數(shù)據(jù)項(xiàng)是數(shù)據(jù)的最小組成單位,若干個(gè)數(shù)據(jù)項(xiàng)可以組成一個(gè)數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)字典通過對數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)的定義來描述數(shù)據(jù)流、數(shù)據(jù)存儲的邏輯內(nèi)容。數(shù)據(jù)字典的作用:數(shù)據(jù)字典是關(guān)于數(shù)據(jù)庫中數(shù)據(jù)的描述,在需求分析階段建立,是下一步進(jìn)行概念設(shè)計(jì)的基礎(chǔ),并在數(shù)據(jù)庫設(shè)計(jì)過程中不斷修改、充實(shí)、完善。(注意,數(shù)據(jù)庫設(shè)計(jì)階段形成的數(shù)據(jù)字典與后面講到的數(shù)據(jù)字典不同,后者是DBMS關(guān)于數(shù)據(jù)庫中數(shù)據(jù)的描述,當(dāng)然兩者是有聯(lián)系的)。7.什么是數(shù)據(jù)庫的概念結(jié)構(gòu)?試述其特點(diǎn)和設(shè)計(jì)策略。答:概念結(jié)構(gòu)是信息世界的結(jié)構(gòu),即概念模型,其主要特點(diǎn)是:(1)能真實(shí)、充分地反映現(xiàn)實(shí)世界,包括事物和事物之間的聯(lián)系,能滿足用戶對數(shù)據(jù)的處理要求。是對現(xiàn)實(shí)世界的一個(gè)真實(shí)模型。(2)易于理解,從而可以用它和不熟悉計(jì)算機(jī)的用戶交換意見,用戶的積極參與是數(shù)據(jù)庫的設(shè)計(jì)成功的關(guān)鍵。(3)易于更改,當(dāng)應(yīng)用環(huán)境和應(yīng)用要求改變時(shí),容易對概念模型修改和擴(kuò)充。(4)易于向關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉(zhuǎn)換。概念結(jié)構(gòu)的設(shè)計(jì)策略通常有四種:(1)自頂向下。即首先定義全局概念結(jié)構(gòu)的框架,然后逐步細(xì)化;(2)自底向上。即首先定義各局部應(yīng)用的概念結(jié)構(gòu),然后將它們集成起來,得到全局概念結(jié)構(gòu);(3)逐步擴(kuò)張。首先定義最重要的核心概念結(jié)構(gòu),然后向外擴(kuò)充,以滾雪球的方式逐步生成其他概念結(jié)構(gòu),直至總體概念結(jié)構(gòu);(4)混合策略。即將自頂向下和自底向上相結(jié)合,用自頂向下策略設(shè)計(jì)一個(gè)全局概念結(jié)構(gòu)的框架,以它為骨架集成由自底向上策略中設(shè)計(jì)的各局部概念結(jié)構(gòu)。8.什么叫數(shù)據(jù)抽象?試舉例說明。答:數(shù)據(jù)抽象是對實(shí)際的人、物、事和概念進(jìn)行人為處理,抽取所關(guān)心的共同特性,忽略非本質(zhì)的細(xì)節(jié),并把這些特性用各種概念精確地加以描述,這些概念組成了某種模型。如分類這種抽象是:定義某一類概念作為現(xiàn)實(shí)世界中一組對象的類型。這些對象具有某些共同的特性和行為。它抽象了對象值和型之間的“ismemberof”的語義。在E-R模型中,實(shí)體型就是這種抽象。例如在學(xué)校環(huán)境中,李英是老師,表示李英是教師類型中的一員,則教師是實(shí)體型,李英是教師實(shí)體型中的一個(gè)實(shí)體值,具有教師共同的特性和行為:在某個(gè)系某個(gè)專業(yè)教學(xué),講授某些課程,從事某個(gè)方向的科研。9.試述數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)的重要性和設(shè)計(jì)步驟。答:重要性:數(shù)據(jù)庫概念設(shè)計(jì)是整個(gè)數(shù)據(jù)庫設(shè)計(jì)的關(guān)鍵,將在需求分析階段所得到的應(yīng)用需求首先抽象為概念結(jié)構(gòu),以此作為各種數(shù)據(jù)模型的共同基礎(chǔ),從而能更好地、更準(zhǔn)確地用某一DBMS實(shí)現(xiàn)這些需求。設(shè)計(jì)步驟:概念結(jié)構(gòu)的設(shè)計(jì)方法有多種,其中最經(jīng)常采用的策略是自底向上方法,該方法的設(shè)計(jì)步驟通常分為兩步:第1步是抽象數(shù)據(jù)并設(shè)計(jì)局部視圖,第2步是集成局部視圖,得到全局的概念結(jié)構(gòu)。11.什么是數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計(jì)?試述其設(shè)計(jì)步驟。答:數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計(jì)就是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本E-R圖轉(zhuǎn)換為與選用的DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。設(shè)計(jì)步驟為:(1)將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型;(2)將轉(zhuǎn)換來的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換;(3)對數(shù)據(jù)模型進(jìn)行優(yōu)化。10.為什么要視圖集成?視圖集成的方法是什么?答:在對數(shù)據(jù)庫系統(tǒng)進(jìn)行概念結(jié)構(gòu)設(shè)計(jì)時(shí)一般采用自底向上的設(shè)計(jì)方法,把繁雜的大系統(tǒng)分解子系統(tǒng)。首先設(shè)計(jì)各個(gè)子系統(tǒng)的局部視圖,然后通過視圖集成的方式將各子系統(tǒng)有機(jī)的融合起來,綜合成一個(gè)系統(tǒng)的總視圖。這樣設(shè)計(jì)清晰,由簡到繁。由于數(shù)據(jù)庫系統(tǒng)是從整體角度看待和描述數(shù)據(jù)的,因此數(shù)據(jù)不再面向某個(gè)應(yīng)用而是整個(gè)系統(tǒng)。因此必須進(jìn)行視圖集成,使得數(shù)據(jù)庫能被全系統(tǒng)的多個(gè)用戶、多個(gè)應(yīng)用共享使用。一般說來,視圖集成可以有兩種方式:(1)多個(gè)分E-R圖一次集成;(2)逐步集成,用累加的方式一次集成兩個(gè)分E-R圖。無論采用哪種方式,每次集成局部E-R圖時(shí)都需要分兩步走:(1)合并。解決各分E-R圖之間的沖突,將各分E-R圖合并起來生成初步E-R圖。(2)修改和重構(gòu)。消除不必要的冗余,生成基本E-R圖。第十章數(shù)據(jù)庫恢復(fù)技術(shù)(教材289頁)1.試述事務(wù)的概念及事務(wù)的四個(gè)特性。答:事務(wù)是用戶定義的一個(gè)數(shù)據(jù)庫操作序列,這些操作要么全做要么全不做,是一個(gè)不可分割的工作單位。事務(wù)具有四個(gè)特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持續(xù)性(Durability)。這個(gè)四個(gè)特性也簡稱為ACID特性。原子性事務(wù)是數(shù)據(jù)庫的邏輯工作單位,事務(wù)中包括的諸操作要么都做,要么都不做。一致性事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。隔離性一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾。即一個(gè)事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對其他并發(fā)事務(wù)是隔離的,并發(fā)執(zhí)行的各個(gè)事務(wù)之間不能互相干擾。持續(xù)性持續(xù)性也稱永久性(Permanence),指一個(gè)事務(wù)一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就應(yīng)該是永久性的。接下來的其他操作或故障不應(yīng)該對其執(zhí)行結(jié)果有任何影響。為什么事務(wù)非正常結(jié)束時(shí)會影響數(shù)據(jù)庫數(shù)據(jù)的正確性,舉例說明。答:事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。如果數(shù)據(jù)庫系統(tǒng)運(yùn)行中發(fā)生故障,有些事務(wù)尚未完成就被迫中斷,這些未完成事務(wù)對數(shù)據(jù)庫所做修改有一部分已寫入物理數(shù)據(jù)庫,這時(shí)數(shù)據(jù)庫就處于一種不正確的狀態(tài),或者說是不一致的狀態(tài)。例如某工廠的庫存管理系統(tǒng)中,要把數(shù)量為Q的某種零件從倉庫1移到倉庫2存放。則可以定義一個(gè)事務(wù)T,T包括兩個(gè)操作;Q1=Q1-Q,Q2=Q2+Q。如果T非正常終止時(shí)只做了第一個(gè)操作,則數(shù)據(jù)庫就處于不一致性狀態(tài),庫存量無緣無故少了Q。3.數(shù)據(jù)庫中為什么要有恢復(fù)子系統(tǒng)?它的功能是什么?答:因?yàn)橛?jì)算機(jī)系統(tǒng)中硬件的故障、軟件的錯(cuò)誤、操作員的失誤以及惡意的破壞是不可避免的,這些故障輕則造成運(yùn)行事務(wù)非正常中斷,影響數(shù)據(jù)庫中數(shù)據(jù)的正確性,重則破壞數(shù)據(jù)庫,使數(shù)據(jù)庫中全部或部分?jǐn)?shù)據(jù)丟失,因此必須要有恢復(fù)子系統(tǒng)?;謴?fù)子系統(tǒng)的功能是:把數(shù)據(jù)庫從錯(cuò)誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài)(亦稱為一致狀態(tài)或完整狀態(tài))。4.數(shù)據(jù)庫運(yùn)行中可能產(chǎn)生的故障有哪幾類?哪些故障影響事務(wù)的正常執(zhí)行?哪些故障破壞數(shù)據(jù)庫數(shù)據(jù)?答:數(shù)據(jù)庫系統(tǒng)中可能發(fā)生各種各樣的故障,大致可以分以下幾類:(1)事務(wù)內(nèi)部的故障;(2)系統(tǒng)故障;(3)介質(zhì)故障;(4)計(jì)算機(jī)病毒。事務(wù)故障、系統(tǒng)故障和介質(zhì)故障影響事務(wù)的正常執(zhí)行;介質(zhì)故障和計(jì)算機(jī)病毒破壞數(shù)據(jù)庫數(shù)據(jù)。5.據(jù)庫恢復(fù)的基本技術(shù)有哪些?答:數(shù)據(jù)轉(zhuǎn)儲和登錄日志文件是數(shù)據(jù)庫恢復(fù)的基本技術(shù)。當(dāng)系統(tǒng)運(yùn)行過程中發(fā)生故障,利用轉(zhuǎn)儲的數(shù)據(jù)庫后備副本和日志文件就可以將數(shù)據(jù)庫恢復(fù)到故障前的某個(gè)一致性狀態(tài)。6.數(shù)據(jù)庫轉(zhuǎn)儲的意義是什么?試比較各種數(shù)據(jù)轉(zhuǎn)儲方法。答:數(shù)據(jù)轉(zhuǎn)儲是數(shù)據(jù)庫恢復(fù)中采用的基本技術(shù)。所謂轉(zhuǎn)儲即DBA定期地將數(shù)據(jù)庫復(fù)制到磁帶或另一個(gè)磁盤上保存起來的過程。當(dāng)數(shù)據(jù)庫遭到破壞后可以將后備副本重新裝入,將數(shù)據(jù)庫恢復(fù)到轉(zhuǎn)儲時(shí)的狀態(tài)。靜態(tài)轉(zhuǎn)儲在系統(tǒng)中無運(yùn)行事務(wù)時(shí)進(jìn)行的轉(zhuǎn)儲操作。靜態(tài)轉(zhuǎn)儲簡單,但必須等待正運(yùn)行的用戶事務(wù)結(jié)束才能進(jìn)行。同樣,新的事務(wù)必須等待轉(zhuǎn)儲結(jié)束才能執(zhí)行。顯然,這會降低數(shù)據(jù)庫的可用性。動態(tài)轉(zhuǎn)儲指轉(zhuǎn)儲期間允許對數(shù)據(jù)庫進(jìn)行存取或修改。動態(tài)轉(zhuǎn)儲可克服靜態(tài)轉(zhuǎn)儲的缺點(diǎn),它不用等待正在運(yùn)行的用戶事務(wù)結(jié)束,也不會影響新事務(wù)的運(yùn)行。但是,轉(zhuǎn)儲結(jié)束時(shí)后援副本上的數(shù)據(jù)并不能保證正確有效。因?yàn)檗D(zhuǎn)儲期間運(yùn)行的事務(wù)可能修改了某些數(shù)據(jù),使得后援副本上的數(shù)據(jù)不是數(shù)據(jù)庫的一致版本。為此,必須把轉(zhuǎn)儲期間各事務(wù)對數(shù)據(jù)庫的修改活動登記下來,建立日志文件(logfile)。這樣,后援副本加上日志文件就能得到數(shù)據(jù)庫某一時(shí)刻的正確狀態(tài)。轉(zhuǎn)儲還可以分為海量轉(zhuǎn)儲和增量轉(zhuǎn)儲兩種方式:海量轉(zhuǎn)儲每次轉(zhuǎn)儲全部數(shù)據(jù)庫。增量轉(zhuǎn)儲每次只轉(zhuǎn)儲上一次轉(zhuǎn)儲后更新過的數(shù)據(jù)。從恢復(fù)角度看,使用海量轉(zhuǎn)儲得到的后備副本進(jìn)行恢復(fù)一般說來更簡單些。但如果數(shù)據(jù)庫很大,事務(wù)處理又十分頻繁,則增量轉(zhuǎn)儲方式更實(shí)用更有效。7.什么是日志文件?為什么要設(shè)立日志文件?答:(1)日志文件是用來記錄事務(wù)對數(shù)據(jù)庫的更新操作的文件。(2)設(shè)立日志文件的目的是:進(jìn)行事務(wù)故障恢復(fù);進(jìn)行系統(tǒng)故障恢復(fù);協(xié)助后備副本進(jìn)行介質(zhì)故障恢復(fù)。8.登記日志文件時(shí)為什么必須先寫日志文件,后寫數(shù)據(jù)庫?答:把對數(shù)據(jù)的修改寫到數(shù)據(jù)庫中和把表示這個(gè)修改的日志記錄寫到日志文件中是兩個(gè)不同的操作。有可能在這兩個(gè)操作之間發(fā)生故障,即這兩個(gè)寫操作只完成了一個(gè)。如果先寫了數(shù)據(jù)庫修改,而在運(yùn)行記錄中沒有登記這個(gè)修改,則以后就無法恢復(fù)這個(gè)修改了。如果先寫日志,但沒有修改數(shù)據(jù)庫,在恢復(fù)時(shí)只不過是多執(zhí)行一次UNDO操作,并不會影響數(shù)據(jù)庫的正確性。所以一定要先寫日志文件,即首先把日志記錄寫到日志文件中,然后寫數(shù)據(jù)庫的修改。9.針對不同的故障,試給出恢復(fù)的策略和方法。(即如何進(jìn)行事務(wù)故障的恢復(fù)?系統(tǒng)故障的恢復(fù)?介質(zhì)故障恢復(fù)?)答:事務(wù)故障的恢復(fù):事務(wù)故障的恢復(fù)是由DBMS自動完成的,對用戶是透明的。DBMS執(zhí)行恢復(fù)步驟是:(1)反向掃描文件日志(即從最后向前掃描日志文件),查找該事務(wù)的更新操作。(2)對該事務(wù)的更新操作執(zhí)行逆操作。即將日志記錄中“更新前的值”寫入數(shù)據(jù)庫。(3)繼續(xù)反向掃描日志文件,做同樣處理。(4)如此處理下去,直至讀到此事務(wù)的開始標(biāo)記,該事務(wù)故障的恢復(fù)就完成了。系統(tǒng)故障的恢復(fù):系統(tǒng)故障可能會造成數(shù)據(jù)庫處于不一致狀態(tài):①是未完成事務(wù)對數(shù)據(jù)庫的更新可能已寫入數(shù)據(jù)庫。②是已提交事務(wù)對數(shù)據(jù)庫的更新可能還留在緩沖區(qū),沒來得及寫入數(shù)據(jù)庫。因此恢復(fù)操作就是要撤銷(UNDO)故障發(fā)生時(shí)未完成的事務(wù),重做(REDO)已完成的事務(wù)。系統(tǒng)的恢復(fù)步驟是:(1)正向掃描日志文件,找出在故障發(fā)生前已經(jīng)提交的事務(wù)隊(duì)列(REDO隊(duì)列)和未完成的事務(wù)隊(duì)列(UNDO隊(duì)列)。(2)對撤銷隊(duì)列中的各個(gè)事務(wù)進(jìn)行UNDO處理。進(jìn)行UNDO處理的方法是:反向掃描日志文件,對每個(gè)UNDO事務(wù)的更新操作執(zhí)行逆操作,即將日志記錄中“更新前的值”(BeforeImage)寫入數(shù)據(jù)庫。(3)對重做隊(duì)列中的各個(gè)事務(wù)進(jìn)行REDO處理。進(jìn)行REDO處理的方法是:正向掃描日志文件,對每個(gè)REDO事務(wù)重新執(zhí)行日志文件登記的操作。即將日志記錄中“更新后的值”(AfterImage)寫入數(shù)據(jù)庫。介質(zhì)故障的恢復(fù):介質(zhì)故障是最嚴(yán)重的一種故障?;謴?fù)方法是重裝數(shù)據(jù)庫,然后重做已完成的事務(wù)。具體過程是:(1)DBA裝入最新的數(shù)據(jù)庫后備副本(離故障發(fā)生時(shí)刻最近的轉(zhuǎn)儲副本),使數(shù)據(jù)庫恢復(fù)到轉(zhuǎn)儲時(shí)的一致性狀態(tài)。(2)DBA裝入轉(zhuǎn)儲結(jié)束時(shí)刻的日志文件副本。(3)DBA啟動系統(tǒng)恢復(fù)命令,由DBMS完成恢復(fù)功能,即重做已完成的事務(wù)。10.什么是檢查點(diǎn)記錄?檢查點(diǎn)記錄包括哪些內(nèi)容?答:檢查點(diǎn)記錄就是在日志文件中增加一類新的記錄,增加一個(gè)重新開始文件,并讓恢復(fù)子系統(tǒng)在登錄日志文件期間動態(tài)地維護(hù)日志。檢查點(diǎn)記錄的內(nèi)容包括:①建立檢查點(diǎn)時(shí)刻所有正在執(zhí)行的事務(wù)清單;②這些事務(wù)最近一個(gè)日志記錄的地址。11.具有檢查點(diǎn)的恢復(fù)技術(shù)有什么優(yōu)點(diǎn)?答:利用日志技術(shù)進(jìn)行數(shù)據(jù)庫恢復(fù)時(shí),恢復(fù)子系統(tǒng)必須搜索日志,確定哪些事務(wù)需要REDO,哪些事務(wù)需要UNDO。一般來說,需要檢查所有日志記錄。這樣做有兩個(gè)問題:①是搜索整個(gè)日志將耗費(fèi)大量的時(shí)間。②是很多需要REDO處理的事務(wù)實(shí)際上已經(jīng)將它們的更新操作結(jié)果寫到數(shù)據(jù)庫中了,恢復(fù)子系統(tǒng)又重新執(zhí)行了這些操作,浪費(fèi)了大量時(shí)間。檢查點(diǎn)技術(shù)就是為了解決這些問題。12.試述使用檢查點(diǎn)方法進(jìn)行恢復(fù)的步驟。答:檢查點(diǎn)方法的恢復(fù)步驟:①從重新開始文件中找到最后一個(gè)檢查點(diǎn)記錄在日志文件中的地址,由該地址在日志文件中找到最后一個(gè)檢查點(diǎn)記錄。②由該檢查點(diǎn)記錄得到檢查點(diǎn)建立時(shí)刻所有正在執(zhí)行的事務(wù)清單ACTIVE-LIST。這里建立兩個(gè)事務(wù)隊(duì)列:(1)UNDO-LIST:需要執(zhí)行undo操作的事務(wù)集合;(2)REDO-LIST:需要執(zhí)行redo操作的事務(wù)集合;把ACTIVE-LIST暫時(shí)放入U(xiǎn)NDO-LIST隊(duì)列,REDO隊(duì)列暫為空。③從檢查點(diǎn)開始正向掃描日志文件(1)如有新開始的事務(wù)Ti,把Ti暫時(shí)放入U(xiǎn)NDO-LIST隊(duì)列;(2)如有提交的事務(wù)Tj,把Tj從UNDO-LIST隊(duì)列移到REDO-LIST隊(duì)列,直到日志文件結(jié)束;④對UNDO-LIST中的每個(gè)事務(wù)執(zhí)行UNDO操作,對REDO-LIST中每個(gè)事務(wù)執(zhí)行REDO操作。13.什么是數(shù)據(jù)庫鏡像?它有什么用途?答:數(shù)據(jù)庫鏡像即根據(jù)DBA的要求,自動把整個(gè)數(shù)據(jù)庫或者其中的部分關(guān)鍵數(shù)據(jù)復(fù)制到另一個(gè)磁盤上。每當(dāng)主數(shù)據(jù)庫更新時(shí),DBMS自動把更新后的數(shù)據(jù)復(fù)制過去,即DBMS自動保證鏡像數(shù)據(jù)與主數(shù)據(jù)的一致性。數(shù)據(jù)庫鏡像的用途有:①是用于數(shù)據(jù)庫恢復(fù)。當(dāng)出現(xiàn)介質(zhì)故障時(shí),可由鏡像磁盤繼續(xù)提供使用,同時(shí)DBMS自動利用鏡像磁盤數(shù)據(jù)進(jìn)行數(shù)據(jù)庫的恢復(fù),不需要關(guān)閉系統(tǒng)和重裝數(shù)據(jù)庫副本。②是提高數(shù)據(jù)庫的可用性。在沒有出現(xiàn)故障時(shí),當(dāng)一個(gè)用戶對某個(gè)數(shù)據(jù)加排它鎖進(jìn)行修改時(shí),其他用戶可以讀鏡像數(shù)據(jù)庫上的數(shù)據(jù),而不必等待該用戶釋放鎖。第十一章并發(fā)控制(教材305頁)1.在數(shù)據(jù)庫中為什么要并發(fā)控制?并發(fā)控制技術(shù)能保證事務(wù)的哪些特性?答:數(shù)據(jù)庫是共享資源,通常有許多個(gè)事務(wù)同時(shí)在運(yùn)行。當(dāng)多個(gè)事務(wù)并發(fā)地存取數(shù)據(jù)庫時(shí)就會產(chǎn)生同時(shí)讀取和/或修改同一數(shù)據(jù)的情況。若對并發(fā)操作不加控制就可能會存取和存儲不正確的數(shù)據(jù),破壞數(shù)據(jù)庫的一致性。所以數(shù)據(jù)庫管理系統(tǒng)必須提供并發(fā)控制機(jī)制。并發(fā)控制技術(shù)可以保證事務(wù)的隔離性和一致性。2.并發(fā)操作可能會產(chǎn)生哪幾類數(shù)據(jù)不一致?用什么方法能避免各種不一致的情況?答:并發(fā)操作帶來的數(shù)據(jù)不一致性包括三類:丟失修改、不可重復(fù)讀和讀“臟”數(shù)據(jù)。(1)丟失修改(LostUpdate)兩個(gè)事務(wù)T1和T2讀入同一數(shù)據(jù)并修改,T2提交的結(jié)果破壞了(覆蓋了)T1提交的結(jié)果,導(dǎo)致T1的修改被丟失。(2)不可重復(fù)讀(Non-RepeatableRead)不可重復(fù)讀是指事務(wù)T1讀取數(shù)據(jù)后,事務(wù)T2執(zhí)行更新操作,使T1無法再現(xiàn)前一次讀取結(jié)果。(3)讀“臟”數(shù)據(jù)(DirtyRead)讀“臟”數(shù)據(jù)是指事務(wù)T1修改某一數(shù)據(jù),并將其寫回磁盤,事務(wù)T2讀取同一數(shù)據(jù)后,T1由于某種原因被撤銷,這時(shí)T1已修改過的數(shù)據(jù)恢復(fù)原值,T2讀到的數(shù)據(jù)就與數(shù)據(jù)庫中的數(shù)據(jù)不一致,則T2讀到的數(shù)據(jù)就為“臟”數(shù)據(jù),即不正確的數(shù)據(jù)。避免不一致性的方法和技術(shù)就是并發(fā)控制。最常用的并發(fā)控制技術(shù)是封鎖技術(shù)。也可以用其他技術(shù),例如在分布式數(shù)據(jù)庫系統(tǒng)中可以采用時(shí)間戳方法來進(jìn)行并發(fā)控制。3.什么是封鎖?基本的封鎖類型有幾種?試述它們的含義。答:封鎖就是事務(wù)T在對某個(gè)數(shù)據(jù)對象例如表、記錄等操作之前,先向系統(tǒng)發(fā)出請求,對其加鎖。加鎖后事務(wù)T就對該數(shù)據(jù)對象有了一定的控制,在事務(wù)T釋放它的鎖之前,其他的事務(wù)不能更新此數(shù)據(jù)對象。封鎖是實(shí)現(xiàn)并發(fā)控制的一個(gè)非常重要的技術(shù)?;镜姆怄i類型有兩種:排它鎖(ExclusiveLocks,簡稱X鎖)和共享鎖(ShareLocks,簡稱S鎖)。排它鎖又稱為寫鎖。若事務(wù)T對數(shù)據(jù)對象A加上X鎖,則只允許T讀取和修改A,其他任何事務(wù)都不能再對A加任何類型的鎖,直到T釋放A上的鎖。這就保證了其他事務(wù)在T釋放A上的鎖之前不能再讀取和修改A。共享鎖又稱為讀鎖。若事務(wù)T對數(shù)據(jù)對象A加上S鎖,則事務(wù)T可以讀A但不能修改A,其他事務(wù)只能再對A加S鎖,而不能加X鎖,直到T釋放A上的S鎖。這就保證了其他事務(wù)可以讀A,但在T釋放A上的S鎖之前不能對A做任何修改。4.什么是封鎖協(xié)議?不同級別的封鎖協(xié)議的主要區(qū)別是什么?答:在運(yùn)用封鎖技術(shù)對數(shù)據(jù)加鎖時(shí),要約定一些規(guī)則。例如,在運(yùn)用X鎖和S鎖對數(shù)據(jù)對象加鎖時(shí),要約定何時(shí)申請X鎖或S鎖、何時(shí)釋放封鎖等。這些約定或者規(guī)則稱為封鎖協(xié)議(LockingProtocol)。對封鎖方式約定不同的規(guī)則,就形成了各種不同的封鎖協(xié)議。不同級別的封鎖協(xié)議,例如《概論》中介紹的三級封鎖協(xié)議,三級協(xié)議的主要區(qū)別在于什么操作需要申請封鎖,何時(shí)申請封鎖以及何時(shí)釋放鎖(即持鎖時(shí)間的長短)。一級封鎖協(xié)議事務(wù)T在修改數(shù)據(jù)R之前必須先對其加X鎖,直到事務(wù)結(jié)束才釋放。二級封鎖協(xié)議一級封鎖協(xié)議加上事務(wù)T在讀取數(shù)據(jù)R之前必須先對其加S鎖,讀完后即可釋放S鎖。三級封鎖協(xié)議一級封鎖協(xié)議加上事務(wù)T在讀取數(shù)據(jù)R之前必須先對其加S鎖,直到事務(wù)結(jié)束才釋放。5.什么是活鎖?試述活鎖的產(chǎn)生原因和解決方法。答:如果事務(wù)T1封鎖了數(shù)據(jù)R,事務(wù)T2又請求封鎖R,于是T2等待。T3也請求封鎖R,當(dāng)T1釋放了R上的封鎖之后系統(tǒng)首先批準(zhǔn)了T3的請求,T2仍然等待。然后T4又請求封鎖R,當(dāng)T3釋放了R上的封鎖之后系統(tǒng)又批準(zhǔn)了T4的請求……T2有可能永遠(yuǎn)等待,這就是活鎖的情形?;铈i產(chǎn)生的原因是當(dāng)一系列封鎖不能按照其先后順序執(zhí)行時(shí),就可能導(dǎo)致一些事務(wù)無限期等待某個(gè)封鎖,從而導(dǎo)致活鎖。避免活鎖的簡單方法是采用先來先服務(wù)的策略。當(dāng)多個(gè)事務(wù)請求封鎖同一數(shù)據(jù)對象時(shí),封鎖子系統(tǒng)按請求封鎖的先后次序?qū)κ聞?wù)排隊(duì),數(shù)據(jù)對象上的鎖一旦釋放就批準(zhǔn)申請隊(duì)列中第一個(gè)事務(wù)獲得鎖。8.什么樣的并發(fā)調(diào)度是正確的調(diào)度?答:可串行化(Serializable)的調(diào)度是正確的調(diào)度。可串行化的調(diào)度的定義:多個(gè)事務(wù)的并發(fā)執(zhí)行是正確的,當(dāng)且僅當(dāng)其結(jié)果與按某一次序串行地執(zhí)行它們時(shí)的結(jié)果相同,我們稱這種調(diào)度策略為可串行化的調(diào)度。6.什么是死鎖?請給出預(yù)防死鎖的若干方法。答:如果事務(wù)T1封鎖了數(shù)據(jù)R1,T2封鎖了數(shù)據(jù)R2,然后T1有請求封鎖R2,因T2已封鎖了R2于是T1等待T2釋放R2上的鎖。接著T2又申請封鎖R1,因T1已封鎖了R1,T2也只能等待T1釋放R1上的鎖。這樣就出現(xiàn)了T1在等待T2,而T2又在等待T1的局面,T1和T2兩個(gè)事務(wù)永遠(yuǎn)不能結(jié)束,形成死鎖。在數(shù)據(jù)庫中,產(chǎn)生死鎖的原因是兩個(gè)或多個(gè)事務(wù)都已封鎖了一些數(shù)據(jù)對象,然后又都請求已被其他事務(wù)封鎖的數(shù)據(jù)加鎖,從而出現(xiàn)死等待。防止死鎖的發(fā)生其實(shí)就是要破壞產(chǎn)生死鎖的條件。預(yù)防死鎖通常有兩種方法:(1)一次封鎖法要求每個(gè)事務(wù)必須一次將所有要使用的數(shù)據(jù)全部加鎖,否則就不能繼續(xù)執(zhí)行。(2)順序封鎖法預(yù)先對數(shù)據(jù)對象規(guī)定一個(gè)封鎖順序,所有事務(wù)都按這個(gè)順序?qū)嵭蟹怄i。不過,預(yù)防死鎖的策略不大適合數(shù)據(jù)庫系統(tǒng)的特點(diǎn)。7.請給出檢測死鎖發(fā)生的一種方法,當(dāng)發(fā)生死鎖后如何解除死鎖?答:數(shù)據(jù)庫系統(tǒng)一般采用允許死鎖發(fā)生,DBMS檢測到死鎖后加以解除的方法。DBMS中診斷死鎖的方法與操作系統(tǒng)類似,一般使用超時(shí)法或事務(wù)等待圖法。超時(shí)法是:如果一個(gè)事務(wù)的等待時(shí)間超過了規(guī)定的時(shí)限,就認(rèn)為發(fā)生了死鎖。超時(shí)法實(shí)現(xiàn)簡單,但有可能誤判死鎖,事務(wù)因其他原因長時(shí)間等待超過時(shí)限時(shí),系統(tǒng)會誤認(rèn)為發(fā)生了死鎖。若時(shí)限設(shè)置得太長,又不能及時(shí)發(fā)現(xiàn)死鎖發(fā)生。DBMS并發(fā)控制子系統(tǒng)檢測到死鎖后,就要設(shè)法解除。通常采用的方法是選擇一個(gè)處理死鎖代價(jià)最小的事務(wù),將其撤消,釋放此事務(wù)持有的所有鎖,使其他事務(wù)得以繼續(xù)運(yùn)行下去。當(dāng)然,對撤銷的事務(wù)所執(zhí)行的數(shù)據(jù)修改操作必須加以恢復(fù)。9.不同封鎖協(xié)議與系統(tǒng)一致性級別的關(guān)系是什么?答:不同的封鎖協(xié)議對應(yīng)不同的一致性級別。一級封鎖協(xié)議可防止丟失修改,并保證事務(wù)T是可恢復(fù)的。在一級封鎖協(xié)議中,對讀數(shù)據(jù)是不加S鎖的,所以它不能保證可重復(fù)讀和不讀“臟”數(shù)據(jù)。二級封鎖協(xié)議除防止了丟失修改,還可進(jìn)一步防止讀“臟”數(shù)據(jù)。在二級封鎖協(xié)議中,由于讀完數(shù)據(jù)后立即釋放S鎖,所以它不能保證可重復(fù)讀。在三級封鎖協(xié)議中,無論是讀數(shù)據(jù)還是寫數(shù)據(jù)都加長鎖,即都要到事務(wù)結(jié)束時(shí)才釋放封鎖。所以三級封鎖協(xié)議除防止了丟失修改和不讀“臟”數(shù)據(jù)外,還進(jìn)一步防止了不可重復(fù)讀。10.試述兩段鎖協(xié)議的概念。答:兩段鎖協(xié)議是指所有事務(wù)必須分兩個(gè)階段對數(shù)據(jù)項(xiàng)加鎖和解鎖。(1)在對任何數(shù)據(jù)進(jìn)行讀、寫操作之前,首先要申請并獲得對該數(shù)據(jù)的封鎖;(2)在釋放一個(gè)封鎖之后,事務(wù)不再申請和獲得任何其他封鎖?!皟啥巍钡暮x是,事務(wù)分為兩個(gè)階段:第一階段是獲得封鎖,也稱為擴(kuò)展階段。在這階段,事務(wù)可以申請獲得任何數(shù)據(jù)項(xiàng)上的任何類型的鎖,但是不能釋放任何鎖。第二階段是釋放封鎖,也稱為收縮階段。在這階段,事務(wù)釋放已經(jīng)獲得的鎖,但是不能再申請任何鎖。13.為什么要引進(jìn)意向鎖?意向鎖的含義是什么?答:引進(jìn)意向鎖是為了提高封鎖子系統(tǒng)效率。該封鎖子系統(tǒng)支持多種封鎖粒度。原因是:在多粒度封鎖方法中一個(gè)數(shù)據(jù)對象可能以兩種方式加鎖—顯式封鎖和隱式封鎖。因此系統(tǒng)在對某一數(shù)據(jù)對象加鎖時(shí)不僅要檢查該數(shù)據(jù)對象上有無(顯式和隱式)封鎖與之沖突;還要檢查其所有上級結(jié)點(diǎn)和所有下級結(jié)點(diǎn),看申請的封鎖是否與這些結(jié)點(diǎn)上的(顯式和隱式)封鎖沖突;顯然,這樣的檢查方法效率很低。為此引進(jìn)了意向鎖。意向鎖的含義是:對任一個(gè)結(jié)點(diǎn)加鎖時(shí),必須先對它的上層結(jié)點(diǎn)加意向鎖。例如事務(wù)T要對某個(gè)元組加X鎖,則首先要對關(guān)系和數(shù)據(jù)庫加IX鎖。換言之,對關(guān)系和數(shù)據(jù)庫加IX鎖,表示它的后裔結(jié)點(diǎn)—某個(gè)元組擬(意向)加X鎖。引進(jìn)意向鎖后,系統(tǒng)對某一數(shù)據(jù)對象加鎖時(shí)不必逐個(gè)檢查與下一級結(jié)點(diǎn)的封鎖沖突了。例如,事務(wù)T要對關(guān)系R加X鎖時(shí),系統(tǒng)只要檢查根結(jié)點(diǎn)數(shù)據(jù)庫和R本身是否已加了不相容的鎖(如發(fā)現(xiàn)已經(jīng)加了IX,則與X沖突),而不再需要搜索和檢查R中的每一個(gè)元組是否加了X鎖或S鎖。14.試述常用的意向鎖:IS鎖,IX鎖,SIX鎖。答:IS鎖如果對一個(gè)數(shù)據(jù)對象加IS鎖,表示它的后裔結(jié)點(diǎn)擬(意向)加S鎖。例如,要對某個(gè)元組加S鎖,則要首先對關(guān)系和數(shù)據(jù)庫加IS鎖IX鎖如果對一個(gè)數(shù)據(jù)對象加IX鎖,表示它的后裔結(jié)點(diǎn)擬(意向)加X鎖。例如,要對某個(gè)元組加X鎖,則要首先對關(guān)系和數(shù)據(jù)庫加IX鎖。SIX鎖如果對一個(gè)數(shù)據(jù)對象加SIX鎖,表示對它加S鎖,再加IX鎖,即SIX=S+IX。第十二章數(shù)據(jù)庫管理系統(tǒng)(教材330頁)1.試述DBMS的基本功能?答:DBMS主要是實(shí)現(xiàn)對共享數(shù)據(jù)有效的組織、管理和存取。其基本功能有:(1)數(shù)據(jù)庫定義功能;(2)數(shù)據(jù)存取功能;(3)數(shù)據(jù)庫運(yùn)行管理功能;(4)數(shù)據(jù)組織、存儲和管理功能;(5)數(shù)據(jù)庫的建立和維護(hù)功能;(6)其他功能。2.試述DBMS四種進(jìn)程組織方案,并分析各種方案的特點(diǎn)和優(yōu)缺點(diǎn)。答:DBMS四種進(jìn)程組織方案是:N方案N個(gè)DB用戶應(yīng)用程序?qū)?yīng)N個(gè)用戶進(jìn)程,DBMS作為應(yīng)用程序的子程序被連入用戶應(yīng)用程序中。因此這種方案也稱為連入式方案。數(shù)據(jù)庫系統(tǒng)中共有N個(gè)進(jìn)程。2N方案每個(gè)用戶進(jìn)程有一個(gè)DBMS進(jìn)程為之服務(wù),因此N個(gè)用戶進(jìn)程就有N個(gè)DBMS進(jìn)程,共2N個(gè)進(jìn)程。N+1方案N個(gè)用戶進(jìn)程僅有一個(gè)DBMS進(jìn)程為它們服務(wù),因此共N+1個(gè)進(jìn)程,共N+1個(gè)進(jìn)程。N+M方案用M個(gè)DBMS進(jìn)程為N個(gè)用戶進(jìn)程提供服務(wù),一般M小于N。3.理解并解釋下列術(shù)語的含義:進(jìn)程、任務(wù)、“輕權(quán)”進(jìn)程、線程、線索。答:進(jìn)程操作系統(tǒng)中的核心概念,進(jìn)程是程序的一次執(zhí)行過程。進(jìn)程既是資源分配的最小單位也是操作系統(tǒng)調(diào)度的基本單位。任務(wù)在單處理器系統(tǒng)中任務(wù)與進(jìn)程是類似的概念。隨著多處理器系統(tǒng)以及并行計(jì)算技術(shù)的發(fā)展,進(jìn)程概念被進(jìn)一步細(xì)劃為任務(wù)(Task)與線程(Thread)的概念。任務(wù)是申請資源的基本單位,而線程是調(diào)度和運(yùn)行的基本單位。輕權(quán)進(jìn)程線程又被稱為“輕權(quán)”或“輕量”進(jìn)程。線索是數(shù)據(jù)庫系統(tǒng)中的概念,它借鑒了操作系統(tǒng)中“線程”的概念:整個(gè)DBMS可以看作是一個(gè)Task,當(dāng)有一個(gè)用戶申請數(shù)據(jù)庫服務(wù)時(shí),Task分配多個(gè)Thread為之服務(wù),多個(gè)Thread并行工作,共享資源。一般地講,DBMS中的線索是DBMS的一個(gè)執(zhí)行流。4.什么是DBMS的多線索機(jī)制?有什么優(yōu)點(diǎn)?答:DBMS借鑒了操作系統(tǒng)中“線程”的概念和技術(shù),在DBMS的實(shí)現(xiàn)中采用多線索機(jī)制。一般地講,DBMS中的線索是DBMS的一個(gè)執(zhí)行流,它服務(wù)于整個(gè)DBMS系統(tǒng)或DBMS中的某個(gè)用戶;DBMS服務(wù)器響應(yīng)客戶請求是通過為每個(gè)用戶創(chuàng)建線索(而不是創(chuàng)建進(jìn)程)來完成的。DBMS的各個(gè)線索能在邏輯上并行執(zhí)行;它們共存于一個(gè)服務(wù)器進(jìn)程中,共享DBMS的所有資源,如數(shù)據(jù)庫緩沖區(qū)和CPU時(shí)間;線索是DBMS的調(diào)度單位,服務(wù)器進(jìn)程能按一定的調(diào)度算法調(diào)度用戶請求。與進(jìn)程相比,線索具有以下優(yōu)點(diǎn):線索比進(jìn)程占用較少的系統(tǒng)資源,如內(nèi)存(3)線索切換開銷較小(2)線索調(diào)度比較靈活,可控制性強(qiáng)(4)線索間通信簡便5.DBMS由哪些主要的程序模塊組成?答:DBMS主要的程序模塊有:(1)數(shù)據(jù)定義模塊(2)數(shù)據(jù)操縱模塊(3)數(shù)據(jù)庫運(yùn)行管理方面的程序模塊(4)數(shù)據(jù)庫組織、存儲和管理方面的程序模塊(5)數(shù)據(jù)庫建立、維護(hù)和其他方面的程序模塊6.RDBMS的語言處理層是如何處理一個(gè)DDL語句的?答:對DDL語句,語言處理層首先把它翻譯成內(nèi)部表示,然后把它存儲在系統(tǒng)的數(shù)據(jù)字典中。7.試述RDBMS的語言處理層處理一個(gè)DML語句的大致過程。答:先對DML語句進(jìn)行詞法分析和語法分析,并把外部關(guān)系名、屬性名轉(zhuǎn)換為內(nèi)部名。然后,根據(jù)數(shù)據(jù)字典中的內(nèi)容進(jìn)行查詢檢查,包括審核用戶的存取權(quán)限和完整性檢查。接下來對查詢進(jìn)行優(yōu)化。最后將DML語句轉(zhuǎn)換成一串可執(zhí)行的存取動作的這一過程。8.什么是處理DML語句的解釋方法和預(yù)編譯方法?答:解釋方法直到執(zhí)行前,數(shù)據(jù)庫DML語句都以原始字符串的形式保存。當(dāng)執(zhí)行到該語句是,才利用解釋程序去完成全部過程,同時(shí)予以執(zhí)行。該方法通過盡量推遲束縛過程來贏得數(shù)據(jù)獨(dú)立性。預(yù)編譯方法在用戶提交DML語句之后,在運(yùn)行之前對它進(jìn)行翻譯處理,保存產(chǎn)生好的可執(zhí)行代碼。當(dāng)需要運(yùn)行時(shí),取出保存的可執(zhí)行代碼加以執(zhí)行。9.試述數(shù)據(jù)存取層主要的子系統(tǒng)及其功能。答:數(shù)據(jù)存取層的功能子系統(tǒng)有:①記錄存取、事務(wù)管理子系統(tǒng)提供按某個(gè)屬性值直接取一個(gè)元組和順序取一個(gè)元組的存取原語。②日志登記子系統(tǒng)與事務(wù)管理子系統(tǒng)相配合,完成RDBMS對事務(wù)和數(shù)據(jù)庫的恢復(fù)任務(wù),把事務(wù)開始、回滾、提交;對元組的插入、刪除、修改;對索引記錄的插入、刪除、修改等沒一個(gè)操作作為一個(gè)日志記錄存入日志文件中。③控制信息管理模塊利用專門的數(shù)據(jù)區(qū)登記不同記錄類型以及不同存取路徑的說明信息和控制信息。這些信息是存取元組和管理事務(wù)的依據(jù)。它提供對數(shù)據(jù)字典中說明信息的讀取、增加、刪除和修改操作。④排序/合并子系統(tǒng)完成對關(guān)系元組的重新排序以達(dá)到用戶所要求的有序輸出,加速關(guān)系運(yùn)算的中間步驟。⑤存取路徑維護(hù)子系統(tǒng)對數(shù)據(jù)執(zhí)行插入、刪除、修改操作的同時(shí)對相應(yīng)的存取路徑進(jìn)行維護(hù)。10.操作系統(tǒng)中也有并發(fā)控制問題,為什么DBMS還要并發(fā)控制機(jī)制?答:操作系統(tǒng)提供的封鎖機(jī)制和DBMS的封鎖機(jī)制在封鎖對象,封鎖對象的狀態(tài),封鎖的粒度,及封鎖的類型上存在很大的差別,操作系統(tǒng)的封鎖機(jī)制不能直接應(yīng)用在DBMS中,DBMS必須重新設(shè)計(jì),來滿足復(fù)雜的封鎖需求。12.DBMS中為什么要設(shè)置系統(tǒng)緩沖區(qū)?答:設(shè)立系統(tǒng)緩沖區(qū)的原因:①是為了把存儲層以上DBMS各系統(tǒng)成分和實(shí)在的外存設(shè)備隔離,外存設(shè)備的變更不會影響這些系統(tǒng),使DBMS具有設(shè)備獨(dú)立性。②是為了提高效率。DBMS利用系統(tǒng)緩沖區(qū)滯留數(shù)據(jù)。當(dāng)需要讀取數(shù)據(jù)時(shí)系統(tǒng)首先到緩沖區(qū)中查找。只有當(dāng)緩沖區(qū)中不存在該數(shù)據(jù)時(shí)才真正從外存讀入該數(shù)據(jù)所在的頁面。當(dāng)要寫回一元組到數(shù)據(jù)庫中時(shí),系統(tǒng)并不把它立即寫回外存,僅把該元組所在的緩沖區(qū)頁面作一標(biāo)志,表示可以釋放。只有當(dāng)該用戶事務(wù)結(jié)束或緩沖區(qū)已滿需要調(diào)入新頁時(shí)才按一定的淘汰策略把緩沖區(qū)中已有釋放標(biāo)志的頁面寫回外存。這樣可以減少I/O次數(shù),提高系統(tǒng)效率。13.數(shù)據(jù)庫中要存儲和管理的數(shù)據(jù)內(nèi)容包括哪些方面?答:數(shù)據(jù)庫中存儲四個(gè)方面的數(shù)據(jù):(1)數(shù)據(jù)描述,即數(shù)據(jù)的外模式、模式、內(nèi)模式;(2)數(shù)據(jù)本身;(3)數(shù)據(jù)之間的聯(lián)系;(4)存取路徑。這四個(gè)方面的數(shù)據(jù)內(nèi)容都要采用一定的方式組織、存儲起來。第十三章數(shù)據(jù)庫技術(shù)新發(fā)展(教材350頁)2.試述數(shù)據(jù)庫技術(shù)的發(fā)展過程。答:(1)數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的核心和基礎(chǔ)。數(shù)據(jù)庫技術(shù)的三個(gè)發(fā)展階段應(yīng)該按照數(shù)據(jù)模型的進(jìn)展來界定。按照數(shù)據(jù)模型的進(jìn)展,數(shù)據(jù)庫技術(shù)可以相應(yīng)地分為三個(gè)發(fā)展階段。(2)數(shù)據(jù)模型的發(fā)展經(jīng)歷了格式化數(shù)據(jù)模型(包括層次數(shù)據(jù)模型和網(wǎng)狀數(shù)據(jù)模型)、關(guān)系數(shù)據(jù)模型兩個(gè)階段,以面向?qū)ο髷?shù)據(jù)模型為代表的非傳統(tǒng)數(shù)據(jù)模型的階段。(3)同學(xué)們可以從每一代數(shù)據(jù)庫系統(tǒng)的主要特征、代表性系統(tǒng)、主要成就、優(yōu)點(diǎn)和不足來了解數(shù)據(jù)庫技術(shù)的發(fā)展過程。層次數(shù)據(jù)庫系統(tǒng)和網(wǎng)狀數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)模型雖然分別為層次模型和網(wǎng)狀模型,但實(shí)質(zhì)上層次模型是網(wǎng)狀模型的特例。它們都是格式化模型。它們從體系結(jié)構(gòu)、數(shù)據(jù)庫語言到數(shù)據(jù)存儲管理均具有共同特征,是第一代數(shù)據(jù)庫系統(tǒng)。關(guān)系數(shù)據(jù)庫系統(tǒng)支持關(guān)系模型。關(guān)系模型不僅簡單、清晰,而且有關(guān)系代數(shù)作為語言模型,有關(guān)系數(shù)據(jù)理論作為理論基礎(chǔ)。因此,關(guān)系數(shù)據(jù)庫系統(tǒng)具有形式基礎(chǔ)好、數(shù)據(jù)獨(dú)立性強(qiáng)、數(shù)據(jù)庫語言非過程化等特色,標(biāo)志著數(shù)據(jù)庫技術(shù)發(fā)展到了第二代。第二代數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)模型雖然描述了現(xiàn)實(shí)世界數(shù)據(jù)的

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論