본문 바로가기

안녕하세요!

자격증 준비/SQLD

[ SQLD ] 성능 데이터 모델링 - 정규화


 

성능 데이터 모델링


 

성능 데이터 모델링

DB의 성능 향상 목적으로 설계 단계의 데이터 모델링 때부터

정규화와 반정규화, 테이블 통합, 테이블 분할, 조인, 기본키 및 외래키 등의

여러 성능과 관련된 것들이 데이터 모델링에 반영되도록 하는 것이다.

 

고려 사항


 

먼저 데이터 모델링을 할 때 정규화를 수행해야 한다.

여기서 정규화란 이상현상이 있는 릴레이션을 분해해 이상현상을 제거하는 과정이다.

두 번째로 DB 용량 산정을 수행한다.

그리고 DB에서 발생되는 트랜잭션의 유형을 파악한다.

네 번째로 용량과 트랜잭션의 유형에 따라 반정규화를 수행한다.

그 다음 이력 모델의 조정, 기본키와 외래키의 조정, 슈퍼 타입과 서브 타입의 조정 등을 수행한다.

마지막으로 성능 관점에서 데이터 모델을 검증한다.

 

728x90
 

[ 정보처리기사 ] 반정규화 주요 기법

반정규화 주요 기법 반정규화의 주요 기법을 알아보자. 테이블 병합은 1:1 관계, 1:M 관계를 통합하여 JOIN 횟수를 줄여 성능을 향상시킨다. 테이블 분할은 테이블을 수직 또는 수평으로 분할하는

pythonchoboman.tistory.com


 

정규화


 

정규화

데이터에 관한 결정자에 의해 함수적 종속을 가지고 있는 속성을 

입력 및 수정, 삭제 이상현상을 제거하는 것을 말한다.

즉, 데이터의 중복 속성을 제거하고 결정자에 의해 동일한 의미의 일반 속성이

하나의 테이블로 합침으로써, 한 테이블의 데이터 용량을 최소화 할 수 있다.

 

정규화 유형


 

구분 내용
제 1 정규화 테이블의 컬럼이 원자값을 갖도록 테이블을 분해하는 것

 - 각 컬럼이 하나의 속성만을 가져야 함
 - 하나의 컬럼은 같은 종류나 타입 값을 가져야 함
 - 각 컬럼이 유일한 이름을 가져야 함
 - 칼럼의 순서가 상관 없어야 함
제 2 정규화 제 1 정규화를 수행한 테이블에 대해 완전 함수 종속을 만족하도록 테이블을 분해하는 것

 - 완전 함수 종속은 기본키의 부분집합이 결정자가 되어서는 안되다는 것을 말함
 - 제 1정규화를 만족해야 함
 - 모든 컬럼이 부분적 종속이 없어야 함
제 3 정규화 제 2 정규화를 수행한 테이블에 대해 이행적 종속을 없애도록 테이블을 분해하는 것

 - 제 2 정규화를 만족해야 함
 - 기본키를 제외한 속성들 간의 이행 종속성이 없어야 함
BNCF 제 3 정규화를 만족하면서 모든 결정자가 후보키 집합에 속하게 되는 것

 - 제 3정규화를 만족해야 함
 - 모든 결정자가 후보키 집합에 속해야 
제 4 정규화 다치 종속의 속성을 분리하는 것

 - BNCF를 만족해야함
 - 다치종속이 없어야 함
제 5 정규화 중복을 제거하기 위해 분해할 수 있을 만큼 모두 분해하는 것

 - 제 4 정규화를 만족해야 함
 - 조인 종속이 없어야 함
 - 조인 연산을 했을 대 손실이 없어야 함

반응형

 

728x90
반응형

'자격증 준비 > SQLD' 카테고리의 다른 글

[ SQLD ] 성능 데이터 모델링  (23) 2024.02.14
[ SQLD ] 데이터 모델링 - Identifier  (22) 2024.02.07
[ SQLD ] 데이터 모델링 - Attribute  (3) 2024.01.30
[ SQLD ] 데이터 모델링  (48) 2024.01.30

loading