トランザクション
とらんざくしょん
ひとことで言うと
データベースへの一連の処理を不可分な1単位として扱い、ACID特性によりデータ整合性を保証する仕組み。
解説
データベースに対する一連の処理をひとまとまりとして扱う論理的な作業単位。ACID特性(原子性・一貫性・独立性・耐久性)を満たすことで、データの整合性を保証する。処理が正常に完了した場合はコミット、異常が発生した場合はロールバックによって処理前の状態に戻す。
くわしく解説
トランザクションとは、データベースに対する複数の操作をひとまとまりの論理的作業単位として扱う概念である。銀行振込を例にとると、送金元の残高を減らす処理と送金先の残高を増やす処理は、両方が成功するか両方が失敗するかのどちらかでなければならない。この「全か無か」の性質を原子性(Atomicity)という。さらに、処理前後でデータが矛盾なく整合された状態を保つ一貫性(Consistency)、複数トランザクションが同時実行されても互いに干渉しない独立性(Isolation)、一度コミットされたデータは障害が発生しても失われない耐久性(Durability)の4特性を合わせてACID特性と呼ぶ。処理が正常完了した場合はコミットによって変更が確定し、エラーが発生した場合はロールバックによって処理開始前の状態に戻される。試験では特にACID各特性の意味と、コミット・ロールバックの動作が問われる。
具体例で考えよう
A銀行からB銀行へ10万円を振り込む際、「Aの口座から10万円引き落とす」と「Bの口座に10万円入金する」の2処理をトランザクションとして管理することで、片方だけ実行される不整合を防ぐ。
試験対策ポイント
ACID特性の各英単語と意味の対応を確実に暗記すること。「独立性」と「一貫性」の混同に注意。コミットとロールバックの違いも頻出。排他制御・デッドロックと合わせて学習すると効果的。