並發控制
在計算機科學,特別是程序設計、操作系統、多處理機和數據庫等領域,並發控制(英語:Concurrency control)是確保及時糾正由並發操作導致的錯誤的一種機制。
數據庫管理系統中的並發控制
數據庫管理系統(DBMS)中的並發控制的任務是確保在多個事務同時存取數據庫中同一數據時不破壞事務的隔離性和統一性以及數據庫的統一性。下面舉例說明並發操作帶來的數據不一致性問題:
- 現有兩處火車票售票點,同時讀取某一趟列車車票數據庫中車票餘額為 X。兩處售票點同時賣出一張車票,同時修改餘額為 X -1寫回數據庫,這樣就造成了實際賣出兩張火車票而數據庫中的記錄卻只少了一張。
產生這種情況的原因是因為兩個事務讀入同一數據並同時修改,其中一個事務提交的結果破壞了另一個事務提交的結果,導致其數據的修改被丟失,破壞了事務的隔離性。並發控制要解決的就是這類問題。
封鎖、時間戳、樂觀並發控制和悲觀並發控制是並發控制主要採用的技術手段。
參考文獻
- 王珊、薩師煊. 数据库系统概论 (M) 4. 北京: 高等教育版社. 2006. ISBN 7-04-019583-6.
外部連結
- Portland Pattern Repository: Synchronization Strategies (頁面存檔備份,存於網際網路檔案館)
- Portland Pattern Repository: Category Concurrency (頁面存檔備份,存於網際網路檔案館)
- Database Locking: What it is, Why it Matters and What to do About it (頁面存檔備份,存於網際網路檔案館)
這是一篇與軟件相關的小作品。您可以透過編輯或修訂擴充其內容。 |