1. 병행제어의 개념
- 다중 프로그램의 이점으 활용하여 동시에 여러 개의 트랜잭션을 병행 수행할 때 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록
트랜잭션 간의 상호 작용을 제어하는 기술
- 여러 개의 트랜잭션들이 동시에 인터리빙(번갈아가며 조금씩 자신의 일 처리)하게 실행되는 것
2. 병행제어의 목적
- 데이터베이스 공유 최대화 시스템의 활용도 최대화 단위시간당 트랜잭션 처리 건수 최대화 | 사용자에 대한 응답 시간 최소화 데이터베이스의 일관성 유지 |
3. 병행제어의 필요성
문제점 | 의미 |
갱신 분실 | - 갱신 결과의 일부가 없어지는 현상 - 한 트랜잭션이 수행한 결과가 다른 결과에 덮여 DB에 아무런 영향 주지 못하고 분실됨 |
모순성 (불일치성) | 데이터베이스 내의 데이터들이 상호 일치하지 않아 모순된 결과가 발생하는 현상 불일치 분석 각 트랜잭션들이 수행 결과로 기대한 결과가 아닌 다른 결과가 나오는 것 |
연쇄 복귀 | 병행 수행되던 트랜잭션들 중 하나에 문제가 생격 ROLLBACK되는 경우 다른 트랜잭션들도 함께 ROLLBACK되는 현상 한 트랜잭션이 비정상 종료로 ROOLBACK할 시 그 결과를 바탕으로 이루어진 다른 트랜잭션의 수행 결과도 ROLLBACK 되는 것 |
4. 잠금
- 주요 데이터의 엑세스를 상호 배타적으로 하는 것
- 하나의 트랜잭션에 사용되는 데이터를 다른 트랜잭션이 접근하지 못하게 하는 것
- 트랜잭션들은 어떤 데이터를 접근하기 전에 잠금을 요청하여 잠금을 허락받아야 함
- 갱신 시 규칙 : 잠금 -> 실행 -> 해제
1) 잠금 단위
2) 접근성 허용 행렬
공유 잠금 : 트랜잭션 T1이 데이터 X에 대하여 공유 잠금을 걸면 T2는 X에 대해 읽기만 가능(기록 불가)
배타 잠금 : 트랜잭션 T1이 데이터 X에 대하여 배타 잠금을 걸면 T2는 X에 대해 읽기 기록 모두 불가
3) 교착 상태 (DEAD LOCK)
- 어떤 한 트랜잭션이 사용하기 위해 잠가 놓은 자원을 사용하기 위래 기다리므로 모든 트랜잭션들이 실행을 전혀 진전시키지 못하고 무한정 기다리고
있는 상태
- 교착 상태 해결을 위해선 작업 완료 후에는 UNLOCK을 해줘야 함
5. 병행제어 기법의 종류
1) 2-단계 잠금 규약 기법
- 트랜잭션 스케줄의 직렬성 보장하는 대표적인 잠금 기법
- 모든 트랜잭션들이 잠금과 잠금 해제를 확장 -> 축소 2단계로 수행
- 확장 단계 : 잠금만 수행 가능 / 잠금 해제는 불가능한 단계
- 축소 단계 : 잠금 해제만 수행 가능 / 잠금은 불가능한 단계
- 스케줄의 직렬성을 보장한다는 장점은 있지만, 교착 상태 예방은 불가능
* 트랜잭션 스케줄
- 트랜잭션의 연산들이 인터리빙하게 실행되는 것이 허용될 때 트랜잭션들의 개개 연산들이 실행되는 순서
- 직렬 스케줄 : 서로 다른 트랜잭션들의 연산 사이에 인터리빙이 없는 스케줄
- 병행 스케줄 : 서로 다른 트랜잭션들의 연산 사이에 인터리빙이 있는 스케줄
2) 타임 스탬프 순서 기법
- 타임 스탬프 : 시스템이 각 트랜잭션을 실행할 때 부여하는 값
트랜잭션이 시스템안에 들어오면 그 때의 시스템 시간 값
- 트랜잭션들을 인터리빙 실행 결과 = 시간 스탬프 순서대로 트랜잭션 실행하는 직렬 스케줄 실행 결과 항상 동일하다는 것을 보장
- 직렬성 순서를 결정하기 위해 트랜잭션 간의 실행 순서를 미리 결정하는 가장 보편적인 기법
- 읽거나 변경할 데이터에 대해 트랜잭션 실행하기 전에 타임스탬프 부여
-> 타임 스탬프 순서에 따라 트랜잭션 작업을 수행하도록 함
- 교착 상태 발생하지 않음
'[자격증] 정보처리기사' 카테고리의 다른 글
[정보처리기사][실기]3과목 1 정보 전략 계획 수립 (0) | 2019.12.26 |
---|---|
[정보처리기사][실기]2과목 19 고급 데이터베이스 (0) | 2019.11.18 |
[정보처리기사][실기]2과목 17 함수적 종속, 정규화 (0) | 2019.11.18 |
[정보처리기사][실기]2과목 16 내장 SQL, 스토어드 내장 프로시저, 이상 (0) | 2019.11.18 |
[정보처리기사][실기]2과목 15 뷰 (0) | 2019.11.12 |