_대문 | 방명록 | 최근글 | 홈피소개 | 주인놈 |
FrontPage › 차원모델링-고급주제
|
|
[edit]
1 목표 #
[edit]
3 스노우플레이크 스키마 #스노우플레이크 스키마는 스타 스키마에서 차원 테이블들을 정규화한 방법이다. 다음의 스타스키마 그림을 보자.
![]() 제품(product)차원이 모두 500,000 건이라고 가정하자. 이 제품은 500개의 제품 브랜드로 나뉘고 제품 브랜드는 10개의 카테고리들로 나누어 진다. 인덱스가 없는 상태에서 특정 브랜드만을 검색하려고 한다면 500,000 건을 모두 읽어야 한다. 또한 특정 제품 카테고리만 검색하려고 해도 역시 500,000 건을 모두 읽어야 한다. 하지만 아래와 같이 카테고리, 브랜드로 분리해 낸다면 초기 검색을 10건 또는 500건만 하면 된다.
![]() 다음은 스노우플레이크 스키마의 정규화에 대한 선택 옵션이다.
다음은 부분 또는 완전하게 정규화된 스노우플레이크 스키마를 보여준다. ![]() [edit]
4 스노우플레이크 장/단점 #
[edit]
5 스노우플레이크하는 시기 #스노우플레이크 스키마는 작은 공간 절약의 단점이 있으나, 공간 절약이 매우 미흡하다. 그러므로 스타 키마의 다른 장점을 가지는 것이 더 좋은 선택이 대부분이다. 예를들어 다음과 같은 경우가 그렇다.
[edit]
6 집계 사실 테이블(aggregate fact table) #집계 사실 테이블은 상세 수준의 사실 테이블(granular fact table)로부터 미리 계산어진 요약 테이블이다. 다음과 같은 granular fact table을 가진 스타스키마가 있다고 가정해보자.
![]() 만약 하루에 0.1%의 고객이 100명의 판매원에게 1,000개의 제품을 구매한다고 하면 fact table은 1년 동안 최대 1000000 * 0.1 * 100 * 1000 * 365 = 3조 6천 5백억 건이 될 수 있다. 어마어마한 양이 되어 질의 시간이 오래 걸리게 된다. 그래서 필요한 경우 미리 집계를 해놓아야 한다. 하지만 모든 경우의 수에 대해서 집계를 하는 것도 쓸모없는 데이터를 양산하고, 서버에 부하는 줄 수 있다. 다음은 집계 전략이다.
집계 전략
|
즐겁게 살려거든 주기 위한 주머니와 받기 위한 주머니를 가지고 다녀라. (괴테) |