눈송이 스키마는 레코드를 추가 테이블로 추가 분할하여 일부 차원 테이블이 정규화되는 스타 스키마 모델의 변형입니다. 전개되는 스키마 그래프는 눈송이와 같은 모양을 형성합니다.
눈송이 스키마는 별의 각 점이 더 많은 점으로 분리되는 별 스키마의 확장입니다. 눈송이 스키마가 눈송이와 비슷하기 때문에 눈송이 스키마라고 합니다. 눈송이는 STAR 스키마에서 차원 테이블을 정규화하는 방법입니다. 모든 차원 테이블을 완전히 정규화하면 결과 구조가 중간에 팩트 테이블이 있는 눈송이를 시뮬레이션합니다.
Snowflake는 특정 쿼리의 성능을 향상시킬 수 있습니다. 스키마는 관련된 차원으로 둘러싸인 각 사실로 정렬되며, 이러한 차원은 눈송이 패턴으로 분기되는 다른 차원과 연결됩니다.
눈송이 스키마에는 다대일 관계를 통해 다른 차원 테이블에 연결할 수 있는 여러 차원 테이블에 연결된 하나의 사실 테이블이 포함됩니다. 눈송이 스키마의 테이블은 일반적으로 세 번째 정규형으로 정규화됩니다. 각 차원 테이블은 계층 구조에서 정확히 한 수준을 구현합니다.
스타 스키마는 차원의 모든 속성을 하나의 비정규화된 테이블에 저장합니다. 이것은 보다 정규화된 눈송이 스키마보다 추가 디스크 공간이 필요했습니다. Snowflake는 낮은 카디널리티를 가진 속성을 외래 키를 사용하여 중요한 차원 테이블과 연결되는 별도의 차원 테이블로 변경하여 차원을 정규화합니다. 눈송이의 목적은 디스크 공간을 최소화하는 것이므로 쿼리 구현에 부정적인 영향을 미칠 수 있으므로 권장하지 않습니다.
눈송이에서 스키마 테이블은 중복성을 제거하기 위해 정규화됩니다. 눈송이 차원 테이블은 여러 차원 테이블로 나뉩니다.
보다 어려운 차원 및 관계에서 유연한 쿼리를 위해 눈송이 스키마가 생성됩니다. 차원 수준 간의 다대다 및 일대다 관계와 관련이 있습니다.
눈송이 스키마의 장점
-
눈송이 스키마의 주요 이점은 필요한 디스크 스토리지를 최소화하고 더 작은 조회 테이블을 결합하기 때문에 쿼리 성능이 향상된다는 것입니다.
-
차원 수준 및 구성 요소 간의 상호 관계에서 더 높은 확장성을 지원합니다.
-
중복이 없으므로 유지 관리가 간단합니다.
눈송이 스키마의 단점
-
눈송이 스키마의 주요 단점은 조회 테이블 수가 증가하기 때문에 추가 유지 관리 노력이 필요하다는 것입니다. 또한 멀티팩트 스타 스키마로 정의됩니다.
-
더 복잡한 쿼리가 있으므로 배우기가 어렵습니다.
-
테이블이 높을수록 조인이 높아지므로 쿼리 구현 시간이 늘어납니다.