View Serializability

뷰 직렬 가능성은 세 앵커가 그대로인지 비교한다

충돌 순서는 달라도 됩니다. 대신 누가 초기값을 읽었는지, 누구의 값을 읽었는지, 마지막으로 누가 썼는지가 같아야 합니다.

원 스케줄 S 관찰한 실제 실행
T1 read(A 초기값) T2 write(A) T3 read(A from T2) T2 final write(B)
=
후보 S′ 직렬 순서로 재배열
T1은 여전히 초기값을 읽음 T3은 여전히 T2의 A를 읽음 B의 마지막 작성자는 T2
1. 초기 읽기 보존
ST1이 A의 초기값을 읽음 S′T1이 똑같이 초기값을 읽어야 함
2. 읽기 출처 보존
ST3이 T2가 쓴 A를 읽음 S′T3의 A 출처도 T2여야 함
3. 최종 쓰기 보존
SB의 마지막 write는 T2 S′최종 B 작성자도 T2여야 함
세 앵커가 모두 같으면

충돌 순서가 일부 달라도 같은 뷰를 만든 직렬 스케줄로 볼 수 있습니다.

하나라도 바뀌면

읽은 값이나 최종 결과가 달라질 수 있으므로 뷰 동등이 깨집니다.

실제 DBMS는 이 검사를 직접 풀기보다 2PL, MVCC, SSI 같은 구현 가능한 규칙으로 위험한 순서를 제한합니다.