允許多個用戶同時使用同一個數據庫的數據庫系統稱為多用戶數據庫系統。
事務可以一個一個地中行執行,即每個時刻只有一個事務運行,其他事務必須等到這個事務結束以后方能運行。
單處理機系統中,事務的并行執行實際上是這些并行事務的并行操作輪流交叉運行。并沒有真正地并行運行,但減少了處理機的空閑時間,提高了系統的效率。
多處理機系統中,多個處理機可以同時運行多個事務,實現多個事務真正的并發運行,稱同時并發方式。
11.1并發控制概述
為了保證事務的隔離性和一致性,數據庫管理系統需要對并發操作進行正確調度。
并發操作帶來的數據不一致性包括丟失修改,不可重復讀和讀臟數據。
主要原因是并發操作破壞了事務的隔離性。并發控制機制就是要用正確的方式調度并發操作,使一個用戶事務的執行不受其他事務的干擾,從而避免造成數據的不一致性。
并發控制的主要技術有封鎖,時間戳,樂觀控制法和多版本并發控制等。
11.2封鎖
封鎖就是事務T在對某個數據對象,例如表,記錄等操作之前,先向系統發出請求,對其加鎖。加鎖后事務T就對該數據對象有了一定的控制,在事務T釋放它的鎖之前,其他事務不能更新此數據對象。
基本的封鎖類型:排他鎖和共享鎖。
11.4活鎖和死鎖
活鎖。永遠等待。先來先服務。
死鎖。T等待B,B等待T。兩個事務永遠不能結束,形成死鎖。一類是采取一定措施預防死鎖的發生,另一類方法是允許發生死鎖,采用一定手段定期診斷系統中有無死鎖,若有則解除之。
①一次封鎖法。②順序封鎖法
①超時法。②等待圖法。