トランザクション
データベース処理で、複数の処理をまとめて一つの処理単位として扱い、すべて成功したときだけ結果を確定し、途中で失敗したら開始前の状態に戻す仕組みです。
用語解説
トランザクションとは
トランザクションとは、データベースにおける分割してはならない一連の処理を、ひとまとまりとして扱う処理単位です。
トランザクション内の処理は、すべて成功して確定するか、途中で失敗してすべて取り消されることが原則です。
トランザクションの基本的な考え方
トランザクションは、原則として次の考え方で動作します。
-
全ての処理が成功した場合だけ、結果を確定します
-
途中で失敗した場合は、処理前の状態に戻します
この考え方により、処理の途中状態が残ることを防ぎ、データの整合性を保ちます。
具体例(口座振込)
口座振込は、次の2つの処理を組にして正しく完了させる必要があります。
-
送金元の口座残高を10,000円減らす
-
送金先の口座残高を10,000円増やす
片方だけが実行されると、金額の整合性が崩れます。
そのため、2つの処理を1つのトランザクションとして扱い、成功か取消のどちらかにそろえます。
トランザクションの基本ルール
次のルールとして整理すると覚えやすいです。
-
全処理が成功した場合はコミットします。
-
途中で1つでも失敗した場合はロールバックします。
| 用語 | 意味 |
|---|---|
| コミット(commit) | トランザクション内の処理がすべて成功したため、変更内容を確定することです。 |
| ロールバック(rollback) | トランザクション内で失敗が起きたため、変更内容をすべて取り消して開始前に戻すことです。 |
ACID特性
トランザクションが正しく機能するための代表的な4つの性質を、ACID特性と呼びます。
| 特性 | 意味 | 要点 |
|---|---|---|
| Atomicity(原子性) | 全処理が成功するか全取り消しか | 途中まで反映しません。 |
| Consistency(一貫性) | 整合性ルールを壊さない | 制約違反の状態を残しません。 |
| Isolation(独立性) | 同時実行の影響を抑える | 途中の結果を他が見えにくくします。 |
| Durability(耐久性) | 確定した結果は消えない | 障害後も復元できるようにします。 |
理解のポイント
-
トランザクションは、分割してはならない処理のまとまりです。
-
コミットとロールバックは、確定と取消の操作です。
-
ACID特性は、名称と意味を対応づけて覚えるのが試験対策として有効です。
発展知識
関連用語
| 用語 | 概要 |
|---|---|
| コミット | トランザクションの処理結果を確定する操作です。 |
| ロールバック | トランザクションの処理を取り消して開始前に戻す操作です。 |
| ACID特性 | トランザクションが満たすべき、原子性・一貫性・独立性・耐久性の4特性です。 |
| 排他制御(ロック) | 複数トランザクションが同じデータに同時アクセスする際の競合を防ぐ仕組みです。 |
| デッドロック | 複数トランザクションが互いのロック解除待ちになり処理が進まない状態です。 |
| ジャーナルファイル | 更新履歴を記録し、障害時の復旧に使うファイルです。 |
※本解説は生成AIによる学習支援用の参考情報です。内容の正確性や最新性は保証されません。生成された回答を再確認するようにしてください。