所謂的Transaction是一組資料庫的有序請求(新增、刪除、修改…),亦是資料庫工作的邏輯單位。比如有一個提供商城服務網站的資料庫,當顧客購買商品時,資料庫須先確認或修改庫存相關的表,再來新增資料進去訂單相關的表,這一系列動作因在邏輯上是一體的,可成為一個Transaction。
為了使DBMS(資料庫管理系統)是可靠的,每個獨立的Transaction都具有四個特性,分別是Atomicity(原子性)、Consistency(一致性)、Isolation(事務隔離)以及Durability(持久性),合稱ACID。
Atomicity
所有Transaction中的資料庫請求操作,只有全部成功或失敗,不允許只有部分操作完成的情況。
Consistency
Transaction開始前資料庫是一 consistent state,Transaction完成後會到另一個 consistent state。所謂consistency是指不違反資料庫預設的 constraints, cascades, triggers 等。
Isolation
當某一Transaction操作某一資料尚未完成時,其他Transactions無法操作此資料。
Durability
當Transaction完成後,無法被撤回或遺失,甚至系統故障。