TISTORY 뷰

2012 국가직 전산직9 컴퓨터 일반(인) - 막둥이 보거라...


문 17. 지연갱신(deferred update)을 기반으로 한 회복기법을 사용하는 DBMS에서 다음과 같은 로그 레코드가 생성되었다. 시스템 실패가 발생하여 DBMS가 재시작할 때, 데이터베이스에 수행되는 연산으로 옳지 않은 것은? (단, <Tn, A, old, new>는 트랙잭션 Tn이 데이터 A의 이전값(old)을 이후값(new)으로 갱신했다는 의미이다)


<T1, Start> 시간
<T1, A, 900, 1000> ↓
<T1, Commit>
<T4, Start>
<T3, Start>
<T2, Start>
<검사점 연산(Checkpoint)>
<T2, B, 2100, 2200>
<T2, Commit>
<T3, C, 1700, 1800>
<T3, Abort>
<T4, A, 600, 700>
시스템 실패


① T1 : no operation
② T2 : redo
③ T3 : no operation
④ T4 : undo



데이터베이스 회복기법 종류는 여러가지가 있습니다.


로그(log) 기반, 검사점(Check Point) 기반, 그림자 페이징(Shadow Paging) 기반 다시 "로그(log) 기반"은 "즉시 갱신(Immediate Update), 지연 갱신(Deferred Update)"으로 나뉘고요.


시험에 자주 출제되는 녀석이 "검사점 기반 + 로그(즉시 갱신, 지연 갱신)"를 이용한 복구기반 문제입니다. 약간의 암기만 하시면 간단한 문제입니당~


로그(log) 기반


즉시 갱신(Immediate Update) : undo, redo 사용


지연 갱신(Deferred Update) : redo 사용 (지연이는 리두!)


문제에서 지연 갱신(Deferred Update)이라고 언급됐기에, undo가 들어가면 안됩니다. ④ T4 : undo이 정답입니다. (지연이는 리두!)


검사점(Check Point) 기준으로 이전에 완료된 T1은 제외(no operation)하고 T2, T3, T4에 대해서만 회복(복구)작업을 합니다. 그러기에 ① T1 : no operation은 맞습니다. T3의 경우 중간에 Abort(철회) 됐으므로, 아무런 연산(no operation)을 하지 않습니다. ③ T3 : no operation


T2의 경우 시스템 실패(시스템 뻑) 전 완료(commit)가 됐어도, redo를 수행합니다. ② T2 : redo


Ps. 지연 갱신, 즉시 갱신 둘 다 검사점(Check Point) 기준 이후에 완료(commit)가 됐더라도 redo를 수행합니다. 



2012 국가직 전산직7 데이터베이스론(인)


문 3. 다음과 같은 로그에서 지연 갱신(deferred update) 회복기법을 이용할 때, 시스템 붕괴 후 복구 과정에 대한 설명으로 옳은 것은?


begin_transaction, T1
read, T1, A
read, T1, D
write, T1, D, 20
commit, T1
checkpoint
begin_transaction, T2
read, T2, B
write, T2, B, 18
begin_transaction, T4
read, T4, D
write, T4, D, 35
begin_transaction, T3
write, T3, C, 30
read, T4, A
write, T4, A, 30
commit, T4
read, T2, D
write, T2, D, 25 ← 시스템 붕괴


① 트랜잭션 T1은 검사점(checkpoint)을 기록하기 전에 트랜잭션이 완료되었으므로 redo 되어야 한다.
② 트랜잭션 T2는 read 및 write 연산이 직렬 가능하게 수행되었으므로 redo 되어야 한다.
③ 트랜잭션 T3은 read 연산 없이 write 연산만을 수행하였으므로 undo 되어야 한다.
④ 트랜잭션 T4는 시스템 붕괴 이전에 완료되었기 때문에 redo되어야 한다.



① 트랜잭션 T1은 검사점(checkpoint)을 기록하기 전에 트랜잭션이 완료되었으므로 no operation
② 트랜잭션 T2는 no operation 되어야 한다. (미완료 : 로그 폐기)
③ 트랜잭션 T3은 no operation 되어야 한다. (미완료 : 로그 폐기)

댓글
댓글쓰기 폼
«   2018/08   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
Total
7,255,298
Today
261
Yesterday
1,126