반응형
1. 병행제어(Concurrency Control)의 개념
- 다중 프로그램의 이점을 활용하여 동시에 여러 개의 트랜잭션을 병행 수행할 때 실행되는 트랜잭션들이 일관성을 파괴하지 않도록 상호 작용을 제어하는 기술
2. 병행제어의 목적
- 데이터베이스의 공유를 최대화
- 시스템의 활용도를 최대화
- 사용자에 대한 응답 시간을 최소화
- 단위 시간당 트랜잭션 처리 건수를 최대화
- 데이터베이스의 일관성을 유지
3. 병행제어의 필요성
- 갱신 분실(Lost Update) :
- 2개 이상의 트랜잭션이 같은 데이터를 갱신할 때 갱신 결과의 일부가 분실되는 현상
- 모순성(Inconsistency) :
- 복수의 사용자가 동시에 같은 데이터를 갱신할 때 데이터들이 상호 일치하지 않아 모순된 결과가 발생되는 현상(불일치 분석이라고도 함)
- 연쇄 복귀(Cascading Rollback) :
- 병생 수행되던 트랜잭션들 중 어느 하나에 문제가 생겨 다른 트랜잭션도 같이 Rollback되는 현상
4. 잠금(Lock)
- 데이터베이스 관리에서 하나의 트랜잭션에 사용되는 데이터를 다른 트랜잭션이 접근하지 못하게 하는 것
- 트랜잭션들은 어떤 데이터를 접근하기 전에 잠금 요청하여 잠금을 허락받아야 함
- 잠금(Lock) -> 실행(Execute) -> 해제(Unlock)의 규칙
- 잠금단위가 크면 잠금 수가 작아 관리하기 쉽지만 공유성 수준이 낮아지고, 잠금단위가 작으면 잠금 수가 많아 관리하기 복잡하지만 공유성 수준이 높아진다.
- 데이터베이스 -> 테이블 -> 레코드 -> 필드 : 오른쪽 방향으로 갈수록 Locking Overhead는 증가하고 공유성도 높아짐
- 교착상태(Dead Lock) : 어떤 한 트랜잭션이 사용하기 위해 잠가 놓은 자원을 사용하기 위해 기다리므로 모든 트랜잭션들이 실행을 전혀 하지 못하고 무한정 기다리고 있는 상태
반응형
'정보처리산업기사_실기_기록용' 카테고리의 다른 글
[업무 프로세스] 전사적 자원 관리 (0) | 2021.10.15 |
---|---|
[업무 프로세스] 정보 전략 계획 수립 (0) | 2021.10.15 |
[데이터베이스] 트랜잭션(Transaction) (0) | 2021.10.15 |
[데이터베이스] 정규화 (0) | 2021.10.09 |
[데이터베이스] 정규화 - 함수적 종속 (0) | 2021.10.07 |