문제
데이터베이스에서 트랜잭션의 격리성(Isolation)을 보장하기 위한 격리 수준 4단계를 순서대로 나열하고, 각 단계에서 발생할 수 있는 이상 현상(Anomaly)을 설명하시오. 또한 스냅샷 격리(Snapshot Isolation)의 동작 원리와 팬텀 리드 방지 메커니즘을 서술하시오.
정답
격리 수준은 Read Uncommitted(더티 리드, 비반복 리드, 팬텀 리드 발생), Read Committed(비반복 리드, 팬텀 리드 발생), Repeatable Read(팬텀 리드 발생), Serializable(모든 이상 현상 방지) 순이다. 스냅샷 격리는 트랜잭션 시작 시점의 데이터베이스 스냅샷을 생성하여 일관된 읽기를 제공하며, MVCC를 통해 읽기 시 잠금 없이 과거 버전을 참조하여 팬텀 리드를 방지한다.
Read UncommittedRead CommittedRepeatable ReadSerializable더티 리드비반복 리드팬텀 리드스냅샷 격리MVCC다중 버전 동시성 제어
해설
격리 수준이 높아질수록 동시성은 감소하지만 데이터 일관성은 향상된다. 스냅샷 격리는 각 트랜잭션이 시작 시점의 일관된 데이터 뷰를 유지하며, MVCC(Multi-Version Concurrency Control)를 통해 읽기 연산에서 잠금 없이도 일관성을 보장한다. 이를 통해 팬텀 리드 현상을 효과적으로 방지할 수 있다.