본문 바로가기
언어/SQL

[SQL] TCL

by 코딩맛집 2022. 10. 12.

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