I.DB병행제어의 개요
가. DB병행제어의 정의
- 다중 사용자 환경을 지원하는 데이터베이스 시스템에서 여러 트랜잭션들이
성공적으로 동시에 실행될 수 있도록 지원하는 기능
나.병행제어의 기준
- 트랜잭션 스케쥴: 각 트랜잭션을 구성하는 연산들이 시스템에서 시간에 따라
실행되는 순서
- 직렬가능성(Serializability): 트랜잭션들을 병행처리한 결과가 트랜잭션들을
순차적으로 수행한 결과와 같아지는것
II. 병행제어를 하지 않을 경우의 문제점
가. 갱신분실문제(lost update problem)
T1: readA (100) -> update A(100) ----> read A? 200 : 갱신분실
T2: readA (100) ----> update A(200) -> read A? 200
나.불일치 문제 (inconsistency analysis problem)
- 다중사용자 트랜잭션들이 동시에 동일DB를 갱신할 경우 DB내 데이터 값과
정보처리 값에 모순 발생
다. 연쇄복귀문제(cascading rollback probroblem) or 회복불능문제(unrecoverability problem)
- 복수의 트랜잭션이 데이터 공유시 특정 트랜잭션이 처리를 취소할 경우 다른
트랜잭션이 처리한 부분에 대해 취소 불가능
III.병행제어기법의 종류
가. 로킹기법(locking)
- 트랜잭션이 사용하는 자원에 대하여 상호배제 기능을 제공하는 기법
- 공유lock(Shared lock), 전용lock(Exclusive lock)
- 2PL(2 Phase Locking: 확장단계(lock만), 수축단계(unlock만))
- 교착상태 발생가능성: 교착상태예방과 교착상태 탐지로 해결가능
나. 타임스탬프순서(TImestamp Ordering)
- 데이터베이스 시스템에 들어오는 트랜잭션 순서대로 타임스탬프를 지정하여
동시성 제어의 기준으로 사용
- 직렬성 보장
- 교착상태(deadlock)방지
- 연쇄복귀(cascading rollback)초래 가능
'기술 용어 검색' 카테고리의 다른 글
데이터 마이닝 (0) | 2007.12.08 |
---|---|
MMDB (Main Memory Database) (0) | 2007.12.08 |
분산DB (0) | 2007.12.08 |