版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Cha8 并發(fā)控制 本章內(nèi)容 并發(fā)控制概述 封鎖 活鎖和死鎖 可串行性 兩段鎖協(xié)議 事務(wù)的執(zhí)行方式 T1T2 串行執(zhí)行 時間 T1 T2 并發(fā)執(zhí)行 交叉并發(fā) (單處理機(jī)系統(tǒng)) 同時并發(fā) (多處理機(jī)系統(tǒng)) 并發(fā)執(zhí)行的結(jié)果是否正確? T1: Read(A) A:=A-10 WRITE(A) T2: Read(A) A:=A*2 WRITE(A) A=50-T1-T2-A=80 A=50-T2-T1-A=90 事務(wù)串行執(zhí)行的結(jié)果都是正確的 并發(fā)操作引起的問題1丟失更新 lost update 時間事務(wù)T1A值事務(wù)T2 150 2Read(A) 3Read(A) 4A:=A-10 5A:=A*2 6W
2、rite(A)40 7Write(A) 8100 正確結(jié)果應(yīng)為 T1-T280 T2-T190 并發(fā)操作引起的問題2不可重復(fù)讀 non-repeatable read 時間事務(wù)T1A值事務(wù)T2 150 2Read(A)50 3Read(A) 4A:=A-10 5Read(A)40 6 并發(fā)操作引起的問題3讀臟數(shù)據(jù) dirty read 時間事務(wù)T1A值事務(wù)T2 150 2Read(A) 3A:=A-10 4Write(A) 540Read(A) 6rollback 750 封鎖技術(shù) 排它型封鎖exclusive locksX封鎖,寫鎖 共享型封鎖shared locksS封鎖,讀鎖 兩段封鎖
3、數(shù)據(jù)被寫時,不允許被后續(xù)事務(wù)讀寫 數(shù)據(jù)被讀時,允許后續(xù)事務(wù)讀,不允許寫 相容矩陣 T1 T2X鎖鎖S鎖鎖無鎖無鎖 X鎖鎖NNY S鎖鎖NYY 無鎖無鎖YYY 已添加的鎖 申請加的鎖 封鎖協(xié)議locking protocol-對數(shù)據(jù)對象的加鎖規(guī)則 一級封鎖協(xié)議 事務(wù)T1 對數(shù)據(jù)R申請X封鎖 獲得 修改數(shù)據(jù) 釋放封鎖 事務(wù)T2 對數(shù)據(jù)R申請X封鎖 等待 獲得封鎖 修改數(shù)據(jù) 釋放封鎖 時間 事務(wù)T在修改數(shù)據(jù)R前申請X鎖 事務(wù)結(jié)束時釋放 解決丟失更新 問題 時間時間事務(wù)事務(wù)T1T1A A值值事務(wù)事務(wù)T2T2 1Xlock A50 2獲得獲得 3Read(A) 4Xlock A 5A:=A-10wait
4、 6Write(A)wait 7commit40wait 8UnLock Await 9獲得獲得Xlock A 10Read(A) 11A:=A*2 12Write(A) 1380commit 14UnLock A 丟失更新 不可重復(fù)讀 讀臟數(shù)據(jù) 時間時間事務(wù)事務(wù)T1T1A A值值事務(wù)事務(wù)T2T2 150 2Xlock A 3Read(A) 4A:=A-10 5Write(A) 6UnLock A40 7Xlock A 8Read(A) 9A:=A*2 10Write(A) 1180UnLock A 12commit 13rollback50 X封鎖必須保留到 事務(wù)終點(diǎn) 二級封鎖協(xié)議 事務(wù)T1
5、 對數(shù)據(jù)R加S封鎖 事務(wù)T2 對數(shù)據(jù)對數(shù)據(jù)R加加X封鎖封鎖 (拒絕拒絕) 事務(wù)T3 對數(shù)據(jù)對數(shù)據(jù)R加加S封鎖封鎖 (允許允許) 一級封鎖協(xié)議+ 事務(wù)T在讀取數(shù)據(jù)R前申請S鎖 讀完后釋放 時間 時間時間事務(wù)事務(wù)T1A事務(wù)事務(wù)T2 1Xlock A50 2Read (A) 3A:=A*2 4Write(A)100 5Slock A 6wait 7rollback50wait 8UnLock Await 9獲得獲得Slock A 1050Read (A) 11commit 12UnLock A 解決讀臟 問題 丟失更新 不可重復(fù)讀 讀臟數(shù)據(jù) 三級封鎖協(xié)議 事務(wù)T1 對數(shù)據(jù)R加S封鎖 事務(wù)T2 對數(shù)據(jù)
6、對數(shù)據(jù)R加加X封鎖封鎖 (拒絕拒絕) 事務(wù)T3 對數(shù)據(jù)對數(shù)據(jù)R加加S封鎖封鎖 (允許允許) 一級封鎖協(xié)議+ 事務(wù)T在讀取數(shù)據(jù)R前申請S鎖 事務(wù)結(jié)束時釋放 時間 時間時間事務(wù)事務(wù)T1A B C事務(wù)事務(wù)T2 1Slock A50 100 2Slock B 3Read (A)50 4Read (B) 100 5C:=A+B 150 6Xlock B 7Read (A)50wait 8Read (B) 100wait 9C:=A+B 150wait 10Commit50 100 150wait 11UnLock Await 12UnLock Bwait 13獲得獲得Xlock B 14Read (B)
7、 15B:=B*2 1650 200 150Write(B) 17Commit 18UnLock B 解決不可重 復(fù)讀問題 丟失更新 不可重復(fù)讀 讀臟數(shù)據(jù) 不同級別的封鎖協(xié)議 X鎖S鎖一致性保證 操作結(jié)束 釋放 事務(wù)結(jié)束 釋放 操作結(jié)束 釋放 事務(wù)結(jié) 束釋放 不丟失 修改 不讀臟 數(shù)據(jù) 可重復(fù) 讀 一級封鎖協(xié)議一級封鎖協(xié)議 二級封鎖協(xié)議二級封鎖協(xié)議 三級封鎖協(xié)議三級封鎖協(xié)議 封鎖方法引起的問題 活鎖live lock 某個事務(wù)永遠(yuǎn)處于等待狀態(tài) 死鎖dead lock 多個事務(wù)互相等待 先來先服務(wù) 判斷死鎖的存在 撤銷其中一個 死鎖的發(fā)生 時間時間事務(wù)事務(wù)T1事務(wù)事務(wù)T2 1Xlock A 2X
8、lock B 3Read(A) 4Read(B) 5Xlock B 6Wait 7WaitXlock A 8WaitWait 9WaitWait T1T2 數(shù)據(jù)B 數(shù)據(jù)A 死鎖的預(yù)防 一次封鎖法 一次獲得所有需要的鎖,否則不許執(zhí)行 降低系統(tǒng)并發(fā)度 難以事先確定封鎖范圍 順序封鎖法 按特定順序申請封鎖,不許違反次序 申請順序難以確定 難以事先確定封鎖范圍 死鎖的診斷與解除 超時法 某事務(wù)等待狀態(tài)超過時限就認(rèn)為被死鎖 時限不容易設(shè)定 等待圖法 圖中是否存在環(huán)路 撤銷代價最小的死鎖事務(wù) 事務(wù)依賴圖 T6 T5 T8 T4 T1 優(yōu)先級 剩余執(zhí)行時間 占用資源 選取某事務(wù)撤銷 并發(fā)調(diào)度的可串行性 可串
9、行性可串行性是并發(fā)事務(wù)正確性的準(zhǔn)則: 并發(fā)執(zhí)行的結(jié)果與某種串行次序執(zhí)行結(jié)果相同 T1 讀B, A = B +1 T2 讀A, B = A +1 T1T2 A=3 B=4 T2T1 A=4 B=3 保證并發(fā)調(diào)度可串行化的協(xié)議 兩段鎖協(xié)議兩段鎖協(xié)議 two-phase locking 2PL 時標(biāo)方法 樂觀方法 可串行化的調(diào)度 時間時間事務(wù)事務(wù)T1A B事務(wù)事務(wù)T2 1Slock B2 2 2Y=B 2 3UnLock B 4Xlock A 5Slock A 6A=Y+1wait 7Write (A)3 2wait 8UnLock Await 9X=A 3 10UnLock A 11Xlock B
10、 12B=X+1 133 4Write (B) 14UnLock B 時間時間事務(wù)事務(wù)T1A B事務(wù)事務(wù)T2 1Slock B2 2 2Y=B 2 3Slock A 4X=A 2 5UnLock B 6UnLock A 7Xlock A 8A=Y+1 9Write (A)3 2 10Xlock B 11B=X+1 123 3Write (B) 13UnLock A 14UnLock B 不可串行化的調(diào)度 兩段封鎖協(xié)議 對數(shù)據(jù)讀寫前先獲得封鎖 開始釋放封鎖后不能再申請 封鎖 Lock (A) Lock(B) Lock(C) unlock (B) unlock(C) unlock(A) 擴(kuò)展階段擴(kuò)
11、展階段 收縮階段收縮階段 所有事務(wù)是兩段式的 并發(fā)調(diào)度可串行化 時間時間事務(wù)事務(wù)T9F G H事務(wù)事務(wù)T10 10 0 0 2Lock S(F) 3Read (F) 4ATEMP:=F 5unlock (F) 6 7Lock S(G) 8Read (G) 9BTEMP:=G 10Lock X(F) 11F:=BTEMP+1 12Write(F) 13Lock X(H)1 0 0commit 14H:=ATEMP+1 15Write(H) 16commit1 0 1 兩事務(wù)未遵守 兩段式協(xié)議, 結(jié)果正確 T9 H:=F+1 T10 F:=G+1 正確結(jié)果: 1 0 1 1 0 2 時間時間事務(wù)事
12、務(wù)T9F G H事務(wù)事務(wù)T11 10 0 0 2Lock S(F) 3Read (F) 4ATEMP:=F 5unlock (F) 6 7Lock S(H) 8Read (H) 9CTEMP:=H 10Lock X(F) 11F:=CTEMP+1 12Write(F) 13Lock X(H)1 0 0commit 14H:=ATEMP+1 15Write(H) 16commit1 0 1 兩事務(wù)未遵守 兩段式協(xié)議, 結(jié)果錯誤 T9 H:=F+1 T11 F:=H+1 正確結(jié)果: 2 0 1 1 0 2 封鎖的粒度granularity 封鎖對象 邏輯單元 物理單元 屬性,元組,關(guān)系,數(shù)據(jù)庫 頁
13、,塊 封鎖粒度并發(fā)度系統(tǒng)開銷 封鎖粒度并發(fā)度系統(tǒng)開銷 多粒度封鎖同時支持多種封鎖粒度 多粒度樹 數(shù)據(jù)庫 關(guān)系R1關(guān)系Rn 元組1元組k元組1元組m 顯示封鎖與隱式封鎖 意向鎖intentional lock 對某節(jié)點(diǎn)加鎖前 對某節(jié)點(diǎn)加IS鎖其子節(jié)點(diǎn)要加S鎖 對某節(jié)點(diǎn)加IX鎖其子節(jié)點(diǎn)要加X鎖 對某節(jié)點(diǎn)加SIX鎖該節(jié)點(diǎn)要加S鎖 其子節(jié)點(diǎn)要加X鎖 對其上層節(jié)點(diǎn)加意向鎖 意向鎖的相容矩陣 T1 T2 S鎖鎖X鎖鎖 ISIXSIX 無鎖無鎖 S鎖鎖YNYNNY X鎖鎖NNNNNY ISYNYYYY IXNNYYNY SIXNNYNNY 無鎖無鎖YYYYYY X SIX SIX IS 數(shù)據(jù)庫的完整性 完整
14、性 正確性和相容性 垃圾進(jìn)垃圾出 garbage in garbage out 對數(shù)據(jù)庫的非法更新 輸入數(shù)據(jù)錯誤 操作、程序錯誤 系統(tǒng)故障 事務(wù)的并發(fā)執(zhí)行 人為破壞 完整性子系統(tǒng) 功能 監(jiān)督事務(wù)的執(zhí)行 針對違反現(xiàn)象采取適當(dāng)操作 完整性規(guī)則的構(gòu)成 何時使用觸發(fā)條件觸發(fā)條件 何種錯誤約束條件約束條件 如何處理ELSE子句子句 域完整性規(guī)則 域聯(lián)系的規(guī)則 關(guān)系完整性規(guī)則 SQL的完整性約束 主鍵約束主鍵約束 外鍵約束外鍵約束 刪除、修改基本關(guān)系元組時的考慮 屬性值上的約束屬性值上的約束 非空值約束 檢查子句 域約束子句 全局約束全局約束 基于元組的檢查子句 斷言 刪除、修改基本關(guān)系元組時的考慮 Re
15、strict方式 參照表中無相關(guān)記錄時允許操作 Cascade方式 參照表中的相關(guān)記錄一同更新 Set null方式 參照表中的相關(guān)記錄字段置空 斷言assertions Create assertion asse1 check不許男生學(xué)習(xí)張老師的課程不許男生學(xué)習(xí)張老師的課程 (not exists沒這種記錄:沒這種記錄: (select *男生學(xué)習(xí)張老師課程的記錄男生學(xué)習(xí)張老師課程的記錄 from sc where cno in (select cno from c where teacher=zhang) And sno in (select sno from s where sex=m)
16、 ); 斷言assertions Create assertion asse2 check每組人數(shù)不能超過每組人數(shù)不能超過50 (50=all (select count(sc.sno)每門課程的學(xué)習(xí)人數(shù)每門課程的學(xué)習(xí)人數(shù) from s,sc where s.sno=sc.sno and sex=m group by cno ); 約束的命名 Sno char(4) constraint s_pk primary key; Age smallint constraint s_check check(age=15 and age=15 and value=15 and age=15 and age=25); Drop as
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貴州城市職業(yè)學(xué)院《醫(yī)用治療儀器》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025安徽省安全員-C證考試(專職安全員)題庫及答案
- 2025江蘇省建筑安全員B證考試題庫及答案
- 貴陽人文科技學(xué)院《中國古代文學(xué)一》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025遼寧省建筑安全員《B證》考試題庫
- 2025湖南省安全員知識題庫及答案
- 2025四川建筑安全員B證考試題庫
- 2025重慶市建筑安全員C證(專職安全員)考試題庫
- 2025甘肅省建筑安全員知識題庫
- 2025年海南建筑安全員C證(專職安全員)考試題庫
- 學(xué)校膳食管理委員會工作制度和職責(zé)
- 房租收條格式(3篇)
- 期末試卷(試題)2024-2025學(xué)年培智生活語文二年級上冊
- 2024秋期國家開放大學(xué)本科《中國當(dāng)代文學(xué)專題》一平臺在線形考(形考任務(wù)一至六)試題及答案
- 期末(試題)-2024-2025學(xué)年人教PEP版(2024)英語三年級上冊
- 2024伊利在線測評題
- 安徽省A10聯(lián)盟2025屆高二上數(shù)學(xué)期末考試試題含解析
- 紅色簡約中國英雄人物李大釗課件
- 小學(xué)師德考評細(xì)則
- 軟件定義網(wǎng)絡(luò)(SDN)實(shí)戰(zhàn)教程課件
- 上海市住院醫(yī)師規(guī)范化培訓(xùn)公共科目考試題庫-重點(diǎn)傳染病防治知識
評論
0/150
提交評論