동시성 제어가 없다면 여러 사용자의 작업으로 인해 위와 같은 사례와 오류 데이터가 발생합니다. 다중 사용자의 작업에 의해 오류 데이터가 발생하지 않게 하는 것이 동시성 제어입니다. 동시성 제어를 위한 대표적인 기법은 다음과 같습니다.
표 9-5 동시성 제어 기법
제어 기법 |
설명 |
락킹(locking) |
트랜잭션이 데이터에 잠금(lock)을 설정하면 다른 트랜잭션은 해당 데이터에 대해 잠금이 해제(unlock)될 때까지 접근/수정/삭제가 불가하다. |
타임스탬프(timestamp) |
시스템에서 생성하는 고유 번호인 타임스탬프를 트랜잭션에 부여함으로써 트랜잭션 간의 접근 순서를 미리 정한다. |
적합성(validation) 검증 |
먼저 트랜잭션을 수행하고 트랜잭션을 종료할 때 적합성을 검증하여 데이터베이스에 최종 반영한다. |
데이터베이스 시스템은 다음과 같이 트랜잭션 직렬화(serialization)를 보장하는 동시성 제어를 통해 트랜잭션을 정상적으로 수행합니다.
그림 9-16 트랜잭션 직렬화