




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第八章并發(fā)控制習題解答和分析1.在數(shù)據(jù)庫中為何要并發(fā)控制答:數(shù)據(jù)庫是共享資源,往常有很多個事務同時在運轉。當多個事務并發(fā)地存取數(shù)據(jù)庫時就會產生同時讀取和/或改正同一數(shù)據(jù)的狀況。若對并發(fā)操作不加控制便可能會存取和儲存不正確的數(shù)據(jù),損壞數(shù)據(jù)庫的一致性。所以數(shù)據(jù)庫管理系統(tǒng)一定供給并發(fā)控制體制。2.并發(fā)操作可能會產生哪幾類數(shù)據(jù)不一致用什么方法能防止各樣不一致的狀況答:并發(fā)操作帶來的數(shù)據(jù)不一致性包含三類:丟掉改正、不行重復讀和讀"臟"數(shù)據(jù)。(1)丟掉改正(LostUpdate)兩個事務T1和T2讀入同一數(shù)據(jù)并改正,T2提交的結果損壞了(覆蓋了)T1提交的結果,致使T1的改正被丟掉。(2)不行重復讀(Non-RepeatableRead)不行重復讀是指事務T1讀取數(shù)據(jù)后,事務T2履行更新操作,使T1沒法再現(xiàn)前一次讀取結果。不行重復讀包含三種狀況:詳見《概論》(P266)。(3)讀"臟"數(shù)據(jù)(DirtyRead)讀"臟"數(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ù)。防止不一致性的方法和技術就是并發(fā)控制。最常用的技術是封閉技術。也能夠用其余技術,比如在散布式數(shù)據(jù)庫系統(tǒng)中能夠采納時間戳方法來進行并發(fā)控制。3.3.什么是封閉答:封閉就是事務T在對某個數(shù)據(jù)對象比如表、記錄等操作以前,先向系統(tǒng)發(fā)出懇求,對其加鎖。加鎖后事務T就對該數(shù)據(jù)對象有了必定的控制,在事務T開釋它的鎖以前,其余的事務不可以更新此數(shù)據(jù)對象。封閉是實現(xiàn)并發(fā)控制的一個特別重要的技術。4.基本的封閉種類有幾種試述它們的含義。答:基本的封閉種類有兩種:排它鎖(ExclusiveLocks,簡稱X鎖)和共享鎖(ShareLocks,簡稱S鎖)。排它鎖又稱為寫鎖。若事務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鎖。這就保證了其余事務可以讀A,但在T開釋A上的S鎖以前不可以對A做任何改正。5.怎樣用封閉體制保證數(shù)據(jù)的一致性答:DBMS在對數(shù)據(jù)進行讀、寫操作以前第一對該數(shù)據(jù)履行封閉操作,比以以下圖中事務T1在對A進行改正以前先對A履行XLock(A),即對A加X鎖。這樣,當T2懇求對A加X鎖時就被拒絕,T2只好等候T1開釋A上的鎖后才能獲取對A的X鎖,這時它讀到的A是T1更新后的值,再按此新的A值進行運算。這樣就不會丟掉T1的更新。DBMS依據(jù)必定的封閉協(xié)議,對并發(fā)操作進行控制,使得多個并發(fā)操作有序地履行,就能夠防止丟掉改正、不行重復讀和讀"臟"數(shù)據(jù)等數(shù)據(jù)不一致性。6.什么是封閉協(xié)議不一樣級其余封閉協(xié)議的主要差別是什么答:在運用封閉技術對數(shù)據(jù)加鎖時,要商定一些規(guī)則。比如,在運用X鎖和S鎖對數(shù)據(jù)對象加鎖時,要商定何時申請X鎖或S鎖、何時開釋封閉等。這些商定或許規(guī)則稱為封閉協(xié)議(lockingProtocol)。對封閉方式商定不一樣的規(guī)則,就形成了各樣不一樣的封閉協(xié)議、不一樣級其余封閉協(xié)議,比如《概論》中介紹的三級封閉協(xié)議,三級協(xié)議的主要差別在于什么操作需要申請封閉,何時申請封閉以及何時開釋鎖(即持鎖時間的長短)。一級封閉協(xié)議:事務T在改正數(shù)據(jù)R以前一定先對其加X鎖,直到事務結束才開釋。二級封閉協(xié)議:一級封閉協(xié)議加上事務T在讀取數(shù)據(jù)R以前一定先對其加S鎖,讀完后即可開釋S鎖。三級封閉協(xié)議:一級封閉協(xié)議加上事務T在讀取數(shù)據(jù)R以前一定先對其加S鎖,直到事務結束才開釋。7.不一樣封閉協(xié)議與系一致致性級其余關系是什么答:不一樣的封閉協(xié)議對應不一樣的一致性級別。一級封閉協(xié)議可防備丟掉改正,并保證事務T是可恢復的。在一級封閉協(xié)議中,對讀數(shù)據(jù)是不加S鎖的,所以它不可以保證可重復讀和不讀"臟"數(shù)據(jù)。二級封閉協(xié)議除防備了丟掉改正,還可進一步防備讀"臟"數(shù)據(jù)。在二級封閉協(xié)議中,因為讀完數(shù)據(jù)后立刻開釋S鎖,所以它不可以保證可重復讀。在三級封閉協(xié)議中,不論是讀數(shù)據(jù)仍是寫數(shù)據(jù)都加長鎖,即都要到事務結束才開釋封鎖。所以三級封閉協(xié)議除防備了丟掉改正和不讀"臟"數(shù)據(jù)外,還進一步防備了不行重復讀。下邊的表格清楚地說了然封閉協(xié)議與系一致致性的關系。X鎖S鎖一致性保證操作結事務結操作結事務結不丟掉不讀"臟"可重束束束束改正數(shù)據(jù)復讀開釋開釋開釋開釋一級封閉協(xié)√√議二級封閉協(xié)√√√√議三級封閉協(xié)√√√√√議8.什么是活鎖什么是死鎖答:TI
T2
T3
T4lockR
.
.
..
lockR
.
..
等候
lockR
.Unlock.....
等候等候等候等候等候等候
...Unlock..
等候等候等候lockR.
lockR假如事務T1封閉了數(shù)據(jù)R,事務T2飛又懇求封閉R,于是T2等候。T3也懇求封閉R,當T1開釋了R上的封閉以后系統(tǒng)第一同意了T3的懇求,T2仍舊等候。而后T4又懇求封閉R,當T3開釋了R上的封閉以后系統(tǒng)又同意了T4的懇求T2有可能永久等候,這就是活鎖的情況?;铈i的含義是該等候事務等候時間太長,仿佛被鎖住了,實質上可能被激活。假如事務Tl封閉了數(shù)據(jù)R1,T2封閉了數(shù)據(jù)R2,而后T1又懇求封閉R2,因T2已封閉了R2,于是T1等候T2開釋R2上的鎖。接著T2又申請封閉R1,因T1已封閉了R1,T2也只好等待T1開釋Rl上的鎖。這樣就出現(xiàn)了T1在等候T2,而T2又在等候Tl的場面,T1和T2兩個事務永久不可以結束,形成死鎖。T1
T2lockR1
...lockR2
lockR2..等候等候等候
.lockR1等候9.試述活鎖的產生原由和解決方法。答:活鎖產生的原由:當一系列封閉不可以依據(jù)其先后次序履行時,便可能致使一些事務無窮期等候某個封閉,進而致使活鎖。防止活鎖的簡單方法是采納先來先服務的策略。當多個事務懇求封閉同一數(shù)據(jù)對象時封閉子系統(tǒng)按懇求封閉的先后序次對事務排隊,數(shù)據(jù)對象上的鎖一旦開釋就同意申請行列中第一個事務獲取鎖。10.請給出預防死鎖的若干方法。答:在數(shù)據(jù)庫中,產存亡鎖的原由是兩個或多個事務都已封閉了一些數(shù)據(jù)對象,而后又都
,T1T2T3、T1T3T2、T2T1T3、T2T3T1、T3T1T2、T3T2T1。16、8、4、2、4、2。懇求已被其余事務封閉的數(shù)據(jù)加鎖,進而出現(xiàn)死等候。防備死鎖的發(fā)生其實就是要損壞產存亡鎖的條件。預防死鎖往常有兩種方法:(1)一次封閉法,要求每個事務一定一次將所有要使用的數(shù)據(jù)所有加鎖,不然就不可以持續(xù)履行;(2)次序封閉法,早先對數(shù)據(jù)對象規(guī)定一個封閉次序,所有事務都按這個次序推行封閉??墒?預防死鎖的策略不大合適數(shù)據(jù)庫系統(tǒng)的特色,詳細原由可拜見《概論》。11.請給出檢測死鎖發(fā)生的一種方法,當發(fā)存亡鎖后怎樣排除死鎖答:數(shù)據(jù)庫系一致般采納同意死鎖發(fā)生,DBMS檢測到死鎖后加以排除的方法。DBMS中診療死鎖的方法與操作系統(tǒng)近似,一般使用超時法或事務等候圖法。超時法是:假如一個事務的等候時間超出了規(guī)定的時限,就以為發(fā)生了死鎖。超時法實現(xiàn)簡單,但有可能誤判死鎖,事務因其余原由長時間等候超出時限時,系統(tǒng)會誤以為發(fā)生了死鎖。若時限設置得太長,又不可以實時發(fā)現(xiàn)死鎖發(fā)生。DBMS并發(fā)控制子系統(tǒng)檢測到死鎖后,就要想法排除。往常采納的方法是選擇一個辦理死鎖代價最小的事務,將其取消,開釋此事務擁有的所有鎖,使其余事務得以持續(xù)運轉下去。自然,對撤除的事務所履行的數(shù)據(jù)改正操作一定加以恢復。12.什么樣的并發(fā)調動是正確的調動答:可串行化(Sertalizable)的調動是正確的調動??纱谢恼{動的定義:多個事務的并發(fā)履行是正確的,當且僅當其結果與按某一序次串行履行它們時的結果同樣,稱這類調動策略為可串行化的調動。13.設T1,T2,T3是以下的3個事務:T1:A:=A+2;T2:A:=A*2;T3:A:=A**2;設A的初值為0。(1)若這3個事務同意并行履行,則有多少可能的正確結果,請一一列舉出來。答:A的最后結果可能有2、4、8、16。因為串行履行序次有對應的履行結果是(2)請給出一個可串行化的調動,并給出履行結果答:T1
T2
T3slockAY=A=OUnlockAXlockASlockAA=Y+2寫回A(=2)
等候等候UnlockA
等候Y=A=2UnlockAXlockASlockAA=Y*2
等候寫回A(=4)UnlockA
等候等候Y=A=4UnlockAXlockA寫回
A(=16)UnlockA最后結果A為16,是可串行化的調動。(3)請給出一個非串行化的調動,并給出履行結果。答:T1
T2
T3SlockAY=A=0UnlockASlockAY=A=0XlockA等候
UnlockAA=Y+2寫回
A(=2)
SlockAUnlockA
等候Y=A=2UnlockAXlockAXlockA等候
A=Y**2等候
寫回
A(=4)等候
UnlockAA=Y*2寫回
A(=0)UnlockA最后結果
A為
0,
為非串行化的調動。(4)若這3個事務都恪守兩段鎖協(xié)議,請給出一個不產存亡鎖的可串行化調動。答:T1T2T3SlockAY=A=OXlockAA=Y+2SlockA寫回A(=2)等候UnlockA等候Y=A=2XlockA等候
SlockAA=Y*2寫回A(=4)UnlockA
等候等候等候Y=A=4XlockAA=Y**2寫回
A(=16)UnlockA(5)若這
3個事務都恪守兩段鎖協(xié)議
,請給出一個產存亡鎖的調動。答:T1
T2
T3SlockAY=A=0SlockAY=A=0XlockA等候XlockA等候SlockAY=A=0XlockA等候14.試述兩段鎖協(xié)議的觀點。答:兩段鎖協(xié)議是指所有事務一定分兩個階段對數(shù)據(jù)項加鎖和解鎖。在對任何數(shù)據(jù)進行讀、寫操作以前,第一要申請并獲取對該數(shù)據(jù)的封閉;在開釋一個封閉以后,事務不再申請和獲取任何其余封閉。兩段"的含義是,事務分為兩個階段:第一階段是獲取封閉,也稱為擴展階段,在這階段,事務能夠申請獲取任何數(shù)據(jù)項上的任何種類的鎖,可是不可以釋聽任何鎖;第二階段是開釋封閉,也稱為縮短階段,在這階段,事務開釋已經(jīng)獲取的鎖,可是不可以再申請任何鎖。15.試證明,若并發(fā)事務恪守兩段鎖協(xié)議,則對這些事務的并發(fā)調動是可串行化的。證明:第一以兩個并發(fā)事務T1和T2為例,存在多個并發(fā)事務的情況能夠類推。依據(jù)可串行化定義可知,事務不行串行化只可能發(fā)生在以下兩種狀況:(1)事務T1寫某個數(shù)據(jù)對象A,T2讀或寫A;(2)事務Tl讀或寫某個數(shù)據(jù)對象A,T2寫A。下邊稱A為潛伏矛盾對象。設T1和T2接見的潛伏矛盾的公共對象為不失一般性,假定這組潛伏矛盾對象中
{A1,A2,,An}。X={A1,A2,,Ai}均切合狀況
(1)。Y={Ai+1,,An}切合所狀況(2)。xX,T1需要
X1ockx
①T2需要Slockx或Xlockx②1)1)假如操作①先履行,則T1獲取鎖,T2等候因為恪守兩段鎖協(xié)議,T1在成功獲取X和Y中所有對象及非潛伏矛盾對象的鎖后,才會釋放鎖。這時假如wX或Y,T2已獲取w的鎖,則出
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國書架子數(shù)據(jù)監(jiān)測研究報告
- 創(chuàng)新菜品考試題及答案
- 2019-2025年消防設施操作員之消防設備基礎知識考前沖刺模擬試卷A卷含答案
- 2019-2025年消防設施操作員之消防設備基礎知識考前沖刺模擬試卷A卷含答案
- 2019-2025年軍隊文職人員招聘之軍隊文職教育學通關題庫(附答案)
- 2020年遼寧省沈陽市中考道德與法治試卷(含答案)
- 采購與質量分包合同(2篇)
- 高等教育自學考試《00102世界市場行情》模擬試卷三
- 2025年全國碩士研究生考試《管理類聯(lián)考綜合能力》模擬試卷一
- 2025年法制宣傳日普法知識競賽題庫及答案(二)
- 2025年部編教材對道德與法治的啟示心得體會
- 《預算編制要點講解》課件
- 2025年交管12123學法減分試題庫附參考答案
- 2025年360億方智能航空AI白皮書-愛分析
- 2025(人教版)音樂三年級下冊全冊教案及教學設計
- 福建省廈門市第一中學2023-2024學年高二上學期開學考試英語試題(解析版)
- 2025年山東新華書店集團限公司臨沂市縣分公司招聘錄取人員高頻重點提升(共500題)附帶答案詳解
- 宮頸癌篩查與預防:2025年健康教育
- 2025年極兔速遞有限公司招聘筆試參考題庫含答案解析
- 酒店資產管理制度
- 公司綠色可持續(xù)發(fā)展規(guī)劃報告
評論
0/150
提交評論