數(shù)據(jù)庫原理與應(yīng)用快速入門 課件 7.2 關(guān)于并發(fā)控制_第1頁
數(shù)據(jù)庫原理與應(yīng)用快速入門 課件 7.2 關(guān)于并發(fā)控制_第2頁
數(shù)據(jù)庫原理與應(yīng)用快速入門 課件 7.2 關(guān)于并發(fā)控制_第3頁
數(shù)據(jù)庫原理與應(yīng)用快速入門 課件 7.2 關(guān)于并發(fā)控制_第4頁
數(shù)據(jù)庫原理與應(yīng)用快速入門 課件 7.2 關(guān)于并發(fā)控制_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫原理與應(yīng)用快速入門7.1關(guān)于事務(wù)7.2關(guān)于并發(fā)控制第7章

了解事務(wù)管理7.2.1了解并發(fā)控制的概念7.2.2了解封鎖的基本原理7.2.3了解封鎖技術(shù)7.2關(guān)于并發(fā)控制7.2.1了解并發(fā)控制的概念并發(fā)是數(shù)據(jù)庫技術(shù)中一個非常重要的概念,數(shù)據(jù)庫系統(tǒng)往往要考慮怎樣解決并發(fā)操作帶來的數(shù)據(jù)的不一致性問題。一般來說,并發(fā)操作帶來的數(shù)據(jù)不一致性包括三類:丟失修改、不可重復(fù)讀和讀“臟”數(shù)據(jù)。7.2.1了解并發(fā)控制的概念7.2.1了解并發(fā)控制的概念1、丟失修改(LostUpdate)兩個事務(wù)T1和T2讀入同一數(shù)據(jù)并修改,T2提交的結(jié)果破壞了T1提交的結(jié)果,導(dǎo)致T1的修改被丟失,如圖7-9(a)所示。上面飛機訂票例子就屬于此類。2、不可重復(fù)讀(Non-RepeatableRead)不可重復(fù)讀是指事務(wù)T1讀數(shù)據(jù)后,事務(wù)T2執(zhí)行更新操作,使T1無法再現(xiàn)前一次讀取結(jié)果,如圖7-9(b)所示。7.2.1了解并發(fā)控制的概念3、讀“臟”數(shù)據(jù)(DirtyRead)讀“臟”數(shù)據(jù)是指事務(wù)T1修改某一數(shù)據(jù),并將其寫回磁盤,事務(wù)T2讀取同一數(shù)據(jù)后,T1由于某種原因被撤消,這時T1已修改過的數(shù)據(jù)恢復(fù)原值,T2讀到的數(shù)據(jù)就與數(shù)據(jù)庫中的數(shù)據(jù)不一致,則T2讀到的數(shù)據(jù)就為“臟”數(shù)據(jù),即不正確的數(shù)據(jù),如圖7-9(c)所示。7.2.1了解并發(fā)控制的概念3、讀“臟”數(shù)據(jù)(DirtyRead)讀“臟”數(shù)據(jù)是指事務(wù)T1修改某一數(shù)據(jù),并將其寫回磁盤,事務(wù)T2讀取同一數(shù)據(jù)后,T1由于某種原因被撤消,這時T1已修改過的數(shù)據(jù)恢復(fù)原值,T2讀到的數(shù)據(jù)就與數(shù)據(jù)庫中的數(shù)據(jù)不一致,則T2讀到的數(shù)據(jù)就為“臟”數(shù)據(jù),即不正確的數(shù)據(jù),如圖7-9(c)所示。7.2.1了解并發(fā)控制的概念產(chǎn)生上述三類數(shù)據(jù)不一致性的原因是并發(fā)操作破壞了事務(wù)的隔離性。并發(fā)控制就是要用正確的方式調(diào)度并發(fā)操作,使一個用戶事務(wù)的執(zhí)行不受其他事務(wù)的干擾,從而避免造成數(shù)據(jù)的不一致性。7.2.2了解封鎖的基本原理封鎖是實現(xiàn)并發(fā)控制的一個非常重要的技術(shù)。所謂封鎖就是事務(wù)T在對某個數(shù)據(jù)對象例如表、記錄等操作之前,先向系統(tǒng)發(fā)出請求,對其加鎖。加鎖后事務(wù)T就對該數(shù)據(jù)對象有了一定的控制,在事務(wù)T釋放它的鎖之前,其他的事務(wù)不能更新此數(shù)據(jù)對象。7.2.2了解封鎖的基本原理基本的封鎖類型有兩種:排它鎖(ExclusiveLocks,簡稱X鎖)共享鎖(ShareLocks,簡稱S鎖)。7.2.2了解封鎖的基本原理排它鎖又稱為寫鎖。若事務(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做任何修改。7.2.3了解封鎖技術(shù)使用封鎖技術(shù)能解決了因并發(fā)操作引發(fā)的問題,為并發(fā)操作的正確調(diào)度提供一定的保證。就針對上面我們所說的飛機訂票活動所出現(xiàn)的問題,采用封鎖技術(shù)來解決丟失修改:封鎖技術(shù)要求每個事務(wù)在修改某對象時都必須先對該數(shù)據(jù)封鎖。如圖7-10,佛山售票點在讀取和修改A之前先對A加X鎖,當(dāng)廣州售票點因為要讀取和修改A而請求加鎖時被拒絕,廣州售票點只能等待,等到佛山售票點釋放A上的鎖后,它才獲得對A的X鎖,這時它讀到的A已經(jīng)是佛山售票點更新過的值19,再按此新的A值進(jìn)行運算A-1=18,并將結(jié)果值A(chǔ)=18送回到磁盤。這樣就避免了丟失佛山售票點的更新。7.2.3了解封鎖技術(shù)7.2.3了解封鎖技術(shù)我們知道,對并發(fā)操作的不正確調(diào)度可能會帶來丟失修改、不可復(fù)讀和讀“臟”數(shù)據(jù)等不一致性問題,而上例我們只是簡單地講了一下使用封鎖技術(shù)解決丟失修改的過程,目的是讓讀者了解封鎖的基本原理。當(dāng)然,而有不可

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論