トランザクションとは?ACID特性と仕組みをわかりやすく解説する
公開 2026年8月18日
トランザクションとは
トランザクション(Transaction)とは、データベースにおいて複数の操作(読み取り・書き込み・更新・削除など)を一つのまとまった作業単位として扱う仕組みのことをいう。トランザクションに含まれる操作は「すべて成功する」か「すべて失敗して元の状態に戻る」かのどちらかしかなく、中途半端な状態でデータが残ることを防ぐ役割を担っている。この性質は、複数の利用者が同時にアクセスする現代の情報システムにおいて欠かせない基盤技術となっている。
ACID特性という4つの原則
トランザクションが満たすべき性質は、頭文字を取って「ACID特性」と呼ばれる。
- 原子性(Atomicity): すべての操作が実行されるか、まったく実行されないかのいずれかである
- 一貫性(Consistency): トランザクションの前後でデータベースが定めたルールに矛盾しない状態を保つ
- 独立性(Isolation): 複数のトランザクションが同時に実行されても互いに干渉しない
- 永続性(Durability): 一度確定した変更は障害が起きても失われない
これらの特性により、多くの利用者が同時にアクセスするシステムでも、データの整合性が保たれる仕組みになっている。独立性を実現するための仕組みには複数のレベルがあり、性能と厳密さのバランスを取りながら選択される。
コミットとロールバック
トランザクション内のすべての操作が問題なく完了すると「コミット」が実行され、変更内容が正式にデータベースへ反映される。一方、途中でエラーが発生したり、意図しない状態が検出されたりした場合には「ロールバック」が実行され、トランザクション開始前の状態にすべての変更が巻き戻される。この仕組みによって、処理が中断されても中途半端なデータが残ることを防いでいる。
身近な例:銀行の振込処理
トランザクションの必要性がわかりやすい例として、銀行の振込処理が挙げられる。振込処理では「送金元の口座から金額を引き落とす」処理と「送金先の口座に金額を入金する」処理という、二つの操作をセットで行う必要がある。もし引き落としだけが成功し、入金の処理がシステム障害で失敗してしまうと、お金が消えてしまうという重大な問題が発生する。トランザクションを使うことで、この二つの操作を一つの単位として扱い、両方が成功するか、両方とも取り消されるかのいずれかに制御できる。
システム開発における重要性
トランザクションはWebサービスの注文処理や在庫管理、会計システムなど、正確性が強く求められる場面で欠かせない仕組みである。多くのデータベース管理システム(DBMS)が標準でトランザクション機能を備えており、開発者はこの仕組みを適切に利用することで、障害時にもデータの信頼性を保つシステムを構築できる。近年ではマイクロサービス間にまたがる分散トランザクションの整合性をどう保証するかも、システム設計上の重要な課題となっている。