![并發(fā)控制課件_第1頁](http://file4.renrendoc.com/view/87c7d36d63b775906d5179ca82b4f7d6/87c7d36d63b775906d5179ca82b4f7d61.gif)
![并發(fā)控制課件_第2頁](http://file4.renrendoc.com/view/87c7d36d63b775906d5179ca82b4f7d6/87c7d36d63b775906d5179ca82b4f7d62.gif)
![并發(fā)控制課件_第3頁](http://file4.renrendoc.com/view/87c7d36d63b775906d5179ca82b4f7d6/87c7d36d63b775906d5179ca82b4f7d63.gif)
![并發(fā)控制課件_第4頁](http://file4.renrendoc.com/view/87c7d36d63b775906d5179ca82b4f7d6/87c7d36d63b775906d5179ca82b4f7d64.gif)
![并發(fā)控制課件_第5頁](http://file4.renrendoc.com/view/87c7d36d63b775906d5179ca82b4f7d6/87c7d36d63b775906d5179ca82b4f7d65.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
7.5并發(fā)控制第7章數(shù)據(jù)庫保護技術(shù)1主要內(nèi)容數(shù)據(jù)庫并發(fā)操作帶來的數(shù)據(jù)不一致問題鎖鎖協(xié)議封鎖帶來的問題:活鎖和死鎖并發(fā)操作的調(diào)度2并發(fā)控制數(shù)據(jù)庫是一個可以供多個用戶共同使用的共享資源。串行訪問,每個時刻只能有一個用戶應(yīng)用程序?qū)?shù)據(jù)庫進行存取,其它用戶程序必須等待。缺點:制約數(shù)據(jù)庫訪問效率的瓶頸,不利于數(shù)據(jù)庫資源的利用。并行訪問,通過并發(fā)控制機制允許多個用戶并發(fā)地訪問數(shù)據(jù)庫。37.5.1DB并發(fā)操作帶來的數(shù)據(jù)不一致問題例7.16在一個飛機訂票系統(tǒng)中,可能會出現(xiàn)的業(yè)務(wù):(1)甲售票點讀航班X的機票余額數(shù)為A=25;(2)緊接著,乙售票點讀同一航班X的機票余額數(shù)A=25;(3)甲售票點賣出一張機票,然后修改機票余額數(shù)A=A-1為24,并把A寫回數(shù)據(jù)庫;(4)乙售票點也賣出一張機票,同樣接著修改機票余額數(shù)A=A-1為24,并把A寫回數(shù)據(jù)庫。設(shè)甲售票點對應(yīng)于事務(wù)T1,乙售票點對應(yīng)于事務(wù)T2,則上述事務(wù)過程的描述如圖5時間T1T2DB中的A值t025t1read(A)t2read(A)t3A:=A-1t4write(A)t524t6A:=A-1t7write(A)t824丟失修改(1)丟失修改6時間T1T2DB中的A值t025t1read(A)t2read(A)t3A:=A-10t4write(A)t515讀過時數(shù)據(jù)(2)讀過時數(shù)據(jù)7DB并發(fā)操作帶來的三類數(shù)據(jù)不一致問題并發(fā)操作可能帶來的數(shù)據(jù)不一致性情況有三種(1)丟失修改(2)讀過時數(shù)據(jù)(3)讀“臟”數(shù)據(jù)9產(chǎn)生原因:
并發(fā)操作破壞了事務(wù)的隔離性并發(fā)控制就是要通過正確的調(diào)度方式,使一個用戶事務(wù)的執(zhí)行不受其它事務(wù)的干擾,從而避免造成數(shù)據(jù)的不一致性。DB并發(fā)操作帶來的三類數(shù)據(jù)不一致問題107.5.2鎖定義鎖是防止存取同一資源的用戶之間出現(xiàn)不正確地修改數(shù)據(jù)或不正確地更改數(shù)據(jù)結(jié)構(gòu)的一種機制。基本的鎖方式有二種:排它鎖(ExclusiveLocks,簡記為X鎖)共享鎖(ShareLocks,簡記為S鎖)
11(2)共享鎖(S鎖)當(dāng)某個事務(wù)T希望阻止其它事務(wù)修改正為它讀取的某個數(shù)據(jù)項A時,則該事務(wù)可以對A加共享鎖,共享鎖又稱為讀鎖。本事務(wù):讀A,不能修改A其它事務(wù):加S鎖讀A,在T釋放A上S鎖之前不能修改A13SX-S×X××S鎖和X鎖的共存相容矩陣147.5.3鎖協(xié)議當(dāng)一個事務(wù)T要對某個項加鎖時,還必須遵守某種規(guī)則,比如在什么條件下可以申請S鎖或X鎖,持鎖時間如何確定、何時釋放鎖等。一般稱這些規(guī)則為鎖協(xié)議(LockingProtocol)。對加鎖方式規(guī)定不同的規(guī)則,就形成了不同的鎖協(xié)議。不正確的并發(fā)操作可能帶來的丟失修改、讀過時數(shù)據(jù)和讀“臟”數(shù)據(jù)等不一致性問題,三級鎖協(xié)議在不同程度上可以解決這些問題。15事務(wù)T要修改數(shù)據(jù)R:申請加X鎖?等待加X鎖YNT結(jié)束釋放X鎖(1)一級鎖協(xié)議本事務(wù):讀R,修改R;用COMMIT和ROLLBACK釋放X鎖其它事務(wù):在T結(jié)束前不能讀R,也不能修改R
作用:防止丟失修改17(2)二級鎖協(xié)議二級鎖協(xié)議除包括一級鎖協(xié)議的內(nèi)容外,還包括如下規(guī)則:事務(wù)T在讀數(shù)據(jù)R之前必須先對數(shù)據(jù)R所在的項申請加S鎖,在獲得了S加鎖后,讀完數(shù)據(jù)R后即可釋放所加的S鎖。如果未獲準加S鎖,則該事務(wù)T進入等待狀態(tài),直到獲準S加鎖后該事務(wù)才繼續(xù)執(zhí)行。18事務(wù)T要讀數(shù)據(jù)R:申請加S鎖?等待加S鎖讀數(shù)據(jù)YN釋放S鎖(2)二級鎖協(xié)議一級鎖協(xié)議+本事務(wù):讀R,不能修改R;用UNLOCK釋放S鎖(不需等T結(jié)束)
其它事務(wù):可加S鎖讀R,不能修改R
作用:防止丟失修改,防止讀“臟”數(shù)據(jù)19事務(wù)T要讀數(shù)據(jù)R:申請加S鎖?等待加S鎖讀數(shù)據(jù)YNT結(jié)束釋放S鎖(3)三級鎖協(xié)議一級鎖協(xié)議+
本事務(wù):讀R,不能修改R;用COMMIT和ROLLBACK釋放其它事務(wù):可加S鎖讀R,不能修改R
作用:防止丟失修改,防止讀“臟”數(shù)據(jù),防止讀過時數(shù)據(jù)217.5.4封鎖帶來的問題(1)活鎖如果事務(wù)T1封鎖了數(shù)據(jù)R,事務(wù)T2又請求封鎖R,于是T2等待,T3也請求封鎖R,當(dāng)T1釋放了R上的封鎖之后,系統(tǒng)首先批準了T3的請求,T2仍然等待,然后T4又請求封鎖R,當(dāng)T3釋放了R上的封鎖之后,系統(tǒng)又批準了T4的請求,T2繼續(xù)等待,……,如此下去,T2有可能永遠等待。這種可能存在某個事務(wù)永遠處于等待狀態(tài)、得不到封鎖的機會的現(xiàn)象,稱為活鎖。解決方法:先來者先執(zhí)行。22T1T2①②④③(2)死鎖兩個或兩個以上的事務(wù)都處于等待狀態(tài),每個事務(wù)都在等待其中另一個事務(wù)解除封鎖,它才能繼續(xù)執(zhí)行下去,結(jié)果任何一個事務(wù)都無法繼續(xù)執(zhí)行,這種現(xiàn)象稱為死鎖。23(3)死鎖的預(yù)防(OS)②順序加鎖法預(yù)先對數(shù)據(jù)項規(guī)定一個加鎖順序,所有事務(wù)都按這個順序進行加鎖。缺點:很難按規(guī)定的順序進行加鎖。25(4)死鎖的檢測與解除1)超時法如果一個事務(wù)的等待時間超過了規(guī)定的時限,就認為發(fā)生了死鎖。優(yōu)點:實現(xiàn)簡單缺點:有可能誤判死鎖若時限設(shè)置的太長,可能出現(xiàn)死鎖發(fā)生后不能及時發(fā)現(xiàn)的情況。26(4)死鎖的檢測與解除2)有向等待圖法①檢測死鎖②解除死鎖選擇一個處理死鎖代價最小的事務(wù),將其撤消,釋放它持有的所有鎖。297.5.5并發(fā)調(diào)度的可串行性通常情況下,如果一個事務(wù)在執(zhí)行過程中沒有與其它事務(wù)并發(fā)運行,也就是說該事務(wù)的執(zhí)行沒有受到其它事務(wù)干擾時,就認為該事務(wù)的運行結(jié)果是正常的或者是預(yù)想的。也就是說,當(dāng)多個事務(wù)串行執(zhí)行時,各事務(wù)的運行結(jié)果一定是正確的。因此,僅當(dāng)幾個事務(wù)的并發(fā)運行結(jié)果與這些事務(wù)按某一次序串行運行的結(jié)果相同時,這樣的并發(fā)操作才是正確的。307.5.5并發(fā)調(diào)度的可串行性通常把按某一執(zhí)行次序安排的事務(wù)執(zhí)行的步驟稱為調(diào)度(Schedule)。多個事務(wù)的并發(fā)執(zhí)行是正確的,當(dāng)且僅當(dāng)其結(jié)果與按某一順序串行地執(zhí)行它們時的結(jié)果相同。稱這種調(diào)度稱為可串行化(Serializable)調(diào)度??纱行裕⊿erializability)是并發(fā)事務(wù)正確性的判別準則。按照這個準則的規(guī)定,一個給定的并發(fā)調(diào)度,當(dāng)且僅當(dāng)它可串行化時,才認為是正確的調(diào)度。317.5.5并發(fā)調(diào)度的可串行性示例事務(wù)T1:從賬號A將數(shù)量為100的款項轉(zhuǎn)到賬號B;事務(wù)T2:從賬號B將20%的款項轉(zhuǎn)到賬號C。假設(shè)A、B和C的初值分別為600、300和100。32(a)(b)T2Read(A) A:=A-100Write(A)Read(B) B:=B+100Write(B) Read(B) Temp:=B*0.2B:=B-tempWrite(B)Read(C) C:=C+tempWrite(C)Read(B)Temp:=B*0.2B:=B-tempWrite(B)Read(C) C:=C+tempWrite(C)Read(A)A:=A-100Write(A)Read(B)B:=B+100Write(B)T2T1T1正確的并發(fā)調(diào)度33T1T2T1T2Read(A) A:=A-100Write(A) Read(B)Temp:=B*0.2B:=B-tempWrite(B)Read(B) B:=B+100Write(B) Read(C)C:=C+tempWrite(C)Read(A)A:=A-100Write(A)Read(B)B:=B+100Write(B)Read(B)Temp:=B*0.2B:=B-tempWrite(B)Read(C) C:=C+tempWrite(C)(c)(d)正確的.vs.錯誤的并發(fā)調(diào)度347.5.6兩段鎖協(xié)議DBMS普遍采用加鎖方法實現(xiàn)并發(fā)操作調(diào)度的可串行性,從而保證調(diào)度的正確性。兩段鎖(Two-PhaseLocking,簡稱2PL)協(xié)議就是保證并發(fā)調(diào)度可串行性的鎖協(xié)議。①規(guī)則在每一個事務(wù)中,所有的加鎖語句都在解鎖語句之前。357.5.6兩段鎖協(xié)議加鎖段(擴展階段):事務(wù)可以申請獲得任何數(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湘教版地理八年級下冊第一節(jié)《四大地理區(qū)域的劃分》聽課評課記錄
- 北京課改版歷史七年級上冊第1課《中國境內(nèi)的遠古人類》聽課評課記錄
- 小學(xué)二年級數(shù)學(xué)口算題上冊三
- 聽評課記錄小學(xué)五年級英語
- 婚姻財產(chǎn)約定協(xié)議書范本
- 中央空調(diào)系統(tǒng)節(jié)能環(huán)保改造協(xié)議書范本
- 2025年度綠植花卉租賃與酒店客房裝飾服務(wù)合同
- 2025年度環(huán)保項目銀行擔(dān)保合同
- 2025年度教育培訓(xùn)咨詢合同
- 湘教版數(shù)學(xué)八年級上冊3.3《實數(shù)的分類及性質(zhì)》聽評課記錄1
- 2024-2025學(xué)年冀教版數(shù)學(xué)五年級上冊期末測試卷(含答案)
- 商業(yè)綜合體市場調(diào)研報告
- 資源枯竭型城市的轉(zhuǎn)型發(fā)展 課件 2024-2025學(xué)年高二上學(xué)期地理人教版選擇性必修2
- 少兒素描課件
- 2025屆河北省衡水市衡水中學(xué)高考仿真模擬英語試卷含解析
- 天津市部分區(qū)2023-2024學(xué)年高二上學(xué)期期末考試 生物 含解析
- 變壓器投標(biāo)書-技術(shù)部分
- 《我國跨境電子商務(wù)消費者權(quán)益保護問題研究》
- 2024九省聯(lián)考適應(yīng)性考試【甘肅省】歷史試卷及答案解析
- 四年級語文下冊第六單元【集體備課】(教材解讀+教學(xué)設(shè)計)
- 小學(xué)一年級數(shù)學(xué)思維訓(xùn)練100題(附答案)
評論
0/150
提交評論