이전 글에서 이어집니다.
해당 글에서는 conflict에 대해 자세히 알아봅시다.
세 가지 조건을 모두 만족하면 conflict
이러한 충돌 연산은 순서가 변경되면 결과도 달라질 수 있습니다. 충돌하는 연산 중 하나가 쓰기 연산인 경우 다른 연산과의 순서에 따라 데이터의 상태가 변경될 수 있기 때문입니다.
충돌 연산은 주로 두 가지 유형으로 나뉩니다:
두 조건 모두 만족하면, conflict equivalent를 만족합니다.
두 스케줄이 conflict equivalent
을 가지고 있을 때, 그리고 그 두 스케줄 중 하나가 serial schedule
과 conflict equivalent
을 가질 경우, 이 스케줄은 conflict sirializable하다고 합니다.
serial schedule과 conflict equivalent일 때conflict sirializable
하다고 합니다.
nonserial schedule이 conflict sirializable
일 때, 정상적인 결과값이 나옵니다.
이러한 속성은 동시성 제어를 통해 데이터의 일관성을 유지하기 위해 중요한 개념입니다.
만약 어떤 스케줄이 어떠한 serial schedule과도 conflict equivalent을 가지지 않는다면, 이 스케줄은 conflict sirializable 가능하지 않습니다. 이 경우 이상한 결과가 발생할 수 있습니다.