[실기] - 데이터베이스 병행제어
- 공장통운
- 공유
- 병행제어 : 여러명이 동시에 사용시
- 병행제어를 하시 않을 경우 문제점
- 갱신분실
- 먼저 실행한 트랜잭션의 결과를 나중에 실행된 트랜잭션이 덮얼 쓸때 발생하는 오류
- 여러 사람이 같은 데이터를 동시에 갱신할때, 일부 데이터를 손실한 오류
- 비완료 의존성(현행 파악오류)
- 중간 결과를 다른 트랜잭션 참조하는 오류
- 중간 결과라고하면, 오류가 발생했는데, 그 트랜잭션을 참고함
- 모순성 : 갱신불실로 여러 데이터 참조
- 연쇄 복귀 : 롤백인데, 다른거까지 같이 롤백
- 팬텀
- 갱신분실
- 병행제어를 어떻게 할 것이냐? 기법
- 로킹 : 화장실
- 로킹단위가 크면, 병행제어 낮아짐 / 로크 수 적음 / 오버헤드 감소
- 2단계 로킹 규약
- 확장 단계 : Lock만 생각
- 축소 단계 : UnLock만 생각
- 타임스탬프 : 시간을 나누어 처리
- 낙관적 병행제어 : 수 행중에는 관여하지 않고 종료시점에 일괄적 처리
- 다중 버전 병행제어 : 다중 타임스템프
- 로킹 : 화장실
- 병행제어를 하시 않을 경우 문제점
- 회복 : 손상된 데이터를 이전의 정상상태로 복구하는 작업
- 백업 : 전체, 증분, 차등, 합성
- Undo : 취소
- Redo : 재실행
- 로그파일
- 지연 갱신 회복 기법 : 바로 반영하지 않음
- 즉시 갱신 회복 기법 : 바로 반영하여서 Undo(취소) 해줘야함
- 회복기법
- 검사점 회복 기법 : 여기까지 했던(검사점) 후 부터 검사
- 그림자 페이징 회복 기법 : 성공하편 페기, 실패하면, 복사본으로 현제 테이블을 복구한다.
- 미디어 회복 기법
- ARIES : 알고리즘을 활용한 회복 기법, 3단계로 나뉨
- 3단계는 : 분석 -> REDO -> UNDO
- 병행제어 : 여러명이 동시에 사용시
- 저장
- 통합
- 운영
- 공유
- ETL : 직전(이전)시스템을 현재 시스템에 데이터를 가공하는 것, 추출, 변환, 적용 즉, 마이그레이션 한다.
- 추출 -> 변환 -> 적재
- 데이터 품질 관리 대상
- 값, 구조, 관리 프로세스
[문제]
데이터베이스의 병행제어 기법 중 하나로, 접근한 데이터에 대한 연산을 모두 마칠 때까지 추가적인 접근을 제한함으로써 상호 배타적으로 접근하여 작업을 수행하도록 하는 기법을 쓰시오
DBMS는 여러 사용자가 DB를 동시에 공유할 수 있도록 여러 개의 트랜잭션이 동시에 수행되는 병행 수행(Concurrency)을 지원한다. 그런데 병행 수행되는 트랜잭션들이 서로 다른 데이터를 사용하여 연산을 실행하는 경우에는 괜찮지만 동시에 같은 데이터에 접근하여 변경 연산을 실행하려고 하면 문제가 발생할 수 있다. 그러므로 병행 수행을 하더라도 각 트랜잭션이 다른 트랜잭션의 방해를 받지 않고 정확한 수행 결과를 얻을 수 있도록 제어해야 하는데 이것을 (가)라고 한다. (가)를 쓰시오.
다음은 번의 종류에 대한 설명이다. 해당하는 것을 쓰시오.
ㄱ : 병행 수행되는 트랜잭션들이 동일한 데이터에 동시에 접근하지 못하도록 lock과 unlock이라는 두 개의 연산을 이용해 제어한다. |
ㄴ : 트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 시작하기 전에 시간표를 부여하여 부여된 시간에 따라 트랜잭션 작업을 수행하는 기법 |
ㄷ: 2단계 로킹 단꼐 : () : Lock 수행하면 , unlock 수행할 수 없는 확장 /(): unlock 수행하면 Lock 수행할 수 없는 확장 |
ㄹ : 알아서 하겠지? 뉘양스의 기법으로 트랜잭션 수행중에는 충돌 검사를 하지 않음, 종류 시점에 일괄적으로 검사함 |
데이터베이스의 병행제어 기법 중 하나로, 접근한 데이터에 대한 연산을 모두 마칠 때까지 추가적인 접근을 제한함으로써 상호 배타적으로 접근하여 작업을 수행하도록 하는 기법을 쓰시오
병행제어기법 중, 접근한 데이터에 대한 연산을 모두 마칠때까지 상호배제하는 기법을 무엇이라 하는지 작성하시오.
1. 하나의 트랜잭션이 수행한 연산의 결과를 다른 트랜잭션이 덮어써 변경된 연산이 무효화 되는 것
병행 제어를 하지 않고 여러 트랜잭션을 동시에 수행하게 되는 경우 발생할 수 있는 문제점 중 다음 설명이 의미하는 것은?
두 개 이상의 트랜잭션이 같은 자료를 공유하여 갱신할 때 갱신 결과의 일부가 없어지는 현상 →덮어쓸 때
2. 하나의 트랜잭션 수행이 실패한 후 회복되기 전에 다른 트랜잭션이 실패한 갱신 결과를 참조하는 현상
3. 두 개의 트랜잭션이 병행수행될 때 원치 않는 자료를 이용함으로써 발생하는 문제(불일치 분석) -→ 일관성 결여
4. 병행수행되던 트랜잭션들 중 어느 하나에 문제가 생겨 Rollback 하는 경우 다른 트랜잭션도 함께 Rollback되는 현상 →부분취소 불가)
---------------------
트랜잭션이 부분 완료 상태에 이르기까지 발생한 모든 변경 내용을 로그 파일에만 저장하고, 데이터베이스에는 COMMIT이 발생할 때까지 저장을 ()하는 기법,. 트랜잭션이 실패할 경우 UNDO없이 로그 단순 폐기 REDO
트랜잭션 수행 도중 데이터를 변경하면 변경 정보를 로그 파일에 저장하고, 부분 완료되기 전이라도 모든 변경 내용을 즉시 데이터베이스에 반영하는 기법 UNDO
장애 발생시 검사전 이전에 처리된 트랜잭션은 회복 작업에서 제외된다. 검사점 후 처리된 트랜잭션만 복구 작업에 수행한다.
오류시 그림자 테이블(복사본)을 만들고, 복구 성공하면 복사본 페기한다.
비휘발성 저장 치 손상에 대비하여 데이터를 별도 저장 장치에 백업한다. 디스크 하나 더둠
알고리즘 회복 기법으로 3단계가 존재한다.(3단계 : 분석 단계, REDO 단계, UNDO 단계)
--------------------
조직 내외부 복수 출처의 원천 시스템(Source System)으로부터 데이터를 추출하고 변환하는 작업을 거쳐서 목적 시스템(Target System)으로 전송 및 로딩하는 데이터 이동 프로세스는 무엇인가?
()는 데이터 분석을 위한 데이터를 데이터 저장소인 DW 및 DM으로 이동시키기 위해 다양한 소스 시스템으로부터 필요한 원본 데이터를 추출하고 변환하여 적재하는 작업 및 기술이다.
데이터 품질 관리 대상 3가지 작성하시오.