본문 바로가기

자격증/SQLD

[SQLD][아이리포]30. 트랜잭션 | ACID 특성 | TCL | COMMIT | ROLLBACK

반응형
목차

5. 관리구문

5-1. TCL
5-1-1. 트랜잭션
5-1-2. COMMIT
5-1-3. ROLLBACK
5-1-4. SAVEPOINT

5. 관리구문

5-1. TCL

TCL(Transaction Control Language)은 트랜잭션을 제어하는 명령어이다.

대표적인 명령어는 다음과 같다.

- COMMIT

- ROLLBACK

- SAVEPOINT

1️⃣ 트랜잭션

트랜잭션이란 데이터베이스에서 하나의 작업으로 처리되는 최소 실행 단위를 의미한다.

 

예를 들어 계좌이체는 출금과 입금, 두 작업이 모두 성공해야 정상적으로 완료된다.

중간에 하나라도 실패하면 전체 작업을 취소해야 하는데, 이러한 하나의 작업 단위를 트랜잭션이라고 한다.

 

✔️ 트랜잭션의 특징(ACID)

특징 설명
원자성(Atomicity) 하나의 트래잭션으로 묶인 연사들은 모두 수행되거나(All) 전혀 수행되지 않아야 한다.(Nothinh)
일관성(Consistency) 트랜잭션의 수행 전후에 데이터베이스의 무결성과 정합성이 유지되어야 한다.
고립성(Isolation) 트랜잭션은 독립적으로 수행되며 다른 트랜잭션의 영향을 받지 않는다.
영속성(Durability) 커밋된 결과는 시스템 장애가 발생해도 영구적으로 보존된다.

 

📌 SQLD에서는 ACID의 의미를 묻는 문제가 자주 출제된다.

2️⃣ COMMIT

COMMIT은 트랜잭션의 변경사항을 데이터베이스에 영구적으로 반영하고 트랜잭션을 종료하는 명령어이다.

 

COMMIT이 수행되면 INSERT / UPDATE / DELETE 등의 DML 수행 결과가 최종적으로 저장된다.

또한 트랜잭션에서 사용하던 Lock도 함께 해제된다.

3️⃣ ROLLBACK

ROLLBACK은 트랜잭션의 변경사항을 취소하고 이전 상태로 되돌리는 명령어이다.

 

✔️ ROLLBACK의 특징

- 마지막 COMMIT 이후의 모든 변경사항을 취소할 수 있다.

- SAVEPOINT를 지정했다면 해당 저장점까지만 되돌릴 수도 있다.

- ROLLBACK이 수행되면 Lock도 함께 해제된다.

 

✔️ SQL Server

SQL Server는 기본적으로 자동 커밋(Auto Commit) 모드가 활성화되어 있다.

따라서 일반적인 DML 실행 후에는 즉시 COMMIT되므로 ROLLBACK이 불가능하다.

단, BEGIN TRANSACTION으로 명시적인 트랜잭션을 시작한 경우에는 ROLLBACK이 가능하다.

4️⃣ SAVEPOINT

SAVEPOINT는 트랜잭션 내부에 저장점을 생성하는 명령어이다.

 

전체 트랜잭션을 취소하지 않고 특정 시점 이후의 작업만 취소할 수 있다.

 

✔️ROLLBACK 과 ROLLBACK TO SAVEPOINT

ROLLBACK : 전체 취소

ROLLBACK TO SAVEPOINT : 저장점 이후만 취소


🔗 출처

[SQLD 모든 것]

 

 

반응형