Tuesday, September 15, 2015

Atomicity、Consistency、Isolation、Durability

1. Atomicity
一個交易(Transaction)是一個不可再分割的完整個體,它不是全部執行,就是全部不執行。以在 ATM 領錢來說,從你輸入密碼、到拿到錢、到帳戶扣帳為止,都必須正確執行完成。
2. Consistency
如果交易是全部執行,能讓資料庫從某個一致狀態,轉變到另一個一致狀態。以在 ATM 領錢來說,你領了 100 元,帳戶一定會少了 100 元。
3. Isolation
某交易執行期間所用的資料或中間結果,不容許其它交易讀取或寫入,直到此交易被確認(Commit,即:成功結束)為止;也就是說,它不應該被同時執行的其它交易所干擾。
以在 ATM 領錢來說,你領錢時,公司會計正好也在別家銀行辦理薪資轉帳,此時,若是你開始領錢的時間較早,那麼系統會將你的交易鎖定,直到你領錢的動作全部完成,才會再處理將你的薪資轉入你的戶頭的交易,反之亦然。
4.  Durability
一旦交易全部執行,且經過確認(Commit)後,此作業對資料庫所做的變更永遠有效,即使未來系統當機或毀損。也就是說,你提錢之後,帳戶少了 100 元就是少了 100 元,不會在經過一段時間後又恢復原來的金額。

No comments:

Post a Comment