5. 데이터베이스의 병행제어(Concurrency Control)에 대하여 다음을 설명하시오.
가. 병행제어의 정의
나. 병행제어 기법의 종류
다. 병행제어의 문제점
1. 병행제어의 정의
1) 병행제어의 정의
- 트랜잭션이 동시에 수행될 때, 일관성을 해치지 않도록 병행 트랜잭션 간의 상호작용을 제어하는 DBMS의 기능
2) 병행제어 미처리시 문제점
구분 | 현상 | 설명 |
갱신 손실 (Lost Update) |
![]() |
- 트랜잭션들이 동일 데이터를 동시에 갱신할 경우 발생 |
현황파악오류 (Dirty Read) |
![]() |
-ㅠ트랜잭션의 중간 수행결과를 다른 트랜잭션이 참조함으로써 발생하는 오류 |
모순성 (Inconsistency) |
![]() |
- 두 트랜잭션이 동시에 실행할 때 DB가 일관성이 없는 상태로 남는 문제 |
연쇄복귀 (Cascading Rollback) |
![]() |
- 복수의 트랜잭션이 데이터 공유시 특정 트랜잭션이 처리를 취소할 경우 다른 트랜잭션이 처리한 부분에 대해 취소 불가능 |
- 경신손실, 현황파악오류, 모순, 연쇄복귀 발생으로 병행제어 필요
2. 병행제어 기법의 종류
1) 병행제어 기법 종류
2) 병행제어 기법 설명
기법 | 개념도 | 작동방식 |
Locking 기법 | ![]() |
-트랜잭션이 사용하는 자원에 대하여 상호 배제 기능을 제공하는 기법 -공유 lock : 다른 트랜잭션도 읽기 실행 가능 -전용 lock : 다른 트랜잭션은 읽기, 기록 모두 불가 |
2PL (2 Phase Locking) |
![]() |
-확장단계 : 트랜잭션은 오직 lock만 수행 가능 -수축단계 : 트랜잭션은 오직 unlock만 수행 가능 |
Timestamp Ordering | ![]() |
-시스템 시계 : 시스템 시간을 타임스탬프 값으로 부여 -논리적 계수기 : 트랜잭션 발생시마다 카운터를 하나씩 증가시켜 타임스탬프로 부여 |
낙관적 검증기법 | ![]() |
-트랜잭션 수행 동안 트랜잭션을 위해 유지되는 데이터 항목들의 지역 사본에 대해서만 갱신이 이루어짐 -트랜잭션 종료 시 동시성을 위한 트랜잭션 직렬화가 검증되면 일시에 DB에 반영함 |
다중버전 동시성 제어 (MVCC) |
![]() |
트랜잭션이 한 데이터에 접근하려 할 때, 그 트랜잭션의 타임스탬프와 접근하려는 데이터의 여러 버전의 타임스탬프를 비교하여, 현재 실행하고 있는 스케줄의 직렬 가능성이 보장되는 버전을 선택하여 접근하도록 하는 기법 |
3. 병행제어의 문제점
1) 병행제어의 분류
- 락킹과 해제 과정, 타임스탬프 부여에 따라 데드락, 롤백, 자원낭비등의 문제가 발생
2) 병행제어 문제점
기법 | 문제점 | 설명 |
Locking(2PL) | Deadlock 발생 | - 락킹과 해제과정 중 서로 교착상태 조건 충족시 서로 대기하는 상태 발생 |
Timestamp | 롤백 | - 타임스탬프 비교에 따른 롤백 |
낙관적 검증 | 자원낭비 | - 트랜잭션 마지막 단계에서 기록하는 낙관적 검증 기법은 자원낭비 문제 발생 |
MVCC | 롤백 | - 충돌문제는 대기가 아니라 복귀처리 함으로 연쇄 복귀초래 발생 가능성 |
- 문제점에 따라 선택적인 기법 적용
4. 병행제어시 발생 문제 해결
- 타임스탬프 적용시 wait-die, wound-wait 적용
'기출문제 > 메타반 기출풀이' 카테고리의 다른 글
운영체제 페이지 교체 알고리즘 (0) | 2022.11.29 |
---|---|
MST(Minimum Spanning Tree) 크루스칼(Kruskal) 알고리즘, 프림(Prim)알고리즘 (0) | 2022.11.29 |
제128회 관리 4교시 4번(손선희) (0) | 2022.07.04 |
제128회 관리 2교시 5번(손선희) (0) | 2022.07.04 |
제128회 관리 1교시 13번(손선희) (0) | 2022.07.04 |