판단 포인트

A와 B를 따로 보면 둘 다 T1 → T2와 T2 → T1을 함께 만듭니다. 선행 그래프에 양방향 간선이 생기면 즉시 사이클이 닫히므로, 이 스케줄은 충돌 직렬 가능하지 않습니다.

스케줄 S
R1(A) R2(A) W1(A) R1(B) R2(B) W2(A) W1(B) W2(B)
항목별 충돌 추출
A
R2(A) < W1(A) T2가 먼저 읽고 T1이 나중에 써서 충돌
T2 → T1
R1(A), W1(A) < W2(A) T1의 연산이 먼저 끝난 뒤 T2가 씀
T1 → T2
B
R2(B) < W1(B) B에서도 먼저 읽은 T2 때문에 같은 방향 충돌
T2 → T1
R1(B), W1(B) < W2(B) T1 쪽 연산이 먼저라서 반대 방향도 생김
T1 → T2
읽는 법: 같은 데이터 항목에서 충돌하는 두 연산 중 먼저 나온 트랜잭션이 간선의 시작점입니다.
선행 그래프 판정
T1 → T2
T1
사이클
T2
T2 → T1
합친 결과: 항목 A만 봐도 양방향, 항목 B를 더해도 양방향이 유지됩니다.
결론: T1 → T2 → T1 사이클이 있으므로 직렬 순서 하나로 바꿀 수 없습니다.