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

平成27年度春期 情報処理安全確保支援士 午前Ⅰ 問9

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

問題

DBMSに実装すべき原子性 (atomicity) を説明したものはどれか。

選択肢

  1. ア
    同一データベースに対する同一処理は、 何度実行しても結果は同じである。
  2. イ
    トランザクション完了後にハードウェア障害が発生しても、 更新されたデータベースの内容は保証される。
  3. ウ
    トランザクション内の処理は、 全てが実行されるか、 全てが取り消されるかのいずれかである。
  4. エ
    一つのトランザクションの処理結果は、 他のトランザクション処理の影響を受けない。
解き方のヒントを見る

午前I 問09:障害後のデータベース復旧を考えよう

データベースのログは、作業メモやレシートみたいなものだよ。障害が起きた後は、そのログを見ながら、完了済みの処理は redo でやり直して反映し、途中で止まった処理は rollback でなかったことにして、一貫した正しい状態へ戻すんだ。

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

ポイントは、トランザクションがコミット済みか、まだコミット前だったかを見分けることだよ。コミット済みなら結果を残す必要があるので redo、未コミットなら中途半端な変更を残さないよう rollback、と整理して考えよう。

DB Recovery Basics

database recovery uses redo for committed updates and rollback for uncommitted updates

committed -> redo\nuncommitted -> rollback

確認ポイント

  • 未コミットを再適用しない。
  • redo と rollback を使い分ける。
  • 整合状態への復旧を選ぶ。
正解と解説を見る

正解

ウ

出典

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

選択肢ア

これは不正解だよ。これは『一貫性』に近い説明だけど、『何度実行しても結果が同じ』という言い方はトランザクションの原子性ではないよ。たとえば在庫を1個減らす処理を何回も実行したら、当然在庫はどんどん減るよね。原子性は“途中で半端に終わらせない”という性質だよ。

選択肢イ

これは不正解だよ。これは『永続性』の説明で、処理が完了した後なら、停電や故障が起きても更新内容を守るという話なんだ。レジで会計済みの記録を金庫にも控えておくようなイメージだね。問われている『全部成功か全部取消し』という原子性とは違うよ。

選択肢ウ(正解)

これは正解だよ。トランザクションは、振込でいうと『Aさんの口座から引く』と『Bさんの口座に入れる』をセットで扱うんだ。途中で失敗したら全部なかったことにして、成功するなら全部まとめて成功させる。この“全部やるか、全部やめるか”が原子性だよ。

選択肢エ

これは不正解だよ。これは『隔離性』の説明で、ほかの人が同時に作業していても自分の処理結果が変に影響されない、という話なんだ。銀行の窓口で、隣の人の手続きが自分の振込結果に混ざらないようにするイメージだね。問われている『原子性』とは別物だよ。

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

関連する過去問一覧

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