地特三等申論題
110年
[資訊處理] 資料庫應用
第 一 題
📖 題組:
在多使用者多工的資料庫管理系統(Database Management System),多個交易(Transactions)在同步執行(Concurrently Performed)時,有可能發生資料讀取之難題(issue)。請回答下列相關問題:
在多使用者多工的資料庫管理系統(Database Management System),多個交易(Transactions)在同步執行(Concurrently Performed)時,有可能發生資料讀取之難題(issue)。請回答下列相關問題:
📝 此題為申論題,共 5 小題
小題 (一)
請敘述何謂交易?(4 分)
思路引導 VIP
看到「交易(Transaction)」,應直指其核心定義:「不可分割的邏輯工作單元(Logical Unit of Work)」。除了說明 All-or-Nothing 的概念外,為確保拿到完整4分,建議一併列出交易必須具備的四大特性(ACID)以展現專業度。
小題 (二)
請敘述何謂更新遺失(Lost Updates)的難題?(4 分)
思路引導 VIP
看到「更新遺失(Lost Updates)」,應直覺聯想到並行控制中多個交易對同一資料進行「讀取-修改-寫入」的衝突。解題關鍵在於明確點出兩個交易同時讀取舊值,且後寫入的交易直接覆蓋了先寫入的交易結果,導致先前的更新失效。
小題 (三)
請敘述何謂讀到髒資料(Dirty Read)的難題?(4 分)
思路引導 VIP
看到「Dirty Read(讀取髒資料)」,應直覺聯想到並行控制(Concurrency Control)中交易的「隔離性(Isolation)」。破題關鍵在於點出「讀取到尚未 Commit 的資料」,並說明若原交易發生 Rollback 會導致資料狀態不一致的後果。
小題 (四)
請敘述何謂無法重複讀取(Non-Repeatable Read)難題?(4 分)
思路引導 VIP
看到此題,應先聯想資料庫交易(Transaction)隔離性(Isolation)所探討的並行問題。答題關鍵在於清楚描述「同一交易內兩次讀取」、「被另一交易修改或刪除並Commit」以及「兩次讀取結果不一致」三個核心要素。
小題 (五)
同步控制方法(Concurrency Control Method)可運用來解決前述的難題。其中有一種以鎖為基礎之協定(Lock-Based Protocol),請敘述其運作機制。(4 分)
思路引導 VIP
看到此題應聯想到交易在存取資料前必須先「上鎖」,操作後「解鎖」的基本機制。作答時務必點出兩種主要鎖定模式:共用鎖(Shared lock)用於讀取,互斥鎖(Exclusive lock)用於寫入,並簡述其相容性與等待規則以完整交代運作邏輯。