調查局三等申論題
113年
[資訊科學組] 資料庫應用
第 一 題
📖 題組:
假設一個交易(transaction)有五種基本運算,分別是⑴begin(T):交易 T 開始;⑵read(Y, y):將硬碟資料項 Y 讀到主記憶體變數 y;⑶write(y, Y):將主記憶體變數 y 寫到硬碟資料項 Y;⑷commit(T):交易 T 提交,表示 T 成功結束;⑸rollback(T):交易 T 被駁回。 假設資料庫紀錄檔(database log)中用五種方式記錄交易的運算,分別為:⑴[start, T]:交易 T 開始;⑵[read, T, Y]:交易 T 讀取資料項 Y;⑶[write, T, Y, 更新前的值, 更新後的值]:交易 T 更新資料項 Y;⑷[commit, T]:交易 T 提交;⑸[rollback, T]:交易 T 被駁回。 在 WAL(Write-Ahead Logging)機制下,考慮交易 T0、T1、T2 和 T3 四個交易及以下的排程,[表格省略,詳如原題時間序1至22] 假設資料項之初始值 X=100、Y=425 和 Z=800,且記憶體夠大,作業系統不主動將記憶體緩衝區的資料或 LOG 紀錄寫回硬碟,回答以下問題。(每小題 10 分,共 30 分)
假設一個交易(transaction)有五種基本運算,分別是⑴begin(T):交易 T 開始;⑵read(Y, y):將硬碟資料項 Y 讀到主記憶體變數 y;⑶write(y, Y):將主記憶體變數 y 寫到硬碟資料項 Y;⑷commit(T):交易 T 提交,表示 T 成功結束;⑸rollback(T):交易 T 被駁回。 假設資料庫紀錄檔(database log)中用五種方式記錄交易的運算,分別為:⑴[start, T]:交易 T 開始;⑵[read, T, Y]:交易 T 讀取資料項 Y;⑶[write, T, Y, 更新前的值, 更新後的值]:交易 T 更新資料項 Y;⑷[commit, T]:交易 T 提交;⑸[rollback, T]:交易 T 被駁回。 在 WAL(Write-Ahead Logging)機制下,考慮交易 T0、T1、T2 和 T3 四個交易及以下的排程,[表格省略,詳如原題時間序1至22] 假設資料項之初始值 X=100、Y=425 和 Z=800,且記憶體夠大,作業系統不主動將記憶體緩衝區的資料或 LOG 紀錄寫回硬碟,回答以下問題。(每小題 10 分,共 30 分)
📝 此題為申論題,共 3 小題
小題 (一)
執行時間序 8 之後(時間序 9 之前),記憶體和硬碟中資料項和紀錄檔的內容各為何?
思路引導 VIP
解題關鍵在於逐步追蹤時間序 1 至 8 的執行結果,並套用 WAL (Write-Ahead Logging) 原則與交易 Commit 機制。當交易 T0 執行 commit 時,會強制將所有相關的 Log 紀錄寫入硬碟紀錄檔中(Force Log),但因作業系統不主動寫回,資料項的更新(Y=4250)仍只保留在主記憶體緩衝區中,硬碟裡的資料項維持原值。
小題 (二)
執行時間序 16 之後(時間序 17 之前),記憶體和硬碟中資料項和紀錄檔的內容各為何?
思路引導 VIP
本題測試考生對交易管理(Transaction Management)、WAL(Write-Ahead Logging)機制及 Checkpoint 的理解。解題時應依時間序逐步追蹤變數與資料項(X, Y, Z)的值,並根據題目定義的五種日誌格式轉換各項操作。最後利用 Checkpoint 的特性推導記憶體與硬碟的最終同步狀態。
小題 (三)
發生系統當機,系統復原後硬碟中資料項 X、Y 和 Z 的值為何?
思路引導 VIP
本題測試 WAL(Write-Ahead Logging)與當機復原機制。解題關鍵在於判斷系統當機時各交易的最終狀態:已 Commit 的交易必須 Redo 確保變更持久化,發生 Rollback 或未 Commit 的交易必須 Undo 以撤銷修改,並結合 Checkpoint 強制寫入硬碟的時機來推導各資料項的最終值。