2021 국가직7급 데이터베이스론 22번 해설 — 병행 제어 문제
문제
여러 트랜잭션을 병행수행(concurrency)하였을 때, 발생할 수 있는 문제 가운데 갱신분실(lost update)에 대한 설명으로 옳은 것은?
- ① 두 개의 트랜잭션은 서로 상대 트랜잭션이 완료되기만을 기다리고 있는 상태로, 두 트랜잭션은 영원히 완료될 수 없는 문제이다.
- ② 장애가 발생한 트랜잭션에 대한 롤백(rollback)이 수행되기 전에, 변경된 데이터를 가져가 사용하는 다른 트랜잭션의 수행이 완료되어 롤백이 실행될 수 없는 문제이다.
- ③ 하나의 트랜잭션이 수행한 데이터 변경 연산의 결과를 다른 트랜잭션이 덮어써서 기존 트랜잭션의 변경 연산 결과가 손실되는 것이다. ← 정답
- ④ 하나의 트랜잭션이 여러 개의 데이터에 대해 변경 연산을 실행했을 때, 일관성이 유지되지 않는 데이터베이스로부터 데이터를 가져와 연산을 실행함으로 발생될 수 있다.
선지별 해설
① 두 개의 트랜잭션은 서로 상대 트랜잭션이 완료되기만을 기다리고 있는 상태로, 두 트랜잭션은 영원히 완료될 수 없는 문제이다.
이 선지 진술은 틀림(X)
이는 교착상태(deadlock)에 대한 설명이며, 갱신분실(lost update)이 아니다. 따라서 옳은 설명이 아니다.
② 장애가 발생한 트랜잭션에 대한 롤백(rollback)이 수행되기 전에, 변경된 데이터를 가져가 사용하는 다른 트랜잭션의 수행이 완료되어 롤백이 실행될 수 없는 문제이다.
이 선지 진술은 틀림(X)
이는 연쇄 복귀(cascading rollback)와 관련된 오손 읽기(dirty read) 문제에 대한 설명이며, 갱신분실이 아니다. 따라서 옳은 설명이 아니다.
③ 하나의 트랜잭션이 수행한 데이터 변경 연산의 결과를 다른 트랜잭션이 덮어써서 기존 트랜잭션의 변경 연산 결과가 손실되는 것이다.
이 선지 진술은 옳음(O)
갱신분실은 한 트랜잭션의 갱신 결과가 다른 트랜잭션의 갱신으로 덮어써져 손실되는 현상이다. 옳은 설명이다.
④ 하나의 트랜잭션이 여러 개의 데이터에 대해 변경 연산을 실행했을 때, 일관성이 유지되지 않는 데이터베이스로부터 데이터를 가져와 연산을 실행함으로 발생될 수 있다.
이 선지 진술은 틀림(X)
이는 비일관 분석(inconsistent retrieval) 등 일관성 위반 문제에 대한 설명이며, 갱신분실이 아니다. 따라서 옳은 설명이 아니다.
핵심 요약 (Q&A)
- Q. 2021 국가직7급 데이터베이스론 22번의 핵심 쟁점은 무엇인가?
- A. 2021 국가직7급 데이터베이스론 22번은 병행 제어 문제에 관한 문항으로, "옳은 것"을 고르는 문제입니다.
- Q. 2021 국가직7급 데이터베이스론 22번의 정답은?
- A. 정답은 ③번입니다. 갱신분실은 한 트랜잭션의 갱신 결과가 다른 트랜잭션의 갱신으로 덮어써져 손실되는 현상이다. 옳은 설명이다.