平成28年度 秋期 午前Ⅱ 問21
データベース
コミットに関する問題
システム障害発生時には,データベースの整合性を保ち,かつ,最新のデータベース状態に復旧する必要がある。このために,DBMS がトランザクションのコミット処理を完了とするタイミングとして,適切なものはどれか。
- アアプリケーションの更新命令完了時点
- イチェックポイント処理完了時点
- ウログバッファへのコミット情報書込み完了時点
- エログファイルへのコミット情報書込み完了時点
答えと解説を見る
✓ これが正解エログファイルへのコミット情報書込み完了時点
解説
ログファイルへコミット情報を書き終えた時点でコミット完了とします。
障害が起きても最新の状態へ復旧できるようにするには、コミットしたトランザクションの更新内容を、障害で消えない場所に記録しておく必要があります。DBMS は、更新の内容を先にログへ書く方式をとり、コミット情報がディスク上のログファイルへ書き込まれた時点で、コミットを完了とします。こうしておけば、データベース本体への反映が終わる前に障害が起きても、ログファイルからやり直して最新の状態へ戻せます。メモリ上のバッファは障害で消えてしまうので、そこへの書込みだけでは足りません。障害で消えない場所に記録できた時点が完了、と覚えておくと判断できます。
ほかの選択肢はなぜ違うのか
- アアプリケーションの更新命令完了時点:アプリケーションの更新命令が終わった時点では、更新はまだメモリ上にあるだけかもしれません。この時点で完了とすると、障害が起きたときにコミットしたはずの内容を復元できなくなるおそれがあります。
- イチェックポイント処理完了時点:チェックポイント処理は、メモリ上の更新内容を一定の間隔でまとめてデータベースへ書き出す処理です。トランザクションごとに行うものではないので、これを待ってコミット完了とするのは適切ではありません。
- ウログバッファへのコミット情報書込み完了時…:ログバッファはメモリ上の領域なので、システムの障害が起きると中身が失われます。ここへの書込みが終わっただけでコミット完了とすると、障害の後でその更新を復元できなくなるおそれがあります。
この問題の用語
- データベースたくさんのデータを決まった形で貯め、探したり書き換えたりできるようにした仕組み。多くの人が同時に使うことを前提にしています。
- DBMSデータベースを管理するソフト。複数の処理が同じデータを同時に更新しても矛盾しないよう、排他制御などを行います。
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
- ログいつ誰が何をしたかを、機器やソフトウェアが自動で残していく記録です。あとから出来事をたどれるので、事故の調査や不正の発見に使われます。
出典:平成28年度 秋期 システムアーキテクト試験 午前Ⅱ 問21
同じ用語が出る問題
- 令和7年度 春期 午前Ⅱ 問24:隔離性水準に関する問題(トランザクション)
- 令和7年度 春期 午前Ⅱ 問18(ログ)
- 令和6年度 春期 午前Ⅱ 問24:デッドロックに関する問題(DBMS)
- 令和6年度 春期 午前Ⅱ 問14:WTO政府調達協定に関する記述(データベース)
- 令和6年度 春期 午前Ⅱ 問2:インプロセスデータベースの説明(DBMS)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)