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

정보처리기사 실기 트랜잭션 ACID 기출문제 #281

문제

데이터베이스 트랜잭션의 지속성(Durability) 보장을 위한 **쉐도우 페이징(Shadow Paging)**과 로그 기반 회복의 장단점을 비교하고, **낙관적 동시성 제어(Optimistic Concurrency Control)**의 3단계 처리 과정을 서술하시오.

정답

쉐도우 페이징은 데이터 변경 시 원본 페이지를 유지하고 새로운 쉐도우 페이지를 생성하는 방식으로, 로그 파일이 불필요하고 회복이 단순하다는 장점이 있지만, 페이지 단편화로 인한 저장공간 낭비와 페이지 테이블 포인터 관리 오버헤드가 크다는 단점이 있다. 반면 로그 기반 회복은 변경사항을 순차적으로 로그에 기록하여 효율적인 공간 활용과 빠른 회복이 가능하지만, 로그 공간 관리와 주기적인 체크포인트 처리가 필요하다. 낙관적 제어는 3단계로 처리되는데, 읽기 단계에서는 트랜잭션이 필요한 데이터를 읽고 타임스탬프나 버전 번호를 기록하며, 확인 단계에서는 읽은 데이터가 다른 트랜잭션에 의해 변경되지 않았는지 일관성 검증을 수행하고, 쓰기 단계에서는 검증이 성공한 경우에만 변경사항을 실제 데이터베이스에 반영한다.

쉐도우 페이징로그 기반 회복Shadow Paging페이지 단편화포인터 관리읽기 단계확인 단계쓰기 단계낙관적 제어일관성 검증

해설

이 문제는 데이터베이스 회복 기법과 동시성 제어의 핵심 개념을 다룹니다. 쉐도우 페이징은 원본 데이터를 보존하면서 변경사항을 별도 페이지에 저장하는 방식으로, 로그가 불필요하여 구현이 단순하지만 저장공간 효율성이 떨어집니다. 페이지 단편화는 불연속적인 페이지 할당으로 인한 공간 낭비를 의미하며, 포인터 관리 오버헤드는 페이지 테이블 업데이트 비용을 말합니다. 로그 기반 회복은 변경사항을 순차적으로 기록하여 공간 효율성이 높고 롤백/롤포워드가 용이하지만, 로그 파일 크기 관리와 정기적인 체크포인트 설정이 필요합니다. 낙관적 동시성 제어는 충돌이 드물다고 가정하고 트랜잭션 완료 시점에 충돌을 검사하는 방식으로, 읽기 단계에서는 데이터 접근과 함께 타임스탬프를 기록하고, 확인 단계에서는 읽은 데이터의 무결성을 검증하며, 쓰기 단계에서는 검증 성공 시에만 실제 변경을 적용합니다.

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

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