更新:2024/12/03

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

はるか
はるか
トランザクション。大事な仕組み。
ふゅか
ふゅか
そうね!データベースを使うときに、絶対に理解しておきたいポイントだよ!

1. トランザクションとは?

データベースを扱う上で、「トランザクション」という用語は非常に重要です。トランザクションは、簡単に言うと、一連の処理をひとまとめにして扱う仕組みのことです。

2. 具体例

2.1. トランザクションの具体例1

例えば、銀行の送金処理を考えてみましょう。AさんがBさんにお金を送る場合、次の2つの操作が必要です。

  1. Aさんの口座からお金を引き出す
  2. Bさんの口座にお金を振り込む

この2つの操作はセットで行われる必要があります。もし、途中でエラーが起きてAさんの口座からお金が引き出されたけれど、Bさんの口座に振り込まれなかったら、大問題です。

ここでトランザクションが役立ちます。トランザクションを使うと、これらの操作を「すべて成功させるか」「すべて失敗させるか」のどちらかにまとめて処理できます。つまり、どちらか片方だけが実行されることはありません。

2.2. トランザクションの具体例2

例えば、オンラインショッピングの注文処理を考えてみましょう。ユーザーが商品を購入するとき、次の操作が必要です。

  1. 在庫を減らす
  2. クレジットカードで支払いを処理する

これらの操作は一緒に行われる必要があります。もし、在庫は減ったがクレジットカードの支払いが失敗した場合、売上げだけが減ることになり、会社にとって損失になります。

はるか
はるか
在庫の減少と支払い処理。これもセット。
ふゅか
ふゅか
そうだよね!もし支払いが失敗しても在庫が減ったままだったら、会社は大損しちゃうもんね。

2.3. トランザクションの具体例3

例えば、ホテルの予約システムを考えてみましょう。ユーザーが部屋を予約する際、以下の操作が必要です。

  1. 部屋の空き状況を更新する
  2. ユーザーの予約情報を登録する

これらの操作も、セットで完了する必要があります。部屋の空き状況が更新されただけで予約情報が登録されなかった場合、他の人が同じ部屋を予約できてしまい、ダブルブッキングの原因になります。

はるか
はるか
空き状況の更新と予約情報の登録。セットで重要。
ふゅか
ふゅか
もしどっちかが抜けちゃったら、部屋が二重に予約されるなんてことになりかねないもんね!

3. トランザクションとACID特性

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

はるか
はるか
トランザクションには4つの特性。ACIDと呼ばれる。
ふゅか
ふゅか
Atomicity、Consistency、Isolation、Durabilityだよね!

3.1. Atomicity(原子性)

トランザクション内の処理は「すべて完了する」か「すべて無効にする」かのどちらかです。

3.2. Consistency(一貫性)

トランザクションが完了した後も、データベースのルールや整合性が保たれるようにすることです。

3.3. Isolation(独立性)

複数のトランザクションが同時に実行される場合、それぞれの処理が互いに干渉しないようにすることです。

3.4. Durability(永続性)

トランザクションが「完了」と認められた場合、その結果はデータベースにしっかり保存され、システムが故障しても消えないようにします。

PR