發布時間:2011-01-05 共1頁
事務高度與并發控制
9.1 調度:定義在多個事務上的調度是這些事務的所有操作的一個執行序列,代表了這些操作的執行順序;沖突操作:事務Ti 的操作Ii與事務Tj的操作Ij是沖突的,當且僅當Ii 和 Ij訪問數據庫中同一個數據項Q,并且Ii 和 Ij中至少有一個是寫操作write(Q);沖突可串行:一個并發調度沖突等價于某個串行調度(判斷一個并行調度是否正確)
死鎖是指數據庫系統中部分或全部事務由于無法獲得對需要訪問的數據項的控制權而處于等待狀態,并且將一直等待下去的一種系統狀態。
9.2 ACID:Atomicity原子性;Consistency一致性;Isolation隔離性;Durability持久性
9.3 1級加鎖協議要求事務T在修改數據項Q之前必須先對Q加X鎖,直到事務結束才釋放該鎖。事務結束包括正常結束(commit)和非正常結束(rollback)。但事務如果是只讀Q而不對其進行修改,是不需要對Q加鎖的。
2級加鎖協議是在1級加鎖協議基礎上,要求事務T在讀取數據項Q之前必須先對其加S鎖,讀完Q后可以立即釋放S鎖。
3級加鎖協議則是在1級加鎖協議基礎上,要求事務T在讀取數據項Q之前必須先對其加S鎖,但是需要等到事務結束時才釋放該S鎖。
9.4 2階段鎖協議將每個事務的執行過程分為加鎖階段和解鎖階段。在加鎖階段,事務可以申請獲得數據項上的任何類型的鎖,但不允許釋放任何鎖。在解鎖階段,事務可以釋放任何數據項上的任何類型的鎖,但不能再申請任何鎖。每個事務開始執行后就進入了加鎖階段。當第一次釋放鎖后,即轉入解鎖階段。
9.5解決死鎖主要采用死鎖預防和死鎖檢測與恢復兩類方法。
死鎖預防利用死鎖預防協議,通過破壞死鎖產生的必要條件來避免系統進入死鎖狀態。
一次性加鎖法;順序加鎖法
死鎖檢測與恢復則是允許系統進入死鎖狀態,并且定期檢查系統是否發生死鎖。當發現系統發生死鎖后,采取相應的恢復機制使系統擺脫死鎖狀態。
9.6活鎖產生的原因是在系統非死鎖狀態下,某些事務由于始終無法獲得對所需訪問的數據項的控制權而長期等待下去,無法繼續執行。
9.7 鎖粒度大:被加鎖數據項少、事務并發執行度低、系統開銷小;鎖粒度小則反之
9.8 基于鎖的并發控制技術的原理