두 layout
- Star schema. 각 dimension 이 단일 비정규화 테이블.
dim_customers가name, country, region, segment다 한 row 에. 다이어그램 모양이 fact 테이블 가운데, dimension 이 밖으로 뻗음 — 그래서 "star". - Snowflake schema. Dimension 이 더 정규화.
dim_customers에region_key;dim_regions에country_key;dim_countries가 그 너머. 모양이 fact 테이블 + sub-dimension 으로 뻗는 dimension — 그래서 "snowflake".
섹시하지 않은 진실
분석 작업엔 star 가 거의 항상 이김. 이유:
- Query 당 join 적음 → 빠른 실행 + 명확한 SQL.
- BI 도구가 star schema 에 대해 깔끔한 query 생성.
- 비정규화 dimension 이 mental model 쉬움.
- Storage 는 싸; 비정규화의 추가 공간 비용이 가독성 win 대비 무시 가능.
Snowflake schema 도 자리 있음 — sub-dimension 이 거대하고 독립적으로 변할 때 분리가 옳은 선택일 수 있음. 근데 새 분석 warehouse 의 default 는 star schema 고, snowflake 는 평탄 유지의 특정 비용이 정당화할 때만.