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 |
発生しない |
発生しない |
発生しない |
最終更新:2016年01月31日 20:48