제어 흐름 한눈에

Active는 공통 출발점이고, 제어 명령이 트랜잭션의 끝과 복귀를 가른다

핵심은 세 명령의 역할 차이입니다. COMMIT은 변경을 확정하고, ROLLBACK은 전체를 취소하며, SAVEPOINT는 문제 난 구간만 되감고 같은 트랜잭션을 이어갑니다.

BEGIN
→
DML 수행
→
Active 상태: 아직 끝나지 않음
상황
제어 명령
상태 변화
운영 의미
정상 완료
COMMIT 모든 변경을 확정
Active → Committed
트랜잭션 종료. 로그 flush 후 변경이 영구 반영되고 잠금도 함께 해제됩니다.
오류 발생
ROLLBACK 전체 변경을 취소
Active 오류 Failed → Aborted
실패 흐름의 종료. 지금까지의 변경을 되돌리고, 이후에는 새 트랜잭션을 다시 시작해야 합니다.
부분 취소
SAVEPOINT 지정 지점까지만 복귀
Active → SAVEPOINT 지점 → Active 계속
트랜잭션은 끝나지 않습니다. 앞선 작업은 유지하고 문제 난 구간만 되돌린 뒤, 같은 트랜잭션 안에서 작업을 이어갈 수 있습니다.
기억할 규칙

끝나는 상태는 Committed 또는 Aborted입니다. SAVEPOINT는 종료 명령이 아니라, 전체 일관성은 유지한 채 일부 단계만 다시 조정하게 해 주는 중간 제어 장치입니다.