トランザクション管理

ACID特性

Atomicity 原子性。更新の有無が0か100の状態しかないこと
Consistency トランザクションはDB内で一貫性がなければならない
Isolation 隔離性、独立性、直列可能性。並走するトランザクションが互いに影響を及ぼさないこと
Durability 耐久性。トランザクションが終了した時、その後の障害によってデータが変わらないこと

2相ロック

直列可能性を保証するプロトコル。
複数のテーブルにロックをかけるとき、まず全てのロックをかけてから、処理後に全てのロックを解除する方法。
デッドロック発生の可能性はある。

隔離性を満たさない現象


ロストアップデート Aが更新した内容を反映せずにBが更新し、Aの更新がなかったことになること
ダーティリード コミット前のデータを読んでしまうこと
ノンリピータブルリード 同じデータを2回読み込んだとき、その間のコミットによって値が変わること
ファントムリード 同じデータを2回読み込んだ時、存在しなかった現れること

上記を防ぐために、データベースを制御するISOLATION LEVELがある。

ISOLATION LEVEL ダーティリード ノンリピータブルリード ファントムリード
READ UNCOMMITTED 発生する 発生する 発生する
READ COMMITTED 発生しない 発生する 発生する
REPEATABLE READ 発生しない 発生しない 発生する
SERIALIZABLE 発生しない 発生しない 発生しない

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2016年01月31日 20:48