/*
-- Title : 차원 모델링(Dimensional Modeling)
-- Reference : www.zentut.com
-- Tag : dimensional modeling 차원 모델링 dw 모델링 다차원 모델차 fact 팩트 measure 측정값 치수 dim 스타 스키마 눈송이 스키마 star schema snowflake schema surrogate key 대리키
*/
■ 차원 모델링 주요 요소
• 팩트 : 비즈니스 측정값. 측정 가능한 숫자값.
• 차원 : 치수나 컨텍스트라고도 함. 비즈니스 관점이나 분석 대상.
■ 차원 모델링 프로세스
1. 비즈니스 프로세스 선택
- 비즈니스 요구사항 수집
- ex. 주문처리, 출하, 자재 구매, GL 등
2. Grain 선택
- 팩트 테이블의 레코드가 나타내는 것을 정확히 설명
- 팩트 테이블의 세부 수준 표현 및 결정
- 최소 Grain은 Dim이 될 수 없다?
3. 차원 선택
- 단일값이 취할 수 있는 모든 가능한 설명을 나타내는 차원 추가
- ex. 날짜, 시간, 제품, 고객, 상점 등
4. 팩트 확인
- 팩트 테이블에 로드할 숫자값 선택
- 비즈니스 프로세스의 KPI나 측정 대상 선별
5. 스키마 작성
- 다차원 모델링 구현
- 스타(star) 스키마 vs. 눈송이(snowflake) 스키마
■ 차원 모델링 규칙
• 단일 팩트 테이블의 모든 팩트가 동일한 수준(Grain)에 있는지 확인
• 차원 테이블은 가능한 속성이 많고 Row가 적게 유지(차원의 속성은 분석시 필터링의 대상)
• 팩트 테이블은 가능한 필드가 작고 Row가 많게 운영
• 성능을 위해 차원 테이블에 대리키(Surrogate Key)를 사용하고 팩트에 FK로 반영
• 또한, 성능을 위해 최소한의 Join 유도
•
■ 차원 모델링 이점
• 비즈니스를 쉽게 이해할 수 있는 구조
• 쉬운 이해 및 분석에 도움되는 일관된 차원의 그룹화
• 쿼리 성능 향상, 비정규화 발생 허용
• 확장이 용이
- 팩트 테이블에 혼란을 주지 않으면서 새로운 차원 도입 용이
- 응용 프로그램에 영향없이 필드 추가 가능