SPONSORED

合成トランザクション(ごうせいとらんざくしょん)

最終更新:2026/4/28

合成トランザクションは、複数の個別のトランザクションをまとめて一つの処理単位として扱うことで、データベースの整合性を保ちながら効率的な処理を実現する機能である。

別名・同義語 トランザクション原子トランザクション

ポイント

合成トランザクションは、特に金融取引や在庫管理など、複数の処理を不可分なものとして実行する必要がある場合に有効である。処理の途中でエラーが発生した場合、全てロールバックされる。

合成トランザクションとは

合成トランザクションは、データベースシステムにおいて、複数のデータベース操作を一つの論理的な処理単位としてまとめる能です。これにより、一連の操作が全て成功するか、または全て失敗するかのいずれか一方を保証し、データの整合性を維持します。

合成トランザクションの必要性

例えば、銀行振込を考えます。振込処理は、口座残高の引き落としと、相手口座への入金という2つの操作に分けられます。もし、引き落としは成功したが、入金が失敗した場合、口座残高が不整合な状態になってしまいます。このような事態を防ぐために、これらの2つの操作を合成トランザクションとして実行します。

合成トランザクションのACID特性

合成トランザクションは、ACID特性と呼ばれる以下の4つの特性を満たす必要があります。

  • Atomicity(原子性): トランザクションに含まれる全ての操作が、完全に実行されるか、全く実行されないかのいずれかであること。
  • Consistency(一貫性): トランザクションの実行によって、データベースの状態が一貫性を保つこと。
  • Isolation(独立性): 複数のトランザクションが同時に実行されても、互いに影響を与えないこと。
  • Durability(永続性): トランザクションが完了すると、その結果が永続的にデータベースに保存されること。

合成トランザクションの実装

多くのデータベースシステムでは、BEGIN TRANSACTION、COMMIT、ROLLBACKといったSQLコマンドを使用して、合成トランザクションを実装しています。BEGIN TRANSACTIONでトランザクションを開始し、一連の操作を実行した後、COMMITでトランザクションを確定し、ROLLBACKでトランザクションをキャンセルします。

合成トランザクションの応用例

  • オンラインショッピング: 商品の在庫引き落としと、顧客への請求処理を合成トランザクションとして実行。
  • 航空券予約: 座席の確保と、料金の請求処理を合成トランザクションとして実行。
  • 金融取引: 口座間の資金移動を合成トランザクションとして実行。

SPONSORED