본문 바로가기

정보처리산업기사_실기_기록용

[데이터베이스] 병행 제어(Concurrency Control)

반응형

1. 병행제어(Concurrency Control)의 개념

-  다중 프로그램의 이점을 활용하여 동시에 여러 개의 트랜잭션을 병행 수행할 때 실행되는 트랜잭션들이 일관성을 파괴하지 않도록 상호 작용을 제어하는 기술

 

2. 병행제어의 목적

  • 데이터베이스의 공유를 최대화
  • 시스템의 활용도를 최대화
  • 사용자에 대한 응답 시간을 최소화
  • 단위 시간당 트랜잭션 처리 건수를 최대화
  • 데이터베이스의 일관성을 유지

 

3. 병행제어의 필요성

  • 갱신 분실(Lost Update) :
    • 2개 이상의 트랜잭션이 같은 데이터를 갱신할 때 갱신 결과의 일부가 분실되는 현상
  • 모순성(Inconsistency) :
    • 복수의 사용자가 동시에 같은 데이터를 갱신할 때 데이터들이 상호 일치하지 않아 모순된 결과가 발생되는 현상(불일치 분석이라고도 함)
  • 연쇄 복귀(Cascading Rollback) :
    • 병생 수행되던 트랜잭션들 중 어느 하나에 문제가 생겨 다른 트랜잭션도 같이 Rollback되는 현상

 

4. 잠금(Lock)

  • 데이터베이스 관리에서 하나의 트랜잭션에 사용되는 데이터를 다른 트랜잭션이 접근하지 못하게 하는 것
  • 트랜잭션들은 어떤 데이터를 접근하기 전에 잠금 요청하여 잠금을 허락받아야 함
  • 잠금(Lock) -> 실행(Execute) -> 해제(Unlock)의 규칙
  • 잠금단위가 크면 잠금 수가 작아 관리하기 쉽지만 공유성 수준이 낮아지고, 잠금단위가 작으면 잠금 수가 많아 관리하기 복잡하지만 공유성 수준이 높아진다.
  • 데이터베이스 -> 테이블 -> 레코드 -> 필드 : 오른쪽 방향으로 갈수록 Locking Overhead는 증가하고 공유성도 높아짐
  • 교착상태(Dead Lock) : 어떤 한 트랜잭션이 사용하기 위해 잠가 놓은 자원을 사용하기 위해 기다리므로 모든 트랜잭션들이 실행을 전혀 하지 못하고 무한정 기다리고 있는 상태
반응형