ツーフェーズロック
テキストで表すと、次のようになる。
T1: S(A), R(A); T2: S(A), R(A), X(B), R(B), W(B), Commit; T1: X(C), R(C), W(C), Commit
ここで
S(O) は、オブジェクトO への共有(Shared)ロック操作
X(O) は、オブジェクトO への排他(eXclusive)ロック操作
R(O) は、オブジェクトO へのリード(Read)操作
W(O) は、オブジェクトO へのライト(Write)操作
Strict 2PL は、コミットされていないデータをリードすること、コミットされていないデータを更新すること、リードとライトの衝突などを防ぐ。従ってカスケーディングロールバック(トランザクションの中断によって発生するロールバックが複数のトランザクションを巻き込んでしまう現象)も防ぐことができる。というのもライト操作を防ぐ排他ロックをトランザクションをコミットするまでかけているからである。