數(shù)據(jù)庫事務(wù)必須具備ACID特性,ACID是Atomic(原子性)、Consistency(一致性)、Isolation(隔離性)和Durability(持久性)的英文縮寫。
原子性:指整個數(shù)據(jù)庫事務(wù)是不可分割的工作單位。事務(wù)中的操作要么發(fā)生,要么沒發(fā)生,不存在發(fā)生一半的情況。
一致性:一致性也稱為完整性。一個事務(wù)在執(zhí)行后,數(shù)據(jù)庫必須從一個一致性狀態(tài)轉(zhuǎn)變?yōu)榱硪粋€一致性狀態(tài)。
隔離性:指的是在并發(fā)環(huán)境中,當(dāng)不同的事務(wù)同時操縱相同的數(shù)據(jù)時,每個事務(wù)都有各自的完整數(shù)據(jù)空間,互不干擾。
持久性:指的是只要事務(wù)成功結(jié)束,它對數(shù)據(jù)庫所做的更新就必須永久保存下來。
事務(wù)的(ACID)特性是由關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS,數(shù)據(jù)庫系統(tǒng))來實現(xiàn)的。數(shù)據(jù)庫管理系統(tǒng)采用日志來保證事務(wù)的原子性、一致性和持久性。日志記錄了事務(wù)對數(shù)據(jù)庫所做的更新,如果某個事務(wù)在執(zhí)行過程中發(fā)生錯誤,就可以根據(jù)日志,撤銷事務(wù)對數(shù)據(jù)庫已做的更新,使數(shù)據(jù)庫退回到執(zhí)行事務(wù)前的初始狀態(tài)。
數(shù)據(jù)庫管理系統(tǒng)采用鎖機(jī)制來實現(xiàn)事務(wù)的隔離性。當(dāng)多個事務(wù)同時更新數(shù)據(jù)庫中相同的數(shù)據(jù)時,只允許持有鎖的事務(wù)能更新該數(shù)據(jù),其他事務(wù)必須等待,直到前一個事務(wù)釋放了鎖,其他事務(wù)才有機(jī)會更新該數(shù)據(jù)。