過去問解きまくり研究所 ホーム

平成24年度 春期 午前Ⅱ 問17

トランザクション処理

WALに関する問題

更新前レコードと更新後レコードをログとして利用する DBMS において,ログを先に書き出す WAL(Write Ahead Log)プロトコルに従うとして,処理①~⑥を正しい順番に並べたものはどれか。

① begin transaction レコードを書き出す。

② データベースを更新する。

③ ログに更新前レコードを書き出す。

④ ログに更新後レコードを書き出す。

⑤ commit レコードを書き出す。

⑥ end transaction レコードを書き出す。

答えと解説を見る

✓ これが正解エ①→③→④→②→⑤→⑥

解説

ログを先に書き、次にデータベース更新、最後に commit と end です。

WAL プロトコルは、データベースを更新する前に、その更新に対応するログを先に書き出すという規則です。こうしておけば、更新の途中で障害が起きても、ログを使って元に戻すことも、やり直すこともできます。処理の順に並べると、まず①begin transaction レコードを書き、③更新前レコードと④更新後レコードをログに書き出してから、②データベースを更新します。その後、⑤commit レコードを書いてトランザクションを確定させ、最後に⑥end transaction レコードを書きます。ログが先でデータベースが後、確定の commit が終了の end より先、という二つの順序を守っている並びを探すと選べます。

ほかの選択肢はなぜ違うのか

この問題の用語

出典:平成24年度 春期 データベーススペシャリスト試験 午前Ⅱ 問17

同じ用語が出る問題

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)