DevBlackCat
정보처리기사 필수 학습: 병행제어와회복 완전정복!! 본문
728x90
병행제어
- 여러 트랜잭션이 동시에 실행되도 일관성을 유지하는 기법
1) 목적
- 데이터베이스 공유 최대화
- 활용도 최대화,일관성
2) 병행제어 미수행시 문제점
① 갱신 분실(Lost Update)
- 여러 트랜잭션이 같은 데이터를 공유하여 갱신할떄 일부 갱신결고가 손실되는 현상
② 비완료 의존성(Uncommitted Dependency)
- 완료되지않은 결과를 가져가 사용해 쓰는 현상
③ 모순성(Inconsistency)
- 갱신분실 + 여러데이터
④ 연쇄복귀 (Cascading Rollback)
- 하나의 트랜잭션이 롤백되면 다른 트랜잭션도 함께 롤백 되는 현상
3) 병행제어 기법
1. 로킹(Locking)
- 정의: 트랜잭션이 데이터에 접근하려면 반드시 락(Lock)을 수행해야 함.
- 특징:
- 로킹된 데이터는 다른 트랜잭션이 접근할 수 없음.
- 로킹 단위: 필드, 레코드, 파일, 데이터베이스 전체 등 다양한 단위를 지정할 수 있음.
로킹 단위에 따른 구분★
구분 | 로크수 | 병행성 | 오버헤드 |
로킹 단위가 크면 | 적어짐 | 낮아짐 | 감소 |
로킹 단위가 작으면 | 많아짐 | 높아짐 | 증가 |
1) 로킹 단위가 크면 (예: 건물 전체를 잠금)
- 예시: 건물 전체 화장실을 잠그는 경우
- 로크 수가 적음: 건물의 화장실 전체를 하나의 단위로 잠가버리기 때문에 잠금 횟수가 적음.
- 병행성 낮음: 한 사람이 사용하면 다른 모든 사람들이 대기해야 함.
- 오버헤드 감소: 잠금 관리가 간단함. 하나의 문만 잠그면 되기 때문.
2) 로킹 단위가 작으면 (예: 화장실 칸별로 잠금)
- 예시: 화장실 내부에 있는 개별 칸(레코드)을 잠그는 경우
- 로크 수가 많음: 각 칸마다 잠금이 필요하므로 잠금 횟수가 많아짐.
- 병행성 높음: 한 칸이 사용 중이어도 다른 칸은 사용 가능하여 병행성이 높아짐.
- 오버헤드 증가: 각 칸에 대한 잠금 상태를 관리해야 하므로 관리 비용이 증가.
로킹 단위가 크면 (모두 낮거나 작음)
로킹 단위가 작으면(모두 크거나 많음)
2. 2단계 로킹 규약(Two-Phase Locking Protocol)
- 트랜잭션의 락을 관리하는 확장 단계와 축소 단계로 나뉘는 방법
- 확장 단계: 새로운 Lock은 가능하나 Unlock은 불가능합니다.
- 축소 단계: Unlock은 가능하나 새로운 Lock은 불가능합니다.
- 교착상태가 발생할수있다.
확장 - lock만가능 축소- unlock만가능
3. 타임 스탬프(Time Stamp)
- 정의: 데이터에 접근하는 순서를 미리 정의하고 시간 순서대로 접근하는 방법.
- 특징:
- 직렬 가능성 보장.
- 교착 상태(Deadlock) 방지.
- 연쇄 복귀(Cascading Rollback)를 예방할 수 있음.
4. 낙관적 병행제어(Optimistic Concurrency Control)
- 정의: 트랜잭션 수행 도중에는 검사를 하지 않고, 종료 시 직렬 가능성을 검증하여 반영하는 방식.
- 특징:
- 트랜잭션 도중 검사가 없으므로 오버헤드가 적음.
- 트랜잭션 종료 후 직렬 가능성이 검증되면 데이터베이스에 반영.
5. 다중 버전 병행제어(Multi-Version Concurrency Control)
- 정의: 여러 버전의 타임 스탬프를 비교하여 충돌 없이 직렬 가능성을 보장.
- 특징:
- 직렬 가능성이 보장되는 타임 스탬프를 선택.
- 충돌 발생 시 복귀 수행 및 연쇄 복귀 처리 가능.
회복
- 손상된 데이터베이스 복구
- Undo : 모든 변경을 취고
- Redo:트랜잭션을 재실행
로그파일
- 트랜잭션의 데이터 변경사항을 데이터베이스에 기록하기 전에 먼저 기록하는 별도의 파일
- 이를 이용하여 트랜잭션의 시작과 종료 여부에 따라 REDO 또는 UNDO 수행
지연갱신 회복 기법 (Deferred Update) | - 트랜잭션이 커밋되기 전까지 저장 - 중간에 장애가 발생해도 커밋되지않았으므로, Undo 할필요가 없음 |
즉시갱신 회복 기법 (Immediate Update) | - 변경내용을 즉시 시록 - 장애발생시 UNDO 필요 |
그외
미디어 회복 기법 :백업,미러링,RAID를 통해 별도 저장 장치에 덤프
ARIES 회복기법: 알고리즘으로 회복한다.(분석단계 , REDO 단계 , UNDO 단계)
검사적 회복기법
그림자 페이징 회복기법(복사 테이블을 만들어 반영하고, 장애가 없으면 복사테이블 삭제, 장애발생시 복사 테이블 사용한다.)
728x90
'정보처리기사 > 데이터베이스 구축' 카테고리의 다른 글
정보처리기사 필수 학습: 데이터전환 기술 완전정복!! (0) | 2024.12.14 |
---|---|
정보처리기사 : 절차형 SQL 작성 (1) | 2024.12.13 |
정보처리기사 : SQL 작성 (2) 완전정복!! (0) | 2024.12.09 |
정보처리기사 : SQL 작성 (1) 완전정복!! (1) | 2024.12.07 |
정보처리기사 : 물리데이터모델 품질검토 완전정복!! (0) | 2024.12.07 |