반응형
트랜잭션
- 여러 쿼리가 묶인 하나의 연산 단위
- 트랜잭션은 ROLLBACK 되거나 COMMIT 되는 두 가지 중 하나만 가질 수 있다.
트랜잭션의 특징
- 원자성 (Atomicity) - 반영 or 미반영
- 일관성 (Consistency) - 적용되는 결과가 일관적
- 독립성 (Isolation) - 트랜잭션이 상호의 연산 방해 불가능
- 영속성 (Durability) - 한번 수행된 것은 쭉 저장되어야 함
트랜잭션의 상태
- ROLLBACK
- COMMIT
- SAVEPOINT
ROLLBACK
- 이전 DML 수행에 대해서 취소하는 연산
- COMMIT이 되기 전까지는 ROLLBACK을 통해 수행한 연산들을 취소할 수 있다.
COMMIT
- 한 트랜잭션의 수행을 마치고, 결과를 영속적으로 저장하는 연산
- 한번 COMMIT 된 것은 ROLLBACK으로 되돌릴 수 없다.
- 자동 COMMIT / ROLLBACK 되는 경우
구분 |
자동 유무 |
SQL*PLUS가 정상 종료된 경우 |
자동 COMMIT |
SQL*PLUS가 정상 비정상 종료된 경우 |
자동 ROLLBACK |
DDL과 DCL 명령문이 수행된 경우 |
자동 COMMIT |
장애가 일어난 경우(정전, 비정상동작) |
자동 ROLLBACK |
- 자동 COMMIT: DDL / DCL 언어를 사용한 경우
SAVEPOINT
- 현재의 트랜잭션을 작게 분할해 COMMIT 되기 전, 돌아갈 수 있는 저장점을 만드는 것
- 직관적으로, 게임의 세이브 포인트를 생각하면 된다.
SAVEPOINT SP1; / SAVEPOINT SP2;
ROLLBACK TO SP2; / ROLLBACK TO SP1;
ROLLBACK TO SP1; / ROLLBACK TO SP2;
반응형
'자린고비 독학하기 > 자린고비 코딩하기' 카테고리의 다른 글
SQL - INDEX (1) | 2019.08.05 |
---|---|
SQL - 뷰 (VIEW) (0) | 2019.08.05 |
SQL - DML (0) | 2019.08.01 |
SQL - DATA DICTIONARY VIEW (0) | 2019.08.01 |
SQL - JOIN (0) | 2019.07.31 |