I. ACID 속성 보장을 위한, Isolation Level의 개요
가. Isolation Level의 정의
- 트랜잭션 실행 중 중간 연산 결과가 다른 트랜잭션으로 접근 불가하도록 고립성을 유지하기 위한 데이터를 허용하는 수준
나. Isolation Level의 특징
특징 |
설명 |
ANSI/ISO SQL Standard |
- SQL 92 표준에서 4단계로 표준화, DBMS 벤더들이 준수 |
ACID 보장 |
- 트랜잭션의 속성인 ACID를 만족하기 위한 설정 |
Locking 기반 |
- 각각의 설정은 Locking 기술을 기반으로 Isolation Level을 조정 |
II. Isolation Level 4단계의 격리 범위와 읽기이상 현상
가. Isolation Level 4단계 수준 내용
Isolation Level |
격리범위 |
|
0 |
Read Uncommitted |
- 갱신중인 Uncommitted 레코드를 타 트랜잭션에서 읽기 허용 |
1 |
Read Committed |
- 갱신 연산이 완료 될 때까지 연산 대상 데이터에 대한 읽기 제한 |
2 |
Repeatable Read |
- 선행 트랜잭션이 특정 데이터를 읽을 때, 종료 시까지 갱신/삭제 제한 |
3 |
Serializable Read |
- 선행 트랜잭션이 특정 데이터 영역을 순차적으로 읽을 때, 해당 데이터 영역 전체에 대한 접근 제한 |
나. 불충분한 Transaction 격리에 따른 읽기 이상현상
이상현상 |
설명 |
Dirty Read |
- 연산 중이던 트랜잭션이 롤백 될 경우 데이터를 읽어간 트랜잭션이 갖게 되는 데이터의 일관성을 보장 불가 |
No Repeatable Read |
- 한 트랜잭션이 동일한 데이터에 대한 읽기를 반복적으로 수행할 때 다른 트랜잭션이 해당 데이터를 변경 가능 |
Phantom Read |
- 트랜잭션이 일정 영역의 데이터를 순차적으로 읽을 때, 다른 트랜잭션이 해당 데이터 영역에 데이터 삽입/삭제 가능 |
III. Isolation Level별 이상현상 차단 범위 (가능: O, 차단: X)
Isolation Level |
Dirty Read |
Non Repeatable Read |
Phantom Read |
|
0 |
Read Uncommitted |
O |
O |
O |
1 |
Read Committed |
X |
O |
O |
2 |
Repeatable Read |
X |
X |
O |
3 |
Serializable Read |
X |
X |
X |
'IT기술노트 > 데이터베이스' 카테고리의 다른 글
2PL (2Phase Locking) (0) | 2021.03.07 |
---|---|
Locking (0) | 2021.03.07 |
동시성제어의 문제점 (0) | 2021.03.07 |
동시성제어(Concurrency Control) (0) | 2021.03.07 |
Phantom Read (0) | 2021.03.07 |
Dirty Read (0) | 2021.03.07 |
정적, 동적 인덱싱 (0) | 2021.03.07 |
Dense, Sparse, Multilevel Index (0) | 2021.03.07 |
댓글