要維持資料庫系統的一致性與正確性,其中的關鍵就在於 Transaction 可以正確的被處理,如果中間的任何一個步驟執行失敗也可以回復到 Transaction 還沒有執行前的狀態,因此 Transaction 包含了重要的四個特性:
- Atomicity
- Transaction 必須看成一個不可分割的完整個體,此一特性就稱為 Atomicity。也就是說 Transaction 的執行狀況必須是全部做完,或者是全部不作。
所以當 Transaction 正常執行完成時,會利用 Commit 指令告訴資料庫系統 Transaction 已正常執行完成,反之會以 Rollback 指令告訴資料庫系統 Transaction 執行失敗,必須回復到 Transaction 還沒有執行前的狀態。
- Concurrency
- 資料庫系統可以同時處理一個以上的 Transaction,否則一次只能處理一個 Transaction 的話,使用者就必須在不斷的等待中度過了。
- Isolation
- 雖然資料庫系統可以同時處理一個以上的 Transaction,但是當 Transaction 尚未處理完成時 ( 不論是 Commit
或 Rollback ),異動的資料是不可以被其他的 Transaction 讀取的,以避免當該 Transaction
尚未處理完成時資料的不確定性,造成其他 Transaction 的不正確處理。
- Durability
- 當 Transaction 正成執行完成後,資料庫系統會接收到 Commit 指令,這個時候就必須將 Transaction 的資料異動內容忠實的保存在資料庫中,以後就算是資料庫系統發生錯誤時, 以必須儘可能將資料復原。
上述為 Transaction 的四個特性。
本則專題由飛達客工作室提供