ACID性質(zhì) ACID property
定義:ACID指數(shù)據(jù)庫事務(wù)正確執(zhí)行的四個(gè)基本要素的縮寫,包含原子性(atomicity)、一致性(consistency)、隔離性(isolation)和持久性(durability)。一個(gè)支持事務(wù)的數(shù)據(jù)庫系統(tǒng),必須要具有這四種特性,否則在事務(wù)執(zhí)行過程中無法保證數(shù)據(jù)的正確性,處理過程極可能達(dá)不到正確要求。
學(xué)科:計(jì)算機(jī)科學(xué)技術(shù)_數(shù)據(jù)庫_數(shù)據(jù)庫管理系統(tǒng)及其實(shí)現(xiàn)技術(shù)
相關(guān)名詞:數(shù)據(jù)庫 數(shù)據(jù)庫管理系統(tǒng) 事務(wù)
圖片來源:視覺中國
【延伸閱讀】
從數(shù)據(jù)庫用戶的觀點(diǎn)看,數(shù)據(jù)庫中某些特定操作的集合需要被認(rèn)為是一個(gè)獨(dú)立單元。例如,顧客認(rèn)為從支票賬戶到儲(chǔ)蓄賬戶的資金轉(zhuǎn)賬是一個(gè)操作單元,盡管在數(shù)據(jù)庫系統(tǒng)中這是由對(duì)支票賬戶資金余額的修改、對(duì)儲(chǔ)蓄賬戶資金余額的修改以及對(duì)本次交易的登記等幾個(gè)操作組成的。顯然,必須要求這些操作要么全都發(fā)生,要么由于出錯(cuò)而全不發(fā)生。保證這一點(diǎn)非常重要。無論從系統(tǒng)的觀點(diǎn)還是從用戶的觀點(diǎn),都不愿意看到資金從支票賬戶支出而未轉(zhuǎn)入儲(chǔ)蓄賬戶的情況發(fā)生。
由上述問題,可以引入數(shù)據(jù)庫的“事務(wù)”概念。事務(wù)是構(gòu)成單一邏輯工作單元的操作集合。不論有無故障,數(shù)據(jù)庫系統(tǒng)必須保證事務(wù)的正確執(zhí)行,即該事務(wù)的整個(gè)操作集合完全被執(zhí)行,或?qū)儆谠撌聞?wù)的操作一個(gè)也不執(zhí)行。此外,數(shù)據(jù)庫系統(tǒng)必須以一種能避免引入不一致性的方式來管理事務(wù)的并發(fā)執(zhí)行。例如,假設(shè)系統(tǒng)中有一個(gè)資金轉(zhuǎn)賬事務(wù),將一筆資金從支票賬戶轉(zhuǎn)到儲(chǔ)蓄賬戶中,假設(shè)還有一個(gè)事務(wù)是計(jì)算顧客總金額,它和上述資金轉(zhuǎn)賬的事務(wù)在系統(tǒng)中并發(fā)地執(zhí)行。如果計(jì)算顧客總金額的事務(wù)在資金轉(zhuǎn)賬事務(wù)從支票賬戶支出金額之前查看支票賬戶余額,而在資金存入儲(chǔ)蓄賬戶之后查看儲(chǔ)蓄賬戶余額,并對(duì)它們進(jìn)行求和,該事務(wù)就會(huì)得到不正確的結(jié)果,因?yàn)橥还P資金被重復(fù)計(jì)算了兩次。所以,為了保證事務(wù)的正確執(zhí)行,維護(hù)數(shù)據(jù)庫的完整性,要求數(shù)據(jù)庫系統(tǒng)維護(hù)以下事務(wù)特性:
原子性:事務(wù)的所有操作在數(shù)據(jù)庫中要么全部正確反映出來,要么全部不反映。
一致性:事務(wù)的隔離執(zhí)行(即沒有并發(fā)執(zhí)行的其他事務(wù)),保持?jǐn)?shù)據(jù)庫的一致性。
隔離性:盡管多個(gè)事務(wù)可以并發(fā)執(zhí)行,但系統(tǒng)必須保證,對(duì)任一對(duì)事務(wù)A和B,在A看來,B或者在A開始之前已經(jīng)停止執(zhí)行,或者在A完成之后開始執(zhí)行。這樣,每個(gè)事務(wù)都感覺不到系統(tǒng)中有其他事務(wù)在并發(fā)地執(zhí)行。
持久性:一個(gè)事務(wù)成功完成后,它對(duì)數(shù)據(jù)庫的改變必須是永久的,即使系統(tǒng)可能出現(xiàn)故障。
以上特性統(tǒng)稱為ACID特性,他們?nèi)渴怯蓴?shù)據(jù)庫管理系統(tǒng)來維護(hù)的。
成功完成執(zhí)行的事務(wù)稱為已提交事務(wù)。已提交事務(wù)使數(shù)據(jù)庫進(jìn)入一個(gè)新的一致狀態(tài)。未能成功完成的事務(wù)稱為中止事務(wù),中止事務(wù)必須對(duì)數(shù)據(jù)庫的狀態(tài)不造成影響。即中止事務(wù)對(duì)數(shù)據(jù)庫所做的任何改變必須撤銷。一旦中止事務(wù)造成的變更被撤銷,就說明事務(wù)已回滾。如此,才能保證數(shù)據(jù)庫當(dāng)中的數(shù)據(jù)在經(jīng)過操作或在操作過程當(dāng)中,都是正確無誤的。
(延伸閱讀作者:大連理工大學(xué)計(jì)算機(jī)學(xué)院教授 楊鑫)
責(zé)任編輯:張鵬輝