三、假設一個交易(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 四 個交易及以下的排程,
假設資料項之初始值 X=100、Y=425 和 Z=800,且記憶體夠大,作業系 統不主動將記憶體緩衝區的資料或 LOG 紀錄寫回硬碟,回答以下問題。 (每小題 10 分,共 30 分)