1. 程式人生 > >資料庫系統概述之併發控制

資料庫系統概述之併發控制

第十一章  併發控制

1.事務併發

多使用者資料庫系統的存在(允許多個使用者)

特點:在同一時刻併發執行時的事務數可達數百個

2.併發操作帶來的資料不一致性

併發操作帶來的資料不一致性包塊丟失修改、不可重複讀和讀‘髒’資料

3.併發控制的技術

併發控制的主要技術有封鎖、時間戳、樂觀控制法和多版本併發控制。

4.封鎖

排它鎖(X鎖)寫鎖:保證其他事務在T釋放A上的鎖之前,不能在讀取和修改A。

共享鎖(S鎖)讀鎖:保證其他事務可以讀A,但在T釋放A上的S鎖之前,不能對A進行修改。

5.為什麼要併發控制

資料庫是共享資源,通常由許多個事務同時在執行。當多個事務併發地存取資料庫時就會產生同時讀取和修改同一資料的情況。若對併發操作不加控制就可能會存取和儲存不正確的資料,破壞資料庫的一致性。所以資料庫管理系統必須提供併發控制機制。

6.什麼是活鎖和死鎖?怎麼預防

活鎖:資料資源釋放時間不確定,導致某些事務長時間等待,得不到封鎖機會。

預防措施:先來先服務

死鎖:多個事務各自佔有部分資源等待另一部分資源,資源需求出現迴路,導致事務停頓無法執行。

預防:一次封鎖法,順序封鎖法

診斷解除:超時法,等待圖法