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

平成21年度 春期 午前Ⅱ 問11

トランザクション処理

WALに関する問題

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

① begin transaction レコードの書出し
② データベースの実更新
③ ログに更新前レコードの書出し
④ ログに更新後レコードの書出し
⑤ commit レコードの書出し
⑥ end transaction レコードの書出し

答えと解説を見る

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

解説

ログを先に書き、そのあとで実更新、最後に commit と end を書きます。

WAL プロトコルは、データベースを実際に更新する前に、その更新のログを書き出しておく決まりです。こうしておけば、実更新の途中で障害が起きても、ログを使って取り消したりやり直したりできます。処理の順は、まず begin transaction レコード①を書き、更新前レコード③と更新後レコード④をログに書き出してから、データベースの実更新②を行います。そのあとで commit レコード⑤を書き、最後に end transaction レコード⑥を書きます。並びは①→③→④→②→⑤→⑥です。並べ替えの問では、②より前にログの二つ、②より後に commit、最後に end、という骨組みを先に当てはめると選びやすくなります。

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

この問題の用語

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

同じ用語が出る問題

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