BI

DW/ETL - 스타 스키마와 스노우플레이크 스키마

초롱불 2024. 7. 12. 01:01

개요

스타스키마와 스노우 플레이크 스키마는 데이터웨어하우스와 데이터 마트에서 많이 사용되는 스키마이다. 차원과 팩트 테이블로 나누어지고 중앙에 팩트 테이블이 존재하는 스키마라는 점에서 둘은 동일하나 세부적인 면에서 차이가 있다. 이 글에서는 이 두 스키마에 대해서 정리해보도록 하겠다.

 

스타스키마

구성 요소

  • 팩트 테이블: 주요 비즈니스 이벤트나 트랜잭션 데이터를 저장한다. 예를 들어, 매출, 수익, 판매량 등의 측정 값이 포함된다. 팩트 테이블은 외래키를 통해 차원 테이블과 연결된다.
  • 차원 테이블: 분석에 필요한 다양한 속성을 저장한다. 예를 들어 시간, 제품, 고객, 지역 등이 차원 테이블에 해당한다. 차원 테이블은 각 속성을 설명하는 컬럼들을 가지고 있으며 주로 비정규화된 형태로 저장된다.

비정규화

비정규화는 데이터베이스 설계 시 데이터 중복을 허용하여 데이터 검색 성능을 향상시키는 기술이다. 이는 정규화와 반대되는 개념으로 정규화는 데이터 중복을 최소화하고 데이터 무결성을 유지하기 위해 데이터를 여러 테이블로 나누는 과정을 의미한다. 비정규화는 데이터 읽기 속도를 높이기 위해 의도적으로 일부 정규화 단계를 역전시키는 것이다.

특징

  • 단순한 구조: 스타 스키마는 구조가 단순하여 이해하고 설계하기 쉽다.
  • 빠른 쿼리 성능: 차원 테이블이 비정규화되어 조인(join)연산이 간단하고 빠르다.
  • 데이터 중복: 차원 테이블에 데이터 중복이 있을 수 있다. 이는 읽기 성능을 높이기 위해 일부러 허용된다.

장점

  • 이해와 유지보수 용이: 구조가 단순하여 이해하고 유지보수하기 쉽다.
  • 빠른 쿼리 성능: 비정규화된 차원 테이블 덕분에 쿼리 성능이 뛰어나다.
  • 설계와 구현이 쉽다: 복잡한 정규화 과정이 필요없기에 설계와 구현이 편하다.

단점

  • 데이터 중복: 비정규화된 차원 테이블로 인해 데이터 중복이 발생할 수 있다.
  • 저장 공간 증가: 데이터 중복으로 인해 저장 공간이 증가할 수 있다.

스노우플레이크 스키마

구성요소

  • 팩트 테이블: 스타 스키마와 동일하게 주요 비즈니스 이벤트나 트랜잭션 데이터를 저장한다.
  • 정규화된 차원 테이블: 각 차원 테이블이 정규화되어 여러 하위 테이블로 나뉜다. 예를 들어 시간 차원이 연도, 월, 일로 나뉠 수 있다.

특징

  • 정규화된 구조: 차원 테이블이 정규화되어 데이터 중복을 줄이고 데이터 무결성을 향상시킨다.
  • 복잡한 쿼리: 정규화된 구조로 인해 쿼리가 복잡해지고 조인 연산이 많아질 수 있다.

장점

  • 데이터 무결성 향상: 데이터 중복이 줄어들어 데이터 무결성이 향상된다.
  • 저장 공간 절약: 정규화로 인해 데이터 중복이 감소하여 저장공간이 절약된다.
  • 데이터 관리 용이: 데이터가 더 체계적으로 관리될 수 있다.

단점

  • 복잡한 쿼리: 정규화된 구조로 인해 쿼리가 복잡해지고 조인 연산이 많아질 수 있다.
  • 쿼리 성능 저하: 조인 연산이 많아져서 쿼리 성능이 저하될 수 있다.
  • 설계와 유지보수의 복잡성: 정규화된 구조로 인해 설계와 유지보수가 복잡해질 수 있다.

결론

스타 스키마와 스노우 플레이크 스키마는 데이터 웨어하우스에서 데이터를 조직하는 두 가지 주요 방법이다. 스타 스키마는 단순하고 쿼리 성능이 뛰어나며 유지보수가 용이하나 데이터 중복이 있을 수 있다. 스노우 플레이크 스키마는 데이터 무결성과 저장 공간 효율성이 뛰어나지만 쿼리 성능이 떨어지고 유지보수가 복잡하다. 각각의 스키마는 비즈니스 요구 사항과 데이터 특성에 따라 선택하여 사용 가능하다.