TCL(Transaction Control Language)
: 트랜잭션을 제어하기 위한 언어
* 트랜잭션: 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위
- COMMIT : 데이터에 대한 변화를 DB에 반영하기 위한 명령어
- SAVEPOINT : 코드를 분할하기 위한 저장 포인트 지정
- ROLLBACK : 트랜잭션이 시작되기 이전의 상태로 되돌리기 위한 언어. 최신 COMMIT이나 특수한 SAVEPOINT로 되돌릴 수 있는 명령어.
트랜잭션의 특징
- 고립성: 트랜잭션이 실행되는 동안 다른 트랜잭션에 영향을 받아 잘못된 결과를 만들어선 안된다.
- 원자성: 트랜잭션에서 정의된 연산은 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않은 상태로 있어야 한다.
- 지속성: 트랜잭션이 성공적으로 완료되면 해당 트랜잭션이 갱신한 데이터베이스의 내용은 영구적으로 저장된다.
- 일관성: 트랜잭션이 발생 전 데이터베이스 내용에 잘못된 점이 없다면 트랜잭션 수행 후에도 데이터베이스의 내용에 잘못이 있으면 안된다.
COMMIT과 ROLLBACK의 효과
1. 데이터 무결성을 보장할 수 있다.
2. 영구적인 변경 전 데이터에 대한 변동사항을 확인할 수 있다.
3. 논리적 연관성 있는 작업을 그룹화하여 처리할 수 있다.
* ROLLBACK 할 경우, SAVEPOINT가 없으면 가장 최신의 COMMIT 상태로 복원된다.
* DISTINCT는 NULL도 단일 행으로 본다.
'언어 > SQL' 카테고리의 다른 글
[Oracle] 조건에 맞는 회원수 구하기 (0) | 2023.06.11 |
---|---|
[Oracle] 상위 N개 레코드 (0) | 2023.06.08 |
옵티마이저 (0) | 2022.10.17 |
window 함수, 계층형 조회 (0) | 2022.10.14 |
NULL 관련 함수 (0) | 2022.10.12 |