探索交易式資料處理
大多數人認為交易式資料處理系統是商務運算的主要功能。 交易式系統會記錄「交易」,而交易會封裝組織想要追蹤的特定事件。交易可能是財務 (例如銀行系統帳戶之間的金錢移動),也可能是零售系統的一部分,可追蹤客戶的貨物和服務付款。 將交易視為一個小型、離散的工作單位。
交易式系統的數量通常很高,有時會在一天內處理數百萬筆交易。 要進行處理的資料必須非常快速地存取。 交易式系統所執行的工作通常稱為線上交易處理 (OLTP)。
OLTP 解決方案依賴針對讀取和寫入作業最佳化資料儲存體的資料庫系統,以支援可建立、擷取、更新和刪除資料記錄的交易式工作負載 (通常稱為 CRUD 作業)。 這些作業會以交易方式套用,以確保資料庫中所儲存資料的完整性。 為了達成此目的,OLTP 系統會強制執行可支援所謂 ACID 語意的交易:
- 不可部分完成性 – 每筆交易視為單一單位,所以是完全成功或完全失敗。 例如,涉及從一個帳戶扣款,並在另一個帳戶承兌相同金額時,交易即須完成兩個動作。 如果無法完成任一動作,另一個動作就會失敗。
- 一致性 – 交易只能將資料庫中的資料從一個有效狀態變更為另一個有效狀態。 若要繼續上述的扣款和承兌範例,交易完成的狀態必須反映從一個帳戶到另一個帳戶的資金轉移。
- 隔離 – 並行交易無法彼此干擾,而且必須產生一致的資料庫狀態。 例如,進行從一個帳戶轉移資金至另一個帳戶的交易期間,檢查這些帳戶餘額的另一筆交易必須傳回一致的結果,也就是檢查餘額的交易不能在轉移資金之前擷取反映某個帳戶餘額的值,並等到轉移資金之後才擷取反映另一個帳戶餘額的值。
- 持久性 – 交易認可後,交易仍會保持認可狀態。 帳戶轉移交易完成後,會保存修訂的帳戶餘額,所以即使關閉資料庫系統,只要再次開啟資料庫系統,仍會反映認可的交易。
OLTP 系統通常用來支援可處理商務資料的即時應用程式,通常稱為「企業營運 (LOB)」應用程式。