2024 국가직9급 컴퓨터일반 19번 해설 — 병행 제어
문제
DBMS에서의 병행 수행 및 병행 제어에 대한 설명으로 옳은 것은?
- ① 2단계 로킹 규약을 적용하면 트랜잭션 스케줄의 직렬 가능성을 보장할 수 있으나 교착상태가 발생할 수도 있다 ← 정답
- ② 트랜잭션이 데이터에 공용 lock 연산을 수행하면 해당 데이터에 read, write 연산을 모두 수행할 수 있다
- ③ 연쇄 복귀는 하나의 트랜잭션이 여러 개의 데이터 변경 연산을 수행할 때 일관성 없는 상태의 데이터베이스에서 데이터를 가져와 연산을 수행함으로써 모순된 결과가 발생하는 것이다
- ④ 갱신 분실은 트랜잭션이 완료되기 전에 장애가 발생하여 rollback 연산을 수행하면, 이 트랜잭션이 장애 발생 전에 변경한 데이터를 가져가 변경 연산을 수행한 또 다른 트랜잭션에도 rollback 연산을 수행하여야 한다는 것이다
선지별 해설
① 2단계 로킹 규약을 적용하면 트랜잭션 스케줄의 직렬 가능성을 보장할 수 있으나 교착상태가 발생할 수도 있다
이 선지 진술은 옳음(O)
2PL은 모든 lock을 획득하는 단계와 해제하는 단계를 구분해 직렬 가능성을 보장한다. 다만 lock 대기 관계 때문에 교착상태 가능성은 남는다.
② 트랜잭션이 데이터에 공용 lock 연산을 수행하면 해당 데이터에 read, write 연산을 모두 수행할 수 있다
이 선지 진술은 틀림(X)
공용 lock은 읽기 공유를 위한 잠금이므로 read는 가능하지만 write는 배타 lock이 필요하다. 읽기와 쓰기를 모두 허용하지 않는다.
③ 연쇄 복귀는 하나의 트랜잭션이 여러 개의 데이터 변경 연산을 수행할 때 일관성 없는 상태의 데이터베이스에서 데이터를 가져와 연산을 수행함으로써 모순된 결과가 발생하는 것이다
이 선지 진술은 틀림(X)
연쇄 복귀는 한 트랜잭션이 rollback될 때 그 미완료 결과를 읽은 다른 트랜잭션들도 함께 rollback되어야 하는 현상이다. 보기의 설명은 연쇄 복귀의 정의가 아니다.
④ 갱신 분실은 트랜잭션이 완료되기 전에 장애가 발생하여 rollback 연산을 수행하면, 이 트랜잭션이 장애 발생 전에 변경한 데이터를 가져가 변경 연산을 수행한 또 다른 트랜잭션에도 rollback 연산을 수행하여야 한다는 것이다
이 선지 진술은 틀림(X)
그 설명은 연쇄 복귀에 가깝다. 갱신 분실은 두 트랜잭션의 갱신이 겹치면서 한쪽 갱신 결과가 다른 갱신에 의해 사라지는 현상이다.
핵심 요약 (Q&A)
- Q. 2024 국가직9급 컴퓨터일반 19번의 핵심 쟁점은 무엇인가?
- A. 2024 국가직9급 컴퓨터일반 19번은 병행 제어에 관한 문항으로, "옳은 것"을 고르는 문제입니다.
- Q. 2024 국가직9급 컴퓨터일반 19번의 정답은?
- A. 정답은 ①번입니다. 2PL은 모든 lock을 획득하는 단계와 해제하는 단계를 구분해 직렬 가능성을 보장한다. 다만 lock 대기 관계 때문에 교착상태 가능성은 남는다.