과목 : 데이터베이스

 

 SECTION026 병행제어(Concurrency Control)

 

 1. 병행제어의 정의 : 동시에 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간의 상호작용을 제어하는 것

 2. 병행제어의 목적

  • 데이터베이스의 공유를 최대화
  • 시스템의 활용도를 최대화
  • 일관성 유지
  • 응답시간을 최소화

 3. 병행수행의 문제점

  • 갱신 분실(Lost Update) : 같은 자료를 공유하여 갱신할 때 갱신 결과의 일부가 없어지는 현상
  • 비완료 의존성(Uncommitted Dependency) : 다른 트랜잭션이 실패한 갱신 결과를 참조하는 현상
  • 모순성(Inconsistency) : 원치 않는 자료를 이용함으로써 발생하는 현상
  • 연쇄 복귀(Cascading Rollback) : Rollback하는경우 다른 트랜잭션도 함께 Rollback되는 현상

 4. 병행제어 기법의 종류

  • 로킹(Locking) : 주요 데이터의 액세스를 상호 배타적으로 하는 것
    • 데이터베이스, 파일, 레코드, 필드 등은 로킹 단위가 될 수 있다
    • 로킹 단위가 크면 로크 수가 작아 관리하기 쉽지만 병행성 수준이 낮아지고,
    • 로킹 단위가 작으면 로크수가 많아 관리하기 복잡해 오버헤드가 증가하지만 병행성 수준이 높아짐
  • 타임 스탬프 순서(Time Stamp Ordering)

+ Recent posts