데이터베이스를 다루다 보면 데이터가 정말 저장이 된 건지 혹시 실수했는데 되돌릴 순 없는지라는 고민을 한 번쯤은 해보게 된다. 이 모든 것을 책임지는 개념이 바로 트랜잭션(Transaction)이다.
오늘은 오라클에서 트랜잭션이 무엇인지 그리고 COMMIT / ROLLBACK이 어떤 역할을 하는지 알아보자...!
1. 트랜잭션(Transaction)이란?
트랜잭션이란 하나의 논리적인 작업 단위를 의미한다.
- 여러 SQL 문이 하나의 묶음으로 처리되고
- 모두 성공하거나, 모두 실패해야 하는 작업
※ 예시로 이해해 보자
아래 두 SQL은 A 계좌에서 돈을 빼고 B 계좌에 넣는 하나의 작업이다.
UPDATE ACCOUNT
SET BALANCE = BALANCE - 10000
WHERE USER_ID = 'KIM';
UPDATE ACCOUNT
SET BALANCE = BALANCE + 10000
WHERE USER_ID = 'KIM';
- 첫 번째 SQL만 성공하고
- 두 번째 SQL이 실패한다면...?
더보기
X 데이터가 꼬이게 된다.
그래서 두 SQL을 하나의 트랜잭션으로 묶어 관리해야 한다.
2. 오라클에서 트랜잭션의 시작과 종료
√ 트랜잭션은 언제 시작될까?
오라클에서는 별도의 선언 없이 자동으로 시작된다.
INSERT
INTO MEMBER (
ENGLISH
, KOREAN
)
VALUES(
'HONG'
, '홍길동'
);
☞ 이 순간 트랜잭션이 시작됨
√ 트랜잭션이 종료되는 시점
트랜잭션은 다음 중 하나가 실행될 때 종료된다.
| 구분 | 설명 |
| COMMIT | 변경 내용을 확정 |
| ROLLBACK | 변경 내용을 취소 |
| DDL 실행 | CREATE / DROP / ALTER 실행 시 자동 COMMIT |
| 세션 종료 | 접속 종료 시 자동 COMMIT |
3. COMMIT 이란?
지금까지 수행한 변경 작업을 데이터베이스에 확장 저장
COMMIT;
- INSERT / UPDATE / DELETE 결과가 영구 저장
- 다른 세션에서도 변경 내용 확인 가능
- 이후 ROLLBACK 불가능
4. ROLLBACK 이란?
마지막 COMMIT 이후 수행한 작업을 모두 취소
ROLLBACK;
- 변경 전 상태로 되돌림
- 실수했을 때 매우 중요
- 아직 COMMIT 하지 않았다면 언제든 가능
5. COMMIT vs ROLLBACK 한눈에 비교
| 구분 | COMMIT | ROLLBACK |
| 의미 | 변경 확정 | 변경 취소 |
| 데이터 반영 | 영구 저장 | 원상 복구 |
| 되돌리기 | 불가능 | 가능 |
| 사용 시점 | 작업 완료 후 | 실수 발생 시 |
마무리
트랜잭션과 COMMIT / ROLLBACK은 단순한 문법이 아니라 데이터 안정성을 지키는 핵심 개념이다. 실무에서는 단 한 번의 실수로 데이터가 날아갈 수 있기 때문에 주의하자. 보통 DB 툴에서 AUTO 커밋을 해지 한 후에 사용자가 직접 COMMIT 또는 ROLLBACK을 하는 것을 추천한다...! COMMIT 하기전에는 꼭 검증을 하는 습관을 들이자! 오늘은 트랜잭션에 대해 알아보았습니다. 감사합니다. (_ _)
'오라클' 카테고리의 다른 글
| [오라클] WHERE 절과 HAVING 절의 차이 (0) | 2026.01.07 |
|---|---|
| [오라클] 인덱스(Index) 완벽 정리 (0) | 2026.01.06 |
| [오라클] INSERT 문법 완벽 정리 (예제+주의 사항) (0) | 2026.01.03 |
| [오라클] DELETE 문법 완벽 정리 (예제 + 주의 사항) (0) | 2026.01.02 |
| [오라클] UPDATE 문법 완벽 정리 (예제 + 주의 사항) (0) | 2026.01.01 |