일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- resilience4j
- 문법 정리
- 티스토리
- c#
- dynamic query
- 초대장
- 유사코드
- auto configure
- MongoDB
- spring
- 리눅스
- 파이썬 소스
- SQL
- 파이썬
- gradle
- 프로젝트
- oracle
- jsp
- 자바 프로젝트
- smart cast
- K6
- 자바
- 백준 알고리즘
- hyperledger
- 오라클 디비
- 오라클
- 학점
- 운영체제
- JVM
- 알고리즘
- Today
- Total
모종닷컴
Transaction Isolation Level 본문
ACID
Atomicity : 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장.
Consistency : 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지.
Isolation : 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것.
Durabillity : 성공적으로 수행된 트랜잭션은 영원히 반영되어야 함.
특히 격리성과 관련된 문제점들 중 대표적인 3가지가 아래에 있다.
격리성 관련 문제점
(1) Dirty Read : 다른 트랜잭션이 커밋되지 않은 변경된 데이터를 읽게되고, 변경된 데이터가 롤백으로 인해 변경 전으로 돌아갔지만, 이미 다른 트랜잭션이 변경된 데이터를 읽게 된 것.
(2) Non-Repeatable Read : 트랜잭션 중간에 READ된 데이터에 대해 다른 트랜잭션이 중간에 끼어들어 값을 변경하고 커밋하였을 경우, 다시 READ했을 때 변경된 데이터가 나오게 되는 것.
(3) Phantom Read : 2번과 비슷해보이지만 추가적으로 값이 변경되는 경우가 아닌 컬럼 하나가 삭제 되거나 추가되는 수준.
Trancsaction Isolation Level
이러한 고립성(Isolation) 문제점들에 대해 데이터베이스에서는 4가지의 격리 레벨을 가지고 있다. 각각은 다음과 같다.
- READ UNCOMMITED
- READ COMMITTED
- REPEATABLE READ
- SERIALIZABLE
4. SERIALIZABLE : 트랜잭션이 완료될 때까지 READ에 사용된 모든 데이터가 락이 거려 다른 트랜잭션이 수정 및 입력이 불가능하다
[출처 : https://lng1982.tistory.com/287 , http://feco.tistory.com/45]
'Programming > 데이터베이스' 카테고리의 다른 글
N+1 Selects 문제 (0) | 2018.11.13 |
---|---|
마이바티스 - insert할 때 주의사항 (3) | 2018.11.13 |
오라클xe 부팅시 자동실행 끄기 (0) | 2018.07.16 |
Oracle 문법 정리 - 유저 엑세스 제어 (0) | 2018.01.23 |
Oracle 문법 정리 - 스키마 객체 (0) | 2018.01.22 |