트랜잭션과 회복 기법 - 정처기 실기 대비 문제 포함
요약
데이터베이스 트랜잭션의 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) | 변경이 필요한 페이지의 복사본(그림자 페이지)을 만들고, 트랜잭션이 성공적으로 완료되면 원본 페이지를 그림자 페이지로 대체하는 기법입니다. |
✍️ 정보처리기사 실기 문제
문제 | 트랜잭션이 성공적으로 완료되었으나, 해당 변경 내용이 디스크에 반영되지 않은 경우, 로그를 참조하여 변경 내용을 다시 실행하는 데이터베이스 회복 기법의 핵심 요소는 무엇인지 서술하시오. |
답변 | |
정답 | 정답 보기 |