データベース
トランザクション
Transaction
概要
データベースに対する一連の処理を1つの論理的な作業単位として扱う仕組み。
詳細解説
トランザクションは、データベースの整合性を保つために、複数の操作を1つの不可分な処理単位としてまとめる概念である。トランザクション内のすべての操作が成功した場合のみコミット(確定)し、途中で障害が発生した場合はロールバック(取消)して元の状態に戻す。
同時に複数のトランザクションが実行される場合、ロック機構によりデータの不整合を防ぐ。排他制御には共有ロック(読取り用)と専有ロック(書込み用)があり、デッドロックの回避が重要な課題となる。
試験対策のポイント
- 暗記必須:トランザクションは一連の処理を1つの論理的作業単位として扱う。コミット(確定)とロールバック(取消し)で完了する。
- 頻出ポイント:排他制御(ロック)で同時アクセスの矛盾を防ぐ。互いに相手のロック解除を待ち合うデッドロックが問われる。
- 関連づけ:ACID特性、ログによる障害回復(ロールフォワード・ロールバック)と一体で出題される。
事例・具体例
銀行の口座振替で、A口座からの引落しとB口座への入金は1つのトランザクションとして扱う。引落しだけ成功して入金が失敗するという中途半端な状態を防止する。