성능 데이터 모델링
성능 데이터 모델링은
DB의 성능 향상 목적으로 설계 단계의 데이터 모델링 때부터
정규화와 반정규화, 테이블 통합, 테이블 분할, 조인, 기본키 및 외래키 등의
여러 성능과 관련된 것들이 데이터 모델링에 반영되도록 하는 것이다.
고려 사항
먼저 데이터 모델링을 할 때 정규화를 수행해야 한다.
여기서 정규화란 이상현상이 있는 릴레이션을 분해해 이상현상을 제거하는 과정이다.
두 번째로 DB 용량 산정을 수행한다.
그리고 DB에서 발생되는 트랜잭션의 유형을 파악한다.
네 번째로 용량과 트랜잭션의 유형에 따라 반정규화를 수행한다.
그 다음 이력 모델의 조정, 기본키와 외래키의 조정, 슈퍼 타입과 서브 타입의 조정 등을 수행한다.
마지막으로 성능 관점에서 데이터 모델을 검증한다.
728x90
정규화
정규화란
데이터에 관한 결정자에 의해 함수적 종속을 가지고 있는 속성을
입력 및 수정, 삭제 이상현상을 제거하는 것을 말한다.
즉, 데이터의 중복 속성을 제거하고 결정자에 의해 동일한 의미의 일반 속성이
하나의 테이블로 합침으로써, 한 테이블의 데이터 용량을 최소화 할 수 있다.
정규화 유형
구분 | 내용 |
제 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 |