1. 기본
- sql developer에서 insert문을 통해 테이블에 값 입력
- 메모리 상에만 입력
- cmd창에서 해당 테이블 로드 시,insert문을 통해 입력한 데이터 들어가있지 않다
- 입력한 데이터가 전달되지 않을 경우 전부 취소(rollback)
- 은행의 송금과 같은 개념
- a계좌 출금 후 b계좌에 입금 확인 시 거래 성사 (commit)
- a계좌 출금 후 b계좌에 입금되지 않았을시 취소 (rollback)
- 네트워크 장애 등의 이유
- 모두 처리 (commit) 혹은 모두 취소 (rollback)
- 반드시 트랜잭션 처리해야한다
- savepoint를 설정하여, 트랜잭션 관리 가능
2. transaction
- 논리적인 작업 단위
- 여러가지 dml작업들을 하나의 단위로 묶어둔 것
- 모든 dml이 성공해야 해당 트랜잭션 성공
- 하나라도 실패하면 전체 실패
- 모든 트랜잭션은 크기가 다를 수 있다
3. tcl
- commit : 트랜잭션 내의 작업의 결과를 확정하는 명령어
- rollback : 트랜잭션 내의 모든 명령어들을 취소하는 명령어
- dml에 대해서 작동하며 create 등의 명령문은 자동 커밋
a. commit
- 메모리 상에서 변경된 내용을 데이터 파일에 반영
- commit을 수행하지 않고 세션이 끊어지면 반영되지 않는다
- dml문을 실행하더라도 바로 데이터가 반영되지 않는다
- 변경된 데이터들은 오라클 메모리상에만 존재
- commit문장을 실행하여 데이터파일에 변경사항이 반영
b. rollback
- 메모리 상에서 변경된 내용을 데이터파일에 반영하지 않고 종료
- 변경된 데이터들을 변경 전 상태로 되돌리는 역할
- 작업한 내용을 되돌리는 취소의 개념