複製鏈接
請複製以下鏈接發送給好友

事務管理

鎖定
事務管理是對於一系列數據庫操作進行管理,一個事務包含一個或多個SQL語句,是邏輯管理的工作單元(原子單元)。
中文名
事務管理
外文名
transactionmanagement
定    義
對數據庫操作進行管理

事務管理基本介紹

一個事務是對數據庫進行讀和寫的一個序列。傳統數據庫(RDB)中事務有兩個明顯的特性:原子性和可串行性。原子性意指事務中的讀和寫操作可看作是對數據庫的單個原子操作。可串行性意指多個事務併發執行的效果與一次執行這些事務中的一個的效果相同。因而事務管理的任務就是保證事務的原子性和可串行性,它由兩部分組成:併發控制和恢復。併發控制涉及到多個事務對數據庫的某個公共部分進行同時存取的自動控制。恢復則涉及到將數據庫恢復到事務故障之前業已存在的狀態。 [1] 

事務管理事務管理的構成

事務處理系統由事務管理器、恢復管理器、鎖管理器、死鎖管理器、緩存管理器構成。

事務管理事務管理器

事務管理器負責產生事務併為其分配事務標識,那麼它應該可以根據需要產生足夠多的子事務並分配足夠多的事務標識。當子事務提交時,事務管理器需要知道其父事務標識並執行一系列操作,那麼,如果能從子事務標識中直接得到其父事務標識,將大大提高事務處理的效率。

事務管理恢復管理器

在嵌套事務模型中,子事務相對於父事務及兄弟事務來説,能獨立地提交,子事務的捲回也不會導致父事務及兄弟事務的捲回。如果任何一級上的(子)事務回退,則它的所有子事務均回退,不管它們是否實施了局部的提交。因此,子事務提交時,恢復管理器需要將它的日誌鏈接到父事務的日誌上,這就要求恢復管理器知道父事務標識。那麼,如果能從子事務標識中直接得到其父事務標識,將大大提高恢復管理器的工作效率。

事務管理鎖管理器

在嵌套事務模型中,子事務一旦提交,父事務就可觀察到它作出的所有改變。父事務在子事務開始前作出的改變對子事務是可見的。子事務併發運行時,變化不向兄弟事務顯示;否則,子事務一旦提交,其變化向兄弟事務顯示。因此,子事務提交時,它將擁有的鎖轉交給父事務。當事務申請鎖時,鎖管理器負責判斷鎖的相容性:如果相容,則分配給事務相應的鎖;否則,判斷申請鎖的事務是否是擁有鎖的事務的後代,若是則可以為其分配相應的鎖,否則不能滿足它的申請要求。那麼,如果能從兩個事務的標識上直接判斷出它們之間是否具有祖先一後代關係,將大大提高鎖管理器的工作效率。

事務管理死鎖管理器

新型應用要求允許事務結構中最大程度的並行性,包括兄弟事務之間的並行和父子事務之間的並行。這些導致了事務之間等待關係的多樣化,並進一步引起死鎖類型的多樣化,這無疑增加了死鎖檢測的難度。為了提高死鎖檢測的效率,儘早發現“隱藏”的死鎖,首先必須有效地表示各種等待關係。在嵌套事務模型下,死鎖管理器主要處理三種等待關係 :
(1)申請鎖的事務等待擁有鎖的事務;
(2)父事務等待所有子事務的提交;
(3)申請鎖的事務等待擁有鎖的事務的滿足下列條件的最高層的祖先:它不是申請鎖的事務的祖先。
第三種等待關係的有效表示能夠避免大量無意義的工作,但這需要找出兩個事務的最高層的非共同祖先。為了達到目的,需要對事務層次結構進行不斷的向上搜索和比較,這是一項開銷很大的工作。那麼,如果能從兩個事務的標識上直接找出它們的最高層的非共同祖先,將避免一項開銷很大的工作,從而大大提高死鎖管理器的工作效率。

事務管理緩存管理器

基於對緩存有效使用的考慮,緩存管理器要求事務標識的存儲結構能夠對短標識和長標識提供靈活有效的支持,顯而易見,靜態結構是不合適的,需要使用靈活的動態結構。
總而言之,事務處理對事務標識的需求是:
(1)可以直接從子事務的標識得到其父事務的標識;
(2)事務標識對事務層次結構的寬度和廣度提供良好的支持(即:對寬度和廣度沒有限制);
(3)事務標識存儲結構能夠提供足夠多的事務標識(即:對事務標識的數目沒有限制);
(4)根據事務標識可以判斷兩個事務是否具有祖先一後代關係;
(5)根據事務標識可以找出兩個事務的最高層的非共同祖先;
(6)事務標識存儲結構應該靈活、長度可變,能夠充分利用存儲空間有效地存儲長標識和短標識。 [2] 
參考資料
  • 1.    鄭剛. 面向對象數據庫的事務管理[J]. 計算機技術與發展, 2002, 12(4):37-42.
  • 2.    王意潔. 面向對象數據庫的並行查詢處理與事務管理[D]. 國防科技大學, 1998.