4.3 트랜잭션과 무결성
트랜잭션
트랜잭션은 데이터베이스에서 하나의 논리적 작업을 수행하기 위한 작업 단위이다.
데이터베이스는 **쿼리(Query)**를 통해 접근하므로
여러 개의 쿼리를 하나의 실행 단위로 묶은 것을 트랜잭션이라고 한다.
계좌 A → 계좌 B 송금
1. A 계좌 금액 차감
2. B 계좌 금액 증가
ACID
- Atomicity(원자성)
- Consistency(일관성)
- Isolation(격리성)
- Durability(지속성)
원자성
- 트랜잭션은 DB에 모두 반영되거나, 전혀 반영되지 않아야 한다.
- commit 과 rollback으로 관리한다.
일관성
- 트랜잭션 수행 전과 후에 데이터베이스는 항상 일관된 상태를 유지해야 한다.
- 허용된 방식으로만 데이터를 변경해야 한다.
격리성