180307 Oracle 트랜잭션 - RYUDONGJIN/Memo_wiki GitHub Wiki
트랜잭션
- 데이터 처리의 한 단위
- 오라클에서 발생하는 여러 개의 SQL 명령문들을 하나의 논리적인 작업 단위로 처리
- 하나의 트랜잭션은 All-OR-Nothing 방식으로 철
- 데이터의 일관성을 유지하면서 안정적으로 데이터를 복구시키기 위해 도입
COMMIT
- DML 작업이 성공적으로 처리되도록 하기 위해서는 COMMIT 명령을, 작업을 취소하기 위해서는 ROLLBACK 명령으로 종료해야 한다.
- COMMIT은 모든 작업들을 정상적으로 처리하겠다고 확정하는 명령어, 트랜잭션의 처리 과정을 데이터베이스에 모두 반영하기 위해서 변경된 내용을 모두 영구 저장
- COMMIT 명령어를 수행하게 되면 하나의 트랜잭션 과정을 종료
- 이전 데이터가 완전히 UPDATE
ROLLBACK
- 작업 중 문제가 발생되어서 트랜잭션의 처리 과정에서 발생한 변경사항을 취소하는 명령어
- 트랜잭션 과정을 종료 및 트랜잭션으로 인한 하나의 묶음 처리가 시작되기 이전의 상태로 되돌림
- 문제가 발생하면 논리적인 작업 단위를 취소해 버린다.
- COMMIT 이전으로 복구
COMMIT 과 ROLLBACK 의 장점
- 데이터 무결성 보장
- 영구적인 변경 전에 데이터의 변경 사항 확인 가능
- 논리적으로 연관된 작업을 그룹화
SAVEPOINT
- 현재의 트랜잭션을 작게 분할할 수 있음
- 저장된 SAVEPOINNT는 ROLLBACK TO SAVEPOINT 문을 사용하여 표시한 곳까지 ROLLBACK 가능