トランザクションとは?ゆるーくわかりやすく解説



1. トランザクションとは?
データベースを扱う上で、「トランザクション」という用語は非常に重要です。トランザクションは、簡単に言うと、一連の処理をひとまとめにして扱う仕組みのことです。
2. 具体例
2.1. トランザクションの具体例1
例えば、銀行の送金処理を考えてみましょう。AさんがBさんにお金を送る場合、次の2つの操作が必要です。
- Aさんの口座からお金を引き出す
- Bさんの口座にお金を振り込む
この2つの操作はセットで行われる必要があります。もし、途中でエラーが起きてAさんの口座からお金が引き出されたけれど、Bさんの口座に振り込まれなかったら、大問題です。
ここでトランザクションが役立ちます。トランザクションを使うと、これらの操作を「すべて成功させるか」「すべて失敗させるか」のどちらかにまとめて処理できます。つまり、どちらか片方だけが実行されることはありません。
2.2. トランザクションの具体例2
例えば、オンラインショッピングの注文処理を考えてみましょう。ユーザーが商品を購入するとき、次の操作が必要です。
- 在庫を減らす
- クレジットカードで支払いを処理する
これらの操作は一緒に行われる必要があります。もし、在庫は減ったがクレジットカードの支払いが失敗した場合、売上げだけが減ることになり、会社にとって損失になります。


2.3. トランザクションの具体例3
例えば、ホテルの予約システムを考えてみましょう。ユーザーが部屋を予約する際、以下の操作が必要です。
- 部屋の空き状況を更新する
- ユーザーの予約情報を登録する
これらの操作も、セットで完了する必要があります。部屋の空き状況が更新されただけで予約情報が登録されなかった場合、他の人が同じ部屋を予約できてしまい、ダブルブッキングの原因になります。


3. トランザクションとACID特性
トランザクションには4つの重要な性質があり、これをACID特性と呼びます。それぞれの意味をわかりやすく説明します。


3.1. Atomicity(原子性)
トランザクション内の処理は「すべて完了する」か「すべて無効にする」かのどちらかです。
3.2. Consistency(一貫性)
トランザクションが完了した後も、データベースのルールや整合性が保たれるようにすることです。
3.3. Isolation(独立性)
複数のトランザクションが同時に実行される場合、それぞれの処理が互いに干渉しないようにすることです。
3.4. Durability(永続性)
トランザクションが「完了」と認められた場合、その結果はデータベースにしっかり保存され、システムが故障しても消えないようにします。