2011-03-19 21 views
11

使用數據庫時,使用事務通常是非常重要的。舉例說,我想將一定數量的錢從account A轉移到account B。這涉及兩個查詢:數據庫供應商如何實現交易?

  • 減少貨幣在賬戶A
  • 增加它在賬戶B.

理論上我可以單獨進行查詢,但錯誤發生。所以,可以肯定的是,我可以將這兩個查詢包含在一個事務中,並確保兩個操作都能定期結束或根本沒有任何變化。沒有錢消失或被創造。

問題是,在我看來,這隻會將責任從我轉移到數據庫供應商。現在由數據庫來做這兩個操作,並確保兩者都做或沒有改變。數據庫開發人員面臨着錯誤發生的相同問題。

數據庫供應商使用什麼技術來確保交易安全?

回答

8

wikipedia上的ACID - Implementations頁面將幫助您開始預寫式日誌記錄,影子分頁和多版本併發控制。按照鏈接查找更多。

每個DBMS供應商都實現自己的算法,通常根據上下文,完整的ACID或寬鬆的要求,分佈式事務一致性要求等實現它們自己的算法...