SQLトランザクションとは?ACID特性と基本を解説
SQLトランザクションには次の特性があります:
- Atomicity(原子性):トランザクションは分割できない作業単位であり、全体が成功するか失敗するかのどちらかです。トランザクションの一部操作が失敗した場合、全体のトランザクションは最初の状態にロールバックされ、すべての操作が取り消されます。
- 一致性(Consistency):トランザクションが実行された前後で、データベースの整合性制約とビジネスルールが一貫していること。トランザクションが成功した場合、データベースの状態は一貫性のある状態から別の一貫性のある状態に変化します。
- 隔離(アイソレーション):複数のトランザクションが同時に実行される場合、各トランザクションの操作は他のトランザクションと独立して干渉しないようにすべきです。トランザクション間の相互作用を制御するために、隔離レベル(例:読み取り未確定、読み取り確定、繰り返し可能な読み取り、直列化)を使用します。
- 持続性:データベースに対する変更は、事務がコミットされた後も永続的に保存され、システムが障害を起こしても失われない。データベースは、事務がコミットされた後の状態に復元できる必要がある。