모두CBT

트랜잭션 T_1, T_2에 대한 설명으로 옳지 않은 것은? (단, X의… | [7급 국가직 데이터베이스론] 26년 1회차 기출문제 상세 페이지

1[7급 국가직 데이터베이스론] 26년 1회차
트랜잭션 T1T_1, T2T_2에 대한 설명으로 옳지 않은 것은? (단, XX의 초기값은 1,000이다)
시간T1T_1T2T_2
read(XX);
read(XX);
X=X+500X = X + 500;(가)
X=X−200X = X - 200;
write(XX);(나)
write(XX);(다)
COMMIT;(라)
↓COMMIT;
1
(가)에서 T1T_1의 작업 수행 후 메모리 버퍼에 저장된 XX값은 1,000이다.
2
(나)에서 T1T_1의 작업 수행 후 메모리 버퍼에 저장된 XX값은 1,500이다.
3
(다)에서 T2T_2의 작업 수행 후 갱신 손실 문제가 발생한다.
4
(라)에서 “COMMIT”이 “ROLLBACK”으로 변경될 경우 오손 읽기 문제가 발생한다.
해설

(라)에서 T1T_1이 철회되더라도 T2T_2는 T1T_1의 쓰기 이전 값을 읽었으므로 오손 읽기는 발생하지 않는다.

오손 읽기는 커밋되지 않은 다른 트랜잭션의 갱신 값을 읽어야 생기는데, T2T_2의 read(X)는 T1T_1의 write(X)보다 앞서 1,000을 읽었다.

  • (가)의 덧셈은 T1T_1의 지역 변수에서만 일어나므로 버퍼의 X는 아직 1,000이다.
  • (나)에서 T1T_1이 1,500을 기록해 버퍼 값이 1,500이 된다.
  • (다)에서 T2T_2가 자신이 읽은 1,000으로 계산한 800을 덮어써 T1T_1의 갱신이 사라지는 갱신 손실이 발생한다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[7급 국가직 데이터베이스론] 26년 1회차 25문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요7급 국가직 데이터베이스론 기출문제 암기장 전체 보기