令和元年秋期試験問題 午前問28

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
一つのトランザクションはトランザクションを開始した後,五つの状態(アクティブ,アボート処理中,アボート済,コミット処理中,コミット済)を取り得るものとする。このとき,取ることのない状態遷移はどれか。

28.gif
正解 問題へ
分野:テクノロジ系
中分類:データベース
小分類:トランザクション処理
解説
トランザクションとは、口座から振込みを行う場合における送金側の残高減と振込先口座の残高増のように関連する1つ以上の処理をまとめた単位です。トランザクションは、データの整合性を保つために「全ての処理が完了する」か「全く処理が行われなかったか」のどちらかで終了しなくてはなりません。

設問中のアクティブ、アボート、コミットには次の意味があります。
アクティブ
トランザクションを処理中の状態
アボート
トランザクションの途中で処理を強制的に中断してトランザクションをロールバックする処理
コミット
トランザクションの一連の処理が成功した際に、その結果を確定させる処理
トランザクションが取り得る状態を5つとすると、トランザクションは開始から終了までに次のように遷移します。
28a.gif
  • アボート処理が完了するとアボート済状態に遷移します(①)。
  • 正しい。コミット処理中からアボート処理中に遷移することはありますが、その逆はありません。コミットは全ての処理が正常に終了したときの処理だからです。
  • コミット処理中に不具合が起こるとアボート処理中に遷移します(②)。
  • コミット処理が完了するとコミット済状態に遷移します(③)。

Pagetop