數(shù)據(jù)庫原理課后題答案_第1頁
數(shù)據(jù)庫原理課后題答案_第2頁
數(shù)據(jù)庫原理課后題答案_第3頁
數(shù)據(jù)庫原理課后題答案_第4頁
數(shù)據(jù)庫原理課后題答案_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第1章1. 試述數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)的概念。答:(1)數(shù)據(jù):描述事物的符號記錄成為數(shù)據(jù)。數(shù)據(jù)的種類有數(shù)字、文字、圖形、圖像、聲音、正文等。數(shù)據(jù)與其語義是不可分的。(2) 數(shù)據(jù)庫:數(shù)據(jù)庫是長期儲存在計算機內的、有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫中的數(shù)據(jù)按照一定的數(shù)據(jù)模型組織。描述和儲存,具有較小的冗余度、較高的數(shù)據(jù)獨立性和易擴展性,并可為各種用戶共享。(3) 數(shù)據(jù)庫系統(tǒng):數(shù)據(jù)庫系統(tǒng)是指在計算機系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)構成,一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)人具)、應用系統(tǒng)、數(shù)據(jù)庫管理員構成。(4) 數(shù)據(jù)庫管理系統(tǒng):數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,

2、用于科學地組織和存儲數(shù)據(jù)、高效地獲取和維護數(shù)據(jù)。DBMS的主要功能包括數(shù)據(jù)定義功能、數(shù)據(jù)操作功能、數(shù)據(jù)庫的建立和維護功能。6.試述數(shù)據(jù)庫系統(tǒng)三級模式結構,這種結構的優(yōu)點是什么?答:數(shù)據(jù)庫系統(tǒng)的三級模式機構由外模式、模式和內模式組成。 外模式,亦稱子模式或用戶模式,是數(shù)據(jù)庫用戶(包括應用程序員和最終用戶)能夠看見和使用的局部數(shù)據(jù)的邏輯結構和特征的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應用有關的數(shù)據(jù)的邏輯表示。 模式亦稱邏輯模式,是數(shù)據(jù)庫中全體數(shù)據(jù)呃邏輯結構和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。模式描述的是數(shù)據(jù)的全局邏輯結構。外模式涉及的是數(shù)據(jù)的內部邏輯結構,通常是模式的子集。 內模式,亦稱存儲

3、模式,是數(shù)據(jù)在數(shù)據(jù)庫內部的表示,即對數(shù)據(jù)的物理結構和存儲方式的描述。 數(shù)據(jù)庫系統(tǒng)的三級模式是對數(shù)據(jù)的三個抽象級別,它對數(shù)據(jù)的具體組織留給DBMS管理,使用戶能邏輯抽象地處理數(shù)據(jù),而不必關心數(shù)據(jù)在計算機中的表示和存儲。 為了能夠在內部實現(xiàn)這三個抽象層次的聯(lián)系和轉換,數(shù)據(jù)庫系統(tǒng)在這三級模式之間提供了兩層映像:外模式模式映像和模式內模式映像。正是這兩層映像保證了數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能夠具有較高的邏輯獨立性和物理獨立性。7.定義并解釋下列術語。外模式:亦稱子模式或用戶模式,是數(shù)據(jù)庫用戶(包括應用程序員和最 終用戶)能夠看見和使用的局部數(shù)據(jù)的邏輯結構和特征的描述,是數(shù)據(jù)庫用戶的 數(shù)據(jù)視圖,是與某一應用有關

4、的數(shù)據(jù)的邏輯表示。內模式:亦稱存儲模式,是數(shù)據(jù)在數(shù)據(jù)庫內部的表示,即對數(shù)據(jù)的物理結構和存儲方式的描述。模式:亦稱邏輯模式,是數(shù)據(jù)庫中全體數(shù)據(jù)邏輯結構和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。模式描述的是數(shù)據(jù)的全局邏輯結構。外模式涉及的是數(shù)據(jù)的內部邏輯結構,通常是模式的子集。DDL:數(shù)據(jù)庫定義語言,用來定義數(shù)據(jù)庫模式、外模式、內模式的語言。DML:數(shù)據(jù)操縱語言,用來對數(shù)據(jù)庫中數(shù)據(jù)進行查詢、插入、刪除和修改的語 句。8.什么叫數(shù)據(jù)與程序的物理獨立性?什么叫數(shù)據(jù)與程序的邏輯獨立性?為什么數(shù)據(jù)庫系統(tǒng)具有數(shù)據(jù)與程序的獨立性? 答:數(shù)據(jù)與程序的邏輯獨立性:當模式改變時(例如增加新的關系、新的屬性、改變屬性的

5、數(shù)據(jù)類型等),由數(shù)據(jù)庫管理員各個外模式模式的映像做相應改變,可以使外模式保持不變。應用程序是依據(jù)數(shù)據(jù)的外模式編寫的,從而應用程序不必修改,保證了數(shù)據(jù)與程序的邏輯獨立性,簡稱數(shù)據(jù)的邏輯獨立性。數(shù)據(jù)與程序的物理獨立性:當數(shù)據(jù)庫的存儲結構改變了,有數(shù)據(jù)庫管理員對模式內模式映像做相應改變,可以使模式保持不變,從而應用程序也不必改變,保證了數(shù)據(jù)與程序的物理獨立性,簡稱數(shù)據(jù)的物理獨立性。數(shù)據(jù)庫管理系統(tǒng)在三級模式之間提供的兩層映像保證了數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)具有較高的邏輯獨立性和物理獨立性。第2章 數(shù)據(jù)模型3 試描述數(shù)據(jù)模型的三個要素。 數(shù)據(jù)模型由數(shù)據(jù)結構、數(shù)據(jù)操作和完整性約束三部分組成。(1) 數(shù)據(jù)結構:是所

6、研究的對象類型的集合,是對系統(tǒng)靜態(tài)特性的描述。(2) 數(shù)據(jù)操作:是對數(shù)據(jù)庫中各種對象(型)的實例(值)允許進行的操作的集合,包括操作及有關的操作規(guī)則,是對系統(tǒng)動態(tài)特性的描述。(3) 數(shù)據(jù)的約束條件: 是一組完整性規(guī)則的集合。完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和依存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效、相容。7. 試述關系模型的概念,定義并解釋以下術語。答:關系模型由關系數(shù)據(jù)結構、關系操作集合和關系完整性約束三部分組成。(1) 關系:一個關系對應通常說法的一張表(2) 關系模式:對關系的描述,一般表示為:關系名(屬性1,屬性2,屬性n)(

7、3) 元祖:表中的一行即為一個元組(4) 屬性:表中的一列即為一個屬性(5) 碼:表中的某個屬性組,它可以惟一確定一個元組(6) 域:屬性的取值范圍(7) 分量:元組中的一個屬性值第3章 關系數(shù)據(jù)庫3 定義并理解下列術語,說明它們之間的聯(lián)系與區(qū)別。 (1) 域:域是一組具有相同數(shù)據(jù)類型的值的集合; 笛卡兒積:給定一組域D1,D2,Dn,這些域中可以有相同的。D1,D2,Dn的笛卡爾積為: D1D2Dn=(d1,d2,dn)|diDi,i=1,2,n 其中每一個元素(d1,d2,dn)叫做一個n元組或簡稱元組。元素中的每一個值di叫做一個分量。 關系:在域D1,D2,Dn上笛卡爾積D1D2Dn的

8、子集稱為關系,表示為R(D1,D2,Dn) 元組:關系中的每個元素是關系中的元組。 屬性:關系也是一個二維表,表的每行對應一個元組,表的每列對應一個域。由于域可以相同,為了加以區(qū)分,必須對每列起一個名字,稱為屬性。(2) 候選碼:若關系中的某一屬性組的值能唯一地標識一個元組,則稱該屬性組為候選碼。 主碼:若一個關系有多個候選碼,則選定其中一個為主碼。 外部碼:設F是基本關系R的一個或一組屬性,但不是關系R的碼,如果F與基本關系S的主碼Ks相對應,則稱F是基本關系R的外部碼,簡稱外碼。 基本關系R稱為參照關系,基本關系S稱為被參照關系或目標關系。關系R和S可以是相同的關系。(3) 關系模式:關系

9、的描述稱為關系模式。它可以形式化地表示為R(U,D,dom,F(xiàn))其中R為關系名,U為組成該關系的屬性名集合,D為屬性組U中屬性所來自的域,dom為屬性向域的映像集合,F(xiàn)為屬性間數(shù)據(jù)的依賴關系集合。 關系:在域D1,D2,,Dn上笛卡兒積D1D2Dn的子集稱為關系,表示為R(D1,D2,Dn),關系是關系模式在某一時刻的狀態(tài)或內容。關系模式是靜止的、穩(wěn)定的;而關系是動態(tài)的、隨時間不斷變化的,因為關系操作在不斷更新著數(shù)據(jù)庫中的數(shù)據(jù)。關系數(shù)據(jù)庫:關系數(shù)據(jù)庫也有型和值之分。關系數(shù)據(jù)庫的型也稱為關系數(shù)據(jù)庫模式,是對關系數(shù)據(jù)庫的描述,它包括若干域的定義以及在這些域上定義的若干關系模式。關系數(shù)據(jù)庫的值是這些

10、關系模式在某一時刻對應的關系的集合,通常就稱為關系數(shù)據(jù)庫。4 試述關系模型的完整性規(guī)則。在參照完整性中,為什么外部碼屬性的值也可以為空?什么情況下才可以為空? 答:關系模型的完整性規(guī)則是對關系的某種約束條件。關系模型中可以有三類完整性約束:實體完整性、參照完整性和用戶定義的完整性。其中實體完整性和參照完整性是關系模型必須滿足的完整性約束條件,被稱做事關系的兩個不變性,應該由關系系統(tǒng)自動支持。 (1)實體完整性規(guī)則:若屬性A是基本關系R的主屬性,則屬性A不能取空值。 (2)參照完整性規(guī)則:若屬性(或屬性組)F是基本關系R的外碼,它與基本關系S的主碼Ks相對應(基本關系R和S不一定是不同的關系),

11、則對于R中每個元組在F上的值必須為: 1)或者取空值(F的每個屬性值均為空值) 2)或者等于S中的某個元組的主碼值。 (3)用戶定義的完整性是針對某一具體關系數(shù)據(jù)庫的約束條件。它反映某一具體應用所涉及的數(shù)據(jù)必須滿足的語義要求。 在參照完整性中,外部碼屬性的值可以為空,它表示該屬性的值尚未確定,但前提條件是該外部碼屬性不是其所在關系的主屬性。例如,在下面的“學生”表中,“專業(yè)號”是一個外部碼,不是學生表的主屬性,可以為空,其語義是,該學生的專業(yè)尚未確定。 學生(學號,姓名,性別,專業(yè)號,年齡) 專業(yè)(專業(yè)號,專業(yè)名)而在下面的“選修”表中的“課程號”雖然也是一個外部碼屬性,但它又是“課程”表的主

12、屬性,所以不能為空,因為關系模型必須滿足實體完整性。 課程(課程號,課程名,學分) 選修(學號,課程號,成績)p61 5、設有一個SPJ數(shù)據(jù)庫,包括S、P、J、SPJ四個關系模式: S(SNO,SNAME,STATUS,CITY); P(PNO,PNAME,COLOR,WEIGHT); J(JNO,JNAME,CITY); SPJ(SNO,PNO,JNO,QTY); 供應商表S由供應商代碼(SNO)、供應商姓名(SNAME)、供應商狀態(tài)(STATUS)、供應商所在城市(CITY)組成; 零件表P由零件代碼(PNO)、零件名(PNAME)、顏色(COLOR)、重量(WEIGHT)組成; 工程項目

13、表J由工程項目代碼(JNO)、工程項目名(JNAME)、工程項目所在城市(CITY)組成; 供應情況表SPJ由供應商代碼(SNO)、零件代碼(PNO)、工程項目代碼(JNO)、供應數(shù)量(QTY)組成,表示某供應商供應某種零件給某工程項目的數(shù)量為QTY。 今有若干數(shù)據(jù)如下:S表SNOSNAMESTATUSCITYS1精益20天津S2盛錫10北京S3東方紅30北京S4豐泰盛20天津S5為民30上海 P表PNOPNAMECOLORWEIGHTP1螺母紅12P2螺栓綠17P3螺絲刀藍14P4螺絲刀紅14P5凸輪藍40P6齒輪紅30J表JNOJNAMECITYJ1三建北京J2一汽長春J3彈簧廠天津J4造

14、船廠天津J5機車廠唐山J6無線電廠常州J7半導體廠南京SPJ表SNOPNOJNOQTYS1P1J1200S1P1J3100S1P1J4700S1P2J2100S2P3J1400S2P3J2200S2P3J4500S2P3J5400S2 P5J1400S2P5J2100S3P1J1200S3P3J1200S4P5J1100S4P6J3300S4P6J4200S5P2J4100S5P3J1200S5P6J2200S5P6J4500試分別用關系代數(shù)完成如下查詢:(1) 求供應工程J1零件的供應商號SNO;答關系代數(shù) SNO(JNO=J1 ( SPJ)) (2) 求供應工程J1零件P1的供應商號 SN

15、O;答關系代數(shù) SNO(JNO=J1 PNO=P1 (SPJ) (3) 求供應工程J1零件為紅色的供應商號 SNO;答關系代數(shù)SNO(SNO,PNO(JNO=J1(SPJ) PNO(COLOR=紅(P)(4) 求沒有使用天津供應商生產的紅色零件的工程號 JNO;答關系代數(shù)JNO(J)-JNO(SNO(CITY=天津(S) SNO,PN0,JNO(SPJ) PNO(COLOR=紅(P) 解析 減法運算中被減的部分是使用了天津供應商生產的紅色零件的所有工程號,JNO(J)是全部工程的工程號,兩者相減就是沒有使用天津供應商生出的紅色零件的工程號,包括沒有使用任何零件的工程號。 (5)求至少用了S1供

16、應商所供應的全部零件的工程號JNO; 答 關系代數(shù) JNO,PNO(SPJ)PNO(SNO=s1(SPJ) 解析 上面公式中除號前的部分是所有工程與該工程所用的零件,除號后的部分是S1所供應的全部零件號。對于SPJ表中的某一個JNO,如果該工程使用的所有零件的集合包含S1所供應的全部零件號,則該JNO符合本題條件,在除法運算的結果集中??梢钥吹剑褂藐P系代數(shù)的除法運算概念清晰,語言表達也很簡單。 7關系代數(shù)的基本運算有哪些?選擇、投影、并、差和笛卡兒積五種。第4章 關系數(shù)據(jù)庫的標準語言SQL5針對習題3中的4個表試用SQL完成如下操作。(1)找出所有供應商的姓名和所在的城市。SELECT SN

17、AME,CITY FROM S;(5)找出上海廠同提供的所有零件號碼SELECT DISTINCT PNO FROM SPJ WHERE SNO IN (SELECT SNO FROM S WHERE CITY=上海);(8) 把所有紅色的零件的顏色改成藍色UPDATE P SET COLOR=藍 WHERE COLOR=紅(10) 從供應商的關系中刪除S2的記錄,并從供應關系中刪除相應記錄。DELETE FROM SPJ WHERE SNO=2;DELETE FROM S WHERE SNO=S2;6什么是基本表?什么是視圖?兩者的區(qū)別和聯(lián)系是什么?基本表是本身獨立存在的表。視圖是人一個或幾

18、個基本表導出的表。視圖本身不獨立存儲在數(shù)據(jù)庫中,是一個虛表。即數(shù)據(jù)庫中只存放視圖的定義而不存放視圖對應的數(shù)據(jù),這些數(shù)據(jù)仍存放在導出視圖的基本表中。用戶可以如同基本表那樣使用視圖,可以在視圖上再定義視圖。7試述視圖的優(yōu)點。1)視圖能簡化用戶的操作;2)視圖使用戶能以多種角度看待同一數(shù)據(jù);3)視圖對重構數(shù)據(jù)庫提供了一定程度的邏輯獨立性;4)視圖能夠對機密數(shù)據(jù)提供安全保護。9哪類視圖是可以更新的?基本表的行列子集視圖是可以更新的。第5章 數(shù)據(jù)庫的安全性1什么是數(shù)據(jù)庫的安全性?答:數(shù)據(jù)庫的安全性是指保護數(shù)據(jù)庫以防止不合法的使用所造成的數(shù)據(jù)泄露,更改過破壞。試述實現(xiàn)數(shù)據(jù)庫安全性控制的常見方法和技術3實現(xiàn)

19、數(shù)據(jù)庫安全性控制的常見方法和技術有:(1) 用戶標識和鑒別:該方法由系統(tǒng)提供一定的方式讓用戶標識自己的名字或身份。每次用戶要求進入系統(tǒng)時,由系統(tǒng)進行核對,通過鑒定后才提供系統(tǒng)的使用權。(2) 存取控制:通過用戶權限定義和合法權檢查確保只有合法權限的用戶訪問數(shù)據(jù)庫,所有未被授權的人無法存取數(shù)據(jù)。例如C2集中地自主存取控制(DAC),B1集中的強制存取控制(MAC)。(3) 視圖機制:為不同的用戶定義視圖,通過視圖機制把要保密的數(shù)據(jù)對無權存取的用戶隱藏起來,從而自動地對數(shù)據(jù)提供一定程度的安全保護。(4) 審計:建立審計日志,把用戶對數(shù)據(jù)庫的所有操作自動記錄下來放入審計日志中,DBA可以利用審計跟蹤

20、的信息,重現(xiàn)導致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時間和內容等。(5) 數(shù)據(jù)加密:對存儲和傳輸?shù)臄?shù)據(jù)進行加密處理,從而使得不知道解密算法的人無法獲知數(shù)據(jù)的內容。6. 什么是數(shù)據(jù)庫的審計功能,為什么要提供審計功能?答:審計功能是指DBMS的審計模塊在用戶對數(shù)據(jù)庫執(zhí)行操作的同時把所有操作自動記錄到系統(tǒng)的審計日志中。因為任何系統(tǒng)的安全保護措施都不是完美無缺的,蓄意盜竊破壞數(shù)據(jù)的人總可能存在。利用數(shù)據(jù)庫的審計功能,DBA可以根據(jù)審計跟蹤的信息,重現(xiàn)導致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時間和內容等。第6章 數(shù)據(jù)庫的完整性1什么是數(shù)據(jù)庫的完整性?答:數(shù)據(jù)庫的完整性是指數(shù)據(jù)

21、的正確性和相容性。6假設有下面兩個關系模式: 職工(職工號,姓名,年齡,職務,工資,部門號),其中職工號為主碼; 部門(部門號,名稱,經理名,地址,電話號),其中部門號是主碼。用SQL語言定義這兩個關系模式,要求在模式中完成以下完整性約束條件的定義:定義每個模式的主碼;定義參照完整性;定義職工年齡不超過60歲。答:CREATE TABLE DEPT (Deptno NUMBER(2), Deptname VARCHAR(10), Manager VARCHAR(10), PhoneNumber Char(12) CONSTRAINT PK_SC PRIMARY KEY (Deptno);CRE

22、ATE TABLE EMP (Empno NUMBER(4) primary key, Ename VARCHAR(10), Age NUMBER(2), CONSTRAINT C1 CHECK (Aage =60), Job VARCHAR(9), Sal NUMBER(7,2), Deptno NUMBER(2), CONSTRAINT FK_DEPTNO FOREIGN KEY(Deptno) REFERENCES DEPT(Deptno);7關系系統(tǒng)中,當操作違反實體完整性、參照完整性和用戶定義的完整性約束條件時,一般是如何分別進行處理的?答:對于違反實體完整性和用戶定義完整性的操作,

23、一般都采用拒絕執(zhí)行的方式處理。而對于違反參照完整性的操作,并不都是簡單地拒絕執(zhí)行,有時要根據(jù)應用語義執(zhí)行一些附加的操作,以保證數(shù)據(jù)的正確性。第7章 數(shù)據(jù)庫恢復技術5數(shù)據(jù)庫的恢復技術有哪些?數(shù)據(jù)轉儲和登錄日志文件是數(shù)據(jù)庫恢復的基本技術。當系統(tǒng)運行過程中發(fā)生故障,利用轉儲的數(shù)據(jù)庫后備副本和日志文件就可以將數(shù)據(jù)庫恢復到故障前的某個一致性狀態(tài)。第8章 并發(fā)控制1. 在數(shù)據(jù)庫中為什么要并發(fā)控制?答:數(shù)據(jù)庫是共享資源,通常有許多個事務同時在運行。當多個事務并發(fā)地存取數(shù)據(jù)庫時就會產生同時讀取和或修改同一數(shù)據(jù)的情況。若對并發(fā)操作不加控制就可能讀取和存儲不正確的數(shù)據(jù),破壞數(shù)據(jù)庫的一致性。所以數(shù)據(jù)庫管理系統(tǒng)必須提

24、供并發(fā)控制機制。2. 并發(fā)操作可能會產生哪幾類數(shù)據(jù)不一致?用什么方法能避免各種不一致的情況? 答:并發(fā)操作帶來的數(shù)據(jù)不一致性包括三類:丟失修改、不可重復讀和讀“臟”數(shù)據(jù)。 (1)丟失修改 兩個事務T1和T2讀入同一數(shù)據(jù)并修改,T2提交的結果破壞了(覆蓋了)T1提交的結果,導致T1的修改被丟失。 (2)不可重復讀 不可重復讀是指事務T1讀取數(shù)據(jù)后,事務T2提交執(zhí)行更新操作,使T1無法再現(xiàn)前一次讀取結果。 (3)讀”臟”數(shù)據(jù) 讀“臟”數(shù)據(jù)是指事務T1修改某一數(shù)據(jù),并將其寫回磁盤,事務T2讀取同一數(shù)據(jù)后,T1由于某種原因被撤銷,這時T1已修改過的數(shù)據(jù)恢復原值,T2讀到的數(shù)據(jù)就與數(shù)據(jù)庫中的數(shù)據(jù)不一致,

25、則T2讀到的數(shù)據(jù)就為“臟”數(shù)據(jù),即不正確的數(shù)據(jù)。避免不一致性的方法和技術就是并發(fā)控制。最常用的技術是封鎖技術。也可以用其他技術,例如在分布式數(shù)據(jù)庫系統(tǒng)中可以采用時間戳方法來進行并發(fā)控制。4基本的封鎖類型有幾種?試述它們的含義。 答:基本的封鎖類型有兩種:排它鎖和共享鎖。排它鎖又稱為寫鎖。若事務T對數(shù)據(jù)對象A加上X鎖,則只允許T讀取和修改A,其他任何事務都不能再對A加任何類型的鎖,直到T釋放A上的鎖。這就保證了其他事務在T釋放A上的鎖之前不能再讀取和修改A。共享鎖又稱為讀鎖。若事務T對數(shù)據(jù)對象A加上S鎖,則事務T可以讀A但不能修改A,其他事務只能再對A加S鎖,而不能加X鎖,直到T釋放A上的S鎖。

26、這就保證了其他事務可以讀A,但在T釋放A上的S鎖之前不能對A做任何修改。5 如何用封鎖機制保證數(shù)據(jù)的一致性? 答:DBMS在對數(shù)據(jù)進行讀、寫操作之前首先對該數(shù)據(jù)執(zhí)行封鎖操作,例如下圖中事務T1在對進行修改之前先對A執(zhí)行Xock(A),即對A加X鎖。這樣,當T2請求對A加X鎖是就被拒絕,T2只能等待T1釋放A上的鎖后才能獲得對A的X鎖,這時它讀到的A是T1更新后的值,再按此新的A值進行運算。這樣 就不會丟失T1的更新。 T1T21 XlockA獲得2 讀A=163 AA-1 寫回A=15 Commit Unlock A Xlock A等待等待等待等待獲得Xlock A讀A=15AA-1寫回A=1

27、4CommitUnlock A DBMS按照一定的封鎖協(xié)議,對并發(fā)控制進行控制,使得多個并發(fā)操作有序地執(zhí)行,就可以避免丟失修改、不可重復讀和讀“臟”數(shù)據(jù)等數(shù)據(jù)不一致性。5. 什么是封鎖協(xié)議?不同級別的封鎖協(xié)議的主要區(qū)別是什么? 答:在運用封鎖技術對數(shù)據(jù)加鎖時,要約定一些規(guī)則。例如,在運用X鎖和S鎖對數(shù)據(jù)對象加鎖時,要約定何時申請X鎖或S鎖、何時釋放封鎖等。這些約定或者規(guī)則稱為封鎖協(xié)議。對封鎖方式約定不同的規(guī)則,就形成了各種不同的封鎖協(xié)議、不同級別的封鎖協(xié)議,例如三級封鎖協(xié)議,三級封鎖協(xié)議的主要區(qū)別在于什么操作需要申請封鎖,何時申請封鎖以及何時釋放鎖(即持鎖時間的長短)。一級封鎖協(xié)議:事務T在修

28、改數(shù)據(jù)R之前必須先對其加X鎖,直到事務結束才釋放。二級封鎖協(xié)議:一級封鎖協(xié)議加上事務T在讀取數(shù)據(jù)R之前必須先對其加S鎖,讀完后即可釋放S鎖。三級封鎖協(xié)議:一級封鎖協(xié)議加上事務T在讀取數(shù)據(jù)R之前必須先對其加S鎖,直到事務結束才釋放。8什么是活鎖?什么是死鎖?答:T1 T2 T3 T4Lock R . . . . Lock R . . .等待 lock R . Unlock 等待. Lock R . 等待 Lock R等待 . 等待. 等待 . 等待Unlock 等待 , 等待.Lock R 如果事務T1封鎖了數(shù)據(jù)R,事務T2又請求封鎖R,于是T2等待。T3也請求封鎖R,當T1釋放了R上的封鎖之后

29、系統(tǒng)首先批準了T3的請求,T2仍然等待。然后T4又請求封鎖R,當T3釋放了R上的封鎖之后系統(tǒng)又批準了T4的請求T2有可能永遠等待,這就是活鎖的情形?;铈i的含義是該等待事務等待時間太長,似乎被鎖住了,實際上可能被激活。如果事務T1封鎖了數(shù)據(jù)R1,T2封鎖了數(shù)據(jù)R2,然后T1又請求封鎖R2,因T2已封鎖了R2,于是T1等待T2釋放R2上的鎖。接著T2又申請分所R1,因T1已封鎖了R1,也只能T1釋放R1上的鎖。這樣就出現(xiàn)了T1在等待T2,而T2又在等待T1的局面,T1和T2兩個事務永遠不能結束,形成死鎖。 T1 T2lock R1 . .Lock R2 . . Lock R2 . 等待 lock

30、R1.8. 試述活鎖的產生原因和解決方法。 答:活鎖產生的原因:當一系列封鎖不能按照其先后順序執(zhí)行時,就可能導致一些事務無限期等待某個封鎖,從而導致活鎖。 避免活鎖的簡單方法是采用先來先服務的策略。當多個事務請求封鎖同一數(shù)據(jù)對象時,封鎖子系統(tǒng)按請求封鎖的先后次序對事務排隊,數(shù)據(jù)對象上的鎖一旦釋放就批準申請隊列中的第一個事務獲得鎖。10請給出預防死鎖的若干方法。答:在數(shù)據(jù)庫中,產生死鎖的原因是兩個或多個事務都已封鎖了一些數(shù)據(jù)對象,然后又都請求已被其他事務封鎖的數(shù)據(jù)加鎖,從而出現(xiàn)死等待。防止死鎖的發(fā)生其實就是要破壞產生死鎖的條件。預防死鎖通常有兩種方法:(1) 一次封鎖法,要求每個事務必須一次將所

31、有要使用的數(shù)據(jù)全部加鎖,否則就不能繼續(xù)執(zhí)行;(2) 順序封鎖法,預先對數(shù)據(jù)對象規(guī)定一個封鎖順序,所有事務都能按這個順序實行封鎖。不過,預防死鎖的策略不大適合數(shù)據(jù)庫系統(tǒng)的特點,具體原因可參加概論8.4。11請給出檢測死鎖發(fā)生的一種方法,當發(fā)生死鎖后如何解除死鎖? 答:數(shù)據(jù)庫系統(tǒng)一般采用允許死鎖發(fā)生,DBMS檢測到死鎖后加以解除的方法。 DBMS中診斷死鎖的方法與操作系統(tǒng)類似,一般使用超時法或事務等待圖法。 超時法是:如果一個事務的等待時間超過了規(guī)定的時限,就認為發(fā)生了死鎖。超時法實現(xiàn)簡單,但有可能誤判死鎖,事務因其他原因長時間等待超過時限時,系統(tǒng)會誤認為發(fā)生了死鎖。若時限設置的太長,又不能及時發(fā)

32、現(xiàn)死鎖發(fā)生。 DBMS并發(fā)控制子系統(tǒng)檢測到死鎖后,就要設法解除。通常采用的方法是選擇一個處理死鎖代價最小的事務,將其撤銷,釋放此事務持有的所有鎖,使其他事務得以繼續(xù)運行下去。當然,對撤銷的事務所執(zhí)行的數(shù)據(jù)修改操作必須加以恢復。12什么樣的并發(fā)調度是正確的調度? 答:可串行化的調度室正確的調度。 可串行化的調度的定義:多個事務的并發(fā)執(zhí)行是正確的,當且僅當其結果與按某一次序串行執(zhí)行它們時的結果相同,稱這種調度策略為可串行化的調度。13設T1,T2,T3是如下的3個事務: T1:A=A+2; T2:A=A*2; T3:A=A*2;(AA)設A的初值為0.(1) 若這三個事務允許并行執(zhí)行,則有多少可能

33、的正確結果,請一一列舉出來。 答:A的最終結果可能有2、4、8、16。 因為串行執(zhí)行次序有T1T2T3、T1T3T2、T2T1T3、T2T3T1、T3T1T2、T3T2T1。 對應的執(zhí)行結果是16、8、4、2、4、2。(2)請給出一個可串行化的調度,并給出執(zhí)行結果。 答: T1T2T3 Slock A Y=A=0 Unlock A Xlock ASlock A A=Y+2等待 寫回A(=2)等待 Unlock A等待 Y=A=2 Unlock A Xlock A Slock A A=Y*2 等待 寫回A(=4) 等待Unlock A 等待 Y=A=4Unlock A Xlock AA=Y*2

34、寫回A(=16)Unlock A最后結果A為16,是可串行化的調度。(3)請給出一個非串行化的調度,并給出執(zhí)行結果。 T1T2T3 Slock A Y=A=0 Unlock ASlock A Y=A=0 Xlock A等待Unlock AA=Y+2寫回A(=2)Slock AUnlock A 等待 Y=A=2Unlock AXlock AXlock A等待 Y=Y*2 等待寫回A(=4)等待Unlock AA=Y*2寫回A(=0)Unlock A最后結果A為0,為非串行化的調度。(4) 若這3個事務都遵守兩段鎖協(xié)議,請給出一個不穿生死鎖的可串行化調度。 答: T1T2T3Slock A Y=A

35、=0Xlock AA=Y+2Slock A 寫回A(=2)等待Unlock A等待 Y=A=2Xlock AUnlock A等待 Slock AA=Y*2等待寫回A(=4)等待Unlock A 等待 Y=A=4 Unlock AXlock AA=Y*2寫回A(=16)Unlock A Unlock A(5)若這3個事務都遵守兩段鎖協(xié)議,請給出一個產生死鎖的調度。 答: T1T2T3Slock AY=A=0Slock AY=A=0 Xlock A等待Xlock A等待Slock AY=A=0Xlock A14. 試述兩段鎖協(xié)議的概念。等待 答:兩段鎖協(xié)議是指所有事務必須分兩個階段對數(shù)據(jù)項加鎖和解

36、鎖。 l 在對任何數(shù)據(jù)進行讀、寫操作之前,首先要申請并獲得對該數(shù)據(jù)的封鎖;l 在釋放一個封鎖之后,事務不再申請和獲得任何其他封鎖。 “兩段”的含義是,事務分為兩個階段: 第一階段是獲得封鎖,也稱為擴展階段,在這個階段,事務可以申請獲得任何數(shù)據(jù)項上的任何類型的鎖,但是不能釋放任何鎖; 第二階段是釋放封鎖,也稱為收縮階段,在這階段,事務釋放已經獲得的鎖,但是不能再申請任何鎖。第十章 概念模型與E-R方法1什么是概念模型?概念模型的作用是什么?答:概念模型實際上是現(xiàn)實世界機器的一個中間層次。概念模型用于信息世界的建模,是現(xiàn)實世界到信息世界的第一層抽象,是數(shù)據(jù)庫設計人員進行數(shù)據(jù)庫設計的有力工具,也是數(shù)

37、據(jù)庫人員和用戶之間進行交流的語言。4試給出3個實際部門的E-R圖,要求實體型之間具有一對一,一對多,多對多各種不同的聯(lián)系。課程教員學生參加科研項目領導部門答: 1 m講授 1 n教員 1 m n總經理9學校總有若干系,每個系有若干班級和教研室,每個教研室有若干教員,其中有的教授和副教授沒人各帶若干研究生,每個學生選修若干課程,每門課程可由若干學生選修。請用E-R圖畫出此學校的概念模型。答:學校 1校-系 n系系-班系-室 1 1 班級教研室 n n 1 1班-生室-教指導 n n教員學生 n 1選修 m課程 n10某工廠生產若干個產品,每種產品由不同的零件組成,有的零件可用在不同的產品上。這些

38、零件由不同的原材料制成,不同零件所用的材料可以相同。這些零件按所屬的不同產品分別放在倉庫中,原材料按照類別放在若干倉庫中。請用E-R圖畫出此工廠產品,零件,材料,倉庫的概念模型。答:產品組成零件制造材料儲存存放倉庫 m n n L m n 1 n第十二章 數(shù)據(jù)庫設計步驟1.試述數(shù)據(jù)庫設計過程(1)需求分析(2)概念結構設計(3)邏輯結構設計(4)數(shù)據(jù)庫物理設計(5)數(shù)據(jù)庫實施(6)數(shù)據(jù)庫運行和維護這是一個完整的實際數(shù)據(jù)庫及其應用系統(tǒng)的設計過程。不僅包括設計數(shù)據(jù)庫本身,還包括數(shù)據(jù)庫的實施、運行和維護。設計一個完善的數(shù)據(jù)庫應用系統(tǒng)往往是上述六個階段的不斷重復。5.需求分析階段的設計目標是什么?調查

39、的內容是什么?需求分析階段的設計目標是通過詳細調查現(xiàn)實世界要處理的對象(組織、部門、企業(yè)等),充分了解原系統(tǒng)(手工系統(tǒng)或計算機系統(tǒng))工作概況,明確用戶的各種需求,然后在此基礎上確定新系統(tǒng)的功能。調查的內容是“數(shù)據(jù)”和“處理”,即獲得用戶對數(shù)據(jù)庫的如下要求:(1)信息要求,指用戶需要從數(shù)據(jù)庫中獲得信息的內容與性質,由信息要求可以導出數(shù)據(jù)要求,即在數(shù)據(jù)庫中可以儲存哪些數(shù)據(jù);(2)處理要求,指用戶要完成什么處理功能,對處理的響應時間有什么要求,處理方式是批處理還是聯(lián)機處理;(3)安全性與完整性要求。6.數(shù)據(jù)字典的內容和作用是什么? 數(shù)據(jù)字典是系統(tǒng)中各類數(shù)據(jù)描述的集合。數(shù)據(jù)字典的內容通常包括:(1)數(shù)

40、據(jù)項(2)數(shù)據(jù)結構(3)數(shù)據(jù)流(4)數(shù)據(jù)儲存(5)處理過程五個部分 其中數(shù)據(jù)項是數(shù)據(jù)的最小組成單位,若干個數(shù)據(jù)項可以組成一個數(shù)據(jù)結構。數(shù)據(jù)字典通過對數(shù)據(jù)項和數(shù)據(jù)結構的定義來描述數(shù)據(jù)流和數(shù)據(jù)儲存的邏輯內容。 數(shù)據(jù)字典的作用:數(shù)據(jù)字典是關于數(shù)據(jù)庫中數(shù)據(jù)的描述,在需求分析階段建立,是下一步進行概念設計的基礎,并在數(shù)據(jù)庫設計過程中不斷修改、充實、完善。7.什么是數(shù)據(jù)庫的概念結構?試述其特點和設計策略。 概念結構是信息世界的結構,即概念模型,其主要特點是:(1)能真實、充分的反映現(xiàn)實世界,包括事物和事物之間的聯(lián)系,能滿足用戶對數(shù)據(jù)的處理要求,是對現(xiàn)實世界的一個真實模型;(2)易于理解,從而可以用它和不熟悉計算機的用戶交換意見,用戶的積極參與是數(shù)據(jù)庫設計成功的關鍵;(3)易于更改,當應用環(huán)境和應用要求改變時,容易對概念模型修改和擴充;(4)易于

溫馨提示

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

評論

0/150

提交評論