ITパスポート

問63

ITパスポート過去問 平成30年度(2018年)問63

トランザクション処理におけるロールバックの説明として,適切なものはどれか。

選択肢

  • あるトランザクションが共有データを更新しようとしたとき,そのデータに対する他のトランザクションからの更新を禁止すること
  • トランザクションが正常に処理されたときに,データベースへの更新を確定させること
  • 何らかの理由で,トランザクションが正常に処理されなかったときに,データベースをトランザクション開始前の状態にすること
  • 複数の表を,互いに関係付ける列をキーとして,一つの表にすること

正解と解き方・学習ポイント(AI解説)

正解:
あなたの回答:未回答

ロールバックとは、トランザクションが途中で失敗した場合に、更新内容を取り消してデータベースをトランザクション開始前の状態に戻す操作です。これにより、処理途中の状態が残ってデータの不整合が発生することを防ぎます。

不正解

共有データへの更新を他トランザクションから禁止するのは、同時更新の矛盾を防ぐためのロック(排他制御)の説明です。ロールバックではありませんので誤りです。

不正解

正常に処理できたときに更新を確定させるのはコミットです。ロールバックではありませんので誤りです。

正解

トランザクションが正常に処理されなかった場合に、更新内容を取り消して開始前の状態へ戻すのがロールバックです。よって正解です。

不正解

複数の表をキー列で関係付けて1つの結果にするのは結合(JOIN)です。ロールバックではありませんので誤りです。

Point

この問題は、トランザクション処理の基本用語であるロールバックと、コミット、排他制御(ロック)、結合(JOIN)を区別できるかを確認することがねらいです。

解くために必要な知識

この問題を解くには、トランザクション処理に関連する基本用語の理解が必要です。

用語の整理

用語 意味
トランザクション データベースに対する一連の処理をひとまとまりとして扱う単位です。原則として、すべて成功するか、すべて取り消すかのどちらかになります。
ロールバック トランザクションが途中で失敗した場合に、更新内容を取り消して、データベースをトランザクション開始前の状態に戻す操作です。
コミット トランザクションが正常に完了した場合に、データベースへの更新内容を確定させる操作です。

他の選択肢に出てくる用語

用語 意味
排他制御(ロック) 複数のトランザクションが同じデータを同時に更新して不整合が起きることを防ぐために、あるトランザクションの更新中は他の更新を制限する仕組みです。
結合(JOIN) 複数の表を、互いに関係付ける列(キー)を基にして、検索結果として1つの表のように扱う操作です。

問題の解法手順

各選択肢の整理

選択肢 内容が表す用語 ロールバックに該当するか
排他制御(ロック) ×
コミット ×
ロールバック
結合(JOIN) ×

判断手順

  • 失敗した処理を取り消して開始前に戻す操作がロールバックです。

  • 正常終了して更新を確定する操作はコミットです。

  • 同時更新を防ぐ仕組みは排他制御(ロック)です。

  • 複数の表を共通の列で1つにまとめる操作は結合(JOIN)です。

 

よって「ウ」が適切です。

選択肢ごとの解説

不正解

共有データへの更新を他トランザクションから禁止するのは、同時更新の矛盾を防ぐためのロック(排他制御)の説明です。ロールバックではありませんので誤りです。

不正解

正常に処理できたときに更新を確定させるのはコミットです。ロールバックではありませんので誤りです。

正解

トランザクションが正常に処理されなかった場合に、更新内容を取り消して開始前の状態へ戻すのがロールバックです。よって正解です。

不正解

複数の表をキー列で関係付けて1つの結果にするのは結合(JOIN)です。ロールバックではありませんので誤りです。

まとめ

ロールバックとは、トランザクションが途中で失敗した場合に、更新内容を取り消してデータベースをトランザクション開始前の状態に戻す操作です。これにより、処理途中の状態が残ってデータの不整合が発生することを防ぎます。

テクノロジ系 > 技術要素 > データベース

順次、単語を追加予定です。もうしばらくお待ちください。