낙관적 검증(Validation) 기법 | [정의] 트랜잭션수행동안은어떠한검사도하지않고, 트랜잭션종료시일괄적으로검사하는기법 [동작매커니즘] read phase(검증없이트랜젝션수행)-validation phase(트랜젝션종료시동시성검증수행)-excution phase(문제없으면디스크반영, 아니면철회) Read Phase, Validation Phase, Execution Phase 판독, 확인, 기록(디스크에반영)하는 3단계. 직렬화확인후반영 |
유효성검사 | 판확기 |
토픽 이름(중) | 낙관적 검증(Validation) 기법 |
분류 | DB > 동시성 제어 > 낙관적 검증(Validation) 기법 |
키워드(암기) | Read Phase, Validation Phase, Execution(Write) Phase 판독, 확인, 기록(디스크에 반영)하는 3단계. 직렬화 확인 후 반영 |
암기법(해당경우) | RVE(알배) |
기출문제
번호 | 문제 | 회차 |
1 | 데이터베이스 동시성 제어기법인 2PL(2 Phase Locking), Timestamp Ordering, 낙관적 검증기법을 비교 설명하시오 | 합숙.공통.2014.01 (2일차) |
2 | 트랜잭션 동시성 제어기법에 대해 설명하시오 | 모의.정보관리.2017.04 (1교시) |
I. 일괄 검사, 낙관적 검증(Validation) 기법의 개요
가. 낙관적 검증 기법의 정의
- 트랜잭션 수행 동안은 어떠한 검사도 하지 않고, 트랜잭션 종료 시에 일괄적으로 검사하는 방법
- 트랜잭션을 실행하는 동안 모든 갱신은 지역 사본에만 반영되고 트랜잭션 종료 시 확인 단계를 통해 직렬 가능성에 위반되지 않으면 실행하고 위반되면 복귀하는 기법
나. 낙관적 검증 기법의 특징
- 교착상태가 발생하지 않음(no deadlock) - 연쇄 복귀가 없음(no cascading rollback)
- 순환적 재시작(cyclic restart, starvation) - 데이터 지역 사본 갱신 (트랜잭션 수행 중일 경우)
- 일시 반영 (트랜잭션 종료 시)
II. 낙관적 검증 기법의 개념도 및 처리단계
가. 낙관적 검증 기법의 개념도


- 데이터베이스 연산 실행 전 검사 시 발생하는 오버헤드를 최소화하기 위해 낙관적 검증 기법 활용
나. 낙관적 검증 기법의 처리 단계 별 설명
단계 | 설명 |
판독 단계 (Read Phase : R) |
- 트랜잭션의 모든 갱신은 사본에 대해서만 수행하고 실제 데이터베이스에 대해서는 미수행 |
확인 단계 (Validation Phase : V) |
- 판독 단계에서 사본에 반영된 트랜잭션의 실행 결과를 데이터베이스 반영 전 직렬 가능성 위반여부 확인 |
기록 단계 (Write Phase : W) |
- 확인 단계를 통과하면 트랜잭션의 실행 결과를 데이터베이스에 반영 - 확인 단계를 실패하면 실행 결과를 취소하고 트랜잭션은 복귀 |
III. 낙관적 검증 기법의 트랜잭션 유효성 검사
조건 | 설명 | 타임스탬프(Time-stamp) |
Finish(Ti) < Start(Tk) Ti 가 Tk 시작 전에 완성 | Start(Ti): 트랜잭션 Ti 가 판독단계에 들어가면서 실행을 시작한 시간 Validation(Ti): 트랜잭션 Ti가 판독단계를 끝내고 확인을 시작한 시간 Finish(Ti): 트랜잭션 Ti가 최종 기록 단계를 완료한 시간 |
|
Start(Tk) < Finish(Ti) < Validation(Tk) and Write-set(Ti) ∩ Read-set(Tk) = ∅ |
||
Write-set(Ti) ∩ Read-set(Tk) = ∅ and Write-set(Ti) ∩ Write-set(Tk) = ∅ |
- TS(Ti) < TS(Tk)의 관계에 있는 모든 트랜잭션 Ti 에 대해 위 3 가지 조건 중 하나만 만족하면 트랜잭션들 간에 간섭이 없는 것으로 보고 확인을 성공 (TS: transaction)
- 하나라도 만족하지 못하면 트랜잭션 간의 간섭이 일어났을 가능성이 있기 때문에 실패
IV. 낙관적 병행제어기법으로 생성된 직렬 가능 스케줄 예제

“끝”
반응형
'정보관리기술사 > DB_데이터분석' 카테고리의 다른 글
1차 정규화 (0) | 2023.08.10 |
---|---|
함수적 종속성(FD) (0) | 2023.08.09 |
다중 버전 동시성 제어(MVCC) (0) | 2023.08.06 |
Timestamp Ordering (0) | 2023.08.05 |
2PL or 2PLP(2 Phase Locking) (0) | 2023.08.04 |