SC情報処理安全確保支援士試験 午前Ⅱ

平成28年度秋期 情報処理安全確保支援士 午前Ⅱ 問21

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

問題

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

選択肢

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

午前II 問21:DBのコミットは「ログをちゃんと保存してから」が大事だよ

DBMSでは、障害が起きてもデータを矛盾なく最新状態へ戻せるように、コミット情報がログファイルへ確実に書き込まれた時点で「コミット完了」とみなすよ。たとえるなら、注文を受けただけではなく、消えない台帳に記録してから「受付完了」とするイメージだね。

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

この問題では、コミット完了と判断するには、一時的なログバッファに置くだけでは不十分で、障害後も残るログファイルへ永続的に書き込まれている必要がある、と分かっているかが問われているよ。

コミット完了の条件

コミット済みと見なした後に障害が起きても、ログファイルに残っていれば REDO で回復できる。バッファ上だけでは失われる恐れがある。

ログファイルへ永続化\n-> コミット完了\n-> 障害後 REDO 可

確認ポイント

  • アプリケーション命令完了やチェックポイント完了では不十分です。
  • ログバッファ書込みだけでは障害時に失われ得る。
  • ログファイルへの書込み完了を選ぶ。
正解と解説を見る

正解

エ

出典

問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。

選択肢ア

これは不正解だよ。アプリケーションの更新命令が終わっただけでは、まだ「正式に保存された」とは言えないんだ。たとえるなら、店員さんに申込書を渡しただけで、まだ台帳に登録されていない状態だよ。途中で停電したら、その更新を確実に復元できる保証がないので、コミット完了時点とは言えないよ。

選択肢イ

これは不正解だよ。チェックポイントは、たまった作業内容を整理してディスクへ反映する区切りのようなものだけど、個々の取引のコミット完了を決める瞬間ではないんだ。たとえるなら、店の閉店後に帳簿をまとめて整理する作業であって、お客さん一人ひとりの手続き完了時刻ではないよ。

選択肢ウ

これは不正解だよ。ログバッファはメモ用の一時置き場みたいなもので、そこにコミット情報を書いただけではまだ安全とは言えないんだ。たとえるなら、大事な合鍵の受け渡し記録を付箋に書いただけで、正式な台帳にはまだ貼っていない状態だよ。障害で消える可能性があるので、ログファイルに書き終わって初めてコミット完了だよ。

選択肢エ(正解)

これは正解だよ。コミットは「もうこの取引は確定しました」と宣言する場面だけど、本当に大事なのは、その記録が壊れにくい場所、つまりログファイルに書き込まれたかどうかなんだ。たとえるなら、窓口で手続きした内容をメモ帳に書いただけではまだ不安で、正式な台帳に記録して初めて「完了」と言える感じだよ。障害が起きても復旧できるように、コミット情報はログファイルへの書込み完了時点で確定と考えるよ。

出典:独立行政法人 情報処理推進機構(IPA)平成28年度秋期 情報処理安全確保支援士試験 午前Ⅱ 問21(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

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