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_ID | QUANTITY | PRICE |
|---|---|---|
| 1 | 10 | $5 |
| 2 | 20 | $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