목차
5. 관리구문
5-1. TCL
5-1-1. 트랜잭션
5-1-2. COMMIT
5-1-3. ROLLBACK
5-1-4. SAVEPOINT
5. 관리구문
5-1. TCL
TCL(Transaction Control Language)은 트랜잭션을 제어하는 명령어이다.
대표적인 명령어는 다음과 같다.
- COMMIT
- ROLLBACK
- SAVEPOINT
1️⃣ 트랜잭션
트랜잭션이란 데이터베이스에서 하나의 작업으로 처리되는 최소 실행 단위를 의미한다.
예를 들어 계좌이체는 출금과 입금, 두 작업이 모두 성공해야 정상적으로 완료된다.
중간에 하나라도 실패하면 전체 작업을 취소해야 하는데, 이러한 하나의 작업 단위를 트랜잭션이라고 한다.
✔️ 트랜잭션의 특징(ACID)
| 특징 | 설명 |
| 원자성(Atomicity) | 하나의 트래잭션으로 묶인 연사들은 모두 수행되거나(All) 전혀 수행되지 않아야 한다.(Nothinh) |
| 일관성(Consistency) | 트랜잭션의 수행 전후에 데이터베이스의 무결성과 정합성이 유지되어야 한다. |
| 고립성(Isolation) | 트랜잭션은 독립적으로 수행되며 다른 트랜잭션의 영향을 받지 않는다. |
| 영속성(Durability) | 커밋된 결과는 시스템 장애가 발생해도 영구적으로 보존된다. |
📌 SQLD에서는 ACID의 의미를 묻는 문제가 자주 출제된다.
2️⃣ COMMIT
COMMIT은 트랜잭션의 변경사항을 데이터베이스에 영구적으로 반영하고 트랜잭션을 종료하는 명령어이다.
COMMIT이 수행되면 INSERT / UPDATE / DELETE 등의 DML 수행 결과가 최종적으로 저장된다.
또한 트랜잭션에서 사용하던 Lock도 함께 해제된다.
3️⃣ ROLLBACK
ROLLBACK은 트랜잭션의 변경사항을 취소하고 이전 상태로 되돌리는 명령어이다.
✔️ ROLLBACK의 특징
- 마지막 COMMIT 이후의 모든 변경사항을 취소할 수 있다.
- SAVEPOINT를 지정했다면 해당 저장점까지만 되돌릴 수도 있다.
- ROLLBACK이 수행되면 Lock도 함께 해제된다.
✔️ SQL Server
SQL Server는 기본적으로 자동 커밋(Auto Commit) 모드가 활성화되어 있다.
따라서 일반적인 DML 실행 후에는 즉시 COMMIT되므로 ROLLBACK이 불가능하다.
단, BEGIN TRANSACTION으로 명시적인 트랜잭션을 시작한 경우에는 ROLLBACK이 가능하다.
4️⃣ SAVEPOINT
SAVEPOINT는 트랜잭션 내부에 저장점을 생성하는 명령어이다.
전체 트랜잭션을 취소하지 않고 특정 시점 이후의 작업만 취소할 수 있다.
✔️ROLLBACK 과 ROLLBACK TO SAVEPOINT
ROLLBACK : 전체 취소
ROLLBACK TO SAVEPOINT : 저장점 이후만 취소
🔗 출처
'자격증 > SQLD' 카테고리의 다른 글
| [SQLD][아이리포]32. 참조 무결성 제약조건 | CASECADE | SET NULL | MODIFY (0) | 2026.08.20 |
|---|---|
| [SQLD][아이리포]27. 서브쿼리 | 정규표현식 (0) | 2026.08.13 |
| [SQLD][아이리포]26. 서브쿼리 | PIVOT | UNPIVOT (2) | 2026.08.09 |
| [SQLD][아이리포]25. 서브쿼리 | 계층형질의 | START WITH | CONENCT BY PRIOR | ORDER SIBLINGS BY (0) | 2026.08.08 |
| [SQLD][아이리포]24. 서브쿼리 | Top-N 쿼리 | ROWNUM | 순위함수 (0) | 2026.07.28 |