정보처리기사 실기데이터베이스 이론트랜잭션 ACID와 2PL난이도 5DESCRIPTIVE

정보처리기사 실기 트랜잭션 ACID와 2PL 기출문제 #399

문제

데이터베이스의 동시성 제어를 위한 낙관적 동시성 제어(Optimistic Concurrency Control) 기법의 3단계 처리 과정을 설명하고, 비관적 동시성 제어와의 차이점을 서술하시오.

정답

낙관적 동시성 제어는 읽기 단계에서 자유롭게 데이터를 읽고 로컬에서 작업, 검증 단계에서 다른 트랜잭션과의 충돌 여부를 검사하여 직렬 가능성 확인, 쓰기 단계에서 검증 통과 시 결과를 데이터베이스에 반영한다. 비관적 동시성 제어는 데이터 접근 전에 미리 락을 획득하여 충돌을 예방하는 반면, 낙관적 기법은 충돌이 드물다고 가정하고 커밋 시점에 검증한다.

읽기 단계검증 단계쓰기 단계Read PhaseValidation PhaseWrite Phase낙관적비관적충돌 검사직렬 가능성

해설

낙관적 동시성 제어는 트랜잭션 간 충돌이 드물다는 가정 하에 락 오버헤드를 줄이는 기법입니다. 3단계 처리: 1) 읽기 단계에서 데이터를 자유롭게 읽고 로컬 작업공간에서 수정, 2) 검증 단계에서 다른 트랜잭션과의 읽기-쓰기, 쓰기-쓰기 충돌 검사, 3) 쓰기 단계에서 검증 성공 시 변경사항을 데이터베이스에 반영합니다. 비관적 기법은 미리 락으로 충돌을 방지하지만, 낙관적 기법은 사후 검증으로 불필요한 락 대기를 피합니다.

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.