數(shù)據(jù)庫的acid特性
對軟件開發(fā)人員來說,數(shù)據(jù)庫也有這么貴重。如果使用數(shù)據(jù)庫的話,需要確保它安全存儲數(shù)據(jù)并允許您將來檢索數(shù)據(jù)。您還希望數(shù)據(jù)庫允許多個(gè)程序使用數(shù)據(jù)庫而不會相互干擾。為了演示,假設(shè)您擁有一個(gè)銀行。銀行的數(shù)據(jù)庫必須具備下列功能:● 安全存儲合適的數(shù)據(jù)
●快速檢索合適的數(shù)據(jù)
●支持多個(gè)并行的用戶會話
這些任務(wù)可以合稱為 ACID 測試;ACID 是 Atomicity(原子性)、Consistency(一致性)、Isolation(隔離性)和 Durability(持久性)的縮略詞。
原子性 指數(shù)據(jù)庫操作可以組合到一起,當(dāng)作單個(gè)單元處理。
一致性 保證此單個(gè)單元(或事務(wù))中的所有操作要么都成功執(zhí)行,要么都不執(zhí)行。換句話說,數(shù)據(jù)庫不能處于未完成狀態(tài)。要了解這些特征為何如此重要,可考慮這樣一個(gè)銀行事務(wù):即錢從儲蓄帳戶轉(zhuǎn)到支票帳戶。如果在將錢從儲蓄帳戶減去之后、加到支票帳戶之前,轉(zhuǎn)帳處理失敗,那么您就會變窮,而銀行將會有一個(gè)憤怒的(前)客戶!原子性使得這兩個(gè)操作 —— 從儲蓄帳戶減錢和向支票帳戶加錢 —— 被當(dāng)作單個(gè)事務(wù)進(jìn)行處理。一致性保證事務(wù)中的這兩個(gè)操作同時(shí)成功或同時(shí)失敗。這樣,您的錢就不會丟失了。
隔離性 指獨(dú)立的數(shù)據(jù)庫事務(wù)集合以不相互沖突的方式執(zhí)行。仍使用這個(gè)銀行類比,考慮兩個(gè)客戶同時(shí)在帳戶之間轉(zhuǎn)移資金。數(shù)據(jù)庫必須分別跟蹤兩個(gè)轉(zhuǎn)帳;否則,資金可能進(jìn)入錯(cuò)誤的帳戶,而銀行可能得多兩個(gè)憤怒的(前)客戶。
持久性 保證數(shù)據(jù)庫是安全的,不會異常終止。當(dāng)電源斷電時(shí),如果電視或計(jì)算機(jī)不工作,這可能是小麻煩,但同樣的事情對于數(shù)據(jù)庫來說就不一樣了。如果銀行計(jì)算機(jī)在轉(zhuǎn)移資金時(shí)掉電,導(dǎo)致交易丟失,您就不會是個(gè)快樂的客戶了。持久性保證如果數(shù)據(jù)庫在資金轉(zhuǎn)移期間異常終止,則當(dāng)數(shù)據(jù)庫重新啟動(dòng)時(shí),它將能夠恢復(fù)交易并繼續(xù)正常的操作。
posted on 2010-08-20 11:22 tobyxiong 閱讀(1873) 評論(0) 編輯 收藏 所屬分類: DATABASES