資料庫系統原理 兩段鎖協議 死鎖練習題

2021-10-07 18:48:10 字數 878 閱讀 5811

14.考慮t和t2兩個事務。

t1: r(a); r(b);b=a+ b; w(b)

t2: r(b); r(a);a=a+ b; w(a)

(1)改寫t和t2, 增加加鎖操作和解鎖操作,並要求遵循兩階段封鎖協議。

(2)說明t和t2的執行是否會引起死鎖,給出t和t2的乙個排程並說明之。

(1)如下表所示t1

t2slock a

r(a)

slock b

r(b)

xlock b

b=a+b

w(b)

unlock b

slock b

r(b)

unlock b

unlock a

slock a

r(a)

xlock a

a=a+b

w(a)

unlock a

unlock a

unlock b

(2)如下排程會引起死鎖:t1

t2slock a

r(a)

slock b

r(b)

slockb

r(b)

xlock b

等待slock a

等待r(a)

等待xclock a

等待ps:

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

資料庫的2PL兩段鎖協議與正規化

1.2pl 2pl定義 1.所有的讀寫操作之前均需加鎖 2.解鎖操作後不允許再出現加鎖操作 s鎖 加s鎖後其他事務可讀,不可寫,直至加鎖事務結束 x鎖 加x鎖後其他事務均不可以讀或寫,直至事務結束 事務執行的過程分為兩個階段,一是獲得封鎖階段,二是釋放封鎖階段 2pl可能產生死鎖 2pl可以防止讀髒...

資料庫 資料庫系統原理

事務指的是滿足 acid 特性的一組操作,可以通過 commit 提交乙個事務,也可以使用 rollback 進行回滾。事務被視為不可分割的最小單元,事務的所有操作要麼全部提交成功,要麼全部失敗回滾。回滾可以用回滾日誌來實現,回滾日誌記錄著事務所執行的修改操作,在回滾時反向執行這些修改操作即可。資料...

資料庫系統原理1

資料描述經歷了三個階段對應於三個資料模型 如 在乙個班級裡假設沒有重名的同學,現有四個屬性 學號 姓名 年齡 性別 超鍵 在關係中可以唯一標識元組的屬性集。學號是超鍵 學號 姓名是超鍵 學號,姓名 性別是超鍵。所以超鍵可以是乙個屬性也可以是乙個屬性集,只要可以唯一標識就行。候選鍵 不含有多餘屬性的超...