dbt를 보다가 보니 이런 저런 내용이 나오는데, 누군가 star schema에 대한 언근이 있어 찾다가 MS의 Understand star schema라는 페이지를 찾았다.

좀더 구체적인 비교를 찾아 질의 해 본다.

1. 구조 (Structure)

Star Schema

  • 중앙에 하나의 팩트 테이블이 있고, 이를 둘러싼 다수의 디멘션 테이블로 구성됩니다.
  • 디멘션 테이블은 비정규화된(flat) 형태로 설계되며, 각 디멘션이 별도의 테이블로 저장됩니다.
  • 단순한 구조를 가지며 별 모양을 띱니다.

Snowflake Schema

  • 팩트 테이블은 동일하지만, 디멘션 테이블이 정규화된(normalized) 형태로 설계됩니다.
  • 디멘션 테이블이 하위 디멘션으로 분할되어 복잡한 트리 구조를 형성합니다.
  • 눈송이(snowflake) 모양을 닮은 구조입니다.

2. 정규화 수준 (Normalization)

Star Schema

  • 디멘션 테이블이 비정규화(denormalized) 되어 있습니다.
  • 하나의 디멘션 테이블에 모든 속성이 포함되며, 중복 데이터가 있을 수 있습니다.

    Snowflake Schema

  • 디멘션 테이블이 정규화(normalized) 되어 있습니다.
  • 중복 데이터를 제거하고 디멘션 속성을 여러 테이블로 나눕니다.

3. 복잡도 (Complexity)

Star Schema

  • 구조가 단순하여 이해 및 유지 관리가 용이합니다.
  • 쿼리가 간단하고 빠르게 실행됩니다.
  • 데이터 웨어하우스 설계 초보자나 소규모 프로젝트에 적합합니다.

    Snowflake Schema

  • 구조가 복잡하며, 이해 및 유지 관리가 어려울 수 있습니다.
  • 정규화로 인해 테이블 간 조인(join)이 많아 쿼리 성능이 떨어질 수 - 있습니다.
  • 대규모 데이터 웨어하우스나 복잡한 데이터 관계를 다룰 때 유리합니다.

4. 성능 (Performance)

Star Schema

  • 조인이 적어 쿼리 성능이 일반적으로 더 우수합니다.
  • 디스크 공간 사용량은 더 많을 수 있습니다(중복 데이터 때문).

    Snowflake Schema

  • 정규화로 인해 조인(join) 작업이 많아 쿼리 성능이 저하될 수 있습니다.
  • 디스크 공간 사용은 더 적습니다(중복 데이터가 제거됨).

5. 사용 사례 (Use Cases)

Star Schema

  • 단순한 데이터 분석과 빠른 응답 시간이 필요한 경우.
  • BI 도구나 OLAP(Online Analytical Processing)에서 자주 사용됨.

    Snowflake Schema

  • 데이터 중복을 최소화하고 정규화를 통해 데이터 무결성을 유지하려는 경우.
  • 복잡한 데이터 관계를 명확히 표현해야 하는 경우.

비교 요약

특성 Star Schema Snowflake Schema
구조 비정규화된 단순 구조 정규화된 복잡한 구조
데이터 중복 있음 없음
성능 쿼리 성능이 우수 조인으로 인해 성능 저하 가능
설계 복잡도 낮음 높음
디스크 공간 사용 더 많이 필요할 수 있음 더 적게 필요함

Read Count