트랜잭션과 회복 기법 - 정처기 실기 대비 문제 포함

정처기DB트랜잭션
읽는데 약 3분 정도 소요
처음 쓰여진 날: 2025-07-10
마지막으로 고쳐진 날: 2025-07-18
이 글을 보러온 횟수: 39

요약

데이터베이스 트랜잭션의 ACID 특성(원자성, 일관성, 고립성, 지속성)과 다양한 데이터베이스 회복 기법(로그 기반, 체크포인트, 그림자 페이징)을 표로 요약하고 실기 시험 문제를 풀어봅니다.

트랜잭션의 특성: ACID

트랜잭션은 데이터베이스의 무결성과 일관성을 보장하기 위해 다음과 같은 네 가지 주요 특성(ACID)을 만족해야 합니다.

특성 (Property)설명 (Description)
원자성 (Atomicity)트랜잭션의 연산은 모두 정상적으로 실행되거나 하나도 실행되지 않아야 합니다 (All or Nothing).
일관성 (Consistency)트랜잭션 실행 후에도 데이터베이스는 항상 일관된 상태를 유지해야 합니다.
고립성 (Isolation)하나의 트랜잭션이 실행 중일 때 다른 트랜잭션이 끼어들 수 없습니다.
지속성 (Durability)성공적으로 완료된 트랜잭션의 결과는 영구적으로 데이터베이스에 저장되어야 합니다.

데이터베이스 회복 기법

데이터베이스에 장애가 발생했을 때 데이터를 이전의 일관된 상태로 복구하기 위한 기법들입니다.

회복 기법의 핵심 요소

요소 (Component)설명 (Description)
REDO (재실행)트랜잭션이 성공적으로 완료(COMMIT)되었지만, 변경 내용이 디스크에 반영되지 않았을 경우 해당 내용을 다시 적용합니다. 트랜잭션 시작(Start)과 완료(Commit)에 대한 기록이 있는 경우
UNDO (취소)트랜잭션이 실패(FAILED)했을 때, 변경 이전의 원래 상태로 되돌립니다. 트랜잭션 기록에 시작(Start) 있지만, 완료(Commit) 없는 경우

회복 기법의 종류

기법 (Technique)설명 (Description)
로그 기반 회복 (Log-based Recovery)데이터베이스의 변경 사항을 로그 파일에 순차적으로 기록하고, 장애 발생 시 이 로그를 이용해 복구합니다.
   - 지연 갱신 (Deferred Update)트랜잭션이 성공적으로 완료될 때까지 데이터베이스에 대한 변경을 지연시킵니다. UNDO가 필요 없으며 REDO만 사용합니다.
   - 즉각 갱신 (Immediate Update)트랜잭션 수행 중 발생하는 변경 사항을 즉시 데이터베이스에 반영합니다. REDO와 UNDO가 모두 필요할 수 있습니다.
체크포인트 회복 (Checkpoint Recovery)특정 시점(체크포인트)에 데이터베이스의 일관된 상태를 저장하고, 장애 발생 시 가장 최근의 체크포인트에서부터 회복을 시작하여 복구 시간을 단축합니다.
그림자 페이징 (Shadow Paging)변경이 필요한 페이지의 복사본(그림자 페이지)을 만들고, 트랜잭션이 성공적으로 완료되면 원본 페이지를 그림자 페이지로 대체하는 기법입니다.

✍️ 정보처리기사 실기 문제

문제트랜잭션이 성공적으로 완료되었으나, 해당 변경 내용이 디스크에 반영되지 않은 경우, 로그를 참조하여 변경 내용을 다시 실행하는 데이터베이스 회복 기법의 핵심 요소는 무엇인지 서술하시오.
답변
정답정답 보기

➡️ 다음 읽으면 좋은 포스팅