數據庫管理系統通常使用兩段鎖協議來實現併發調度的可串行性,從而保證調度的正確性
1、兩段鎖協議
- 指事務必須分成兩個階段對數據進行加鎖和解鎖
- 在釋放一個封鎖以後,事務不在申請獲得其它封鎖
2、兩段鎖的含義
第一段是獲得封鎖,也稱擴展階段
- 事務可以獲得任何數據項上任何類型的鎖,但是不能釋放鎖
第二段是釋放封鎖,也稱收縮階段
- 事務可以釋放任何數據項上任何類型的鎖,但是不能獲得鎖
- 遵守兩段鎖協議就可以進行串行化調度
特點
- 兩段鎖協議是可串行化的充分條件,不是必要條件
- 若併發事務都遵循兩段鎖協議,則對這些事務的任何併發調度都是可串行化的
- 若併發事務的一個調度是可串行化的,但是不一定所有的事務都符合兩段鎖協議
3、遵守兩段鎖協議與防止死鎖的一次封鎖法
4、小結