트랜잭션
- 상호작용의 단위
- 이론적으로
ACID
를 만족해야하지만 성능 향상을 위해 종종 완화 되곤 한다.
ACID
ACID 는 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질
Atomicity
- 원자성
- 트랜잭션의 연산은 원자적이여야함. 즉, 모두 성공하거나 실패해야함
Consistency
- 일관성
- 트랜잭션은 유효한 상태로만 변경될 수 있다.
Isolation
- 고립성
- 트랜잭션수행시 다른 트랜잭션의 연산 작업이 끼어들지 못한다.
- 성능관련 이유로 가장 유연성 있는 제약 조건이다.
Durability
- 지속성
- 성공적으로 수행된 트랜잭션은 영원히 반영되어야 한다.
- 일반적으로 비휘발성 메모리에 데이터가 저장되는 것을 의미
트랜잭션 격리 수준
•
READ UNCOMMITTED
: 다른 트랜잭션에서 커밋되지 않은 내용도 참조할 수 있다.
• READ COMMITTED
: 다른 트랜잭션에서 커밋된 내용만 참조할 수 있다.
• REPEATABLE READ
: 트랜잭션에 진입하기 이전에 커밋된 내용만 참조할 수 있다.
• SERIALIZABLE:
트랜잭션에 진입하면 락을 걸어 다른 트랜잭션이 접근하지 못하게 한다.(성능 매우 떨어짐)