《數(shù)據(jù)庫原理及應(yīng)用》總復(fù)習(xí)_第1頁
《數(shù)據(jù)庫原理及應(yīng)用》總復(fù)習(xí)_第2頁
《數(shù)據(jù)庫原理及應(yīng)用》總復(fù)習(xí)_第3頁
免費(fèi)預(yù)覽已結(jié)束,剩余12頁可下載查看

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫并發(fā)單選題1. 下面( )不是數(shù)據(jù)庫系統(tǒng)必須提供的數(shù)據(jù)控制功能。A.安全性 B .可移植性C.完整性 D .并發(fā)控制答案: B2保護(hù)數(shù)據(jù)庫,防止未經(jīng)授權(quán)的或不合法的使用造成的數(shù)據(jù)泄漏、更改破壞。這是指數(shù)據(jù) 的( )。A 安全性答案: AB 完整性C 并發(fā)控制D 恢復(fù)3數(shù)據(jù)庫的()是指數(shù)據(jù)的正確性和相容性。A 安全性答案: BB 完整性C 并發(fā)控制D恢復(fù)4在數(shù)據(jù)系統(tǒng)中,對存取權(quán)限的定義稱為()。A 命令答案: BB 授權(quán)C 定義D審計(jì)5數(shù)據(jù)庫管理系統(tǒng)通常提供授權(quán)功能來控制不同用戶訪問數(shù)據(jù)的權(quán)限 ,這主要是為了實(shí)現(xiàn)數(shù)據(jù)庫的()。A 可靠性答案: DB 一致性C 完整性D安全性6授權(quán)編譯系統(tǒng)和

2、合法性檢查機(jī)制一起組成了()子系統(tǒng)。A 安全性B 完整性C 并發(fā)控制D恢復(fù)答案: A7. ( )是用戶定義的一個(gè)數(shù)據(jù)庫操作序列,這些操作要么全做要么全不做,是一個(gè)不可 分割的工作單位A.程序B.命令C.事務(wù)D.文件答案: C8. 事務(wù)的原子性是指( )。A. 事務(wù)中包括的所有操作要么都做,要么都不做B. 事務(wù)一旦提交,對數(shù)據(jù)庫的改變是永久的C. 一個(gè)事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對并發(fā)的其他事務(wù)是隔離的D. 事務(wù)必須是使數(shù)據(jù)庫從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài) 答案: A9. 事務(wù)的持續(xù)性是指( )。A. 事務(wù)中包括的所有操作要么都做,要么都不做B. 事務(wù)一旦提交,對數(shù)據(jù)庫的改變是永久的C. 一

3、個(gè)事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對并發(fā)的其他事務(wù)是隔離的D. 事務(wù)必須是使數(shù)據(jù)庫從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)答案: B10. 事務(wù) 是數(shù)據(jù)庫操作的基本工作單位。 如果一個(gè)事務(wù)執(zhí)行成功, 則全部更新提交; 如果一個(gè)事務(wù)執(zhí)行失敗,了數(shù)據(jù)庫處于(則已做過的更新被恢復(fù)原狀,)狀態(tài)。好像整個(gè)事務(wù)從未有過這些更新,這樣保持A 安全性 B 一致性C 完整性D 可靠性答案: B11. 多用戶的數(shù)據(jù)庫系統(tǒng)的目標(biāo)之一是使它的每個(gè)用戶好像面對著一個(gè)單用戶的數(shù)據(jù)庫一 樣使用它,為此,數(shù)據(jù)庫系統(tǒng)必須進(jìn)行()。A 安全性控制 B 完整性控制 C 并發(fā)控制 D 可靠性控制答案: C12. 對并發(fā)操作若不加以控制,可能會

4、帶來()問題。A. 不安全B.死鎖C 死機(jī)D.數(shù)據(jù)不一致答案:D13. 并發(fā)操作會帶來的數(shù)據(jù)不一致性有()。A. 丟失修改、不可重復(fù)讀、讀臟數(shù)據(jù)、死鎖B. 不可重復(fù)讀、讀臟數(shù)據(jù)、死鎖C. 丟失修改、讀臟數(shù)據(jù)、死鎖D. 丟失修改、不可重復(fù)讀、讀臟數(shù)據(jù) 答案:D14. 有兩個(gè)事務(wù)T1、T2 ,其并發(fā)操作如圖所示,下面評價(jià)正確的是()。A .該操作不存在問題B .該操作丟失修改C.該操作不能重復(fù)讀D.該操作讀"臟”數(shù)據(jù)答案:BT1T2讀A=10讀 A=10A=A-5寫回A=A-8寫回15. 設(shè)有兩個(gè)事務(wù) T1、T2,其并發(fā)操作如下所示,下面評價(jià)正確的是()。A .該操作不存在問題B .該操

5、作丟失修改C.該操作不能重復(fù)讀D .該操作讀"臟”數(shù)據(jù)答案:CT1T2 讀 A=10 , B=5 讀A=10A=A*2寫回 讀 A=20 , B=5求和25驗(yàn)證錯(cuò)16. 設(shè)有兩個(gè)事務(wù) T1、T2,其并發(fā)操作如下所示,下列評價(jià)正確的是()。A .該操作不存在問題B .該操作丟失修改C.該操作不能重復(fù)讀D .該操作讀"臟”數(shù)據(jù)答案:DT1T2 讀A=100A=A*2寫回 讀A=200 ROLLBACK恢復(fù)A=10017. 解決并發(fā)操作帶來的數(shù)據(jù)不一致性問題普遍采用()。A. 封鎖B.恢復(fù)C .存取控制D.協(xié)商答案:A18. 若事務(wù)T對數(shù)據(jù)R已經(jīng)加X鎖,則其他事務(wù)對數(shù)據(jù)R ()。

6、A .可以加S鎖不能加X鎖B .不能加S鎖可以加X鎖C.可以加S鎖也可以加X鎖D .不能加任何鎖答案: D19不允許任何其他事務(wù)對這個(gè)鎖定目標(biāo)再加任何類型的鎖是()。A .共享鎖B .排它鎖C .共享鎖或排它鎖D .以上都不是答案: B20數(shù)據(jù)庫中的封鎖機(jī)制是()的主要方法。A 完整性B 安全性C 并發(fā)控制D 恢復(fù)答案: C21關(guān)于“死鎖” ,下列說法中正確的是()。A .死鎖是操作系統(tǒng)中的問題,數(shù)據(jù)庫操作中不存在B .在數(shù)據(jù)庫操作中防止死鎖的方法是禁止兩個(gè)用戶同時(shí)操作數(shù)據(jù)庫C.當(dāng)兩個(gè)用戶競爭相同資源時(shí)不會發(fā)生死鎖D 只有出現(xiàn)并發(fā)操作時(shí),才有可能出現(xiàn)死鎖 答案: D22若數(shù)據(jù)庫中只包含成功事務(wù)

7、提交的結(jié)果,則此數(shù)據(jù)庫就稱為處于()狀態(tài)。A .安全B、. 一致C.不安全D .不一致答案: B23若系統(tǒng)在運(yùn)行過程中,由于某種原因,造成系統(tǒng)停止運(yùn)行,致使事務(wù)在執(zhí)行過程中以非 控制方式終止,這時(shí)內(nèi)存中的信息丟失,而存儲在外存上的數(shù)據(jù)未受影響,這種情況稱為 ( )。A 事務(wù)故障B .系統(tǒng)故障C 介質(zhì)故障D 運(yùn)行故障答案: B 24若系統(tǒng)在運(yùn)行過程中, 由于某種硬件故障, 使存儲在外存上的數(shù)據(jù)部分損失或全部損失, 這種情況稱為( )。A 事務(wù)故障 B 系統(tǒng)故障 C 介質(zhì)故障 D 運(yùn)行故障 答案: C25操作系統(tǒng)故障屬于()。A .人為錯(cuò)誤B .事務(wù)故障C .介質(zhì)故障D.系統(tǒng)故障答案: D26 (

8、 )用來記錄對數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行的每一次更新操作。A 后援副本 B 日志文件 答案: B27 后援副本的用途是( )。A 安全性保障 B 一致性控制 答案: C28 用于數(shù)據(jù)庫 恢復(fù) 的重要文件是( A 數(shù)據(jù)庫文件 B 索引文件 答案: C29 日志文件是用于記錄( )。 A 程序運(yùn)行過程C 對數(shù)據(jù)的所有更新操作 答案: CC數(shù)據(jù)庫D 緩沖區(qū)C故障后的恢復(fù)D 數(shù)據(jù)的轉(zhuǎn)儲)。C日志文件D 備注文件B 數(shù)據(jù)操作D 程序執(zhí)行的結(jié)果30 數(shù)據(jù)庫恢復(fù)的基礎(chǔ)是利用轉(zhuǎn)儲的冗余數(shù)據(jù)。這些轉(zhuǎn)儲的冗余數(shù)據(jù)包括()。A 數(shù)據(jù)字典、應(yīng)用程序、審計(jì)檔案、數(shù)據(jù)庫后備副本B 數(shù)據(jù)字典、應(yīng)用程序、日志文件、審計(jì)檔案C 日志文件

9、、數(shù)據(jù)庫后備副本D 數(shù)據(jù)字典、應(yīng)用程序、數(shù)據(jù)庫后備副本答案: C31 ( )是指在轉(zhuǎn)儲過程中, 不允許其他事務(wù)對數(shù)據(jù)庫進(jìn)行存取或修改操作,并且每次只 轉(zhuǎn)儲上一次轉(zhuǎn)儲后更新過的數(shù)據(jù)。C.靜態(tài)海量轉(zhuǎn)儲D.靜態(tài)增量轉(zhuǎn)儲答案: D32以下 ()封鎖違反兩段鎖協(xié)議。A. Slock A Slock B Xlock C.U nlock A Un lock B Un lock CB. Slock A Slock B Xlock C Un lock C Un lock B Un lock AC. Slock A Slock B Xlock C Un lock B Un lock C Un lock AD. S

10、lock A Un lock A Slock B Xlock C Unlock B Un lock C答案: D多選題A 原子性B 一致性C隔離性答案: ABCD2 并發(fā)操作可能會帶來的數(shù)據(jù)不一致性有()。A 丟失修改B 不可重復(fù)讀C讀臟數(shù)據(jù)答案: ABC3 關(guān)于“死鎖”,下列說法中錯(cuò)誤的是()。1 事務(wù)的特性有()。A.死鎖是操作系統(tǒng)中的問題,數(shù)據(jù)庫操作中不存在D.持續(xù)性D.死鎖B. 在數(shù)據(jù)庫操作中防止死鎖的方法是禁止兩個(gè)用戶同時(shí)操作數(shù)據(jù)庫C. 當(dāng)兩個(gè)用戶競爭相同資源時(shí)不會發(fā)生死鎖D. 并發(fā)控制的目的就是消除死鎖答案: ABCD4 封鎖機(jī)制是并發(fā)控制的主要手段, ( ) 封鎖協(xié)議不但能夠防止

11、丟失修改,還可進(jìn)一步 防止讀“臟”數(shù)據(jù)。A. 級B.二級C .三級D.都可以答案: BC5. 若事務(wù)T對數(shù)據(jù)R已加X鎖,則其他事務(wù)對數(shù)據(jù)R()。A.可以加S鎖B.不能加S鎖C.可以加X鎖答案: BD6. 在SQL Server中,有關(guān)頁的敘述中正確的是()。A. 頁是除行外的最小數(shù)據(jù)單位B. 個(gè)頁有8KBC. 表中的行不能跨頁存放,一行的數(shù)據(jù)必須在同一個(gè)頁上D. 8個(gè)連續(xù)的頁稱為1個(gè)簇 答案: ABCDD 不能加任何鎖7 數(shù)據(jù)庫恢復(fù)通常采用的方法是()。A 建立檢查點(diǎn)B 建立副本答案: ABCC 建立日志文件D 建立索引8 數(shù)據(jù)庫系統(tǒng)中可能發(fā)生的故障()。D 介質(zhì)故障A 運(yùn)行故障B 事務(wù)故障

12、C 系統(tǒng)故障答案: BCD9 系統(tǒng)故障是指造成系統(tǒng)停止運(yùn)轉(zhuǎn),必須重新啟動系統(tǒng)的任何事件,它包括以下()幾種情況。A 計(jì)算機(jī)病毒C DBMS 代碼錯(cuò)誤答案: BCDB 操作系統(tǒng)故障D 數(shù)據(jù)庫服務(wù)器出錯(cuò)三、填空題1. 事務(wù)通常是以開始,以表示正常結(jié)束,以 結(jié)束表示對數(shù)據(jù)庫的所有已完成的操作全部撤消,回滾到事務(wù)開始時(shí)的狀態(tài)。答案: BEGIN TRANSACTION COMMIT ROLLBACK2. 如果數(shù)據(jù)庫中只包含成功事務(wù)提交的結(jié)果,就說數(shù)據(jù)庫處于_一致性 _狀態(tài)。答案:一致性3. 數(shù)據(jù)庫中解決活鎖問題的方法是 。解決死鎖問題主要有兩類方法:一類方法是 ;另一類方法是。答案:先來先服務(wù)預(yù)防死鎖

13、 允許發(fā)生死鎖,然后解除之4. 封鎖機(jī)制是并發(fā)控制的主要手段。封鎖機(jī)制中有兩種基本類型的鎖,他們是排它鎖和。答案:共享鎖5. 封鎖具有3個(gè)環(huán)節(jié):第一個(gè)環(huán)節(jié)是申請加鎖;第二個(gè)環(huán)節(jié)是;第三個(gè)環(huán)節(jié)是。答案:獲得鎖釋放鎖6. 若事務(wù)T對數(shù)據(jù)對象A加了 S鎖,則其他事務(wù)只能對數(shù)據(jù)A再加,不能再加,直到事務(wù)T釋放A上的鎖。答案:S鎖X鎖7. 并發(fā)操作可能帶來的數(shù)據(jù)不一致性,最根本的原因是違背了 _隔離性 c答案:事務(wù)的隔離性8. “事務(wù)T在讀取數(shù)據(jù)之前必須先對其加 S鎖,在要修改數(shù)據(jù)之前必須先對其加X鎖,直到事務(wù)結(jié)束后才釋放所有鎖?!边@是 級封鎖協(xié)議。答案:三9. 封鎖粒度是指封鎖對象的大小。封鎖粒度與系

14、統(tǒng)的并發(fā)度和并發(fā)控制的開銷密切相關(guān)。封鎖的粒度越小,并發(fā)度越,系統(tǒng)開銷也越;封鎖的粒度越大,并發(fā)度越,系統(tǒng)開銷也越。答案:高大低 小10. SQL Server遵從級封鎖協(xié)議,從而有效地控制并發(fā)操作可能產(chǎn)生的丟失更新、讀“臟”數(shù)據(jù)、不可重復(fù)讀等錯(cuò)誤。答案:三11 數(shù)據(jù)恢復(fù)最常用的技術(shù)是建立數(shù)據(jù)轉(zhuǎn)儲和利用 。答案:日志文件12. 為保證數(shù)據(jù)庫的可恢復(fù)性,登記日志文件時(shí)必須遵循兩條原則:一是登記的次序嚴(yán)格按事務(wù)執(zhí)行的時(shí)間次序;二是 。答案:先寫日志文件,后寫數(shù)據(jù)庫13. 事務(wù)故障的解決辦法是恢復(fù)程序在不影響其他事務(wù)運(yùn)行的情況下。答案:撤銷該事務(wù)14. 日志文件是用來記錄對數(shù)據(jù)庫的更新操作的文件。不

15、同的數(shù)據(jù)庫系統(tǒng)采用的日志文件格式不完全相同。日志文件主要有以記錄為單位的日志文件和 。答案:以數(shù)據(jù)塊為單位的日志文件15. 會破壞磁盤上的物理數(shù)據(jù)庫和日志文件,這是最嚴(yán)重的一種故障?;謴?fù)方法是重裝數(shù)據(jù)庫后備副本,然后重做已完成的事務(wù)。答案:介質(zhì)故障17. 語句可以完成對整個(gè)數(shù)據(jù)庫的恢復(fù),也可以恢復(fù)數(shù)據(jù)庫的日志,或者是指定恢復(fù)數(shù)據(jù)庫的某個(gè)文件或文件組。答案:RESTORE1 & 數(shù)據(jù)庫保護(hù)包含數(shù)據(jù)的 。答案:安全性、完整性、并發(fā)控制、恢復(fù)20. 保護(hù)數(shù)據(jù)安全性的一般方法是.答案:設(shè)置用戶標(biāo)識和存取權(quán)限控制21. 數(shù)據(jù)的安全性是指 。 答案:保護(hù)數(shù)據(jù)庫,防止未經(jīng)授權(quán)的,或不合法的使用造成的

16、數(shù)據(jù)泄漏、更改或破壞22. 安全性控制的一般方法有、和視圖的保護(hù)五級安全措施。答案:用戶標(biāo)識鑒定存取控制審計(jì)數(shù)據(jù)加密23. 存取權(quán)限包括兩方面的內(nèi)容,一個(gè)是,另一個(gè)是。答案:要存取的數(shù)據(jù)對象對此數(shù)據(jù)對象進(jìn)行操作的類型24. 和一起組成了安全性系統(tǒng)。答案:授權(quán)編譯系統(tǒng)合法權(quán)檢查機(jī)制25. 是DBMS的基本單位,它是用戶定義的一組邏輯一致的操作序列。答案:事務(wù)26. DBMS的基本工作單位是事務(wù),它是用戶定義的一組邏輯一致的操作序列;并發(fā)控制的主要方法是 機(jī)制。答案:封27. 有兩種基本類型的鎖,它們是 和。答案:共享鎖排它鎖28. 對并發(fā)操作若不加以控制,可能帶來的不一致性有、和。答案:丟失修改

17、不能重復(fù)讀讀“臟”數(shù)據(jù)29. 并發(fā)控制是對用戶的 加以控制和協(xié)調(diào)。答案:并發(fā)操作30. 并發(fā)控制的主要方法是采用 機(jī)制,其類型有 和 兩種。答案:封鎖排它鎖(或X鎖) 共享鎖(或S鎖)31. 若事務(wù)T對數(shù)據(jù)對象 A加了 S鎖,則其他事務(wù)只能對數(shù)據(jù) A再加 ,不能 加 ,直到事務(wù)T釋放A上的鎖。答案:S鎖X鎖32. 若事務(wù)在運(yùn)行過程中,由于種種原因,使事務(wù)未運(yùn)行到正常終止點(diǎn)之間就被撤消,這種情況就稱為。答案:事務(wù)故障 33數(shù)據(jù)庫恢復(fù)是將數(shù)據(jù)庫從狀態(tài)恢復(fù)到的功能。答案:錯(cuò)誤某一已知的正確狀態(tài)34. 系統(tǒng)在運(yùn)行過程中, 由于某種原因,造成系統(tǒng)停止運(yùn)行, 致使事務(wù)在執(zhí)行過程中以非控 制方式終止,這時(shí)內(nèi)

18、存中的信息丟失,而存儲在外存上的數(shù)據(jù)不受影響,這種情況稱為。答案:系統(tǒng)故障35. 系統(tǒng)在運(yùn)行運(yùn)程中,由于某種硬件故障,使存儲在外存上的數(shù)據(jù)部分損失或全部損失,這種情況稱為。答案:介質(zhì)故障36. 數(shù)據(jù)庫系統(tǒng)在運(yùn)行過程中,可能會發(fā)生故障。故障主要有 、介質(zhì)故障和 四類。答案:事務(wù)故障系統(tǒng)故障計(jì)算機(jī)病毒37. 數(shù)據(jù)庫系統(tǒng)在運(yùn)行過程中,可能會發(fā)生各種故障, 其故障對數(shù)據(jù)庫的影響總結(jié)起來有兩 類: 和 。答案:數(shù)據(jù)庫本身被破壞數(shù)據(jù)庫處于不一致狀38. 數(shù)據(jù)庫系統(tǒng)是利用存儲在外存上其他地方的來重建被破壞的數(shù)據(jù)庫。 它主要有兩種: 和 。答案:冗余數(shù)據(jù)后援副本日志文件39. 制作后援副本的過程稱為。它又分為

19、 和 。答案:轉(zhuǎn)儲增量轉(zhuǎn)儲日志文件40. 事務(wù)故障、系統(tǒng)故障的恢復(fù)是由 完成的,介質(zhì)故障是由 完成的。答案:系統(tǒng)自動DBA執(zhí)行恢復(fù)操作過程41. 數(shù)據(jù)庫中數(shù)據(jù)的完整性 包括 、 和。答案:實(shí)體完整性參照完整性用戶自定義的完整性42. 實(shí)體完整性是指在基本表中, 。答案:主屬性不能取空值43. 參照完整性是指在基本表中, 。答案:外碼可以是空值或者另一個(gè)關(guān)系主碼的有效值44. 為了保護(hù)數(shù)據(jù)庫的實(shí)體完整性,當(dāng)用戶程序?qū)χ鞔a進(jìn)行更新使主碼值不惟一時(shí),DBMS就。答案:拒絕此操作45. 在數(shù)據(jù)庫系統(tǒng)中對存取權(quán)限的定義稱為 。答案:授權(quán)46. 在SQL語言中,為了數(shù)據(jù)庫的安全性,設(shè)置了對數(shù)據(jù)的存取進(jìn)行控

20、制的語句,對用戶授權(quán)使用 語句,收回所授的權(quán)限使用語句。答案:GRANT REVOKE四、簡答題1. 試述事務(wù)的概念及事務(wù)的4個(gè)特性。答:事務(wù)是用戶定義的一個(gè)數(shù)據(jù)庫操作序列,這些操作要么全做要么全不做,是一個(gè)不可分割的工作單位。事務(wù)具有 4個(gè)特性:原子性(Atomicity )、一致性(consistency )、隔離性(Isolation )和 持續(xù)性(Durability )。這4個(gè)特性也簡稱為 ACID 特性。原子性:事務(wù)是數(shù)據(jù)庫的邏輯工作單位,事務(wù)中包括的諸操作要么都做,要么都不做。 一致性:事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。 隔離性:一個(gè)事務(wù)的執(zhí)行不能

21、被其他事務(wù)干擾。即一個(gè)事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對其他并發(fā)事務(wù)是隔離的,并發(fā)執(zhí)行的各個(gè)事務(wù)之間不能互相干擾。持續(xù)性:持續(xù)性也稱永久性(Perfnanence ),指一個(gè)事務(wù)一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就應(yīng)該是永久性的。接下來的其他操作或故障不應(yīng)該對其執(zhí)行結(jié)果有任何影響。2. 在數(shù)據(jù)庫中為什么要并發(fā)控制?答:數(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ī)制。3. 并發(fā)操作可能會產(chǎn)生哪幾類數(shù)據(jù)不一致?用什么方法能避免各

22、種不一致的情況?答:并發(fā)操作帶來的數(shù)據(jù)不一致性包括三類:丟失修改(lost update )、不可重復(fù)讀(Non Repeatable Read )和讀"臟'數(shù)據(jù)( Dirty Read )。(I )丟失修改是指兩個(gè)事務(wù)Tl和T2讀入同一數(shù)據(jù)并修改,T2提交的結(jié)果破壞了(覆蓋了) Tl提交的結(jié)果,導(dǎo)致 Tl的修改被丟失。(2 )不可重復(fù)讀是指事務(wù)TI讀取數(shù)據(jù)后,事務(wù) T2執(zhí)行更新操作,使 Tl無法再現(xiàn)前一次讀取結(jié)果。(3 )讀“臟”數(shù)據(jù)是指事務(wù) Tl修改某一數(shù)據(jù),并將其寫回磁盤,事務(wù) T2讀取同一數(shù)據(jù) 后,Tl由于某種原因被撤銷,這時(shí) Tl已修改過的數(shù)據(jù)恢復(fù)原值, T2讀到的

23、數(shù)據(jù)就與數(shù) 據(jù)庫中的數(shù)據(jù)不一致,則 T2讀到的數(shù)據(jù)就為“臟”數(shù)據(jù),即不正確的數(shù)據(jù)。產(chǎn)生上述三類數(shù)據(jù)不一致性的主要原因是并發(fā)操作破壞了事務(wù)的隔離性。并發(fā)控制就是要用正確的方式調(diào)度并發(fā)操作,使一個(gè)用戶事務(wù)的執(zhí)行不受其它事務(wù)的干擾,從而避免造成數(shù)據(jù)的不一致性。并發(fā)控制的主要技術(shù)是封鎖(Llcking )。也可以用其他技術(shù),例如在分布式數(shù)據(jù)庫系統(tǒng)中可以采用時(shí)間戳方法來進(jìn)行并發(fā)控制。4什么是封鎖?基本的封鎖類型有幾種?試述它們的含義。答:封鎖就是事務(wù) T在對某個(gè)數(shù)據(jù)對象例如表、記錄等操作之前,先向系統(tǒng)發(fā)出請求,對 其加鎖。加鎖后事務(wù)T就對該數(shù)據(jù)對象有了一定的控制,在事務(wù) T釋放它的鎖之前,其他的事務(wù)不能

24、更新此數(shù)據(jù)對象。封鎖是實(shí)現(xiàn)并發(fā)控制的一個(gè)非常重要的技術(shù)?;镜墓绱珂i類型有兩種:排它鎖( Exclusive Locks,簡稱x鎖)和共享鎖 (Share Locks,簡稱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做任何

25、修改。5.什么是活鎖?什么是死鎖?答:T.£ThwA. IIA3 IE*JrLock 肚«1riM-k R*V-等持L nb詁«等持AHif如果事務(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的含義是該等待事務(wù)等待時(shí)間太長,似乎被鎖住了,實(shí)際上可能被激活。如果事務(wù)T1封鎖了數(shù)據(jù)R1, T2封鎖了數(shù)據(jù)R2,然后T1又請求封鎖R2, T2已封鎖了 R2,

26、于是等待T2釋放R2上的鎖。接著 T2又申請封鎖 R1,因T1已封鎖R1 , T2也只能等待T1釋放R1上的鎖。這樣就出現(xiàn)了 T1在等待T2,而T2又在等待T1的局面,T1和T2兩 個(gè)事務(wù)永遠(yuǎn)不能結(jié)束,形成死鎖。Tal<Hk<ljick Hi4IL4誓待«Ijm< R,6 .如何預(yù)防死鎖?答:在數(shù)據(jù)庫中,產(chǎn)生死鎖的原因是兩個(gè)或多個(gè)事務(wù)都已封鎖了一些數(shù)據(jù)對象,然后又都請求對已被其他事務(wù)封鎖的數(shù)據(jù)對象加鎖,從而出項(xiàng)死等待。防止死鎖的發(fā)生其實(shí)就是要破壞產(chǎn)生死鎖的條件。預(yù)防死鎖通常有兩種方法:(1) 一次封鎖法一次封鎖法要求每個(gè)事務(wù)必須一次將所有要使用的數(shù)據(jù)全部加鎖,否則就

27、不能繼續(xù)執(zhí)行。一次封鎖法雖然可以有效地防止死鎖的發(fā)生,但也存在問題,一次就將以后要用到的全部數(shù)據(jù)加鎖,勢必?cái)U(kuò)大了封鎖的范圍,從而降低了系統(tǒng)的并發(fā)度。(2) 順序封鎖法順序封鎖法是預(yù)先對數(shù)據(jù)對象規(guī)定一個(gè)封鎖順序,所以事務(wù)都按這個(gè)順序?qū)嵭蟹怄i。順序封鎖法可以有效地防止死鎖,但也同時(shí)存在問題。 事務(wù)的封鎖請求可以隨著事務(wù)的執(zhí)行而動態(tài)地決定,很難事先確定每一個(gè)事務(wù)要封鎖哪些對象,因此也就很難按規(guī)定的順序去施加封鎖??梢?,在操作系統(tǒng)中廣為采用的預(yù)防死鎖的策略并不很適合數(shù)據(jù)庫的特點(diǎn),因此DBMS在解決死鎖的問題上普遍采用的是診斷并解除死鎖的方法。7 請給出檢測死鎖發(fā)生的一種方法,當(dāng)發(fā)生死鎖后如何解除死鎖?

28、答: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ù)。11 .什么樣的并發(fā)調(diào)度是正確的調(diào)度?答:可串行化(Serializable )的調(diào)度是正確的調(diào)度 ???/p>

29、串行化的調(diào)度的定義:多個(gè)事務(wù) 的并發(fā)執(zhí)行是正確的,當(dāng)且僅當(dāng)其結(jié)果與按某一次序串行執(zhí)行它們時(shí)的結(jié)果相同,稱這種調(diào)度策略為可串行化的調(diào)度。8. Tl , T2 , T3是如下的 3個(gè)事務(wù):TI : A : = A + 2 ;T2 : A : = A * 2 ;T3 : A : = A *2 ; ( A <-A*A)設(shè)A的初值為0。(I )若這3個(gè)事務(wù)允許并行執(zhí)行,則有多少可能的正確結(jié)果,請一一列舉出來。Tl答:A的最終結(jié)果可能有2、4、 8、 16。因?yàn)榇袌?zhí)行次序有Tl T2T3、T3T22。、T2T1T3、T2T3T1、T3T1T2、T3T2 Tl。對應(yīng)的執(zhí)行結(jié)果是16、8、4、2、(2

30、 )請給出一個(gè)可串行化的調(diào)度,并給出執(zhí)行結(jié)果 答:T.SkK k A'i = A = 0l圈M AiXhnA Slrrk 1A - Y + 2寫回AC * 2 J爭憐1 Hd 、=鳧=21(Fikwlk Stock. AA Y J1塢冋V - 4)I iM A = = 41 nkdk AA Y弓網(wǎng)帛-I nkudk A最后結(jié)果 A為16,是可串行化的調(diào)度。(3 )請給出一個(gè)非串行化的調(diào)度,并給出執(zhí)行結(jié)果。 答:T,Tiin窩以Is Ar = a = o1;油 rk ASlwk A:Y 4 c 1)XJmi Vt iiLsl Aun ac =2jLw-k VI TilHe 爭待I u A = 2I llkt-k An 1* L hXUi AI = Y K * 2i誓得璋冋( =-4)j警特:A = Y * 2:1 i訕汕A(nku'k A最后結(jié)果 A為0 ,為非串行化的調(diào)度。(4 )若這3個(gè)事務(wù)都遵守兩段鎖協(xié)議,請給出一個(gè)不產(chǎn)生死鎖的可串行化調(diào)度。 答:TiJT2!T,Sluck AY A 0Xkwk AA*! + 2:SLx-LA寫冋.V =2J i帑借A:野將:Y= As=2iXkkA(tJoi-k A竽奇SI net A:A- Y * 2零時(shí):寫回A< “零VfI汕H A導(dǎo)片V = A - 4 :1胡汕A«<k A耳回

溫馨提示

  • 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

提交評論