핵심 규칙

Ti가 쓴 값은 Ti가 끝날 때까지 다른 트랜잭션이 읽거나 덮어쓸 수 없습니다

비연쇄적 스케줄이 미커밋 값 읽기를 막는다면, 엄격한 스케줄은 읽기와 쓰기 둘 다 막아 더티 리드와 더티 라이트를 함께 차단합니다.

1. 쓰기 발생

Ti가 데이터 X를 먼저 변경

Ti가 값을 기록했지만 아직 commit 또는 rollback 전입니다.

공유 데이터 X
X = 200
현재 값은 바뀌었지만 아직 확정되지 않은 상태입니다.
2. Ti 종료 전

Tj는 그 값을 건드릴 수 없음

엄격한 스케줄의 핵심은 접근 경계입니다. Ti가 끝날 때까지 Tj는 기다립니다.

READ
Tj → read(X)
대기
WRITE
Tj → write(X)
대기
읽기만 막는 것이 아니라, 같은 데이터를 다시 쓰는 것까지 함께 막습니다.
3. commit/rollback 후

Ti가 끝난 뒤에만 접근 재개

종료 상태가 확정되면 그때부터 다른 트랜잭션이 안전하게 이어서 접근할 수 있습니다.

commit 이면

X = 200이 확정되고 이후 Tj의 읽기·쓰기가 허용됩니다.

rollback 이면

변경 전 상태로 복원된 뒤, 그 값 기준으로 이후 접근이 다시 진행됩니다.

왜 실무에서 선호될까? 미확정 값을 다른 트랜잭션이 읽거나 덮어쓰지 못하므로 복구가 단순해지고, 대부분의 상용 DBMS는 Strict 2PL로 이 조건을 보장합니다.