// 트랜잭션
- 업무 실행 단위
- 논리 명령 단위
- 데이터를 조작하는 업무의 시간적 단위
- 일련의 사건의 집합
~ 은행에서 돈을 인출하는 행동
- 1개 이상의 명령어로 구성된 작업 단위
- 새로운 트랜잭션이 시작하는 경우
1. commit 실행 직후
2. rollback 실행 직후
3. 클라이언트 접속 직후
- 현재 트랜잭션이 종료되는 경우
1. commit 실행 > 현재 트랜잭션을 DB에 반영 O
2. rollback 실행 > 현재 트랜잭션을 DB에 반영 X
3. 클라이언트 접속 종료
a. 정상 종료
- 현재 트랜잭션에 아직 반영되지 않은 명령어가 남아있으면 사용자에게 선택지를 제공
b. 비정상 종료
- rollback 처리
- 엄밀히 말하자면 rollback도 commit도 하지 않음 > DB에 반영되지 않음
4. DDl 실행
- create, alter, drop 실행 즉시 commit 된다. > Auto Commit
- DB 구조를 변경하는 행동으로 데이터에 영향을 미치기 때문에 사전에 미리 저장됨.
// 트랜잭션 명령어: DCL, TCL
1. commit
- commit을 완료하면 다른 세션에서도 확인할 수 있다.
- 현재 트랜잭션의 모든 작업을 실제 DB에 반영한다.
- commit 직후 > 현재 트랜잭션 완료 > 새로운 트랜잭션이 시작된다.
2. rollback
- 임시 저장소에 test 했던 내용을 저장하지 않는다. (되돌리기)
- rollback 직후 > 이전 트랜잭션 완료 > 새로운 트랜잭션이 시작된다.
3. savepoint
- rollback 시점을 사용자가 정의
savepoint a;
rollback to a; > savepoint a로 돌아갈 수 있음
'데이터베이스(DB) > Oracle' 카테고리의 다른 글
[Oracle] 정규식 (0) | 2023.02.13 |
---|---|
[Oracle] 연산자 (0) | 2023.02.13 |
[Oracle] 데이터 조작(DML) (0) | 2023.02.10 |
[Oracle] 테이블 수정 (0) | 2023.02.08 |
[Oracle] 데이터 형식 (0) | 2023.02.07 |