모두CBT

다음 두 종류의 로그 및 데이터베이스 기록 내용에서 (가), (나), … | [7급 국가직 데이터베이스론] 23년 1회차 기출문제 상세 페이지

1[7급 국가직 데이터베이스론] 23년 1회차
다음 두 종류의 로그 및 데이터베이스 기록 내용에서 (가), (나), (다), (라) 시점에 장애가 발생하였을 때, 수행되어야 할 회복 연산이 바르게 연결된 것은? (단, A, C, E, G의 초깃값은 100이며, B, D, F, H의 초깃값은 50이고, (가) ~ (라)의 각 시점에 발생하는 장애는 상호 영향을 주지 않는다)
시간로그데이터베이스
<T1, start>
<T1, A, 100, 90>
<T1, B, 50, 60>A = 90
(가)→B = 60
<T1, commit>
<T2, start>
<T2, C, 100, 90>
<T2, D, 50, 60>C = 90
(나)→D = 60
<T2, commit>
시간로그데이터베이스
<T3, start>
<T3, E, 90>
(다)→<T3, F, 60>
<T3, commit>
E = 90, F = 60
<T4, start>
<T4, G, 90>
(라)→<T4, H, 60>
<T4, commit>
G = 90, H = 60
(가)  (나)  (다)  (라)
1
회복작업 없음  Redo(T1)  Undo(T3)  Redo(T3), Undo(T4)
2
회복작업 없음  Redo(T1)  회복작업 없음  Redo(T3)
3
Undo(T1)  Redo(T1), Undo(T2)  회복작업 없음  Redo(T3)
4
Undo(T1)  Redo(T1), Undo(T2)  Undo(T3)  Redo(T3), Undo(T4)
해설

바른 연결은 (가) Undo(T1)\mathrm{Undo}(T_1), (나) Redo(T1),Undo(T2)\mathrm{Redo}(T_1), \mathrm{Undo}(T_2), (다) 회복작업 없음, (라) Redo(T3)\mathrm{Redo}(T_3)이다.

첫 번째 로그는 이전 값과 새 값을 모두 기록하므로 즉시 갱신 기법이다. 커밋 전에도 DB에 반영되므로 커밋된 트랜잭션은 Redo, 커밋되지 않은 트랜잭션은 Undo한다.

  • (가): T1T_1이 커밋 전이고 A = 90이 이미 기록되었으므로 Undo가 필요하다.
  • (나): T1T_1은 커밋되었으므로 Redo, T2T_2는 커밋 전에 C가 기록되었으므로 Undo한다.

두 번째 로그는 새 값만 기록하므로 지연 갱신 기법이다. 커밋 후에야 DB에 반영되므로 Undo는 필요 없고 커밋된 트랜잭션만 Redo한다.

  • (다): T3T_3은 커밋 전이라 DB에 반영된 것이 없으므로 회복작업이 없다.
  • (라): 커밋된 T3T_3은 Redo하고, 커밋 전인 T4T_4는 DB에 반영된 것이 없으므로 로그만 무시한다.

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

이어서 풀어보기

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