눈송이 스키마

눈송이 스키마(snowflake schema)는 스타 스키마 모델의 변형으로서 몇몇 차원 테이블들이 정규화되어, 데이터를 추가적인 테이블들로 분할한다. 결과적으로 눈송이 스키마도 스타스키마와 비슷한 모양을 형성한다. 눈송이 스키마와 스타 스키마의 주요한 차이는 눈송이 모델의 차원 테이블은 중복을 줄이기 위한 정규형으로유지 된다는 것인데, 이는 테이블의 유지가 용이하게 하고 저장공간의 절약을 가져온다. 그러나 이러한 저장공간의 절약은 사실 테이블의 규모와 비교할 때 사소할 수 있고, 더욱이 눈송이 구조는 질의를 수행하기 위해서 더 많은 조인을 필요로 하여 검색의 효과를 감소시킬 수 있기 때문에, 결과적으로 시스템의 성능에 악영향을 끼칠 수 있다. 따라서 눈송이 스키마가 중복을 줄일 수 있다 하더라도 데이터웨어하우스는 설계에 있어서 스타스키마 만큼 널리 쓰이지 않는다.

예 

SELECT
	B.Brand,
	G.Country,
	SUM(F.Units_Sold)
FROM Fact_Sales F
INNER JOIN Dim_Date D             ON F.Date_Id = D.Id
INNER JOIN Dim_Store S            ON F.Store_Id = S.Id
INNER JOIN Dim_Geography G        ON S.Geography_Id = G.Id
INNER JOIN Dim_Product P          ON F.Product_Id = P.Id
INNER JOIN Dim_Brand B            ON P.Brand_Id = B.Id
INNER JOIN Dim_Product_Category C ON P.Product_Category_Id = C.Id
WHERE
	D.Year = 1997 AND
	C.Product_Category = 'tv'
GROUP BY
	B.Brand,
	G.Country

외부 링크 
 마이크로소프트 차원 소개

선언형 프로그래밍 언어