반응형

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

정의 다수의 사용자가 접근하는 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 이론

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

반응형
반응형

Ⅰ. 함수적 종속성

Ⅱ. 4, 5차 정규화

Ⅲ. DB Table Partitioning

Ⅳ. 쿼리 오프로딩


Ⅰ. 릴레이션 내 속성간의 관계, 함수적 종속성 설명

가. 함수적 종속성 개요

정의 한 릴레이션 내의 X,Y 속성 간의 "X가 Y를 결정하는 유일한 속성"인 관계

 

나. 함수적 종속성 유형

유형 관계 설명 정규화
완전함수
종속성
R(X, Y)에서
X -> Y
Y를 결정하는 속성이  X가 유일한 상태 2차 정규화 적용
부분함수
종속성
R(X, Y)에서
X 부분집합 -> Y
Y를 결정하는 X가 X의 부분집합이 존재 2차 정규화 적용
이행함수
종속성
R(X, Y, Z)에서
X -> Y, Y -> Z 이면 X -> Z
X가 Y를 결정하고 Y가 Z를 결정하면 X는 Z를 결정 3차 정규화 적용
결정자
종속성
R(X, Y)에서
X -> Y, X는 후보키 X
X가 식별자이지만 X가 후보기가 아닌 상태 BCNF 정규화 적용
다중값
종속성
R(X, Y, Z)에서
X -> Y, X -> Z이지만 Y, Z는 독립
Y는 X가 결정자이고 X와 Z가 독립상태 4차 정규화 적용
조인
종속성
R(X, Y, Z)에서
X -> Y, Y -> Z, Z -> X
X와 Y, Y와 Z, Z와 X 관계, 전체관계 없는 상태 5차 정규화 적용

- 정규화를 진행하여 종속성을 제거

 

Ⅱ. 4차, 5차 정규화 설명

가. 4차 정규화 설명

정의 하나의 릴레이션에 두 개 이상의 다치 종속(Multi-Valued Dependency) 제거
정규화 전
정규화 후

- 4차 정규화 통해 다치 종속을 제거

 

나 .5차 정규화 설명

정의 X, Y, Z 간의 관계에서 X -> Y, X -> Z, Y -> Z 관계 존재, 3개 이상 릴레이션 분리, 조인 속성 제거
정규화 전
정규화 후

- 각각의 관계는 있으나 전체 관계가 없는 경우 적용

 

Ⅲ. DB Table 파티셔닝 유형

유형 개념도 설명
범위 분할
(range partitioning)
분할 키 값이 범위 내에 있는지 여부로 구분
목록 분할
(list partitioning)
목록에 파티션 할당, 목록에 비추어 파티션 선택
해시 분할
(hash partitioning)
해시 함수 값에 따라 파티션 포함 여부 결정
합성 분할
(composite partitioning)
여러가지 분할 기술 결합
범위 분할 -> 해시 분할 또는
범위 분할 -> 목록 분할

- 각 기법의 장단점을 고려하여 최적의 유형 선정

 

Ⅳ. 쿼리 오프로딩 설명

개념도
정의 DB 처리 성능 향상을 위해 update(10~30%) 트랜잭션과 read(70~90%) 트랜잭션의 DB를 분리하는 방법
구성요소 Master DB Update 트랜잭션(Create/Delete/Update)만 수행
Staging DB Slave DB로 복제하기 위한 중간 경유지 역할
Slave DB Read 트랜잭션만 수행, N개의 Slave DB로 구성하여 장애시 대체하는 HA(High Availability) 기능 제공

- Master -> Staging -> Slave DB 복제시 CDC(Change Data Capture) 기술 이용

반응형
반응형

빅데이터 분석, 처리 기술 설명

가. 빅데이터 분석도구를 선택하는 원칙

나. 빅데이터 분석, 처리를 위한 Hadoop 3.0, 카파(Kappa) 아키텍처 설명


Ⅰ. 비정형 데이터까지 처리 가능한 빅데이터 분석/처리 개요

개념도
정의 다양한 형태의 대량의 데이터를 효율적으로  저장, 전처리, 분석하여 비즈니스에 필요한 인사이트를 도출하는 과정
구분 설명 세부기술
분석기법 빅데이터를 분석하는 사용할 수 있는 통계 및 컴퓨터 공학의 다양한 기법 - Regression, Classfication, Clustering, Machine Learning, Neural Networks, Visualization
처리기술 분석에 필요한 데이터를 수집, 처리, 관리하기 위해 개발된 기술 - Hadoop, R, SQL, Cloud Computing

 

Ⅱ. 빅데이터 분석도구를 선택하는 원칙

가. 핵심 기능 관점 고려 원칙

구분 원칙 설명
분석 데이터 분석 능력 마이닝, 인공신경망 등 다양한 분석 기능 고려
관리 데이터 통합 관리 능력 다양한 형태의 빅데이터 통합 관리 기능 고려
연계 데이터 연계 다양한 툴 사용, 데이터 저장소와 분석도구 연계 고려

 

나. 조직 관점 고려 원칙

구분 원칙 설명
품질 기능성 - 빅데이터 처리 / 분석 / 시각화 기능
성능 - 다양한 형태, 대량 데이터 처리 속도
보안성 - 데이터 보안 침해, 프라이버시 침해
사용성 학습성 - 러닝 코스트 측정
편의성 - 사용자 인터페이스 및 사용 편의성
목표 달성도 - 다양한 목표의 모델 구축 가능여부
결과물 이해성 - 분석 결과물에 대한 직관적 이해 가능여부
시각화 - 분석 결과물 시각화 표현 지원 여부
리포트 관리 - 분석 결과물 자동 리포팅 생성

- 각 항목에 대한 전문가 평가 후 선택

 

 

Ⅲ. Hadoop 3.0

가. Hadoop 3.0 개요

구성도
정의 - 대용량 데이터 분산처리를 위한 빅데이터 오픈소스 프레임워크
구성요소 HDFS 하둡 네트워크 내 데이터 저장을 위한 분산형 파일 시스템
MapReduce 대용량의 데이터 처리를 위한 분산 프로그래밍 모델, 소프트웨어 프레임워크
Hadoop EcoSystem Zookeeper, YARN, HBase, Kafka, Spark

 

나. Hadoop 3.0의 특징

특징 설명
이레이져 코딩 기존 블록 복제 대체, HDFS 사용량 감소
YARN 타임라인 v2 기존보다 많은 정보 확인 가능
스트립트 재작성 오래된 스크립트 재작성, 버그 수정
네임노드 지원 여러개 스탠바이 노드 지원가능
Ozone 추가 오브젝트 저장소 추가

- JAVA8 지원, 기본 포트 변경, 네이티브 코드 최적화

 

Ⅳ. Kappa 아키택처

가. Kappa 아키텍처 개요

정의 - 데이터 실시간 분석 기능 수행을 위해 스피드 레이어, 서빙 레이어로 구성된 실시간 데이터 분석 아키텍처
특징 - 실시간성, 단순한 구조, 운영 효율적, 데이터 일관성

 

나. Kappa 아키텍처 구성도 및 구성요소

구성도

- 실시간 데이터 처리 위한 스피드 레이어, 쿼리 요청 결과 제공 서빙 레이어
구성요소 스피드 레이어 - 실시간 스트리밍 데이터 분석
서빙 레이어 - 가공 데이터 저장 및 쿼리 응답
구현도구 데이터 수집 카프카
스피드 레이어 스톰, 스파크 스트리밍
서빙 레이어 카산드라, 하이브

 

반응형
반응형

데이터베이스의 동시성제어/병행제어(Concurrency Control)에 대해 설명
가. 동시성제어(병행제어)의 정의
나. 병행제어의 기법의 종류, 병행제어를 안했을때의 문제점


Ⅰ. 데이터베이스 트랜잭션 일관성/무결성 보장, 동시성 제어의 정의

정의 - 다수의 사용자가 접근하는 DBMS에서 트랜잭션의 직렬화로 트랜잭션 간의 간섭을 제어해서 데이터 일관성, 무결성을 유지하는 기법
필요성 - 트랜잭션 일관성, 무결성 유지
- 복수 트랜잭션의 직렬화
- 트랜잭션 간의 상호간섭 제어

- 동시성이 높을수록 데이터 일관성이 떨어지므로 다수의 사용자가 접근하는 시스템의 경우 다양한 동시성 제어 기법 적극 활용 필수

 

 

Ⅱ. 동시성 제어 기법의 종류 및 상세 설명

기법 매커니즘 설명
Locking
- s-lock: lock된 데이터 자원은 모든 트랜잭션에 대해 "읽기"만 허용
- x-lock:lock된 데이터 자원은 lock 수행 트랜잭션만 "읽기", "쓰기" 허용
2PL
- 확장단계: lock만 수행 가능
- 축소단계: unlock만 수행 가능
연쇄 복귀 불가, 엄격한 2PL로 해결
Timestamp
Ordering
- 트랜잭션에 시간 순서대로 timestamp를 지정하여 트랜잭션의 직렬성 유지
- Deadlock 없음
적합성 검증
- 트랜잭션 종료 후 일괄적으로 검증 수행 후 문제 없으면 DB 반영
MVCC
(Multi Version Concurrency
Control)
- 갱신시 기존 데이터를 "롤백 세그먼트"에 기록하여 commit 전까지 이전 버전 정보 조회로 데이터 일관성 유지
- SCN, CR Copy, CR Block

 

Ⅲ. 동시성 제어 안했을때의 문제점

문제점 설명 사례
갱신 분실
(Lost Update)
- 동일 데이터를 동시에 갱신 시 이전 갱신 값을 나중 갱신 값이 덮어쓰는 경우


- 트랜잭션1의 실행이 commit 되기 전에 트랜잭션 2가 동일 값 갱신하여 트랜잭션1의 값을 덮어씀
연쇄 복귀 불가
(Cascading Rollback)
- 복수 트랜잭션이 데이터 공유, 특정 트랜잭션 취소 시 다른 트랜잭션 처리 부분 취소 불가

- 동일 데이터에 대해서 트랜잭션1이 취소를 원하지만 중간에 트랜잭션2의 결과가 반영되 롤백 불가
현황 파악 오류
(Uncommitted Dependency)
- 트랜잭션의 중간 수행 결과를 다른 트랜잭션이 참조하여 발생

- 트랜잭션1이 완료되기 전에 트랜잭션2가 데이터를 참조함으로써 결과적으로 의미없는 값이 계산됨
모순성
(Inconsistency)
- 두 트랜잭션 동시 실행 시 데이터의 일관성이 사라지고 모순됨

- 트랜잭션1 수행 도중 트랜잭션2의 수행이 완료됨으로 데이터는 일관성을 잃고 트랜잭션1 수행 완료 후 모순된 데이터만 존재

 

Ⅳ. 데이터베이스 무결성 유지를 위한 회복 기법

로그 기법 즉시 갱신/ 지연 갱신, 갱신 결과를 로그 파일에 저장, 장애 발생 시 로그 기반 회복
체크 포인트 트랜잭션 진행 중 체크 포인트 설정하여 데이터베이스에 반영, 장애 발생시 체크 포인트 이후만 회복
그림자 페이징 트랜잭션 결과를 그림자 페이지에 저장, 장애 발생시 그림자 페이지 이용 회
ARIES REDO 중 Repeating history, UNDO 중 Logging changes

- 다양한 회복 기법을 활용하여 트랜잭션의 원자성과 지속성 지원

 

참조

[1] https://itpenote.tistory.com/621

[2] https://medium.com/pocs/%EB%8F%99%EC%8B%9C%EC%84%B1-%EC%A0%9C%EC%96%B4-%EA%B8%B0%EB%B2%95-%EC%9E%A0%EA%B8%88-locking-%EA%B8%B0%EB%B2%95-319bd0e6a68a

[3] https://blog.skby.net/%EB%8B%A4%EC%A4%91-%EB%B2%84%EC%A0%84-%EB%8F%99%EC%8B%9C%EC%84%B1-%EC%A0%9C%EC%96%B4-mvcc-multi-version-concurrency-control/

[4] https://itpenote.tistory.com/710

[5] https://itpenote.tistory.com/619

반응형

+ Recent posts