반응형

Ⅰ. 데이터 동시 접근, 병행수행의 개요

정의 다수의 사용자가 접근하는 DBMS에서 트랜잭션들의 동시 접근시 직렬성을 보장하여 작업 수행하는 기법
필요성 - 트랜잭션들의 직렬성 보장
- 데이터의 일관성과 무결성 보장
- 트랜잭션 간섭 제어 (상호 배제)

 

Ⅱ. 병행수행 실패에 따른 문제점

문제점 사례 설명
갱신 손실
(Lost Update)
- 하나의 트랜잭션이 갱신한 내용을 다른 트랜잭션이 덮어씀으로써 갱신이 무효화되는 문제

- 두 개의 트랜잭션이 한 개의 데이터를 동시에 갱신할 때 발생
현황 파악 오류
(Dirty Read)
- 트랜잭션이 특정 데이터에 쓰기 작업을 하는 중간에 다른 트랜잭션이 해당 데이터를 읽어와 중간 데이터를 읽어 발생하는 문제
모호성
(Inconsistency)
- 트랜잭션이 특정 데이터를 갱신하는 동안 다른 트랜잭션이 값을 읽어와 갱신된 후의 값을 읽게 되는 문제

- 데이터의 불일치 (모순성)이 발생
연쇄 복귀
(Cascade Rollback)
- 두 트랜잭션이 동일한 데이터에 접근할 때, 한 트랜잭션이 데이터 갱신 후 Rollback 수행하는데 그 사이에 다른 트랜잭션이 해당 데이터를 읽어 사용할 때 발생하는 문제

 

Ⅲ. 병행제어 기법

제어 기법 매커니즘 설명
Locking
- 동일 데이터에 대해 트랜잭션들의 병행 접근을 차단하는 방법
- s-lock: 모든 트랜잭션에 대해 "읽기" 가능
- x-lock: lock 수행 트랜잭션만 "읽기", "쓰기" 가능
2 Phase Locking
- lock 단계를 확장 단계, 축소 단계 2개로 구분하여 병행 접근을 차단하는 방법
- 확장 단계에서는 lock만 가능, 축소 단계에서는 unlock만 가능
- 데드락 문제 해결
Timestamp Ordering
- DBMS가 부여하는 timestamp를 활용하여 트랜잭션의 처리 순서를 구분하는 방법
- 논리적 계수기 또는 시스템 클럭 활용 timestamp 생성
Validation
(낙관적 검증)
- 트랜잭션 수행 동안은 검사하지 않고 종료 시에 일괄적으로 검사하는 방법
- Read 단계, Validation 단계, Write 단계로 구분
MVCC
(다중버전 동시성 제어)
- 갱신 시 기존 데이터를 "롤백 세그먼트"에 기록하여 commit 전까지 이전 버전 정보 조회로 데이터 일관성 유지하는 방법

 

Ⅳ. 데이터 무결성 보장을 위한 회복기법

로그 기법 - 갱신 결과를 로그 파일에 저장
- 장애 발생 시 로그 기반 회복 수행
체크 포인트 - 트랜잭션 진행 중 체크포인트 설정하여 데이터베이스에 반영
- 장애 발생 시 체크포인트 이후만 회복
그림자 페이징 - 트랜잭션 결과를 그림자 페이지에 저장
- 장애 발생시 저장된 그림자 페이지 활용 회복
ARIES - REDO 중 Repeating history: 실패 이전 수행 모든 연산을 다시 수행
- UNDO 중 Logging changes: 로깅을 활용해 실패 시 이미 완료된 연산 반복하지 않음

 

반응형

'IT 기술 > DB' 카테고리의 다른 글

데이터 클렌징(Cleansing), 프로파일링(Profiling)  (0) 2024.10.02
분산 데이터베이스 투명성  (0) 2024.10.02
앙상블 기법  (0) 2024.10.01
데이터 모델링의 4단계  (0) 2024.10.01
NoSQL CAP 이론  (0) 2024.10.01
반응형

Ⅰ. 복수개의 모델 조합, 앙상블 기법의 개요

- 복수의 약한 분류기를 생성하고 그 예측을 결합함으로써 더 정확한 최종 예측을 도출하는 기법

 

Ⅱ. 랜덤 샘플 데이터 학습, Bagging

가. Bagging의 정의

정의 Bootstrap Aggregating, 여러 개의 동일한 모델을 독립적으로 랜덤 샘플 데이터를 학습시켜 각각의 예측을 결합하여 최종 예측 수행하는 앙상블 기법

 

나. Bagging의 주요 과정

과정 설명
부트스트랩 샘플링 - 전체 데이터셋에서 중복 허용 랜덤 샘플링 수행
- 복수의 훈련 데이터셋 생성
독립 모델 학습 - 생성한 훈련 데이터로 독립 모델 학습
- 동일한 알고리즘으로 서로 다른 데이터 학습 
예측 결합 - 예측 결과 결합하여 최종 예측
- 회귀 문제는 평균, 분류 문제는 투표를 통해 결정

- 전체 데이터 중 샘플링 되지 않아 학습되지 않는 OOB(Out-of-Bag) 샘플 문제 존재

 

Ⅲ. 순차 학습 가중치 활용, Boosting

가. Boosting의 정의

정의 여러개의 약한 학습기를 순차적으로 학습하고 잘못 예측한 데이터에 가중치를 부여해 오류 개선하는 앙상블 기법

 

나. Boosting의 주요 과정

과정 설명
약한 학습기 학습 - 각 단계 순차적으로 약한 학습기 학습
- 주로 의사결정트리 사용
가중치 업데이트 - 초기 모든 데이터 동일한 가중치 부여
- 각 모델은 이전 모델의 잘못 예측 데이터에 높은 가중치 부여
연속적 학습 - 이전 모델 오차 보완 위한 새로운 약한 학습기 추가 학습
- 오차에 집중하여 가중치 조절 학습
최종 결합 - 각 모델 예측에 가중치 부여하여 최종 예측

- 순차 학습 진행으로 인해 모델 학습 속도가 느리다

 

Ⅳ. 예측치 재학습, Stacking

가. Stacking의 정의

정의 여러개의 개별 모델이 예측한 데이터를 다시 메타 데이터셋으로 최종 모델을 학습하여 결과 예측하는 앙상블 기법

 

나. Stacking의 중요 과정

주요 과정 설명
기본 모델 학습 - 원본 전체 데이터를 크로스 벨리데이션으로 나누어 학습 데이터 생성
- 생성한 학습데이터로 기본 모델 학습
메타 데이터셋 생성 - 기본 모델의 예측값들을 평균하여 최종 모델 학습 데이터 생성
최종 모델 학습 - 메타 데이터셋으로 최종 모델 학습하여 최종 예측

- 기본 모델들이 전체 데이터를 학습하기 때문에 오버피팅 문제 존재

반응형
반응형

Ⅰ. 현실세계 추상화 모델링, 데이터 모델링의 개요

가. 데이터 모델링의 정의

- 현실세계 데이터를 추상화하여 데이터베이스의 데이터로 표현하기 위한 전체 설계 과정

 

나. 데이터 모델링의 4단계 절차

요구사항분석 - 데이터 처리 요구 분석
개념모델링 - 독립적 개념 스키마 설계
- 트랜잭션 모델링
논리모델링 - DBMS 개념 스키마 설계
- 트랜잭션 I/F 설계
물리모델링 - 물리적 구조 설계
- 트랜잭션 세부 설계

- 전 단계 수정 사항 있을 시 피드백 루프로 이전 단계로 돌아가서 수정

 

Ⅱ. 데이터 모델링의 4단계 상세 설명 및 중요 고려 요인

가. 데이터 모델링 단계별 상세 설명

단계 세부절차 설명
요구사항분석 요구사항 도출 - 업무 관계자 인터뷰
- 외부자료 수집 분석
요구사항 분석 - 요구사항의 명확성, 완전성, 모호성 검증
- 요구사항 도출 재수행
요구사항명세서 작성 - 요구사항 목록 정리 및 문서화
- 프로젝트 종료까지 지속 관리
개념 모델링 관계 설정 - 다양항 개체간 관계 설정
핵심 속성 도출 - 핵심 데이터 및 핵심 속성 도출
식별자 도출 - 데이터 및 개체 식별자 도출
논리 모델링 속성 상세화 - 개체 속성 검증 및 확정
개체 상세화 - 개인키, 대체키, 외부키 확정
- 정규화로 이상 해결
- 무결성 규칙 정의
물리 모델링 환경 분석 - DBMS 종류, 버전, 운영체계 분석
논리-물리 모델 변환 - 정의된 논리 모델을 물리 모델로 변환
반정규화 - 시스템 성능 향상

 

나. 데이터 모델링 중요 고려 요인

주요 요인 설명
무결성 (Integrity) - 갱신, 삽입, 삭제 등 연산 이후에도 데이터는 항상 주어진 제약조건 만족
일관성 (Consistency) - 데이터 호출 시 항상 같은 데이터를 반환하는 특성
회복성 (Recovery) - 시스템 장애 발생시 발생 이전의 DB상태로 복구
보안성 (Security) - 불법적, 악의적 데이터 변경이나 손실 또는 노출에 대한 보호
효율성 (Efficiency) - 데이터 쿼리 응답 시간 단축, 저장공간 최적화
확장성 (Scalability) - 시스템 운영에 영향을 주지 않고 새로운 데이터 추가 가능

- 위 조건들이 갖추어져야 원활한 데이터베이스 운용 가능

반응형
반응형

Ⅰ. 분산 데이터베이스의 속성, NoSQL의 CAP 개념

- 분산 DB의 3가지 속성 일관성, 가용성, 파티션 허용에 대해 3가지 전부 만족할 수 없고 장애 상황 시 2가지만 선택 가능하다는 이론

 

Ⅱ. NoSQL의 CAP의 개념도 및 2 Pick 설명

가. CAP의 개념도



 
일관성
(Consistency)
- 모든 사용자는 항상 동시에 같은 데이터를 조회한다.
가용성
(Availability)
- 모든 사용자는 항상 read/write 할 수 있다.
- 노드 장애시 대체 노드가 작동한다.
파티션 허용
(Partition 
Tolerance)
- 물리적 네트워크 분할 시에도 시스템은 정상 동작 한다.

 

나. CAP의 Two Pick 설명

구분 대표 시스템 설명
C + A - Oracle
- MySQL
- 가용성과 일관성 확보, 오류 허용하지 않는 시스템
C + P - HBase
- MongoDB
- 일관성과 파티션 허용 확보, 대용량 분산파일 시스템
- 성능 보장형 시스템
A + P - Dynamo
- Cassandra
- 가용성과 파티션 허용 확보, 비동기화 시스템
- SNS에 적합

- CAP 이론의 한계 보완을 위한 PACELC 이론 존재

 

Ⅲ. PACELC 이론

- 장애 상황 시 가용성과 일관성 중 선택, 정상 상황 시 지연시간과 일관성 중 선택

반응형

+ Recent posts