トランザクションについて
-
ワンセットで行われるべき処理の集合。
- トランザクション開始文とトランザクション終了文でDML文を囲む。
BEGIN TRANSACTION; ~ (処理) ~ COMMIT;
-
ROLLBACK について
- トランザクション(ワンセットで行われる処理)による変更を保存せずに終了すること。
- テーブルはROLLBACKするとトランザクションの開始前に戻る。
BEGIN TRANSACTION; ~ (処理) ~ ROLLBACK;
ACID特製について
- 原始性(Atomicity)
- 一貫性(Consistensy)
- 独立性(Isolation)
- 永続性(Durabirity)
原始性について
トランザクションが中途半端に終わってないこと。
必ずトランザクションの更新がすべて実行されているか、実行されていない状態。
一貫性について
実行されるトランザクションに違法性(一部制約を満たさないような処理)がないこと。
(例)トランザクションに3つの処理があるとき、2つ目が制約を満たさず処理失敗敗
独立性について
複数のトランザクションが同時に実行されても、それぞれが互いに影響を与えず、単独で実行されたように見えるという性質です。
永続性について
一度コミット(確定)されたトランザクションの結果は、システム障害(停電、サーバーダウンなど)が起きても失われずに永続的に保存される。
(コミットされると基本的にデータベースにログが残る。)
まとめ
トランザクションとはクエリの一連の処理をまとめたもの。
また、トランザクションにはACIDという特性を持つ必要がある!