트랜잭션(Transaction)
데이터베이스에서 하나의 논리적 기능을 수행하는 작업단위
트랜잭션 특징(ACID)
- 원자성(Atomicity) : 트랜잭션은 데이터베이스에 모두 반영되거나 모두 반영되지 않아야 함
- 일관성(Consistency) : 트랜잭션이 완료되면 트랜잭션 이전의 상황과 동일하게 항상 일관성 있는 데이터를 유지
- 독립성(Isolation) : 어느 하나의 트랜잭션이 실행될 때 다른 트랜잭션이 끼어들 수 없음
- 영속성(Durability) : 트랜잭션이 완료되면 결과가 영구적으로 반영
트랜잭션 연산
- commit
- 트랜잭션이 성공적으로 수행되었음을 선언
- commit이 실행되면 트랜잭션의 수행 결과가 데이터베이스에 반영된다
- rollback
- 트랜잭션이 실패했음을 선언
- rollback이 실행되면 현재까지 실행된 트랜잭션이 취소되고 이전의 상태로 되돌아 간다.
트랜잭션 상태
- Active : 트랜잭션이 시작되어 수행중인 상태
- Partially Committed : 마지막 연산이 실행되고 commit 연산이 되지 않은 상태
- Committed : commit 연산이 실행되어 트랜잭션의 성공이 영구적으로 반영된 상태
- Failed : 트랜잭션이 실패하여 중단된 상태
- Aborted : rollback 연산이 실행되어 트랜잭션이 취소되고 이전 데이터로 돌아간 상태