반응형
2과목. 데이터베이스 구축
📒 14. 병행 제어와 데이터 전환
1. 병행제어
(1) 병행제어의 개념
- 여러 트랜잭션이 동시에 실행되면서도 데이터베이스의 일관성을 유지하는 기법
- 데이터베이스는 같이 공유해서 쓰기 때문에 무결성을 지키기 위해 병행제어를 해야 함
(2) 병행제어의 목적
- 데이터베이스의 공유도 최대화
- DB 일관성 유지
(3) 병행제어를 하지 않았을 때의 문제점 ⭐
- a) 갱신 분실(Lost Update)
- 여러 트랜잭션이 같은 데이터를 공유하여 갱신할 때, 일부 갱신 결과가 손실되는 현상 - b) 비완료 의존성(Uncommitted Dependency)
- 실패한 트랜잭션이 회복되기 전에 다른 트랜잭션이 그 결과를 참조하는 현상 - c) 모순성(Inconsistency)
- 병행 수행 중 원치 않는 자료를 사용함으로써 발생하는 문제
- 갱신 분실은 하나의 데이터를 가져올 때, 모순성은 여러 데이터를 가져올 때 발생하는 문제 - d) 연쇄 복귀(Cascading Rollback)
- 하나의 트랜잭션이 실패해 롤백되면, 다른 트랜잭션도 함께 롤백되는 현상
2. 병행제어 기법
(1) 로킹(Locking)
- 트랜잭션이 데이터에 접근하려면 로킹을 수행해야 함 (자물쇠를 잠가야 함)
- 로킹된 데이터는 다른 트랜잭션이 접근할 수 없음
- 필드(속성), 레코드(행), 파일, 데이터베이스 모두 로킹 단위가 될 수 있음
- 로크수는 자물쇠 수, 병행성은 여러 사람들이 이용할 수 있는 능력 , 오버헤드는 수행하고 있는 일
- 로킹 단위가 크면 로크 수↓ 병행성↓ 오버헤드↓
- 로킹 단위가 작으면 로크 수↑ 병행성 ↑ 오버헤드 ↑
(2) 2단계 로킹 규약(Two-Phase Locking Protocol)
- 확장 단계 : 새로운 Lock 가능, Unlock 불가능
- 축소 단계 : 새로운 Lock 불가능, Unlock 가능
(3) 타임스탬프(Time Stamp)
- 데이터에 접근하는 시간을 미리 정해 순서대로 접근
- 직렬가능성 보장, 교착상태 발생하지 않음
- 연쇄복귀 초래할 수 있음
(4) 낙관적 병행제어(Optimistic Concurrency Control)
- 트랜잭션 수행 동안 검사를 하지 않고, 종료 시 일괄적으로 검사
(5) 다중 버전 병행제어(Multi-version Concurrency Control)
- 여러 버전의 타임스탬프를 비교하여 직렬 가능성이 보장되는 타임스탬프 선택
3. 회복
(1) 회복의 개념
- 장애로 인해 손상된 데이터베이스를 이전의 정상 상태로 복구하는 것
(2) 장애의 유형
- a) 트잭션 장애
- 실행 중 발생하는 논리적 오류 - b) 시스템 장애
- 하드웨어 시스템에서 발생하는 오류 - c) 미디어 오류
- 디스크 손상 등으로 발생하는 오류
(3) 로그 파일
- 트랜잭션의 데이터 변경사항을 데이터베이스에 기록하기 전에 먼저 기록하는 별도의 파일
4. 회복 기법
(1) 로그 기반 회복 기법
- a) 지연 갱신 회복 기법(Deferred Update)
- 트랜잭션이 커밋되기 전까지 변경 내용을 로그 파일에만 저장
- 중간에 장애가 생기더라도 데이터베이스에 기록되지 않았으므로 REDO만 실행하고 UNDO는 필요없음
- 미 실행된 로그 폐기 - b) 즉시 갱신 회복 기법(Immediate Update)
- 트랜잭션 수행 중 변경 내용을 데이터베이스에 즉시 기록
- 완료된 트랜잭션은 REDO, 미완료 갱신은 장애 발생 시 UNDO 필요
(2) 검사점 회복 기법(Checkpoint Recovery)
- 장애 발생 시 검사점 이전에 처리된 트랜잭션은 회복에서 제외, 이후 처리된 트랜잭션은 회복 작업 수행
(3) 그림자 페이징 회복 기법(Shadow Paging Recovery)
- 트랜잭션 시작 시점에 Current Page Table과 동일한 Shadow Page Table 생성
- 데이터를 복사해서 성공하면 table 삭제, 실패 시 Current Page Table로 사용
(4) 미디어 회복 기법(Media Recovery)
- 별도 저장장치에 백업
(5) ARIES 회복 기법(Algorithms for Recovery and Isolation Exploiting Semantics)
- REDO 중 Repeating history, UNDO 중 Logging
- 분석단계, REDO단계, UNDO단계로 구성
5. ETL(Extraction, Transformation, Loading)
(1) ETL의 개념
- 데이터 전환은 기존 원천 시스템에서 데이터를 추출(Extraction)하고, 이를 목적 시스템의 데이터베이스에 적합한 형식과 내용으로 변환(Transformation)한 후, 목적시스템에 적재(Loading)하는 일련의 과정
(2) ETL의 기능
- a) 추출(Extraction)
- 하나 이상의 데이터 소스로부터 데이터를 획득하는 과정 - b) 변환(Transformation)
- 데이터 클렌징, 형식 변환 및 표준화, 데이터 통합 등을 수행하는 과정 - c) 적재(Loading)
- 변환 단계에서 처리된 데이터를 목표 시스템에 적재하는 과정
6. 데이터 정제
(1) 데이터 품질 관리 대상
- 데이터 값, 데이터 구조, 데이터 관리 프로세스
(2) 데이터 품질 지표
- 정확성, 일관성, 유용성, 접근성, 적시성, 보안성
참고자료
흥달쌤, '흥!나게 합격 달성! 2024 정보처리기사 실기 클래스'
1억뷰 N잡
[1회 연장 포함] 흥!나게 합격 달성! 2024 정보처리기사 실기 클래스
www.njobler.net
반응형
댓글