Chapter14 트랜잭션
이 글은 기초가 든든한 데이터 베이스를 참조하여 작성했습니다.
1. 트랜잭션 개념
- 데이터에이스 내에서 하나의 논리적 기능을 수행하기 위해 행해지는 한꺼번에 사용되는 하나 이상의 쿼리를 모아 놓은 쪼갤 수 없는 작업의 논리적인 단위
2. 트랜잭션의 ACID 특성
- Atomicity(원자성)
- Consistency(일관성)
- Isolation(고립성 또는 격리성)
- Durability(지속성 또는 영속성)
2.1 원자성(Atomicity)
- 분해가 불가능한 최소의 단위인 원자처럼 동작
- All or Nothing
- 작업 수행이 시작되면 트랜잭션 내의 모든 연산들은 반드시 전체가 완전이 수행되어야 함(All)
- 어느 하나라도 수행이 실패하면 어떠한 연산도 수행되지 않는 상태로 돌아감(Nothing)
2.2 Consistency(일관성)
- 트랜잭션 작업이 시작되기 전의 데이터 베이스가 일관성을 가진다면, 트랜잭션 작업이 종료되어도 데이터 베이스가 일관적인 상태를 유지해야 함.
2.3 Isolation(고립성 또는 격리성)
- 트랜잭션 작업 수행 중에는 다른 트랜잭션에 영향을 주어도 안되고, 간섭을 받아서도 안됨
- 트랜잭션 작업이 시작 되면, 다른 트랜잭션 작업이 현재 실행 중인 트랜잭션의 중간 수행 결과를 참조할 수 없음
2.4 Durability(지속성 또는 영속성)
- 트랜잭션 작업이 성공적으로 수행되어 데이터베이스 내에 반영되었으면, 트랜잭션의 결과는 영구적으로 데이터베이스에 저장되어야 함
3. 트랜잭션의 원자성을 제공하기 위한 연산
3.1 COMMIT(트랜잭션의 성공적인 종료)
- 트랜잭션이 성공적으로 종료되고, 데이터베이스가 새로운 일관적인 상태를 가질 때, 트랜잭션이 수행한 갱신을 영속성이 보장되도록 데이터베이스에 반영하는 연산
3.2 ROLLBACK(트랜잭션의 비정상적인 종료)
- 트랜잭션 중 일부를 성공적으로 종료하지 못했을 때, 데이터베이스의 일관성을 잃지 않기 위해 트랜잭션이 수행한 모든 변경 연산을 복귀시키거나 취소하는 연산
4. 트랜잭션 상태 및 DBMS와의 관계
4.1 트랜잭션 상태
트랜잭션 상태 |
의미 |
활동(activce) |
트랜잭션이 실행을 시작하였거나 현재 실행 주인 상태를 의미 |
부분완료(partially committed) |
트랜잭션이 마지막 명령문을 실행시킨 직후의 상태를 의미 |
실패(failed) |
트랜잭션 실행 중에 장애나 오류가 발생하여 더 이상 정상적인 실행을 할 수 없는 상태를 의미 |
완료(committed) |
트랜잭션이 성공적으로 완료되어 COMMIT 연산을 수행한 상태를 의미 |
철회(aborted) |
트랜잭션 실행이 실패하여 ROLLBACK 연산을 수행한 상태를 의미 |
4.2 트랜잭션 특성과 DBMS 기능과의 관계
트랜잭션 특성 |
DBMS 기능 |
원자성 |
회복 |
일관성 |
동시성 제어 또는 병행 제어, 무결성 제약조건 |
고립성 또는 격리성 |
동시성 제어 또는 병행 제어 |
지속성 또는 영속성 |
회복 |