SAシステムアーキテクト試験 午前Ⅱ

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

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

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

選択肢

  1. ア
    アプリケーションの更新命令完了時点
  2. イ
    チェックポイント処理完了時点
  3. ウ
    ログバッファへのコミット情報書込み完了時点
  4. エ
    ログファイルへのコミット情報書込み完了時点
解き方のヒントを見る

境界と整合性を考える視点

トランザクションを検討するときは、処理のまとまりがどこで区切られ、途中で中断や失敗が起きた場合に、関連する状態をどの単位で捉えるかを整理します。前後の関係にも目を向けます。

この問題で問われていること

この問題では、個々の処理内容を先に決めつけず、開始から完了までの境界と、境界をまたいで状態を確認する単位に注目して読み比べてください。処理同士の関係も確認します。

視点

判断の中心を、処理の境界と状態の一貫性を確認する単位に置きます。用語の印象ではなく、処理の前後で何を同時に扱う前提かを整理し、説明がどの範囲を指しているかを見極めます。

確認ポイント

  • 処理の開始点と終了点がどこに置かれているか
  • 途中で状態が変化する範囲をどの単位で捉えているか
  • 処理の前後で関連する状態の関係が保たれるか
正解と解説を見る

正解

エ

解説

DBMSは、コミット済みのトランザクションを障害後にも復旧できるよう、コミット情報を永続的なログへ書き込んだ時点でコミット処理を完了とする。

理由

アプリケーションの更新命令が終わっても、更新内容やコミット情報が障害に耐えられる領域へ保存されたとは限らない。ログファイルへの書込みが完了して初めて、復旧処理がコミット済みのトランザクションを確認できる。

比較

チェックポイントは主にデータベース状態を整理して復旧を効率化する処理であり、個々のコミット完了そのものではありません。ログバッファは一時的な記憶領域なので、そこへの書込みだけでは障害時の情報保持を保証できない。

選択肢ア

これは不正解だよ。アプリケーションの更新命令が完了しても、更新結果やコミット情報が障害後も利用できる永続的な記憶領域へ保存されたとは限らない。そのため、この時点をDBMSのコミット完了とはできない。

選択肢イ

これは不正解だよ。チェックポイントは、データベースの更新内容を整理して障害後の復旧を効率化するための処理であり、各トランザクションのコミット完了を決める時点ではない。チェックポイント完了まで待つ必要もない。

選択肢ウ

これは不正解だよ。ログバッファはログ情報を一時的に保持する領域であり、そこへのコミット情報書込みが完了しただけでは、障害発生時にも情報が残るとはいえない。復旧に使える永続保存が必要である。

選択肢エ(正解)

これは正解だよ。ログファイルへのコミット情報書込みが完了すれば、障害後の復旧処理がコミット済みのトランザクションを確認できる。最新の整合したデータベース状態へ復旧するために必要な永続的記録が確保されるためである。

学習のポイント

コミット完了の判断では、更新処理の終了ではなく障害復旧に必要なログの永続化を重視する。

出典:独立行政法人 情報処理推進機構(IPA)平成28年度秋期 システムアーキテクト試験 午前Ⅱ 問21(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針