Skip to Content
Suffering builds character

6. 고립성

트랜잭션이 사용 중인 데이터는 고립되어야함

하나의 트랜잭션이 동작하는 과정에서 사용 중인 데이터는 해당 트랜잭션이 완료/중지될 때까지 다른 트랜잭션이 접근할 수 없음

Isolation 개념은 DB의 사용자가 단일 유저(a single user), 즉 단 한명만 존재할 경우에는 크게 중요하지 않을 수 있음

하지만 현실적으로는 두 명 이상의 사용자가 존재하기 때문에 동일한 데이터에 여러 명의 사용자가 접근(TCP Connection to Database)을 하는 상황이 빈번하게 발생함

따라서 무결성을 보장하기 위해서는 고립성이라는 개념이 필요함

2. Read phenomena - 읽기 이상 현상

읽기 이상 현상이란 데이터베이스에서 서로 다른 2개 이상의 트랜잭션이 동시에 데이터를 읽어들이는 과정에서 일관성이 깨질 수 있는 상황을 말함

이러한 읽기 이상 현상은 크게 세 가지가 있음

읽기 이상현상설명
Dirty Read (더티 리드)다른 트랜잭션이 아직 COMMIT 하지 않은 변경 내용을 읽는 경우
Non-Repeatable Read (반복 불가능 읽기)같은 조건으로 같은 행을 두 번 읽었는데 값이 다른 경우
Phantom Read (팬텀 리드)같은 조건으로 두 번 조회했는데, 새로운 행 데이터가 추가되거나 사라지는 경우

2-1. 읽기 이상 현상 실습용 테이블

SALES 테이블

PRODUCT_IDQUANTITYPRICE
110$5
220$4
sql
DROP TABLE IF EXISTS sales;
sql
CREATE TABLE sales ( PRODUCT_ID INT PRIMARY KEY, QUANTITY INT, PRICE INT );
sql
INSERT INTO sales VALUES (1, 10, 5); INSERT INTO sales VALUES (2, 20, 4);
Last updated on