![數(shù)據(jù)庫并發(fā)控制練習和答案_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/27/8fd647cd-fb22-41d1-9d8e-808c8fdf647e/8fd647cd-fb22-41d1-9d8e-808c8fdf647e1.gif)
![數(shù)據(jù)庫并發(fā)控制練習和答案_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/27/8fd647cd-fb22-41d1-9d8e-808c8fdf647e/8fd647cd-fb22-41d1-9d8e-808c8fdf647e2.gif)
![數(shù)據(jù)庫并發(fā)控制練習和答案_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/27/8fd647cd-fb22-41d1-9d8e-808c8fdf647e/8fd647cd-fb22-41d1-9d8e-808c8fdf647e3.gif)
![數(shù)據(jù)庫并發(fā)控制練習和答案_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/27/8fd647cd-fb22-41d1-9d8e-808c8fdf647e/8fd647cd-fb22-41d1-9d8e-808c8fdf647e4.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、第八章 數(shù)據(jù)庫并發(fā)控制一、選擇題 1 為了防止一個用戶的工作不適當?shù)赜绊懥硪粋€用戶,應該采?。?) 。 A. 完整性控制 B. 訪問控制 C. 安全性控制 D. 并發(fā)控制 2. 解決并發(fā)操作帶來的數(shù)據(jù)不一致問題普遍采用( )技術(shù)。 A. 封鎖 B. 存取控制 C. 恢復 D. 協(xié)商 3 下列不屬于并發(fā)操作帶來的問題是( )。 A. 丟失修改 B. 不可重復讀 C. 死鎖 D. 臟讀 4 DBMS普遍采用( )方法來保證調(diào)度的正確性 。 A. 索引 B. 授權(quán) C. 封鎖 D. 日志 5事務T在修改數(shù)據(jù)R之前必須先對其加X鎖,直到事務結(jié)束才釋放,這是( ) 。 A. 一級封鎖協(xié)議 B. 二級封鎖
2、協(xié)議 C. 三級封鎖協(xié)議 D. 零級封鎖協(xié)議 6 如果事務T獲得了數(shù)據(jù)項Q上的排他鎖,則T對Q( ) 。 A. 只能讀不能寫 B. 只能寫不能讀 C. 既可讀又可寫 D. 不能讀也不能寫 7設事務T1和T2,對數(shù)據(jù)庫中地數(shù)據(jù)A進行操作,可能有如下幾種情況,請問哪一種不會發(fā)生沖突操作( ) 。 A. T1正在寫A,T2要讀A B. T1正在寫A,T2也要寫A C. T1正在讀A,T2要寫A D. T1正在讀A,T2也要讀A 8如果有兩個事務,同時對數(shù)據(jù)庫中同一數(shù)據(jù)進行操作,不會引起沖突的操作是( ) 。 A. 一個是DELETE,一個是SELECT B. 一個是SELECT,一個是DELETE
3、C. 兩個都是UPDATE D. 兩個都是SELECT 9 在數(shù)據(jù)庫系統(tǒng)中,死鎖屬于( )。 A. 系統(tǒng)故障 B. 事務故障 C. 介質(zhì)故障 D. 程序故障 二、簡答題 1. 在數(shù)據(jù)庫中為什么要并發(fā)控制? 答: 數(shù)據(jù)庫是共享資源,通常有許多個事務同時在運行。 當多個事務并發(fā)地存取數(shù)據(jù)庫時就會產(chǎn)生同時讀取和/或修改同一數(shù)據(jù)的情況。若對并發(fā)操作不加控制就可能會存取和存儲不正確的數(shù)據(jù),破壞數(shù)據(jù)庫的一致性。所以數(shù)據(jù)庫管理系統(tǒng)必須提供并發(fā)控制機制。 2. 并發(fā)操作可能會產(chǎn)生哪幾類數(shù)據(jù)不一致?用什么方法能避免各種不一致的情況? 答: 并發(fā)操作帶來的數(shù)據(jù)不一致性包括三類:丟失修改、不可重復讀和讀“臟”數(shù)據(jù)。
4、 (1)丟失修改(Lost Update) 兩個事務T1和T2讀入同一數(shù)據(jù)并修改,T2提交的結(jié)果破壞了(覆蓋了)T1提交的結(jié)果,導致T1的修改被丟失。 (2)不可重復讀(Non-Repeatable Read) 不可重復讀是指事務T1讀取數(shù)據(jù)后,事務T2執(zhí)行更新操作,使T1無法再現(xiàn)前一次讀取結(jié)果。 (3)讀“臟”數(shù)據(jù)(Dirty Read) 讀“臟”數(shù)據(jù)是指事務T1修改某一數(shù)據(jù),并將其寫回磁盤,事務T2讀取同一數(shù)據(jù)后,T1由于某種原因被撤銷,這時T1已修改過的數(shù)據(jù)恢復原值,T2讀到的數(shù)據(jù)就與數(shù)據(jù)庫中的數(shù)據(jù)不一致,則T2讀到的數(shù)據(jù)就為“臟”數(shù)據(jù),即不正確的數(shù)據(jù)。 避免不一致性的方法和技術(shù)就是并發(fā)
5、控制。最常用的并發(fā)控制技術(shù)是封鎖技術(shù)。 也可以用其他技術(shù),例如在分布式數(shù)據(jù)庫系統(tǒng)中可以采用時間戳方法來進行并發(fā)控制。 3. 什么是封鎖? 答: 封鎖就是事務T在對某個數(shù)據(jù)對象例如表、記錄等操作之前,先向系統(tǒng)發(fā)出請求,對其加鎖。加鎖后事務T就對該數(shù)據(jù)對象有了一定的控制,在事務T釋放它的鎖之前,其他的事務不能更新此數(shù)據(jù)對象。 封鎖是實現(xiàn)并發(fā)控制的一個非常重要的技術(shù)。 4. 基本的封鎖類型有幾種?試述它們的含義。 答: 基本的封鎖類型有兩種: 排它鎖(Exclusive Locks,簡稱X鎖) 和共享鎖(Share Locks,簡稱S鎖)。 排它鎖又稱為寫鎖。若事務T對數(shù)據(jù)對象A加上X鎖,則只允許T
6、讀取和修改A,其他任何事務都不能再對A加任何類型的鎖,直到T釋放A上的鎖。這就保證了其他事務在T釋放A上的鎖之前不能再讀取和修改A。 共享鎖又稱為讀鎖。若事務T對數(shù)據(jù)對象A加上S鎖,則事務T可以讀A但不能修改A,其他事務只能再對A加S鎖,而不能加X鎖,直到T釋放A上的S鎖。這就保證了其他事務可以讀A,但在T釋放A上的S鎖之前不能對A做任何修改。 5. 什么是封鎖協(xié)議?不同級別的封鎖協(xié)議的主要區(qū)別是什么? 答: 在運用封鎖技術(shù)對數(shù)據(jù)加鎖時,要約定一些規(guī)則。例如,在運用X鎖和S鎖對數(shù)據(jù)對象加鎖時,要約定何時申請X鎖或S鎖、何時釋放封鎖等。這些約定或者規(guī)則稱為封鎖協(xié)議(Locking Protoco
7、l)。對封鎖方式約定不同的規(guī)則,就形成了各種不同的封鎖協(xié)議。不同級別的封鎖協(xié)議,例如概論中介紹的三級封鎖協(xié)議,三級協(xié)議的主要區(qū)別在于什么操作需要申請封鎖,何時申請封鎖以及何時釋放鎖(即持鎖時間的長短)。 一級封鎖協(xié)議:事務T在修改數(shù)據(jù)R之前必須先對其加X鎖,直到事務結(jié)束才釋放。 二級封鎖協(xié)議:一級封鎖協(xié)議加上事務T在讀取數(shù)據(jù)R之前必須先對其加S鎖,讀完后即可釋放S鎖。 三級封鎖協(xié)議:一級封鎖協(xié)議加上事務T在讀取數(shù)據(jù)R之前必須先對其加S鎖,直到事務結(jié)束才釋放。 6. 不同封鎖協(xié)議與系統(tǒng)一致性級別的關(guān)系是什么? 答: 不同的封鎖協(xié)議對應不同的一致性級別。 一級封鎖協(xié)議可防止丟失修改,并保證事務T是
8、可恢復的。在一級封鎖協(xié)議中,對讀數(shù)據(jù)是不加S鎖的,所以它不能保證可重復讀和不讀“臟”數(shù)據(jù)。 二級封鎖協(xié)議除防止了丟失修改,還可進一步防止讀“臟”數(shù)據(jù)。在二級封鎖協(xié)議中,由于讀完數(shù)據(jù)后立即釋放S鎖,所以它不能保證可重復讀。 在三級封鎖協(xié)議中,無論是讀數(shù)據(jù)還是寫數(shù)據(jù)都加長鎖,即都要到事務結(jié)束時才釋放封鎖。所以三級封鎖協(xié)議除防止了丟失修改和不讀“臟”數(shù)據(jù)外,還進一步防止了不可重復讀。 7. 試述活鎖的產(chǎn)生原因和解決方法。 答: 活鎖產(chǎn)生的原因:當一系列封鎖不能按照其先后順序執(zhí)行時,就可能導致一些事務無限期等待某個封鎖,從而導致活鎖。 避免活鎖的簡單方法是采用先來先服務的策略。當多個事務請求封鎖同一數(shù)
9、據(jù)對象時,封鎖子系統(tǒng)按請求封鎖的先后次序?qū)κ聞张抨?,?shù)據(jù)對象上的鎖一旦釋放就批準申請隊列中第一個事務獲得鎖。 8. 請給出預防死鎖的若干方法。 答: 在數(shù)據(jù)庫中,產(chǎn)生死鎖的原因是兩個或多個事務都已封鎖了一些數(shù)據(jù)對象,然后又都請求已被其他事務封鎖的數(shù)據(jù)加鎖,從而出現(xiàn)死等待。 防止死鎖的發(fā)生其實就是要破壞產(chǎn)生死鎖的條件。預防死鎖通常有兩種方法: (1)一次封鎖法 要求每個事務必須一次將所有要使用的數(shù)據(jù)全部加鎖,否則就不能繼續(xù)執(zhí)行。 (2)順序封鎖法 預先對數(shù)據(jù)對象規(guī)定一個封鎖順序,所有事務都按這個順序?qū)嵭蟹怄i。 不過,預防死鎖的策略不大適合數(shù)據(jù)庫系統(tǒng)的特點。 9. 請給出檢測死鎖發(fā)生的一種方法,當
10、發(fā)生死鎖后如何解除死鎖? 答: 數(shù)據(jù)庫系統(tǒng)一般采用允許死鎖發(fā)生,DBMS檢測到死鎖后加以解除的方法。 DBMS中診斷死鎖的方法與操作系統(tǒng)類似,一般使用超時法或事務等待圖法。 超時法是:如果一個事務的等待時間超過了規(guī)定的時限,就認為發(fā)生了死鎖。超時法實現(xiàn)簡單,但有可能誤判死鎖,事務因其他原因長時間等待超過時限時,系統(tǒng)會誤認為發(fā)生了死鎖。若時限設置得太長,又不能及時發(fā)現(xiàn)死鎖發(fā)生。 DBMS并發(fā)控制子系統(tǒng)檢測到死鎖后,就要設法解除。通常采用的方法是選擇一個處理死鎖代價最小的事務,將其撤消,釋放此事務持有的所有鎖,使其他事務得以繼續(xù)運行下去。當然,對撤銷的事務所執(zhí)行的數(shù)據(jù)修改操作必須加以恢復。 10.
11、 什么樣的并發(fā)調(diào)度是正確的調(diào)度? 答: 可串行化(Serializable)的調(diào)度是正確的調(diào)度。 可串行化的調(diào)度的定義:多個事務的并發(fā)執(zhí)行是正確的,當且僅當其結(jié)果與按某一次序串行地執(zhí)行它們時的結(jié)果相同,我們稱這種調(diào)度策略為可串行化的調(diào)度。 11. 試述兩段鎖協(xié)議的概念。 答: 兩段鎖協(xié)議是指所有事務必須分兩個階段對數(shù)據(jù)項加鎖和解鎖。 · 在對任何數(shù)據(jù)進行讀、寫操作之前,首先要申請并獲得對該數(shù)據(jù)的封鎖; · 在釋放一個封鎖之后,事務不再申請和獲得任何其他封鎖。 “兩段”的含義是,事務分為兩個階段: 第一階段是獲得封鎖,也稱為擴展階段。在這階段,事務可以申請獲得任何數(shù)據(jù)項上的任
12、何類型的鎖,但是不能釋放任何鎖。 第二階段是釋放封鎖,也稱為收縮階段。在這階段,事務釋放已經(jīng)獲得的鎖,但是不能再申請任何鎖。 12. 為什么要引進意向鎖? 意向鎖的含義是什么? 答: 引進意向鎖是為了提高封鎖子系統(tǒng)的效率。該封鎖子系統(tǒng)支持多種封鎖粒度。 原因是:在多粒度封鎖方法中一個數(shù)據(jù)對象可能以兩種方式加鎖顯式封鎖和隱式封鎖。因此系統(tǒng)在對某一數(shù)據(jù)對象加鎖時不僅要檢查該數(shù)據(jù)對象上有無(顯式和隱式)封鎖與之沖突;還要檢查其所有上級結(jié)點和所有下級結(jié)點,看申請的封鎖是否與這些結(jié)點上的(顯式和隱式)封鎖沖突;顯然,這樣的檢查方法效率很低。為此引進了意向鎖。 意向鎖的含義是:對任一結(jié)點加鎖時,必須先對它
13、的上層結(jié)點加意向鎖。 例如事務T要對某個元組加X鎖,則首先要對關(guān)系和數(shù)據(jù)庫加IX鎖。換言之,對關(guān)系和數(shù)據(jù)庫加IX鎖,表示它的后裔結(jié)點某個元組擬(意向)加X鎖。 引進意向鎖后,系統(tǒng)對某一數(shù)據(jù)對象加鎖時不必逐個檢查與下一級結(jié)點的封鎖沖突了。例如,事務T要對關(guān)系R加X鎖時,系統(tǒng)只要檢查根結(jié)點數(shù)據(jù)庫和R本身是否已加了不相容的鎖(如發(fā)現(xiàn)已經(jīng)加了IX,則與X沖突),而不再需要搜索和檢查R中的每一個元組是否加了X鎖或S鎖。 13. 試述常用的意向鎖:IS鎖,IX鎖,SIX鎖,給出這些鎖的相容矩陣。 答: IS鎖 如果對一個數(shù)據(jù)對象加IS鎖,表示它的后裔結(jié)點擬(意向)加S鎖。例如,要對某個元組加S鎖,則要首先對關(guān)系和數(shù)據(jù)庫加IS鎖 IX鎖 如果對一個數(shù)據(jù)對象加IX鎖,表示它的后裔結(jié)點擬(意向)加X鎖。例如,要對某個元組加X鎖,則要首先對關(guān)系和數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年汽車光潔劑項目投資價值分析報告
- 2025至2030年數(shù)字式高解析黑白攝像機項目投資價值分析報告
- 醫(yī)患溝通技巧培訓-第1篇-深度研究
- 2025至2031年中國環(huán)氧樹脂薄涂式地板行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國嬰兒保肺寧膠囊行業(yè)投資前景及策略咨詢研究報告
- 2025年立式雙面研磨機項目可行性研究報告
- 2025年傳真機芯片項目可行性研究報告
- 現(xiàn)代實驗室檢測技術(shù)教育探討
- 日語詞匯在英語中的對應研究-深度研究
- Ruby函數(shù)式編程趨勢-深度研究
- JJG 707-2014扭矩扳子行業(yè)標準
- 2025財年美國國防預算概覽-美國國防部(英)
- 2024年江西省南昌市中考一模數(shù)學試題(含答案)
- 《采暖空調(diào)節(jié)能技術(shù)》課件
- CONSORT2010流程圖(FlowDiagram)【模板】文檔
- 游戲綜合YY頻道設計模板
- arcgis軟件操作解析課件
- 中興ZCTP 5GC高級工程師認證考試題庫匯總(含答案)
- 大學生創(chuàng)新創(chuàng)業(yè)教程PPT全套完整教學課件
- 小學科學項目化作業(yè)的設計與實施研究
- 2020年中考生物試卷及答案
評論
0/150
提交評論