트랜잭션 T_1, T_2에 대한 설명으로 옳지 않은 것은? (단, X의… | [7급 국가직 데이터베이스론] 26년 1회차 기출문제 상세 페이지
1[7급 국가직 데이터베이스론] 26년 1회차
트랜잭션 , 에 대한 설명으로 옳지 않은 것은? (단, 의 초기값은 1,000이다)
| 시간 | |||
|---|---|---|---|
| read(); | |||
| read(); | |||
| ; | (가) | ||
| ; | |||
| write(); | (나) | ||
| write(); | (다) | ||
| COMMIT; | (라) | ||
| ↓ | COMMIT; |
1
(가)에서 의 작업 수행 후 메모리 버퍼에 저장된 값은 1,000이다.
2
(나)에서 의 작업 수행 후 메모리 버퍼에 저장된 값은 1,500이다.
3
(다)에서 의 작업 수행 후 갱신 손실 문제가 발생한다.4
(라)에서 “COMMIT”이 “ROLLBACK”으로 변경될 경우 오손 읽기 문제가 발생한다.
해설
(라)에서 이 철회되더라도 는 의 쓰기 이전 값을 읽었으므로 오손 읽기는 발생하지 않는다.
오손 읽기는 커밋되지 않은 다른 트랜잭션의 갱신 값을 읽어야 생기는데, 의 read(X)는 의 write(X)보다 앞서 1,000을 읽었다.
- (가)의 덧셈은 의 지역 변수에서만 일어나므로 버퍼의 X는 아직 1,000이다.
- (나)에서 이 1,500을 기록해 버퍼 값이 1,500이 된다.
- (다)에서 가 자신이 읽은 1,000으로 계산한 800을 덮어써 의 갱신이 사라지는 갱신 손실이 발생한다.
오류나 개정된 내용이 보이면 알려주세요