본문 바로가기
자격증 공부/정보처리기사

병행 제어란?

by 종안이 2022. 12. 13.

병행 제어란?

 

다수의 사용자 환경에서 여러 트랜잭션이 실행될 때 

데이터베이스의 일관성 유지를 위해 상호 작용을 제어하는 기법이다.

 

병행 제어 미 보장시 문제점 

 

1. 갱신 손실(Lost Update) : 먼저 실행된 트랜잭션의 결과를 나중에 실행된 트랜잭션이 덮어쓰게 된다.

2. 현황 파악오류(Dirty Read) : 트랜잭션의 중간 수행 결과를 다른 트랜잭션이 참조하여 발생하는 오류 

3. 모순성(Inconsistency) : 두 트랜잭션이 동시에 실행되어 데이터베이스의 일관성이 결여되는 오류 

4. 연쇄복귀(Cascading Rollback) : 복수의 트랜잭션이 데이터 공유 시 특정 트랜잭션이 처리를 취소할 경우 트랜잭션이 처리한 곳의 부분을 취소하지 못하는 오류 -> 한마디로 두 개의 트랜잭션이 하나의 데이터를 공유하고 있다가 취소를 했는데 다른 트랜잭션이 처리해버린 곳을 취소하지 못하게 된다는 말이다.

 

병행 제어 기법의 종류

1. 로킹 : 같은 자원을 액세스하는 다중 트랜잭션 환경에서 DB의 일관성과 무결성을 유지하기 위해 트랜잭션의 순차적 진행을 보장하는 직렬화 기법 

2. 낙관적 검증 : 트랜잭션이 어떠한 검증도 수행하지 않고 일단 트랜잭션을 수행하고 , 트랜잭션 종료시 검증을 수행하여 데이터베이스에 반영하는 기법

3. 타임 스탬프 순서 : 트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 시작하기 전에 타임 스탬프를 부여하여 부여된 시간에 따라 트랜잭션 작업을 수행하는 기법

4. 다중버전 동시성 제어 :  트랜잭션의 타임스탬프와 접근하려는 데이터의 타임스탬프를 비교하여 직렬가능성이 보장되는 적절한 버전을 선택하여 접근하도록 하는 기법 

 

 

 

 

 

댓글