SQL 시험 메모장/2.SQL 기본 및 활용
[SQL] 트랜잭션
숭어싸만코
2022. 11. 1. 14:46
# 트랜잭션(Transaction) 이란?
- 데이터베이스 내에서 하나의 그룹으로 처리되어야 하는 명령문들을 모아 놓은 논리적인 작업 단위이다.
- 데이터베이스 응용 프로그램은 트랜잭션들의 집합으로 정의 할 수 있다.
- 여러 단계의 처리를 하나의 처리처럼 다루는 기능이다.
- 여러 개의 명령어의 집합이 정상적으로 처리되면 정상 종료된다.
- 하나의 명령어라도 잘못되면 전체 취소된다.
- 트랜잭션을 쓰는 이유는 데이터의 일관성을 유지하면서 안정적으로 데이터를 복구하기 위함이다.
# 트랜잭션 특성
특성 | 설명 |
원자성 (atomicity) |
트랜잭션에서 정의된 연산들은 모두 성공적으로 실행되던지 아니면 전혀 실행 되지 않은 상태로 남아 있어야 한다. ( All or Nothing ) |
일관성 (consistency) |
트랜잭션이 실행 되기 전의 데이터 베이스 내용이 잘못되어 있지 않다면 트랜잭션이 실행된 이후에도 데이터베이스의 내용에 잘못이 있으면 안된다. |
고립성 (isolation) |
트랜잭션이 실행되는 도중에 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안된다. |
지속성 (durablity) |
트랜잭션이 성공적으로 수행 되면 그 트랜잭션이 갱신한 데이터베이스의 내용은 영구적으로 저장된다. |
# Oracle / SQL Server
Oracle | SQL Server |
DDL 문장 수행 후 자동으로 COMMIT | DDL 문장 수행 후 자동 COMMIT (X) |
RollBack 불가능 | RollBack 가능 |
# BEGIN TRANSACTION
- BEGIN TRANSACTION으로 시작하면 COMMIT 이나 ROLLBACK으로 트랜잭션 종료
- ROLLBACK 구문을 만난다면 BEGIN TRANSACTION 시점까지 모두 ROLLBACK이 수행된다.
# SAVEPOINT
- SAVEPOINT 를 정의하면 ROLLBACK시에 전체작업을 롤백 하는게 아니라 SAVEPOINT까지 트랜잭션의 일부만 롤백할 수 있다.