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