성능 데이터 모델링
성능 데이터 모델링은
DB의 성능 향상 목적으로 설계 단계의 데이터 모델링 때부터
정규화와 반정규화, 테이블 통합, 테이블 분할, 조인, 기본키 및 외래키 등의
여러 성능과 관련된 것들이 데이터 모델링에 반영되도록 하는 것이다.
고려 사항
먼저 데이터 모델링을 할 때 정규화를 수행해야 한다.
여기서 정규화란 이상현상이 있는 릴레이션을 분해해 이상현상을 제거하는 과정이다.
두 번째로 DB 용량 산정을 수행한다.
그리고 DB에서 발생되는 트랜잭션의 유형을 파악한다.
네 번째로 용량과 트랜잭션의 유형에 따라 반정규화를 수행한다.
그 다음 이력 모델의 조정, 기본키와 외래키의 조정, 슈퍼 타입과 서브 타입의 조정 등을 수행한다.
마지막으로 성능 관점에서 데이터 모델을 검증한다.
[ 정보처리기사 ] 반정규화 주요 기법
반정규화 주요 기법 반정규화의 주요 기법을 알아보자. 테이블 병합은 1:1 관계, 1:M 관계를 통합하여 JOIN 횟수를 줄여 성능을 향상시킨다. 테이블 분할은 테이블을 수직 또는 수평으로 분할하는
pythonchoboman.tistory.com
정규화
정규화란
데이터에 관한 결정자에 의해 함수적 종속을 가지고 있는 속성을
입력 및 수정, 삭제 이상현상을 제거하는 것을 말한다.
즉, 데이터의 중복 속성을 제거하고 결정자에 의해 동일한 의미의 일반 속성이
하나의 테이블로 합침으로써, 한 테이블의 데이터 용량을 최소화 할 수 있다.
정규화 유형
구분 | 내용 |
제 1 정규화 | 테이블의 컬럼이 원자값을 갖도록 테이블을 분해하는 것 - 각 컬럼이 하나의 속성만을 가져야 함 - 하나의 컬럼은 같은 종류나 타입 값을 가져야 함 - 각 컬럼이 유일한 이름을 가져야 함 - 칼럼의 순서가 상관 없어야 함 |
제 2 정규화 | 제 1 정규화를 수행한 테이블에 대해 완전 함수 종속을 만족하도록 테이블을 분해하는 것 - 완전 함수 종속은 기본키의 부분집합이 결정자가 되어서는 안되다는 것을 말함 - 제 1정규화를 만족해야 함 - 모든 컬럼이 부분적 종속이 없어야 함 |
제 3 정규화 | 제 2 정규화를 수행한 테이블에 대해 이행적 종속을 없애도록 테이블을 분해하는 것 - 제 2 정규화를 만족해야 함 - 기본키를 제외한 속성들 간의 이행 종속성이 없어야 함 |
BNCF | 제 3 정규화를 만족하면서 모든 결정자가 후보키 집합에 속하게 되는 것 - 제 3정규화를 만족해야 함 - 모든 결정자가 후보키 집합에 속해야 |
제 4 정규화 | 다치 종속의 속성을 분리하는 것 - BNCF를 만족해야함 - 다치종속이 없어야 함 |
제 5 정규화 | 중복을 제거하기 위해 분해할 수 있을 만큼 모두 분해하는 것 - 제 4 정규화를 만족해야 함 - 조인 종속이 없어야 함 - 조인 연산을 했을 대 손실이 없어야 함 |
'자격증 준비 > SQLD' 카테고리의 다른 글
[ SQLD ] Row Migration / Row Chaining / Partitioning (0) | 2025.02.10 |
---|---|
[ SQLD ] 성능 데이터 모델링 (23) | 2024.02.14 |
[ SQLD ] 데이터 모델링 - Identifier (22) | 2024.02.07 |
[ SQLD ] 데이터 모델링 - Attribute (3) | 2024.01.30 |