트랜잭션이란?
- 트랜잭션은 작업의 완전성을 보장해준다.
- 논리적인 작업 셋을 모두 완벽하게 처리하거나 또는 처리하지 못할 경우 원 상태로 복구해서 작업의 일부만 적용되는 현상이 발생하지 않게 만들어주는 기능이다.
트랜잭션 특성 (ACID)
- 원자성(Atomicity) : 트랜잭션에 해당하는 작업 내용이 모두 반영되거나 전혀 반영되지 않음을 의미한다.
- 일관성(Consistency) : 트랜잭션 처리 결과의 데이터 타입이 항상 일관되어야 함을 의미한다.
- 독립성(Isolation) : 하나의 트랜잭션 처리 중 다른 트랜잭션이 끼어들 수 없음을 의미한다. (간섭 불가)
- 지속성(Durability) : 트랜잭션이 성공적으로 완료되면 영구적으로 결과에 반영되어야 함을 의미한다.
트랜잭션의 상태
- Active : 트랜잭션이 현재 실행중인 상태
- Failed : 트랜잭션이 실행되다 오류가 발생하여 중단된 상태
- Aborted : 트랜잭션이 비정상 종료되어 Rollback이 수행된 상태
- Partially Commitded : 트랜잭션의 연산이 모두 수행되고 Commit 되기 직전 상태
- Commited : 트랜잭션이 모두 수행되고 Commit되어 성공적으로 종료한 상태