트랜잭션이란?
- 데이터베이스에서 하나의 작업의 단위를 말한다
- 작업의 완전성을 보장한다
트랜잭션의 특성(ACID)
- Atomicity(원자성) : 작업이 모두 반영되거나, 모두 반영되지 않음
- Consistency(일관성) : 작업 전후 데이터의 일관성을 유지한다
- Isolation(고립성) : 각 트랜잭션이 서로 영향을 미치지 않고 고립되어 있다
- Durablity(영속성) : 각 작업의 결과가 영구적으로 DB에 반영된다
트랜잭션의 상태
- 활동(Active) : 트랜잭션이 실행중인 상태
- 부분 완료(Partially Committed) : 트랜잭션의 마지막 명령문을 실행시킨 직후의 상태
- 실패(Failed) : 트랜잭션이 실행중에 장애가 발생해 더 이상 실행할 수 없는 상태이다. Rollback 연산 후 철회로 변경된다
- 철회(Aborted) : Rollback 후에 강제종료 혹은 재시작된다. 장애의 원인이 트랜잭션 자체에 있다면 강제종료, 그렇지 않다면 재시작된다
- 완료(Committed) : 트랜잭션의 변경 내용이 DB에 반영된다