選択肢
- ア.あるトランザクションが共有データを更新しようとしたとき,そのデータに対する他のトランザクションからの更新を禁止すること
- イ.トランザクションが正常に処理されたときに,データベースへの更新を確定させること
- ウ.何らかの理由で,トランザクションが正常に処理されなかったときに,データベースをトランザクション開始前の状態にすること
- エ.複数の表を,互いに関係付ける列をキーとして,一つの表にすること
正解
ウ. 何らかの理由で,トランザクションが正常に処理されなかったときに,データベースをトランザクション開始前の状態にすること
解説
ロールバック(Roll Back)はデータベース管理システム(DBMS)のトランザクション制御機能の一つで、実行中のトランザクションが途中で異常終了(エラー・障害・意図的なアボート)した場合に、そのトランザクションが行ったすべての更新を取り消してデータベースをトランザクション開始前の状態に戻す操作。対義語はコミット(Commit)で正常完了時の更新確定。ACID特性の原子性(Atomicity:一連の処理が全て完了するか全て取り消されるかのどちらかを保証)を実現する重要機能である。
選択肢ごとの解説
- ア.誤り。あるトランザクションがデータ更新時に他のトランザクションからの同一データへの更新を禁止することは排他制御(ロック:Lock)の説明。データの競合・矛盾・ダーティリードを防ぐための同時実行制御(同時アクセス制御)機能であり、更新処理を取り消すロールバックとは全く別の機能である。
- イ.誤り。トランザクションが正常完了した際にデータベースへの更新を確定させることはコミット(Commit)の説明。ロールバックと対をなすトランザクション終了操作で、コミットで永続化(更新確定)・ロールバックで取り消し(元に戻す)という相反する二つの結末を表す。
- ウ.正解。ロールバックはトランザクションが何らかの理由(エラー・障害・意図的なアボート)で正常に処理されなかった場合に、データベースをトランザクション開始前の状態に戻す操作。ACID特性の原子性を実現し、中途半端な状態でのデータ更新が残ることを防ぐ重要なデータ整合性維持機能である。
- エ.誤り。複数の表を関連するフィールド(主キー・外部キー)をもとに一つの結果セットに結合することはJOIN(結合)操作の説明。SQLのINNER JOIN・OUTER JOIN等を使ったデータ抽出操作であり、トランザクションの取り消しを行うロールバックとは全く異なる概念である。
ITパスポート 2018年 (平成30年 秋期) の過去問一覧へ戻る・問63