다음 두 종류의 로그 및 데이터베이스 기록 내용에서 (가), (나), … | [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)
해설
바른 연결은 (가) , (나) , (다) 회복작업 없음, (라) 이다.
첫 번째 로그는 이전 값과 새 값을 모두 기록하므로 즉시 갱신 기법이다. 커밋 전에도 DB에 반영되므로 커밋된 트랜잭션은 Redo, 커밋되지 않은 트랜잭션은 Undo한다.
- (가): 이 커밋 전이고 A = 90이 이미 기록되었으므로 Undo가 필요하다.
- (나): 은 커밋되었으므로 Redo, 는 커밋 전에 C가 기록되었으므로 Undo한다.
두 번째 로그는 새 값만 기록하므로 지연 갱신 기법이다. 커밋 후에야 DB에 반영되므로 Undo는 필요 없고 커밋된 트랜잭션만 Redo한다.
- (다): 은 커밋 전이라 DB에 반영된 것이 없으므로 회복작업이 없다.
- (라): 커밋된 은 Redo하고, 커밋 전인 는 DB에 반영된 것이 없으므로 로그만 무시한다.
오류나 개정된 내용이 보이면 알려주세요