CS
[SQLD] 트랜잭션
2026년 02월 11일 13:48
SQLD 1과목 – 트랜잭션
트랜잭션(Transaction)이란?
트랜잭션은
데이터베이스에서 하나의 논리적 기능을 수행하는 작업 단위이다.
- 여러 SQL문을 하나의 작업 단위로 묶음
- 전부 수행되거나 전부 취소되어야 함 (All or Nothing)
- 하나의 트랜잭션에는 SELECT, INSERT, UPDATE, DELETE 포함 가능
👉 부분 성공 ❌
👉 모두 성공 또는 모두 실패
트랜잭션의 필요성
- 오류 발생 시 이전 상태로 복구 보장
- 여러 사용자가 동시에 접근해도 데이터 일관성 유지
- 금융 시스템 등 중간 결과가 존재하면 안 되는 업무에서 필수
ACID 속성 ⭐⭐⭐
트랜잭션이 반드시 만족해야 하는 4가지 성질
| 구분 | 설명 |
|---|---|
| 원자성 (Atomicity) | 모든 연산은 전부 수행되거나 전부 취소(ROLLBACK) |
| 일관성 (Consistency) | 수행 전후 데이터는 제약조건을 만족 |
| 격리성 (Isolation) | 동시에 수행되는 트랜잭션 간 간섭 없음 |
| 지속성 (Durability) | COMMIT 후 결과는 영구 저장 |
트랜잭션 주요 명령어
-
COMMIT → 작업 확정 (영구 반영)
-
ROLLBACK → 트랜잭션 시작 직전 상태로 복구
👉 부분 COMMIT 불가
주의 사항 ⭐⭐
- 각 UPDATE를 독립적으로 실행하면 안 됨
- 부분 COMMIT 불가
- 반드시 동시에 COMMIT 또는 ROLLBACK
