第十四周學習筆記(事務的併發控制的知識點)

2021-08-20 15:08:49 字數 2091 閱讀 2925

二.說明

1. 事物的併發控制主要有三種資料不一致問題:丟失修改,不可重複讀,讀髒資料。

(1)丟失修改指的是兩個事務t1和t2讀入同一資料並修改,t2提交的結果破壞了t1提交的結果,導致t1的修改被丟失。

(2)不可重複讀指的是事務t1讀取資料後,事務t2執行更新操作,使t1無法再現前一次讀取結果。

(3)讀髒資料指的是事務t1修改某一資料並將其寫回磁碟,事務t2讀取同一資料後,t1由於某種原因被撤銷,這時被t1修改過的資料恢復原值,t2讀到的資料就與資料庫中的資料不一致,則t2讀到的資料就為「髒」資料,即不正確的資料。

2.最主要的解決方式為封鎖,而所謂封鎖就是事務t在對某個資料物件例如表、記錄等操作之前,先向系統發出請求,對其加鎖。

(1)排他鎖,又稱為寫鎖,若事務t對資料物件a加上x鎖,則只允許t讀取和修改a,其他任何事務都不能再對a加任何型別的鎖,直到t釋放a上的鎖為止。

(2)共享鎖,又稱為讀鎖,若事務t對資料物件a加上s鎖,則事務t可以讀a但不能修改a,其他事務只能再對a加s鎖,而不能加x鎖,直到t釋放a上的s鎖為止。

3.而封鎖可能會引起活鎖和死鎖等問題。

(1)活鎖,如果事務t1封鎖了資料r,事務t2又請求封鎖r,於是t2等待;t3也請求封鎖r,當t1釋放了r上的封鎖之後系統首先批准了t3的請求,t2仍然等待,t2有可能永遠等待,這就是活鎖的情形。而解決的方法採用先來先服務的策略。

(2)死鎖,如果事務t1封鎖了資料r1,t2封鎖了資料r2,然後t1又請求封鎖r2,因t2已封鎖了r2,於是t1等待t2釋放r2上的鎖,接著t2又申請封鎖r1,因t1已封鎖了r1,t2也只能等待t1釋放r1上的鎖,這樣就出現了t1和t2兩個事務永遠不能結束,形成死鎖。

三.示例

1.事務1讀取病人表中張三的值,期間事務2亦欲讀取張三,便可以通過共享鎖實現併發訪問同一物件

。set

transaction

isolation

level

repeatable

read

;begin

tran

select

*from

tb_patient

where

name='

張三';/*break*/

commit

2.   

事務1讀取病人表中張三的值,期間事務2欲修改張三的值,也可以通過共享鎖阻止事務2的修改

settransaction

isolation

level

repeatable

read

;begin

tran

select

*from

tb_patient

where

name='

張三';/*break*/

commit

settransaction

isolation

level

read

committed

;begin

tran

update

tb_patient

with

(xlock

)set

birthdate

+=1 

where

name='

張三';/*break*/

commit

3.事務1修改張三的值,期間事務2亦欲讀取張三,通過排它鎖阻止事務張三的讀取

settransaction

isolation

level

read

committed

;begin

tran

update

tb_patient

with

(xlock

)set

birthdate

+=1 

where

name='

張三';/*break*/

commit



第十四周學習進度

星期一 星期 二 星期三星期四 星期五星期六 所花時間 8 00 9 50 上課時間 22 00 22 30 寫程式 15 20 16 25 編寫部落格 10 10 11 35 寫程式 19 40 21 35 寫程式 16 30 17 20 閱讀人月神話 10 00 11 50 寫程式 16 30 ...

第十四周學習進度

第十四周 所花時間 包括上課 周一 早晨開站立會議,更新任務看板,完善燃盡圖以及拍攝工作照共30 分鐘。編寫站立會議以及個人工作總結部落格共 30分鐘。繼續學習鈴聲功能控制項的實現方法,並且已經實現了鬧鐘之後的頁面跳轉,努力實現之後的提醒鏈結工作 120分鐘。課下閱讀課本 60分鐘,課堂聽課 110...

leetcode筆記 第十四周 回溯演算法

回溯演算法是一種純暴力搜尋演算法,可以解決組合問題 排列問題 子集問題 切割問題 棋盤問題 class solution def readbinarywatch self,num int list str 暴力法 遍歷hour和minite,bin count 1 實現統計二進位制表示中1的數量 r...