探索交易式資料處理

已完成

大多數人認為交易式資料處理系統是商務運算的主要功能。 交易式系統會記錄「交易」,而交易會封裝組織想要追蹤的特定事件。交易可能是財務 (例如銀行系統帳戶之間的金錢移動),也可能是零售系統的一部分,可追蹤客戶的貨物和服務付款。 將交易視為一個小型、離散的工作單位。

交易式系統的數量通常很高,有時會在一天內處理數百萬筆交易。 正在處理的資料必須能快速存取。 交易式系統所執行的工作通常稱為線上交易處理 (OLTP)。

顯示使用者在資料庫中讀取和寫入資料的圖表。

OLTP 解決方案依賴針對讀取和寫入作業最佳化資料儲存體的資料庫系統,以支援可建立、擷取、更新和刪除資料記錄的交易式工作負載 (通常稱為 CRUD 作業)。 這些作業會以交易方式套用,以確保資料庫中所儲存資料的完整性。

為了具體化以下特性,想像帳戶A(起始餘額100美元)向帳戶B(起始餘額50美元)匯款40美元:系統必須將帳戶A扣入並記入帳戶B,作為單一且可靠的操作。

展示交易的示意圖。

為了達成此目的,OLTP 系統會強制執行可支援所謂 ACID 語意的交易:

  • 原子性 – 每筆交易都被視為單一單位,要麼完全成功,要麼完全失敗。 例如,涉及從一個帳戶扣款,並在另一個帳戶承兌相同金額時,交易即須完成兩個動作。 如果無法完成任一動作,另一個動作就會失敗。

解釋原子性概念的圖解。

  • 一致性 – 交易只能將資料庫中的資料從一個有效狀態變更為另一個有效狀態。 若要繼續上述的扣款和承兌範例,交易完成的狀態必須反映從一個帳戶到另一個帳戶的資金轉移。

說明一致性概念的圖解。

  • 隔離—— 同時進行的交易不能互相干擾,必須維持一致的資料庫狀態。 例如,進行從一個帳戶轉移資金至另一個帳戶的交易期間,檢查這些帳戶餘額的另一筆交易必須傳回一致的結果,也就是檢查餘額的交易不能在轉移資金之前擷取反映某個帳戶餘額的值,並等到轉移資金之後才擷取反映另一個帳戶餘額的值。

解釋隔離概念的圖示。

  • 持久性 – 交易認可後,交易仍會保持認可狀態。 帳戶轉移交易完成後,修訂後的帳戶餘額會被保留,即使資料庫系統關閉,已承諾的交易在重新啟動時仍會被反映。

說明耐久度概念的示意圖。

OLTP 系統通常用來支援可處理商務資料的即時應用程式,通常稱為「企業營運 (LOB)」應用程式。