資料庫事務,原子性(Atomic)、一緻性(Consistency)、隔離性(Isolation)、持久性(Durabiliy)
很多複雜的事務要分布進行,但它們組成了一個整體,要麼整體生效,要麼整體失效。這種思想反應到資料庫上,就是多條SQL語句,要麼所有執行成功,要麼所有執行失敗。
資料庫事務由嚴格的定義,它必須滿足4個特性:
原子性(Atomicity),一緻性(consistency),隔離性(Isolation),持久性(Durability)。
原子性:
表示組成一個事務的多個資料庫操作是一個不可分割的原子單元,隻有所有的操作執行成功,整個事務才送出。事務中的任何一個資料庫操作失敗,已經執行的任何操作都必須被撤銷,讓資料庫傳回初始狀态。
一緻性
事務操作成功後,資料庫所處的狀态和他的業務規則是一緻的,即資料不會被破壞。如A賬戶轉賬100元到B賬戶,不管操作成功與否,A和B賬戶的存款總額是不變的。
隔離性
在并發資料操作時,不同的事務擁有各自的資料空間,他們的操作不會對對方産生敢逃。準确地說,并非要求做到完全無幹擾。資料庫規定了多種事務隔離界别,不同的隔離級别對應不用的幹擾成都,隔離級别越高,資料一緻性越好,但并發行越弱。
持久性:
一旦事務送出成功後,事務中所有的資料操作都必須被持久化到資料庫中。即使在事務送出後,資料庫馬上崩潰,在資料庫重新開機時,也必須保證能夠通過某種機制恢複資料。