併發控制習題

1.在數據庫中爲什麼要併發控制?併發控制可以保證事務的哪些特性?

數據庫的一個明顯的特點就是多個用戶共享數據庫資源,尤其是多用戶可以同時存取相同的數據。在這樣的系統中,在同一時刻併發運行的事務數可達數百個。若對事務的併發操作不加以控制,就會造成數據存、取得錯誤,破壞了數據的一致性和完整性。
併發控制可以防止數據不一致出現。

2.併發操作可能會產生哪幾類數據不一致?用什麼方法能避免各種不一致的情況?

三類:丟失修改、不可重複讀、讀“髒”數據。
避免不一致性的方法和技術幾居室併發控制,最常見的技術就是封鎖技術。

3.什麼是封鎖?基本的封鎖類型有幾種?

封鎖就是事務S在對某個數據對象(例如表、記錄等)進行操作之前,先向系統發出請求,對其加鎖。加鎖後事務S就對該數據對象有了一定的控制,在事務S釋放它的鎖之前,其他的事務不能更新此數據對象。
基本的封鎖類型:排他鎖和共享鎖。

4.試述活鎖的產生原因和解決辦法。

產生原因:當一系列封鎖不能按照其先後順序執行時,就可能導致一些事務無限期等待某個封鎖,從而導致活鎖。
解決辦法:採用先來先服務的策略。當多個事務請求同一數據對象時,封鎖子系統按請求封鎖的先後順序對事務排隊,數據對象上的鎖一旦釋放就批准申請隊列中第一個事務獲得鎖。

5.試述死鎖的產生原因和解決辦法。

產生原因:兩個或多個事務都已封鎖一些數據對象,然後又都請求已被其他事務封鎖的數據加鎖,從而出現死等待。
解決辦法:其實就是破壞產生死鎖的條件:
(1).一次封鎖法。要求每個事務必須一次將所有要使用的數據全部加鎖,否則不能繼續執行。
(2)順序封鎖法。.預先對數據對象規定一個封鎖順序,所有事務都按這個順序實現封鎖。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章