파일 시스템
파일 수정 중 시스템이 멈추면 남은 값만으로는 정상 완료인지 부분 수정인지 판단하기 어렵습니다. DBMS는 변경 로그와 COMMIT 기록을 남겨 재시작 시 REDO 또는 UNDO를 결정합니다.
장애 전에 완료된 트랜잭션의 변경이 데이터 페이지에 덜 반영됐다면 로그를 보고 재적용합니다.
중간에 멈춘 트랜잭션의 흔적은 원자성을 지키기 위해 취소합니다.
부분 수정, 중복 처리, 누락 처리 위험을 프로그램이나 사람이 따로 판단해야 합니다.
작업은 끝난 것으로 보고, 저장 장치 반영이 불완전하면 다시 적용합니다.
작업은 완료되지 않은 것으로 보고, 남아 있는 중간 변경을 취소합니다.
DBMS는 데이터 파일의 현재 값만 보지 않고 변경 기록과 순서를 함께 봅니다.
완료된 트랜잭션과 중간에 멈춘 트랜잭션을 서로 다르게 처리합니다.
재적용과 취소를 마친 뒤 데이터베이스는 믿을 수 있는 기준 상태로 돌아옵니다.