數(shù)據(jù)庫系統(tǒng)11.ppt_第1頁
數(shù)據(jù)庫系統(tǒng)11.ppt_第2頁
數(shù)據(jù)庫系統(tǒng)11.ppt_第3頁
數(shù)據(jù)庫系統(tǒng)11.ppt_第4頁
數(shù)據(jù)庫系統(tǒng)11.ppt_第5頁
已閱讀5頁,還剩87頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫系統(tǒng)概論 An Introduction to Database System 第十一章 并發(fā)控制,DBMS功能總結(jié),創(chuàng)建數(shù)據(jù)庫 創(chuàng)建表 創(chuàng)建支持結(jié)構(gòu)(如索引) 讀取數(shù)據(jù)庫數(shù)據(jù) 更新(插入、修改或刪除)數(shù)據(jù)庫數(shù)據(jù) 維護(hù)數(shù)據(jù)庫結(jié)構(gòu) 執(zhí)行規(guī)則、并發(fā)控制、提供安全性 執(zhí)行備份和恢復(fù),第十一章 并發(fā)控制,11.1 并發(fā)控制概述 11.2 封鎖 11.3 封鎖協(xié)議 11.4 活鎖和死鎖 11.5 并發(fā)調(diào)度的可串行性 11.6 兩段鎖協(xié)議 11.7 封鎖的粒度,事務(wù)并發(fā)執(zhí)行帶來的問題,可能會(huì)存取和存儲(chǔ)不正確的數(shù)據(jù),破壞事務(wù)的隔離性和數(shù)據(jù)庫的一致性 DBMS必須提供并發(fā)控制機(jī)制 并發(fā)控制機(jī)制是衡量一個(gè)

2、DBMS性能的重要標(biāo)志之一,11.1 并發(fā)控制概述,并發(fā)控制保證一個(gè)用戶的工作不會(huì)對另一個(gè)用戶的工作產(chǎn)生不合理的影響。 并發(fā)控制的核心是數(shù)據(jù)訪問性。在極端的情況下,一旦有一個(gè)用戶訪問數(shù)據(jù),數(shù)據(jù)被鎖定不能訪問。這能保證數(shù)據(jù)是最新的。 通常情況下,數(shù)據(jù)是可訪問的,即使數(shù)據(jù)在更新時(shí)。,1. 并發(fā)控制的任務(wù),對并發(fā)操作進(jìn)行正確調(diào)度 保證事務(wù)的隔離性 保證數(shù)據(jù)庫的一致性,2. 并發(fā)操作帶來的數(shù)據(jù)不一致性,丟失修改(lost update) 不可重復(fù)讀(non-repeatable read) 讀“臟”數(shù)據(jù)(dirty read),(1). 丟失修改,丟失修改是指事務(wù)1與事務(wù)2從數(shù)據(jù)庫中讀入同一數(shù)據(jù)并修改

3、,事務(wù)2的提交結(jié)果破壞了事務(wù)1提交的結(jié)果,導(dǎo)致事務(wù)1的修改被丟失。,T1的修改被T2覆蓋了!,(2) 不可重復(fù)讀,不可重復(fù)讀是指事務(wù)1讀取數(shù)據(jù)后,事務(wù)2執(zhí)行更新操作,使事務(wù)1無法再現(xiàn)前一次讀取結(jié)果。,(2) 不可重復(fù)讀,三類不可重復(fù)讀,事務(wù)1讀取某一數(shù)據(jù)后: 1. 事務(wù)2對其做了修改,當(dāng)事務(wù)1再次讀該數(shù)據(jù)時(shí),得到與前一次不同的值。 2. 事務(wù)2刪除了其中部分記錄,當(dāng)事務(wù)1再次讀取數(shù)據(jù)時(shí),發(fā)現(xiàn)某些記錄神密地消失了。 3. 事務(wù)2插入了一些記錄,當(dāng)事務(wù)1再次按相同條件讀取數(shù)據(jù)時(shí),發(fā)現(xiàn)多了一些記錄。 后兩種不可重復(fù)讀有時(shí)也稱為幻影現(xiàn)象(phantom row),(2) 不可重復(fù)讀(按相同的條件讀),

4、(2) 不可重復(fù)讀(按相同的條件讀和插入),(3) 讀“臟”數(shù)據(jù),事務(wù)1修改某一數(shù)據(jù),并將其寫回磁盤 事務(wù)2讀取同一數(shù)據(jù)后 事務(wù)1由于某種原因被撤消,這時(shí)事務(wù)1已修改過的數(shù)據(jù)恢復(fù)原值 事務(wù)2讀到的數(shù)據(jù)就與數(shù)據(jù)庫中的數(shù)據(jù)不一致,是不正確的數(shù)據(jù),又稱為“臟”數(shù)據(jù)。,(3) 讀“臟”數(shù)據(jù),第十一章 并發(fā)控制,11.1 并發(fā)控制概述 11.2 封鎖 11.3 封鎖協(xié)議 11.4 活鎖和死鎖 11.5 并發(fā)調(diào)度的可串行性 11.6 兩段鎖協(xié)議 11.7 封鎖的粒度,11.2 封鎖,為了避免并發(fā)問題,在將要修改某些數(shù)據(jù)行或表時(shí)禁止其它事務(wù)讀取、修改、寫入數(shù)據(jù),這種方法稱資源鎖定。,用戶A,讀取Item10

5、0 假定為10 2.將Item100的 數(shù)量減少5 3.寫入Item100,1.讀取Item100 假定為10 2.將Item100的 數(shù)量減少3 3.寫入Item100,1.讀取Item100(為A) 2.讀取Item100(為B) 3.將Item100的數(shù)量設(shè)置為5(為A) 4.為A寫入Item100 5.將Item100的數(shù)量設(shè)置為7(為B) 6.為B寫入Item100,用戶B,數(shù)據(jù)庫服務(wù)器上的處理順序:交叉并發(fā)執(zhí)行,用戶A,讀取Item100假定為10 2.將Item100的數(shù)量減少5 3.寫入Item100,1.讀取Item100假定為10 2.將Item100的數(shù)量減少3 3.寫入

6、Item100,1.鎖定Item100 (為A) 2.讀取Item100(為A),數(shù)量為10 3.鎖定Item100 (為B);無法執(zhí)行,B等待 4.將Item100的數(shù)量設(shè)置為5(為A) 5.為A寫入Item100 6.釋放A對Item100的鎖定 7.鎖定Item100 (為B) 8.讀取Item100(為B),數(shù)量為5 9.將Item100的數(shù)量設(shè)置為2(為B) 10.為B寫入Item100 11.釋放B對Item100的鎖定,用戶B,數(shù)據(jù)庫服務(wù)器上的處理順序,A事務(wù),B事務(wù),一、顯示封鎖和隱式封鎖,由DBMS執(zhí)行的鎖定稱隱式封鎖(Implicit lock) 由用戶編寫命令行執(zhí)行的鎖定

7、稱顯式封鎖(Explicit lock),二、封鎖類型,DBMS通常提供了多種類型的封鎖。一個(gè)事務(wù)對某個(gè)數(shù)據(jù)對象加鎖后究竟擁有什么樣的控制是由封鎖的類型決定的。 基本封鎖類型 排它鎖(eXclusive lock,簡記為X鎖) 共享鎖(Share lock,簡記為S鎖),排它鎖(exclusive lock) Xlock,排它鎖又稱為寫鎖 若事務(wù)T對數(shù)據(jù)對象A加上X鎖,則只允許T讀取和修改A,其它任何事務(wù)都不能再對A加任何類型的鎖,直到T釋放A上的鎖,共享鎖(shared lock) Slock,共享鎖又稱為讀鎖 若事務(wù)T對數(shù)據(jù)對象A加上S鎖,則其它事務(wù)只能再對A加S鎖,而不能加X鎖,直到T釋

8、放A上的S鎖,三、鎖的相容矩陣,第十一章 并發(fā)控制,11.1 并發(fā)控制概述 11.2 封鎖 11.3 封鎖協(xié)議 11.4 活鎖和死鎖 11.5 并發(fā)調(diào)度的可串行性 11.6 兩段鎖協(xié)議 11.7 封鎖的粒度,11.3 封鎖協(xié)議,在運(yùn)用X鎖和S鎖對數(shù)據(jù)對象加鎖時(shí),需要約定一些規(guī)則:封鎖協(xié)議(Locking Protocol) 何時(shí)申請X鎖或S鎖 持鎖時(shí)間、何時(shí)釋放 不同的封鎖協(xié)議,在不同的程度上為并發(fā)操作的正確調(diào)度提供一定的保證 常用的封鎖協(xié)議:三級(jí)封鎖協(xié)議,一級(jí)封鎖協(xié)議,事務(wù)T在修改數(shù)據(jù)R之前必須先對其加X鎖,直到事務(wù)結(jié)束才釋放 正常結(jié)束(COMMIT) 非正常結(jié)束(ROLLBACK) 一級(jí)封

9、鎖協(xié)議可防止丟失修改 在一級(jí)封鎖協(xié)議中,如果是讀數(shù)據(jù),是不需要加鎖的,所以它不能保證可重復(fù)讀和不讀“臟”數(shù)據(jù)。,一級(jí)封鎖協(xié)議,沒有丟失修改,一級(jí)封鎖協(xié)議,讀“臟”數(shù)據(jù),一級(jí)封鎖協(xié)議,不可重復(fù)讀,二級(jí)封鎖協(xié)議,一級(jí)封鎖協(xié)議+事務(wù)T在讀取數(shù)據(jù)R前必須先加S鎖,讀完后即可釋放S鎖 二級(jí)封鎖協(xié)議可以防止丟失修改和讀“臟”數(shù)據(jù)。 在二級(jí)封鎖協(xié)議中,由于讀完數(shù)據(jù)后即可釋放S鎖,所以它不能保證可重復(fù)讀。,二級(jí)封鎖協(xié)議,不讀“臟”數(shù)據(jù),二級(jí)封鎖協(xié)議,不可重復(fù)讀,三級(jí)封鎖協(xié)議,1級(jí)封鎖協(xié)議 + 事務(wù)T在讀取數(shù)據(jù)R之前必須先對其加S鎖,直到事務(wù)結(jié)束才釋放 3級(jí)封鎖協(xié)議可防止丟失修改、讀臟數(shù)據(jù)和不可重復(fù)讀。,三級(jí)封

10、鎖協(xié)議,可重復(fù)讀,三級(jí)封鎖協(xié)議,不讀“臟”數(shù)據(jù),4封鎖協(xié)議小結(jié),三級(jí)協(xié)議的主要區(qū)別 什么操作需要申請X鎖或S鎖 何時(shí)釋放鎖(即持鎖時(shí)間),封鎖協(xié)議小結(jié)(續(xù)),第十一章 并發(fā)控制,11.1 并發(fā)控制概述 11.2 封鎖 11.3 封鎖協(xié)議 11.4 活鎖和死鎖 11.5 并發(fā)調(diào)度的可串行性 11.6 兩段鎖協(xié)議 11.7 封鎖的粒度,11.4 活鎖和死鎖,封鎖技術(shù)可以有效地解決并行操作的一致性問題,但也帶來一些新的問題 活鎖 死鎖,11.4.1 活鎖,T2永遠(yuǎn)等待!,如何避免活鎖,采用先來先服務(wù)的策略: 當(dāng)多個(gè)事務(wù)請求封鎖同一數(shù)據(jù)對象時(shí) 按請求封鎖的先后次序?qū)@些事務(wù)排隊(duì) 該數(shù)據(jù)對象上的鎖一旦釋

11、放,首先批準(zhǔn)申請隊(duì)列中第一個(gè)事務(wù)獲得鎖。,11.4.2 死鎖,T1 T2,解決死鎖的方法,兩類方法 1. 采取一定措施來預(yù)防死鎖的發(fā)生 2. 允許死鎖發(fā)生,采用一定手段定期診斷系統(tǒng)中有無死鎖,若有則解除之。,1. 死鎖的預(yù)防,產(chǎn)生死鎖的原因是兩個(gè)或多個(gè)事務(wù)都已封鎖了一些數(shù)據(jù)對象,然后又都請求對已為其他事務(wù)封鎖的數(shù)據(jù)對象加鎖,從而出現(xiàn)死等待。 預(yù)防死鎖的發(fā)生就是要破壞產(chǎn)生死鎖的條件,死鎖的預(yù)防(續(xù)),預(yù)防死鎖的方法 一次封鎖法 順序封鎖法,(1)一次封鎖法,要求每個(gè)事務(wù)必須一次將所有要使用的數(shù)據(jù)全部加鎖,否則就不能繼續(xù)執(zhí)行 一次封鎖法存在的問題: 降低并發(fā)度 難于事先精確確定封鎖對象,(2)順序

12、封鎖法,順序封鎖法是預(yù)先對數(shù)據(jù)對象規(guī)定一個(gè)封鎖順序,所有事務(wù)都按這個(gè)順序?qū)嵭蟹怄i。 順序封鎖法存在的問題 維護(hù)成本高 數(shù)據(jù)庫系統(tǒng)中可封鎖的數(shù)據(jù)對象極其眾多,并且隨數(shù)據(jù)的插入、刪除等操作而不斷地變化,要維護(hù)這樣極多而且變化的資源的封鎖順序非常困難,成本很高,順序封鎖法(續(xù)),難于實(shí)現(xiàn) 事務(wù)的封鎖請求可以隨著事務(wù)的執(zhí)行而動(dòng)態(tài)地決定,很難事先確定每一個(gè)事務(wù)要封鎖哪些對象,因此也就很難按規(guī)定的順序去施加封鎖。 例:規(guī)定數(shù)據(jù)對象的封鎖順序?yàn)锳,B,C,D,E。事務(wù)T3起初要求封鎖數(shù)據(jù)對象B,C,E,但當(dāng)它封鎖了B,C后,才發(fā)現(xiàn)還需要封鎖A,這樣就破壞了封鎖順序.,死鎖的預(yù)防(續(xù)),結(jié)論 在操作系統(tǒng)中廣為

13、采用的預(yù)防死鎖的策略并不很適合數(shù)據(jù)庫的特點(diǎn) DBMS在解決死鎖的問題上更普遍采用的是診斷并解除死鎖的方法,2. 死鎖的診斷與解除,允許死鎖發(fā)生 解除死鎖 由DBMS的并發(fā)控制子系統(tǒng)定期檢測系統(tǒng)中是否存在死鎖 一旦檢測到死鎖,就要設(shè)法解除,檢測死鎖:超時(shí)法,如果一個(gè)事務(wù)的等待時(shí)間超過了規(guī)定的時(shí)限,就認(rèn)為發(fā)生了死鎖 優(yōu)點(diǎn):實(shí)現(xiàn)簡單 缺點(diǎn) 有可能誤判死鎖,事物因?yàn)槠渌蚴沟玫却龝r(shí)間超過時(shí)限,系統(tǒng)會(huì)誤認(rèn)為發(fā)生了死鎖。 時(shí)限若設(shè)置得太長,死鎖發(fā)生后不能及時(shí)發(fā)現(xiàn),死鎖的診斷與解除(續(xù)),解除死鎖 選擇一個(gè)處理死鎖代價(jià)最小的事務(wù),將其撤消,釋放此事務(wù)持有的所有的鎖,使其它事務(wù)能繼續(xù)運(yùn)行下去。,第十一章 并

14、發(fā)控制,11.1 并發(fā)控制概述 11.2 封鎖 11.3 封鎖協(xié)議 11.4 活鎖和死鎖 11.5 并發(fā)調(diào)度的可串行性 11.6 兩段鎖協(xié)議 11.7 封鎖的粒度,11.5 并發(fā)調(diào)度的可串行性,并發(fā)調(diào)度的可串行性是并行執(zhí)行事務(wù)正確性的唯一準(zhǔn)則。 一、什么樣的并發(fā)操作調(diào)度是正確的 二、如何保證并發(fā)操作的調(diào)度是正確的,一、什么樣的并發(fā)操作調(diào)度是正確的,計(jì)算機(jī)系統(tǒng)對并行事務(wù)中并行操作的調(diào)度是隨機(jī)的,而不同的調(diào)度可能會(huì)產(chǎn)生不同的結(jié)果。 例:現(xiàn)在有兩個(gè)事務(wù),分別包含下列操作: 事務(wù)1:讀B;A=B+1;寫回A; 事務(wù)2:讀A;B=A+1;寫回B; 假設(shè)A的初值為2,B的初值為2。,什么樣的并發(fā)操作調(diào)度是

15、正確的,對這兩個(gè)事務(wù)的不同調(diào)度策略 串行執(zhí)行 串行調(diào)度策略1 串行調(diào)度策略2 交錯(cuò)執(zhí)行 不可串行化的調(diào)度 可串行化的調(diào)度,(a) 串行調(diào)度策略,正確的調(diào)度,Slock B Y=B=2 Unlock B Xlock A A=Y+1 寫回A(=3) Unlock A,Slock A X=A=3 Unlock A Xlock B B=X+1 寫回B(=4) Unlock B,T1,T2,(b) 串行調(diào)度策略,正確的調(diào)度,Slock B Y=B=3 Unlock B Xlock A A=Y+1 寫回A(=4) Unlock A,SlockA X=A=2 Unlock A Xlock B B=X+1 寫

16、回B(=3) Unlock B,T1,T2,(c) 不可串行化的調(diào)度,Slock B Y=B=2 Unlock B Xlock A A=Y+1 寫回A(=3) Unlock A,Slock A X=A=2 Unlock A Xlock B B=X+1 寫回B(=3) Unlock B,T1,T2,由于其執(zhí)行結(jié)果與(a)、(b)的結(jié)果都不同,所以是錯(cuò)誤的調(diào)度。,(d) 可串行化的調(diào)度,Slock B Y=B=2 Unlock B Xlock A A=Y+1 寫回A(=3) Unlock A,Slock A 等待 等待 等待 X=A=3 Unlock A Xlock B B=X+1 寫回B(=4)

17、 Unlock B,T1,T2,由于其執(zhí)行結(jié)果與串行調(diào)度(a)的執(zhí)行結(jié)果相同,所以是正確的調(diào)度。,將所有事務(wù)串行起來的調(diào)度策略一定是正確的調(diào)度策略。將此結(jié)果作為并發(fā)操作調(diào)度是否正確的判斷標(biāo)準(zhǔn)。,什么樣的并發(fā)操作調(diào)度是正確的,以不同的順序串行執(zhí)行事務(wù)也有可能會(huì)產(chǎn)生不同的結(jié)果,但由于不會(huì)將數(shù)據(jù)庫置于不一致狀態(tài),所以都可以認(rèn)為是正確的。 幾個(gè)事務(wù)的并行執(zhí)行是正確的,當(dāng)且僅當(dāng)其結(jié)果與按某一次序串行地執(zhí)行它們時(shí)的結(jié)果相同。這種并行調(diào)度策略稱為可串行化(Serializable)的調(diào)度。,11.5 并發(fā)調(diào)度的可串行性,一、什么樣的并發(fā)操作調(diào)度是正確的 二、如何保證并發(fā)操作的調(diào)度是正確的,二、如何保證并發(fā)操

18、作的調(diào)度是正確的,為了保證并行操作的正確性,DBMS的并行控制機(jī)制必須提供一定的手段來保證調(diào)度是可串行化的。 從理論上講,在某一事務(wù)執(zhí)行時(shí)禁止其他事務(wù)執(zhí)行的調(diào)度策略一定是可串行化的調(diào)度,這也是最簡單的調(diào)度策略,但這種方法實(shí)際上是不可行的,因?yàn)樗褂脩舨荒艹浞止蚕頂?shù)據(jù)庫資源。,如何保證并發(fā)操作的調(diào)度是正確的(續(xù)),保證并發(fā)操作調(diào)度正確性的方法 封鎖方法:兩段鎖(Two-Phase Locking,簡稱2PL)協(xié)議 時(shí)標(biāo)方法 樂觀方法,第十一章 并發(fā)控制,11.1 并發(fā)控制概述 11.2 封鎖 11.3 封鎖協(xié)議 11.4 活鎖和死鎖 11.5 并發(fā)調(diào)度的可串行性 11.6 兩段鎖協(xié)議 11.7

19、封鎖的粒度,11.6 兩段鎖協(xié)議,兩段鎖協(xié)議的內(nèi)容 1. 在對任何數(shù)據(jù)進(jìn)行讀、寫操作之前,事務(wù)首先要獲得對該數(shù)據(jù)的封鎖 2. 在釋放一個(gè)封鎖之后,事務(wù)不再獲得任何其他封鎖。,兩段鎖協(xié)議(續(xù)),“兩段”鎖的含義 事務(wù)分為兩個(gè)階段 第一階段是獲得封鎖,也稱為擴(kuò)展階段; 第二階段是釋放封鎖,也稱為收縮階段。,兩段鎖協(xié)議(續(xù)),例: 事務(wù)1的封鎖序列: Slock A . Slock B . Xlock C . Unlock B . Unlock A . Unlock C; 事務(wù)2的封鎖序列: Slock A . Unlock A . Slock B . Xlock C . Unlock C . Un

20、lock B; 事務(wù)1遵守兩段鎖協(xié)議,而事務(wù)2不遵守兩段協(xié)議。,兩段鎖協(xié)議(續(xù)),并行執(zhí)行的所有事務(wù)均遵守兩段鎖協(xié)議,則對這些事務(wù)的所有并行調(diào)度策略都是可串行化的。 所有遵守兩段鎖協(xié)議的事務(wù),其并行執(zhí)行的結(jié)果一定是正確的 事務(wù)遵守兩段鎖協(xié)議是可串行化調(diào)度的充分條件,而不是必要條件 可串行化的調(diào)度中,不一定所有事務(wù)都必須符合兩段鎖協(xié)議。,兩段鎖協(xié)議(續(xù)),兩段鎖協(xié)議與防止死鎖的一次封鎖法 一次封鎖法要求每個(gè)事務(wù)必須一次將所有要使用的數(shù)據(jù)全部加鎖,否則就不能繼續(xù)執(zhí)行,因此一次封鎖法遵守兩段鎖協(xié)議 但是兩段鎖協(xié)議并不要求事務(wù)必須一次將所有要使用的數(shù)據(jù)全部加鎖,因此遵守兩段鎖協(xié)議的事務(wù)可能發(fā)生死鎖,兩

21、段鎖協(xié)議(續(xù)),圖11.7 遵守兩段鎖協(xié)議的事務(wù)發(fā)生死鎖,T1 Slock B 讀B=2 Xlock A 等待 等待,T2 Slock A 讀A=2 Xlock B 等待,第十一章 并發(fā)控制,11.1 并發(fā)控制概述 11.2 封鎖 11.3 封鎖協(xié)議 11.4 活鎖和死鎖 11.5 并發(fā)調(diào)度的可串行性 11.6 兩段鎖協(xié)議 11.7 封鎖的粒度,11.7 封鎖的粒度,封鎖可以針對數(shù)據(jù)庫、表、數(shù)據(jù)行、索引等數(shù)據(jù)庫對象。封鎖對象的大小稱鎖定粒度。 粒度大的封鎖,DBMS容易管理,但易引發(fā)沖突 粒度小的封鎖,DBMS要跟蹤許多細(xì)節(jié)內(nèi)容,不易管理,1. 選擇封鎖粒度的原則,封鎖的粒度越 大,小, 系統(tǒng)

22、被封鎖的對象 少,多, 并發(fā)度 小,高, 系統(tǒng)開銷 小,大, 選擇封鎖粒度: 考慮封鎖開銷和并發(fā)度兩個(gè)因素,適當(dāng)選擇封鎖粒度以求得最優(yōu)的效果。,選擇封鎖粒度的原則(續(xù)),需要處理多個(gè)關(guān)系的大量元組的用戶事務(wù):以數(shù)據(jù)庫為封鎖單位; 需要處理大量元組的用戶事務(wù):以關(guān)系為封鎖單元; 只處理少量元組的用戶事務(wù):以元組為封鎖單位,2. 多粒度封鎖,在一個(gè)系統(tǒng)中同時(shí)支持多種封鎖粒度供不同的事務(wù)選擇,這種封鎖方法稱為多粒度封鎖(multiple granularity locking) 。 多粒度樹 以樹形結(jié)構(gòu)來表示多級(jí)封鎖粒度 根結(jié)點(diǎn)是整個(gè)數(shù)據(jù)庫,表示最大的數(shù)據(jù)粒度 葉結(jié)點(diǎn)表示最小的數(shù)據(jù)粒度,多粒度封鎖(續(xù)),例:三級(jí)粒度樹。根結(jié)點(diǎn)為數(shù)據(jù)庫,數(shù)據(jù)庫的子結(jié)點(diǎn)為關(guān)系,關(guān)系的子結(jié)點(diǎn)為元組。,多粒度封鎖協(xié)議,允許多粒度樹中的每個(gè)結(jié)點(diǎn)被獨(dú)立地加鎖 對一個(gè)結(jié)點(diǎn)加鎖意味著這個(gè)結(jié)點(diǎn)的所有后裔結(jié)點(diǎn)也被加以同樣類型的鎖 在多粒度封鎖中一個(gè)數(shù)據(jù)對象可能以兩種方式封鎖:顯式封鎖和隱式封鎖,顯式封鎖和隱式封鎖,顯式封鎖: 直接加到數(shù)據(jù)對象上的封鎖 隱式封鎖: 由于其上級(jí)結(jié)點(diǎn)加鎖而使該數(shù)據(jù)對象加上了鎖 顯式封鎖和隱式封鎖的效果是一樣的,對某個(gè)數(shù)據(jù)對象加鎖時(shí)系統(tǒng)檢查的內(nèi)容,該數(shù)據(jù)對象 有無顯式封鎖與之沖突 所有上級(jí)結(jié)點(diǎn) 檢查本事務(wù)的顯

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論