1. 程式人生 > >事務處理的四大特性詳解

事務處理的四大特性詳解

首先事務是訪問並可能更新資料庫中各種資料項的一個程式執行單元,也就是所謂的原子性 他是一個操作序列,這些操作要麼都執行,要麼都不執行,它是一個不可分割的一部分。
事務(transaction)所應該具有的四個特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、永續性(Durability).這是可靠資料庫所應具備的幾個特性.下面針對這幾個特性進行逐個講解.

1、原子性
原子性是指事務是一個不可分割的工作單位,事務中的操作要麼成功要麼失敗。
舉個簡單的例子:
A給B轉賬,A錢少了B錢多了,成功,事務提交成功,失敗回滾

--開啟事務,這是推薦的操作
start transaction update account set money= money - 100where name='A'; update account set money= money +100where name='B'; if Error then rollback else commit

2、一致性
一致性是指在事務開始之前和事務結束以後,資料庫的完整性約束沒有被破壞。這是說資料庫事務不能破壞關係資料的完整性以及業務邏輯上的一致性。
1.案例
對銀行轉帳事務,不管事務成功還是失敗,應該保證事務結束後ACCOUNT表中aaa和bbb的存款總額為2000元。

保障事務的一致性,可以從以下兩個層面入手
a、資料庫機制層面
資料庫層面的一致性是,在一個事務執行之前和之後,資料會符合你設定的約束(唯一約束,外來鍵約束,Check約束等)和觸發器設定。這一點是由SQL SERVER進行保證的。比如轉賬,則可以使用CHECK約束兩個賬戶之和等於2000來達到一致性目的
b、業務層面
對於業務層面來說,一致性是保持業務的一致性。這個業務一致性需要由開發人員進行保證。當然,很多業務方面的一致性,也可以通過轉移到資料庫機制層面進行保證。
3、隔離性
多個事務併發訪問時,事務之間是隔離的,一個事務不應該影響其它事務執行效果。
這指的是在併發環境中,當不同的事務同時操縱相同的資料時,每個事務都有各自的完整資料空間。由併發事務所做的修改必須與任何其他併發事務所做的修改隔離。事務檢視資料更新時,資料所處的狀態要麼是另一事務修改它之前的狀態,要麼是另一事務修改它之後的狀態,事務不會檢視到中間狀態的資料。
4、永續性


事務一旦提交成功,收據儲存將是永存的