トランザクション
読み
とらんざくしょん
意味
- データベースで一連の操作をまとめて不可分な単位として実行しACID特性(原子性・一貫性・独立性・永続性)を保証する仕組み
- 複数の処理が全て成功するか全て失敗するかのどちらかになり途中でエラーが起きたらロールバックで全て元に戻す
- BEGIN・COMMIT・ROLLBACKというコマンドで制御され同時実行制御やロックによって並行処理時のデータ整合性も保つ
比喩
銀行振込のようなもの。口座Aから引き出しと口座Bへ入金が両方成功するか両方失敗するかのどちらかで片方だけ成功することはない。
語源
transaction = 取引・交渉。ビジネス用語の取引から来ておりデータベースの一連の処理を取引に見立てた概念
例文
- オンラインショッピングで決済処理・在庫更新・ポイント付与をトランザクションで一括管理し決済失敗時は全てロールバックした
- BEGIN TRANSACTIONで開始しCOMMITで確定することでデータの一貫性を保証している
- 分散トランザクションで複数のデータベース間での整合性を2フェーズコミットプロトコルで実現した
よくある勘違い
- トランザクションは決済だけのことだと思うこと → 決済以外のあらゆるデータ操作の単位として使われる
- トランザクションを使えば全て解決すると思うこと → 長時間のトランザクションはロック競合やデッドロックの原因になる
- READ COMMITTEDとSERIALIZABLEの違いを理解していないこと → 分離レベルによって同時実行制御の厳格さが異なる