トランザクション処理(全24問中11問目)

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

出典:平成27年秋期 問71

  • トランザクション1
  • トランザクション2
  • トランザクション3
  • トランザクション4
正解 問題へ
分野:テクノロジ系
中分類:データベース
小分類:トランザクション処理
それぞれのトランザクションの処理が正常に行われた場合、生成されているデータは以下のようになります。
71a.gif
トランザクションには、トランザクション内の処理がすべて実行されるか、または全く実行されないかのどちらかで完了しなければならないので、処理途中で障害が発生した場合には「データをトランザクション開始直前の状態に戻す」ロールバック処理が行われます。
ロールバックが行われた結果、データAとデータBが残ったということは「あるトランザクションで障害が発生したために、そのトランザクションの開始直前の状態(データAとデータBがある状態)に戻った」と考えることができます。トランザクションの開始時点でデータAとデータBの両方が存在するのはトランザクション4だけのため、「トランザクション3までは正常にコミットされたが、トランザクション4の途中で障害が発生したためにトランザクション4の開始直前の状態(トランザクション3のコミット時点)に戻った」ことがわかります。

したがって正解は「エ」です。

Pagetop