システムアーキテクト試験 令和5年度 春期 午前II 問24
DBMSがトランザクションのコミット処理を完了するタイミングはどれか。
選択肢を押すと答え合わせができます。
正解と解説を見る
【正解】エ
トランザクションのコミットは、その処理結果を確定し、障害が発生しても更新を失わない状態にする操作です。DBMSは、更新内容そのものを格納したデータページを直ちにディスクへ書き出すとは限りません。その代わり、更新履歴とコミット情報をログファイルという不揮発性の記憶領域に書き込みます。コミット情報のログファイルへの書込みが完了すれば、直後に障害が発生しても、再起動時にログを使って確定済みの更新を再実行できます。したがって、エの時点でコミット処理が完了します。
アのアプリケーションプログラムの更新命令完了時点は誤りです。更新命令が終了しても、変更内容がメモリ上のバッファにあるだけで、トランザクション全体が確定していない場合があります。更新命令の完了とコミットの完了は別です。
イのチェックポイント処理完了時点は誤りです。チェックポイントは、メモリ上の更新済みデータをディスクへ反映するなどして、障害回復時に調べるログの範囲を短くする処理です。個々のトランザクションのコミット完了条件ではありません。
ウのログバッファへのコミット情報書込み完了時点は誤りです。ログバッファは主記憶上にあるため、電源断などによって内容が失われます。この段階では更新の永続性を保証できません。
【ポイント】 先にログを不揮発性記憶装置へ書き、その後でデータページを書き出す考え方をWALといいます。 コミット時に重要なのは、コミット情報が揮発性のバッファではなくログファイルへ確実に記録されることです。
出典:令和5年度 春期 システムアーキテクト試験 午前II 問24
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。
この回の25問を、アプリで通しで解く
- 本番と同じ問題数・制限時間で通し演習(模試モード)
- 間違えた問題は自動で「復習すべき問題」に回る
- 解説で分からない点はAIに質問できる