트랜잭션
트랜잭션
트랜잭션(transaction) 이란?
- 트랜잭션은 데이터베이스의 완전성을 보장하기 위한 것이다.
- 상태를 변화시키기 위해 수행하는 하나의 작업의 단위를 뜻한다.
트랜잭션의 특징(ACID)
-
원자성 (Atomicity)
all or nothing
- 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는것을 보장하는 것을 의미한다.
-
일관성 (Consistency)
- 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지 하는 것을 의미한다.
- 일관성 있는 데이터베이스 상태는 다양한 제약 조건등에 만족한다는 것이다.
-
고립성(Isolation)
- 하나의 트랜잭션이 실행하는 도중에 변경된 데이터는 이 트랜잭션이 완료될 때까지 다른 트랜잭션이 참조하지 못하게 하는특성
-
지속성(Durability)
- 트랜잭션이 완료되면, 주기억장치가 아닌 디스크와 같은 보조기억장치에 저장되거나 그렇지 않더라고 시스템 장애가 회복되고 난 후에 어떠한 형태로든지 그 데이터를 복구 할 수 있게 해야함을 뜻함.
트랜잭션의 형태
- 활동
- 트랜잭션이 실행 중에 있는 상태, 연산들이 정상적으로 실행 중인 상태
- 장애
- 트랜잭션이 실행에 오류가 발생하여 중단된 상태
- 철회
- 트랜잭션이 비정상적으로 종료되어, ROLLBACK 연산을 수행한 상태
- 부분적 완료
- 트랜잭션이 마지막까지 실행했지만, Commit 연산이 실행되지 직전의 상태
- 완료
- 트랜잭션이 성공적으로 종료되어 Commit 연산을 실행한 후의 상태