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