문제
데이터베이스 트랜잭션의 4가지 특성(ACID)을 각각 설명하고, 동시성 제어 기법 중 **2단계 로킹 프로토콜(2PL)**의 원리를 서술하시오.
정답
원자성(Atomicity)은 트랜잭션의 연산이 모두 실행되거나 모두 실행되지 않아야 하는 성질이다. 일관성(Consistency)은 트랜잭션 전후로 데이터베이스가 일관된 상태를 유지해야 하는 성질이다. 격리성(Isolation)은 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않아야 하는 성질이다. 지속성(Durability)은 성공적으로 완료된 트랜잭션의 결과가 영구적으로 반영되어야 하는 성질이다. 2단계 로킹 프로토콜은 확장 단계에서만 Lock을 획득하고, 축소 단계에서만 Lock을 해제하여 직렬 가능성을 보장하는 동시성 제어 기법이다.
원자성일관성격리성지속성AtomicityConsistencyIsolationDurability확장 단계축소 단계직렬 가능성
해설
ACID는 트랜잭션의 안전성을 보장하는 4대 특성이다. 2PL(Two-Phase Locking)은 트랜잭션을 **확장 단계(Growing Phase)**와 **축소 단계(Shrinking Phase)**로 나눈다. 확장 단계에서는 Lock만 획득할 수 있고, 축소 단계에서는 Lock만 해제할 수 있다. 한번 Lock을 해제하면 새로운 Lock을 획득할 수 없다. 이를 통해 직렬 가능한 스케줄을 보장하지만, 교착 상태(Deadlock)가 발생할 수 있다는 단점이 있다.