IPA過去問ドリル

平成28年度 秋期 システムアーキテクト試験 午前Ⅱ 問21

テクノロジ/データベース

システム障害発生時には,データベースの整合性を保ち,かつ,最新のデータベース状態に復旧する必要がある。このために,DBMS がトランザクションのコミット処理を完了とするタイミングとして,適切なものはどれか。

出典:平成28年度 秋期 システムアーキテクト試験 午前Ⅱ 問21

正解:エ

解説

DBMS におけるトランザクションのコミット処理は,データベースの整合性を保ちつつ,システム障害が発生しても更新結果を失わないようにするために,更新内容(コミット情報)を,障害が発生しても消失しない不揮発性の記憶媒体であるログファイルへ書き込むことを完了時点とします。ログバッファ(主記憶上のバッファ)への書込みだけでは,システム障害(電源断など)によって内容が失われる可能性があるため,ログファイル(ディスクなどの不揮発性媒体)への書込みが完了した時点をもって,コミットが確定したとみなします。

選択肢ごとの解説

  • 誤り。アプリケーションの更新命令が完了した時点では,その更新内容がまだログファイルに書き込まれておらず,システム障害が発生すると更新内容が失われる可能性があるため,コミット完了のタイミングとしては不適切です。
  • 誤り。チェックポイント処理は,一定間隔でバッファの内容をデータベースに反映し復旧処理を高速化するための処理であり,個々のトランザクションのコミット完了タイミングを規定するものではありません。
  • 誤り。ログバッファは主記憶上の一時的な領域であり,システム障害(電源断など)が発生するとその内容は失われてしまうため,ログバッファへの書込み完了時点をコミット完了とするのは不適切です。
  • 正しい。ログファイル(不揮発性の記憶媒体)へのコミット情報の書込みが完了した時点をもってコミット処理を完了とすることで,システム障害が発生してもデータベースの整合性を保ち,最新の状態に復旧できます。
システムアーキテクトの過去問を演習モードで解く