IEIP_Note

트랜잭션 Transaction

특징

특징 설명 주 기법
원자성
Atomicity
트랜잭션을 구성하는 연산 전체가
모두 정상 실행 or 모두 취소되어야 하는 성질
트랜잭션 연산 전체가 성공 또는 실패되어야 하는 성질
Commit/Rollback
회복성 보장
일관성
Consistency
시스템이 가지고 있는 고정 요소는
트랜잭션 수행 전/수행 후의 상태가 같아야 하는 성질
 
고립성 (격리성)
Isolation
동시 실행되는 트랜잭션이 서로 영향을 줘선 안된다는 성질 ommitted<br/>Repeatable Read<br/>Serializable`  
영속성
Durability
성공이 완료된 트랜잭션 결과는
DB 내에 영구적으로 저장되어야 한다는 성질
 

트랜잭션 연산

트랜잭션 연산 (원자성 주요 기법)

연산 설명
Commit 하나의 트랜잭션이 성공적으로 끝나고, DB가 일관성 있는 상태이거나
하나의 트랜잭션이 끝났을 때 사용하는 연산 (성공, 실패 상관 X => 일단 끝난 거)
Rollback 하나의 트랜잭션이 비정상적으로 종료되어 원자성이 깨질 경우
처음부터 다시 시작하거나, 부분적으로 연산을 취소하는 연산

병행 제어 (일관성 주요 기법)

병행 제어 목적
DB 공유를 최대화한다.
시스템의 활용도를 최대화한다.
DB의 일관성을 유지한다.
사용자에 대한 응답 시간을 최소화한다.

병행 제어 미보장 시 발생할 수 있는 문제점


병행 제어 기법

Locking

Locking의 특징
1. DB, File, Record 등은 로킹 단위가 될 수 있다.
2. 한꺼번에 로킹할 수 있는 객체의 크기 == 로킹 단위
3. 로킹 단위가 작아지면 DB 공유도가 증가하고, 로킹 오버헤드가 증가한다.
4. 로킹 단위가 커지면 병행성 수준이 낮아진다.


낙관적 검증 Optimistic Validation


타임 스탬프 순서 Time Stamp Ordering


다중 버전 동시성 MVCC