2단계 로킹 규약을 적용하면 트랜잭션 스케줄의 직렬 가능성을 보장할 수 있으나 교착상태가 발생할 수도 있다.
정답 근거2단계 로킹의 확장·수축 규칙은 충돌 직렬 가능성을 보장하지만 트랜잭션 간 순환 락 대기는 별도로 생길 수 있다.
2
트랜잭션이 데이터에 공용 lock 연산을 수행하면 해당 데이터에 read, write 연산을 모두 수행할 수 있다.
오답 이유공용(S) 락은 다른 읽기와 공존하지만 해당 데이터 쓰기는 배타(X) 락이 필요하다.
3
연쇄 복귀는 하나의 트랜잭션이 여러 개의 데이터 변경 연산을 수행할 때 일관성 없는 상태의 데이터베이스에서 데이터를 가져와 연산을 수행함으로써 모순된 결과가 발생하는 것이다.
오답 이유연쇄 복귀는 미완료 트랜잭션의 값을 읽은 다른 트랜잭션들까지 앞선 rollback 때문에 함께 되돌려야 하는 현상이다.
4
갱신 분실은 트랜잭션이 완료되기 전에 장애가 발생하여 rollback 연산을 수행하면, 이 트랜잭션이 장애 발생 전에 변경한 데이터를 가져가 변경 연산을 수행한 또 다른 트랜잭션에도 rollback 연산을 수행하여야 한다는 것이다.
오답 이유갱신 분실은 두 트랜잭션의 쓰기가 겹쳐 나중 쓰기가 앞선 갱신 결과를 덮어 없애는 현상이다.
정답·상세해설
정답 1번
2단계 로킹 규약은 트랜잭션이 필요한 모든 락을 획득하는 확장 단계와 모든 락을 해제하는 수축 단계로 나누어 직렬 가능성을 보장하지만, 서로 락을 기다리는 교착상태가 발생할 수 있습니다.
공용 lock 연산: 읽기만 가능하며 쓰기 연산은 불가능함연쇄 복귀: 장애 발생 시 해당 데이터를 사용한다른 트랜잭션까지 함께 롤백되어 야 하는 현상임갱신 분실: 두 개 이상의 트랜잭션이 동시에 데이터를 갱신하여 한 트랜잭션의 갱신 결과가 사라지는 현상임