정의
|
- 다수의 트랜잭션이 동일한 데이터에 동시 접근하여도 각 세션이 독립적인 세션을 보장하는 처리기법
- 다중 사용자 환경을 지원하는 데이터 베이스 시스템에서 여러 트랜잭션들이 성공적으로 동시에 실행될 수 있도록 지원하는 기능
- 다중 사용자 환경을 지원하는 DB system의 경우 필수적으로 지원해야 하는 기능으로 병행제어라고도 함
|
필요성
|
- 갱신손실(Lost Update) : T1와 T2의 동시 갱신으로 갱신이 무효가 됨
- 불일치(Inconsistency) : 모순성, 데이터들이 상호 일치되지 않음
- 연쇄복귀(Casecading Rollback) : 트랜잭션을 취소하는 경우 취소불가상태
|
주요기능
|
- Locking : 2Phace Lock 을 통한 데이터 무결성 보장, Lock과 Unlock 단계
- Timestamp 기법 : 시스템에 부여된 순서에 따라 접근(Logical Counter)
- Validation(낙관적 검증)기법 : 트랜잭션 종료 시까지 기다렸다가 일괄적으로 검사, 트랜잭션 종료 시 직렬성이 검증되면 데이터베이스에 반영
|
목적
|
- 트랜잭션의 직렬성 보장
- 공유도 최대, 응답 시간 최소, 시스템 활동의 최대 보장
- 데이터의 무결성 및 일관성 보장
|
동시성 제어 기법
|
- 로깅기법
- 타임스탬프 순서에 기반을 둔 동시성 제어기법
- 다중버전 동시성 제어 기법
- 검증(낙관적) 동시성 제어 기법
|
문제점
|
- 갱신손실 : 트랜잭션들이 동일 데이터를 동시에 갱신 할 경우 발생
- 현황파악오류 : 트랜잭션의 중간 수행결과를 다른 트랜잭션이 참조함으로써 발생하는 오류
- 모순성 : 두 트랙잭션이 동시에 실행할 때 DB가 일관성이 없는 상태로 남는 문제
- 연쇄복귀 : 복수의 트랜잭션이 데이터 공유시 특정 트랜잭션이 처리를 취소할 경우 다른 트랜잭션이 처리한 부분에 대해 취소 불가능
|