정보관리기술사/DB 데이터분석

병행 제어(동시성 제어)

기술기술 2023. 12. 29. 11:59

1. 정의

  • Concurrency Control
  • 다중 사용자 환경을 지원하는 데이터베이스 시스템에서 여러 트랜잭션들이 성공적으로 동시에 실행될 수 있도록 직렬성을 지원하는 기능
  • 목적 ) 데이터 무결성, 일관성 보장
  • 트랜잭션 특징 ) ACID(원일고영)
    • Atomicity(원자성) : All or Nothing
    • Consistency(일관성) : 모순 없는 상태
    • Isolation(고립성) : Locking
    • Durability(영속성) : Storeing

 

2. DB 병행제어 개념도 및 기법 종류

가. 개념도

 

나. 기법종류  -  락투타엠낙

  1. Locking : 두개의 트랜잭션이 Data에 동시에 접근할 때 발생하는 교착상태를 공유락과 전용락을 통해 무결성을 보장하는 Lock 기법
    • 공유 Lock : 공유 잠금한 트랜잭션은 데이터 항목에 대해 읽기(read)만 가능
    • 전용 Lock : 전용 잠금한 트랜잭션은 데이터 항목에 대해서 읽기(read)와 기록(write)가 모두 가능
  2. 2PL(2Phase Locking) : 병행 트랜잭션 Lock, Unlock 시점으로 인한 무결성, 동시성 제어을 위해, 확장과 수축단계로 Locking 을 지원하는 기법
    • 확장단계 : 트랜잭션은 lock 만 수행할 수 있고 unlock은 수행할 수 없는 단계
    • 수축단계 : 트랜잭션은 unlock만 수행할 수 있고 lock은 수행할 수 없는 단계
    • 임밀한(Strict) 2PL : 로킹 2단계는 동일 모든 독점 로그(lock-X)는 그 트랜잭션이이 완료할 때까지 unlock 하지 않고, 그대로 유지, 연쇄 복귀 문제가 발생하지 않음
    • 엄격(Rigorous) 2PL : Strict 2PL보다도 더 제한적. 모든 락(Lock-S, Lock-X)는 그 트랜잭션이 완료할 때 까지 unlock되지 않고 Lock된 상태로 유지해야만 함, 모두 직렬화 됨
  3. TimeStamp Ordering : 트랜잭션을 식별 위해 타임스템프 기준으로 트랜잭션의 실행 순서를 미리 지정하여, 트랜잭션 직렬화를 통한 동시성 제어 기법
  4. 다중버전 동시성제어(MVCC) : 트랜잭션이 한 데이터 아이템에 접근 시, 그 트랜잭션의 타임스템프와 접근하려는 데이터 아이템 여러 버전의 타임스탬프를 비교하여, 현재 실행 스케쥴 직렬가능성 보장되는 적절한 버전을 선택기법, UNDO 이용 동시성 제어
  5. 낙관적 검증 : 트랜잭션 실행 시 지역 사본에 갱신 내용 반영 후, 트랜잭션 종료 시 일괄적인 확인(일괄검사)을 통해 직렬화 수행 기법

 

 

3. 병행제어를 안했을 때의 문제점  -  갱현모연

  1. 갱신내용손실(Lost Update) : 트랜잭션들이 동일 데이터를 동시에 갱신할 경우, 동일 갱신 값을 덮어쓰는 문제 발생
  2. 현황파악오류(Dirty Read) : 트랜잭션의 중간 수행결과를 다른 트랜잭션이 참조함으로써 발생하는 오류
  3. 모순성(Inconsistency) : 두 트랜잭션이 동시에 실행할 때 데이터베이스가 일관성이 없는 모순된 상태로 남는 문제
  4. 연쇄복귀 불가(Cascading Rollback) : 트랜잭션들이 동시에 같은 레코드에 접근하여 갱신하는 도중에 다른 트랜잭션이 처리한 부분에 대해서는 복귀 불가

'정보관리기술사 > DB 데이터분석' 카테고리의 다른 글

데이터 품질 관리  (1) 2024.01.03
데이터 무결성  (0) 2023.12.29
New SQL  (0) 2023.12.29
NoSQL  (1) 2023.12.29
트랜잭션  (0) 2023.12.29