본문 바로가기
IT기술노트/데이터베이스

Isolation Level

by 비트코기 2021. 3. 7.

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

댓글