意向鎖
要了解意向鎖,必須先講一下對某一數據對象加鎖時系統的檢查內容:
1. 先檢查該數據對象上有無顯式封鎖與之沖突。
2. 檢查要加到該對象上的鎖是否與對象上的隱式封鎖(由於上級結點已加的封鎖造成的)沖突。
3. 檢查該數據對象的所有下級結點,看它們的顯式封鎖是否與將加到它們上的封鎖(隱式封鎖)沖突。
顯然這種檢查方法的效率很低,所以需要引進新的鎖——意向鎖。
意向鎖含義:如果對一個結點加意向鎖,則說明該結點的下層結點正在被封鎖;對任一結點加鎖時,必須先對它的上層結點加意向鎖。
意向鎖作用:提高對某個數據對象加鎖時系統的檢查效率。有了意向鎖,數據庫管理系統就不用逐個檢查下級結點的顯式封鎖。
相容矩陣
需要注意的幾點:
1. T1加S,T2加IX不相容,因為IX對子結點意向加X鎖(有可能性),這與子節點的隱式封鎖沖突。
2. T1加IS,T2為IX/SIX都相容,因為它們都只是“意向”,還沒有真沖突。