免費開始練習
調查局三等申論題 114年 [資訊科學組] 資料庫應用

第 一 題

📖 題組:
假設資料庫對交易(Transaction)採用基本的兩階段鎖(basic two-phrase locking)的機制,在這種機制下有可能產生死鎖(deadlock)。假設 read_item(X) 代表交易對資料項目 X 讀取,write_item(X) 代表交易對資料項目 X 寫入新值,read_lock(X) 代表交易對 X 下 read_lock,write_lock(X) 代表交易對 X 下 write_lock,其餘類推。T1、T2 兩個交易原先期待進行的內容如下表左右兩欄。實際上系統不是序列化(Serial)排程,而是將交易交織進行。假設在兩個交易交織進行的α排程(Schedule),T2 在時戳(Timestamp)為 1000 時開始,T1 在時戳為 1010 時開始。在這個α排程下,系統偵測到有死鎖產生的可能。
📝 此題為申論題,共 2 小題

小題 (一)

請繪出其可能導致死鎖的等待圖(wait-for graph),其中必須標註等待的資源。(5 分)

思路引導 VIP

解此題需先理解基本兩階段鎖(Basic 2PL)的特性以及死鎖產生的必要條件(循環等待)。由於原題遺漏了交易操作明細表,解題時應自行假設兩個交易分別持有不同資料項目(如X、Y)的鎖,並請求對方已持有的資料項目,進而畫出呈現循環等待且明確標註等待資源的等待圖(Wait-for Graph)。

🤖
AI 詳解
AI 專屬家教

【破題】 死鎖(Deadlock)的產生源於多個交易之間發生了「循環等待」(Circular Wait)的資源競爭。等待圖(Wait-for graph)即是用有向圖(Directed Graph)來具體呈現這種等待關係的工具。 【論述】

小題 (二)

在上述 α排程下,資料庫管理系統有死鎖預防機制(deadlock prevention scheme)以避免死鎖,下列各種不同機制,請說明每個交易分別會發生的情況。 ⑴採 Wait-die。(5 分) ⑵採 Wound-wait。(5 分) ⑶採 No waiting。(5 分) ⑷採 Cautious waiting。(5 分)

思路引導 VIP

先釐清交易的時戳大小以判斷資歷:T2 時戳為 1000(較老),T1 時戳為 1010(較年輕)。接著依照各項死鎖預防機制(如 Wait-die 為「老等少死」、Wound-wait 為「老殺少等」)的定義,分別探討 T1 請求 T2 資源,以及 T2 請求 T1 資源兩種情境下的具體處置與結果。

🤖
AI 詳解
AI 專屬家教

【破題】 本題核心在於依據交易的時戳(Timestamp)或交易的等待狀態來決定死鎖預防的處置。已知 T2 在時戳 1000 開始(較老、資深),T1 在時戳 1010 開始(較年輕、資淺)。以下針對各種機制分析交易發生衝突時的具體情況: 【論述】

升級 VIP 解鎖