성능 데이터 모델링
- DB 성능 향상을 목적으로, 설계단계의 데이터 모델링 때부터 정규화, 반정규화, 테이블 통합 및 분할, 조인구조, PK, FK 등 여러가지 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것
- 분석/설계 단계에서 데이터 모델에 성능을 고려한 데이터 모델링을 수행할 경우 성능 저하에 따른 재업무 비용을 최소화 할 수 있음
- 데이터의 증가가 빠를 수록 성능 저하에 따른 성능 개선 비용은 기하급수적으로 증가한다.
성능 데이터 모델링 고려사항 순서
- 정규화 수행
- DB 용량 산정
- DB에 발생되는 트랜잭션의 유형 파악
- DB 용량과 트랜잭션 유형에 따라 반정규화 수행
- 이력모델의 조정, PK/FK 조정, 슈퍼/서브타입 조정
- 성능관점에서 데이터 모델 검증
정규화
- 반복적인 데이터를 분리하고, 각 데이터가 종속된 테이블에 적절히 배치되도록 하는 것
- 이상현상(Anomaly) 제거
- 정규화
- 1차 정규화 : 속성의 원자성 확보. 다중값 속성 분리
- 2차 정규화 : 부분 함수 종속성 제거. 일부 기본키에만 종속된 속성 분리. 기본키가 하나의 컬럼일땐 생략 가능
- 3차 정규화 : 이행 함수 종속성 제거. 서로 종속관계가 있는 일반 속성 분리. 주식별자와 관련성이 가장 낮음
- BCNF 정규화 : 후보키가 기본키 속성 중 일부에 함수적 종속일 때 다수의 주식별자를 분리
- 함수적 종속 : 데이터들이 어떤 기준 값에 의해 종속되는 현상
- 4차 정규화 : 다치 종속 분리
- 5차 정규화 : 결합 종속 분리
정규화의 성능