數據庫事務概念
什么是數據庫事務玉工?
事務(transaction)是由指邏輯上對數據的的一組操作, 這組操作要么一次全部成功淘菩,如果這組操作全部失敗遵班,是不可分割的一個工作單位屠升。
1. 原子性(Atomicity)
事務的原子性是指事務是一個不可分割的工作單位,這組操作要么全部發(fā)生狭郑,否則全部不發(fā)生腹暖。
2. 一致性(Consistency)
在事務開始以前,被操作的數據的完整性處于一致性的狀態(tài)翰萨,事務結束后脏答,被操作的數據的完整性也必須處于一致性狀態(tài)。
拿銀行轉賬來說亩鬼,一致性要求事務的執(zhí)行不應改變A殖告、B 兩個賬戶的金額總和。如果沒有這種一致性要求雳锋,轉賬過程中就會發(fā)生錢無中生有黄绩,或者不翼而飛的現象。事務應該把數據庫從一個一致性狀態(tài)轉換到另外一個一致性狀態(tài)魄缚。
3. 隔離性(Isolation)
事務隔離性要求系統(tǒng)必須保證事務不受其他并發(fā)執(zhí)行的事務的影響宝与,也即要達到這樣一種效果:對于任何一對事務T1 和 T2焚廊,在事務 T1 看來冶匹,T2 要么在 T1 開始之前已經結束,要么在 T1 完成之后才開始執(zhí)行咆瘟。這樣嚼隘,每個事務都感覺不到系統(tǒng)中有其他事務在并發(fā)地執(zhí)行。
4. 持久性(Durability)
一個事務一旦成功提交袒餐,它對數據庫的改變必須是永久的飞蛹,即便是數據庫發(fā)生故障也應該不回對其產生任何影響。