本文へスキップ

平成27年度 秋期 ITパスポート試験 問71

この問題の解説と、これまでの解答の記録です。

問71
頻出度★☆☆

処理一覧に示す実行順に,トランザクション1~4を実行する。あるトランザクションが途中で異常終了し,トランザクションを中断してロールバックした結果,データAとデータBが残った。異常終了したトランザクションはどれか。ここで,トランザクションが正常終了したときにコミットを行い,次のトランザクションがあれば,それを実行する。異常終了したときは,当該トランザクション以降のトランザクションを実行しないものとする。 〔処理一覧〕

実行順トランザクション名処理
1トランザクション1データAを作成する。
2トランザクション2データBを作成し,データAを削除する。
3トランザクション3データAを作成する。
4トランザクション4データBを削除する。
出典 平成27年度 秋期 ITパスポート試験 問71
解説

問 71

  • 不正解ア

    トランザクション1が異常終了すると自身の作成(データA)をロールバックし,以降も実行されないため,データは何も残りません。データAとデータBが残る結果と一致しません。

  • 不正解イ

    トランザクション2が異常終了すると,コミット済みはトランザクション1までなので残るのはデータAだけです。データBはまだ作成されておらず,両方が残る結果になりません。

  • 不正解ウ

    トランザクション3が異常終了すると,コミット済みはトランザクション2までで,そこではデータAは削除されデータBだけが残っています。トランザクション3のデータA再作成もロールバックされるため,残るのはデータBだけで両方は残りません。

  • エ

    正解 コミットが正常終了したトランザクションの結果は確定して残り,異常終了したトランザクションは自身の変更をロールバックして取り消し,それ以降のトランザクションは実行されません。したがって最終的に残るデータは,異常終了したトランザクションの直前までにコミットされた状態と一致します。各コミット時点の状態を追うと,トランザクション1後は「A」,トランザクション2後は「B」(Aは削除),トランザクション3後は「AとB」(Aを再作成),トランザクション4後は「A」(Bを削除)となります。データAとデータBの両方が残るのは,トランザクション3までがコミットされ,トランザクション4が異常終了してロールバック(データBの削除を取り消し)した場合だけです。よって正解はエ(トランザクション4)。

ここがポイント
  • コミット済みトランザクションの結果は確定して残り,異常終了したトランザクションは自身の変更をロールバックして取り消す。異常終了以降のトランザクションは実行されない。
  • 最終的に残るデータ=異常終了トランザクションの直前までのコミット済み状態。各コミット時点の状態を順に追い,「AとB」になる時点を逆算して異常終了したトランザクションを特定する。
用語

解答の記録