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