データベーストランザクションについて
これなに?
トランザクションのことをよくわかってなかったので調べた結果
transactionとは
不可分な一連の処理、ワンセットの処理単位。 データベースでは、データベースに対して行われる一つ以上の更新処理。 トランザクションによってデータ更新処理の確定や取り消しを管理できる
トランザクション作成方法
START TRANSACTION; 処理 COMMIT;
COMMIT
トランザクションを確定させる処理。一度コミットした結果はもとにもどせない
ROLLBACK
ROLLBACKはトランザクションを取り消す処理。トランザクション開始前の状態に戻る
ACID特性
トランザクションには4つの特性が標準規格によって定められている。
Atomicity(原子性)
トランザクションが終わったときに、そこにふくまれていた更新処理はすべて実行されるか、全てじっこうされない状態でおわること(all or nothing)を保証する性質。 COMMITで更新が確定されるかROLLBACKでもとに戻されるかの二択なイメージ
Consistency(一貫性)
トランザクションに含まれる処理はすべて成約を満たす性質 トランザクションの途中で制約違反の処理が会った場合、処理を中断してトランザクション実行前に戻す。
Isolation(独立性)
あるトランザクションの実行中に、ほかのトランザクションの影響をうけない性質。 トランザクション実行中に他のトランザクションがデータの更新しても実行中のトランザクションはその更新結果の影響をうけない
Durability(永続性)
トランザクションが完了後データが保存され失われない性質。 この性質の保証のために、一般的にトランザクションのログを記録しておき障害がおきた場合はログを使用して障害発生前の状態に復旧する