ITパスポート試験 過去問解説

コミットとは?ITパスポート試験 2014年 (平成26年 秋期) 問71を解説

ITパスポート試験 2014年 (平成26年 秋期) 問71は、コミットに関する理解を問う問題です。検索から入っても、問題文、選択肢、正解、解説、各選択肢がなぜ違うかをこのページだけで確認できます。

問題文

図は処理1,処理2の順でデータベースを更新するトランザクションの処理フローを示している。図中のa〜cのうち,コミット処理(処理1,処理2の更新結果を確定させる処理)に該当する箇所だけを全て挙げたものはどれか。 [フロー: 開始 → 処理1 → 処理1が正常終了したか?(No→c, Yes→処理2) → 処理2が正常終了したか?(No→b, Yes→a) → 終了]
トランザクション処理フロー図。開始 → 処理1 → 「処理1が正常終了したか?」判定(No なら c へ) → Yes なら 処理2 → 「処理2が正常終了したか?」判定(No なら b、Yes なら a)→ 終了。a/b/c の 3 つの分岐先がある。

この問題の出題ポイント

  • コミットの定義だけでなく、問題文中の条件がどの選択肢に当てはまるかを確認する。
  • テクノロジ系分野では、用語の目的・主体・責任範囲の違いが選択肢で問われやすい。
  • 関連タグ: コミット、トランザクション、図表問題。

選択肢

  1. a正解
  2. a,b
  3. b,c
  4. c

正解

: a

解説

トランザクションは,データベースに対する一連の処理であり,全て成功した場合のみ確定(コミット)し,途中で異常があれば取り消し(ロールバック)するACID特性が原則となる. 本問のフローでは,処理1と処理2の両方が正常終了した時点で初めて更新内容を確定するコミット処理が必要. 図中「aがYes(処理2正常終了)→終了」のa位置がコミットに該当する. bは処理2失敗時のロールバック位置,cは処理1失敗時のロールバック位置で,いずれもコミットではない. コミットは「全成功確認後」に1か所のみ実行するのが原則となる.

なぜ他の選択肢が違うのか

  • ア(正解)

    正解. 処理1と処理2の両方が正常終了したことを確認した直後の位置(a)が,更新内容を確定させるコミット処理に該当する. トランザクションは全成功時のみコミットするのが鉄則で,いずれかが失敗した場合はロールバックする. aの単独指定が正しく,b・cはコミット位置ではない. 全成功確認後の一点のみがコミット.

  • 誤り. a・bを挙げているが,b(処理2が正常終了しなかったとき)はロールバック(取り消し)に該当する位置で,コミット(確定)ではない. コミットは「全処理成功時」に行うものであり,失敗時はロールバックという別処理になるため,bをコミットに含めるのは誤りである. 成功と失敗の処理を取り違えない.

  • 誤り. b・cを挙げているが,いずれも処理の正常終了ではなく異常終了時のロールバック位置. コミットは「全処理が正常に完了した」場合に行う確定処理であり,失敗時のロールバックとは正反対の処理である. 異常終了パスをコミットと取り違えており,根本的な誤解に基づく選択肢となる.

  • 誤り. c(処理1が正常終了しなかったとき)はロールバック(取り消し)に該当する位置で,コミットではない. 処理1が失敗した時点で処理2にも進まずに取り消すべきで,コミットは全成功確認後のa位置のみとなる. 異常パスをコミットに含めるのは根本的な誤りで,ACID特性の理解不足.

解き方の整理

コミットの問題では、選択肢のキーワードだけで判断せず、問題文が示す条件と正解選択肢の説明が一致しているかを見ます。誤答選択肢は、似た用語を混ぜる、主体を入れ替える、目的や範囲を広げすぎる、という形で作られることが多いため、選択肢別解説まで確認しておくと復習効率が上がります。

関連用語

関連問題

前後の問題

2014年 (平成26年 秋期) の関連する問題

復習を続ける

間違えた問題、苦手タグ、模試履歴を保存して復習する導線を用意しています。広告なしPro、弱点分析、復習リマインダーは段階的に提供予定です。