Data for Breakfast 서울 - 3월 19일 (목)

데이터와 에이전틱 인텔리전스로 비즈니스 가치를 실현하세요!

스타 스키마: 데이터 모델링을 위한 완벽 가이드

스타 스키마는 데이터 웨어하우징에서 가장 널리 채택하는 데이터 모델링 기법으로, 복잡한 데이터를 중앙의 팩트 테이블과 이를 둘러싼 설명용 차원 테이블 구조로 단순화합니다. 이 문서에서는 스타 스키마의 핵심 구성 요소, 구조적 장단점, Snowflake 스키마와의 비교를 통해 스타 스키마가 비즈니스 인텔리전스(BI) 및 분석 리포팅의 주요 기반이 되는 이유를 살펴봅니다.

  • 개요
  • 스타 스키마란?
  • 스타 스키마의 구성 요소
  • 스타 스키마 예제
  • 스타 스키마의 장점
  • 스타 스키마의 단점
  • 스타 스키마 vs. Snowflake 스키마: 주요 차이점
  • 스타 스키마 설계 및 구현
  • 스타 스키마를 사용해야 하는 경우
  • 결론
  • 스타 스키마 관련 자주 묻는 질문
  • AI 데이터 클라우드를 사용하는 고객 사례
  • 데이터 엔지니어링 리소스

개요

스타 스키마는 데이터 웨어하우징의 핵심을 이루는 대표적인 데이터 모델링 기법입니다. 스타 스키마와 데이터 웨어하우징은 함께 작동해 복잡한 분석 작업을 단순화합니다. 스타 스키마 구조는 데이터를 비정규화하고, 정량적 측정값(예: 매출 수치, 수량)을 담은 대규모 중앙 팩트 테이블과 이를 둘러싼 여러 개의 소규모 차원 테이블(예: 제품명, 날짜, 고객 정보와 같은 설명 속성)로 데이터를 구성합니다.

이러한 특정한 방식의 설계를 통해 필요한 테이블 조인 수를 줄임으로써 복잡한 쿼리를 크게 단순화합니다. 또한 직관적이고 탐색이 쉬운 모델을 제공해 쿼리 성능과 속도를 크게 개선하고, 효율적인 보고와 데이터 슬라이싱, 심층 분석을 위한 비즈니스 인텔리전스(BI) 도구를 지원합니다.

스타 스키마란?

스타 스키마는 데이터 웨어하우스 또는 데이터 마트에서 데이터를 단순하고 빠르게 쿼리하기 위해 사용하는 데이터 구성 방식 중 하나로, 데이터 엔지니어링 팀의 핵심 역할과도 맞닿아 있습니다. 주요 목적은 대규모 데이터 세트를 분석에 최적화된 직관적인 구조로 설계하는 것입니다. 스타 스키마라는 이름은 시각적 구조에서 비롯된 것으로, 바로 그 구조가 분석 역량의 근간이 됩니다. 별자리를 한번 떠올려 보세요. 밝게 빛나는 중심의 별처럼, 대규모 팩트 테이블이 전체 설계의 핵심을 이룹니다. 이 테이블에는 매출 금액, 수량, 타임스탬프 등 비즈니스의 모든 정량적 지표와 이벤트가 저장됩니다.

주변의 차원 테이블은 이 중앙 허브에서 방사형으로 뻗어 나가며, 단일 외래 키 관계로 직접 연결됩니다. 이 테이블들은 별을 이루는 각각의 스포크처럼 중심을 둘러싸며 구조를 완성합니다. 각 테이블은 팩트에 대한 설명적 맥락을 제공하며 ‘누가, 무엇을, 어디서, 언제’에 해당하는 질문에 답합니다. 예를 들어 하나의 차원 테이블에는 제품의 이름, 브랜드, 카테고리와 같은 모든 세부 정보가 저장되고, 다른 차원 테이블에는 일, 월, 연도 등 시간 관련 세부 정보가 저장될 수 있습니다. 중앙에서 각 지점으로 이어지는 이 단순하고 직접적인 단일 홉 연결 구조가 쿼리 로직을 크게 단순화하고 보고 성능을 가속화합니다.

스타 스키마의 구성 요소

스타 스키마 데이터 모델은 효율적인 분석 쿼리를 위해 필요한 관계를 설정하는 몇 가지 핵심 요소로 정의됩니다. 주요 구성 요소는 두 가지 유형의 테이블과 이를 연결하는 키입니다.

 

팩트 테이블

팩트 테이블은 스타 스키마의 중앙 허브로, 분석 대상이 되는 수치 데이터를 저장합니다. 여기에는 매출액, 판매 수량, 이익과 같은 정량적이고 측정 가능한 지표(일반적으로 측정값이라고 함)가 포함됩니다. 일반적으로 행 수는 많고 열 수는 비교적 적은 대규모 테이블 구조를 가지며, 특정 수준의 상세도(세밀도)에서 발생한 이벤트나 트랜잭션을 저장합니다.

팩트 테이블에는 주변의 모든 차원 테이블과 연결하는 데 필요한 모든 외래 키가 포함됩니다. 자체 기본 키는 연결된 모든 차원의 외래 키를 결합해 구성한 복합 키인 경우가 많습니다.

 

차원 테이블

차원 테이블은 스포크와 같은 역할을 하며 중앙의 팩트 테이블을 둘러싸고 팩트를 해석하는 데 필요한 맥락을 제공합니다. 이 테이블에는 팩트의 ‘누가, 무엇을, 언제, 어디서, 어떻게’에 해당하는 설명적이고 정성적인 속성을 담고 있습니다. 예를 들어 제품명, 고객 지역, 요일 등의 정보가 포함될 수 있습니다. 팩트 테이블보다 행 수는 적지만, 상세한 설명 정보를 저장하기 때문에 열 수는 더 많은 경우가 일반적입니다. 

각 차원에는 고유한 기본 키가 있으며, 이를 통해 팩트 테이블과의 관계가 설정됩니다. 

차원 테이블은 일반적으로 비정규화되어 있거나 트랜잭션 데이터베이스보다 정규화 수준이 낮아, 관련 속성이 하나의 넓은 테이블로 묶여 있습니다. 이 구조는 차원 테이블 간의 복잡한 조인을 제거해 전반적인 성능을 효율적으로 최적화합니다.

 

기본 키와 외래 키

이 관계형 개념들은 두 테이블 유형을 연결하는 작동 원리입니다. 기본 키(PK)는 테이블에서 각 행을 고유하게 식별하는 컬럼(또는 컬럼 집합)입니다. 스타 스키마에서는 모든 차원 테이블이 기본 키를 가집니다. 외래 키(FK)는 한 테이블의 컬럼으로, 다른 테이블의 기본 키를 참조합니다. 스타 스키마에서는 팩트 테이블에 차원 테이블의 기본 키를 참조하는 외래 키가 포함됩니다.

 

테이블 간 관계

스타 스키마의 관계 구조는 분석 쿼리를 최적화하도록 설계된 이 모델의 핵심적인 특징을 보여줍니다. 이와 같은 최적화는 두 가지 엄격한 규칙을 통해 구현됩니다. 먼저 모든 연결은 일대다 관계로, 설명적 차원 테이블이 ‘일’ 측(예: 하나의 고유한 고객)을 나타내고 대규모 팩트 테이블이 ‘다’ 측을 나타냅니다(해당 고객은 여러 트랜잭션에 등장). 둘째, 모든 차원 테이블은 오직 중앙 팩트 테이블에만 직접 연결되어야 합니다. 이 엄격한 방사형 패턴 덕분에 순수한 스타 스키마에서는 차원 테이블 간 연결이나 팩트 테이블 간 직접 연결이 발생하지 않습니다. 이로 인해 쿼리 로직이 단순해지며, 모든 조인이 중앙을 기준으로 수행되는 간단하고 빠른 단일 단계 조회로 보장됩니다.

스타 스키마 사례

스타 스키마 데이터 모델의 대표적인 실제 사례로는 리테일 판매 데이터 웨어하우스를 들 수 있으며, 이 환경에서는 매출, 이익, 판매량과 같은 핵심 성과 지표(KPI)를 다양한 설명적 속성별로 분석해야 합니다. 스타 스키마는 중앙에 하나의 대규모 Fact_Sales 테이블을 두고, Dim_Product, Dim_Customer, Dim_Date, Dim_Store와 같은 차원 테이블이 이를 둘러싸는 구조로 구현됩니다. Fact_Sales 테이블에는 측정값(Total_Revenue)과 주변 차원 테이블의 고유 ID에 연결되는 외래 키가 포함됩니다. 이 구조를 통해 분석가는 예를 들어 Fact_Sales 테이블을 Product 및 Store 차원 테이블에 조인해 ‘Electronics’ 카테고리가 ‘North East’ 리전에서 창출한 총 매출을 빠르게 쿼리할 수 있습니다. 이 단일 홉 조인 구조는 보고서를 신속하게 생성해 효과적인 의사 결정을 지원합니다.

스타 스키마의 장점

스타 스키마는 간소화된 비정규화 구조가 분석 목적의 데이터 검색을 최적화하는 데 중점을 두고 상당한 분석적 이점을 제공하기 때문에 데이터 웨어하우징에서 가장 널리 사용되는 데이터 모델링 기법입니다. 주요 장점은 다음과 같습니다.

 

단순성과 이해 용이성

측정 가능한 팩트와 설명용 차원이 명확히 분리된 핵심 구조는 데이터 엔지니어링 전문가를 포함한 기술 사용자뿐 아니라 비기술 사용자 입장에서도 이해하기 쉽습니다. 이처럼 투명한 설계는 데이터 분석가의 학습 곡선을 완만하게 만들고 보고서 작성 과정에서의 오류를 줄여 줍니다. 고객, 제품, 날짜와 같은 어떤 컨텍스트 데이터든 판매, 클릭과 같은 측정 이벤트에 항상 직접적이고 명확한 경로로 조인할 수 있기 때문입니다.

 

빠른 쿼리 성능

스타 스키마는 속도를 목적으로 설계되었습니다. 차원 데이터를 비정규화함으로써 이 설계는 쿼리를 실행하는 데 필요한 테이블 조인 수를 최소화합니다. 단일 속성을 찾기 위해 여러 테이블을 연쇄적으로 탐색해야 하는 고비용 방식과 달리, 분석 쿼리는 대규모 중앙 팩트 테이블에서 원하는 차원 테이블로 단 한 번의 ‘홉’만 수행하면 됩니다. 관계적 복잡성이 줄어들면서 대규모 데이터 세트에서도 훨씬 더 빠른 쿼리 실행이 가능해집니다.

 

OLAP 도구에 대한 최적화된 지원

스타 스키마의 차원 모델은 온라인 분석 처리(OLAP) 시스템과 최신 비즈니스 인텔리전스(BI) 도구에서 사용하는 논리를 그대로 반영합니다. 이러한 플랫폼은 데이터를 ‘슬라이스 앤 다이스’하도록 설계되어 있으며, 하나의 측정값을 차원별로 세분화해 분석합니다. 스타 스키마는 이미 이러한 방식으로 데이터를 구성하고 있기 때문에 보고, 대시보드 생성, 복잡한 다차원 분석에서 최적의 성능과 호환성을 제공합니다.

 

효율적인 인덱싱과 조인

스타 스키마의 일관되고 예측 가능한 구조 덕분에 데이터베이스 엔진은 차원 키를 대상으로 비트맵 인덱스와 같은 고도로 특화된 효율적인 인덱싱 기법을 활용할 수 있습니다. 이처럼 단순한 일대다 관계 구조는 해시 조인과 같은 빠르고 특화된 조인 알고리즘을 효과적으로 활용할 수 있게 하며, 데이터 규모가 증가하더라도 팩트를 해당 컨텍스트에 연결하는 과정을 빠르고 효율적으로 유지합니다.

스타 스키마의 단점

반면, 스타 스키마에는 다음과 같은 단점도 존재합니다.

 

데이터 중복

스타 스키마는 속도를 우선시하지만, 성능을 위한 핵심적인 트레이드오프로 데이터 중복이 발생합니다. 차원 테이블은 비정규화되어 있으며, 완전 정규화된 시스템에서는 여러 테이블로 나뉠 수 있는 속성을 의도적으로 하나로 결합합니다. 스타 스키마에서는 이러한 특성으로 인해 설명적 데이터가 여러 행에 걸쳐 반복되는 경우가 많습니다. 예를 들어 긴 제품 카테고리 이름이 제품 차원 테이블에서 수백만 번 반복될 수 있습니다. 이러한 중복으로 인해 스타 스키마는 더 정규화된 모델에 비해 더 많은 스토리지 공간을 필요로 합니다.

 

낮은 정규화

스타 스키마에서 정규화 수준을 낮추는 선택은(특히 차원 테이블에서) 데이터 웨어하우스를 로드하고 유지 관리하는 프로세스를 복잡하게 만들 수 있습니다. 데이터가 고도로 정규화되어 있지 않기 때문에, 업데이트와 삽입을 일관되게 처리하도록 프로세스가 엄격하게 설계되지 않으면 데이터 무결성 문제가 발생할 위험이 커집니다.

 

쓰기 중심 환경에는 비효율적

스타 스키마는 분석 쿼리와 같은 읽기 연산에만 최적화되어 있습니다. 트랜잭션 데이터베이스와 같은 쓰기 중심 환경에는 일반적으로 적합하지 않습니다. 의도적인 데이터 중복과 크고 폭넓은 차원 테이블을 관리해야 하는 특성 때문에, 대량의 신규 데이터를 로드하거나 업데이트 또는 삽입하는 작업은 고도로 정규화된 시스템에 비해 더 느리고 번거로울 수 있습니다.

스타 스키마 vs. Snowflake 스키마:주요 차이점 살펴보기

데이터 웨어하우징에서 가장 대표적인 두 가지 데이터 모델은 스타 스키마와 Snowflake 스키마입니다. 이들의 근본적인 차이는 설명적 차원 테이블에서 정규화를 어떻게 처리하느냐에 있습니다. 두 모델 중 어떤 방식을 선택할지는 분석 처리 속도를 스토리지 효율성과 유지 관리 복잡성 간의 트레이드오프를 고려해야 하는 핵심적인 데이터 조직 전략에 따라 결정됩니다. 스타 스키마는 비정규화되어 빠르지만 효율성은 낮아 애드혹 쿼리에 적합합니다. Snowflake 스키마는 정규화되어 상대적으로 느리지만 효율성이 높아 복잡한 계층적 데이터에 적합합니다. 

 

구조 및 정규화 수준

스타 스키마에서는 차원 테이블이 비정규화된 폭넓은 단일 테이블로 구성되며, 중앙의 팩트 테이블과 직접 연결됩니다. Snowflake 스키마에서는 차원이 여러 하위 차원 테이블로 정규화되어 계층 구조를 형성합니다.

 

쿼리 성능

스타 스키마는 대부분의 분석 쿼리에서 필요한 조인 수가 적고 단일 홉만으로 처리되기 때문에 더 빠릅니다. 이로 인해 고속 리포팅에 적합합니다. Snowflake 스키마는 차원 및 하위 차원 테이블 전반에 걸쳐 더 복잡한 다중 홉 조인이 필요하기 때문에 상대적으로 느립니다. 이로 인해 쿼리 오버헤드가 증가합니다. 

 

스토리지 효율

스타 스키마는 대규모 비정규화 차원 데이터에 더 많은 중복 데이터를 의도적으로 저장하기 때문에, 스토리지 효율성이 낮고 전체 스토리지 사용량이 증가합니다. Snowflake 스키마는 정규화를 통해 데이터 중복을 제거하므로 차원 테이블이 더 감소하고 전체 스토리지 사용량이 줄어들어 스토리지 효율이 높습니다.

 

사용 사례 및 비즈니스 요구 사항

스타 스키마는 단순성을 중시하는 애드혹 쿼리와 성능이 중요한 고빈도 BI 대시보드에 가장 적합합니다. Snowflake 스키마는 복잡한 계층적 데이터에 적합하며, 데이터 무결성과 중복 최소화를 최우선으로 하는 환경에 가장 적합합니다.

스타 스키마 설계 및 구현

데이터 웨어하우스를 위한 최적의 스타 스키마를 설계하고 구현하는 과정은 비즈니스에서 다룰 항목(팩트와 차원)을 식별하는 단계에서 시작하여 데이터를 물리적 데이터베이스에 적재하는 단계로 마무리되는 구조화된 프로세스를 따릅니다.

 

1. 팩트와 차원 식별

분석할 대상과 컨텍스트를 정의하는 것이 첫 번째 단계입니다. 먼저 팀은 비즈니스 프로세스와 그 세밀도를 식별해야 합니다. 즉, 하나의 행이 무엇을 의미하는지(예: 판매 주문의 단일 라인 항목)를 정의합니다. 이를 통해 데이터는 스타 스키마의 기본 구조인 팩트와 차원으로 구분됩니다. 팩트는 매출, 수량과 같은 정량적이고 측정 가능한 지표로, 중앙의 팩트 테이블을 구성합니다. 차원은 고객, 제품, 날짜와 같이 팩트를 둘러싸는 설명적이고 정성적인 맥락입니다. 

 

2. 관계 구조화

스타 스키마의 근본적인 목적은 쿼리 속도와 단순성을 중심으로 구조화되는 것입니다. 이를 위해 모델은 비정규화된 단일 차원 테이블로 차원 설계를 구성해 스타 패턴을 엄격히 따라야 합니다. 이를 위해 방사형 연결 구조가 필요하며, 모든 차원 테이블은 중앙 팩트 테이블과만 직접 연결된 일대다 관계를 유지해야 합니다. 차원 테이블은 서로 격리되어 다른 차원 테이블과의 직접 연결을 허용하지 않아야 하며, 복잡한 다중 홉 조인 경로를 제거해야 합니다.  

 

3. 키와 인덱스 정의

키와 인덱스는 테이블 간의 빠르고 정확한 연결을 보장합니다. 각 차원 테이블에는 고유하고 단순한 숫자 값인 대리 키가 기본 키(PK)로 할당되며, 예를 들면 각 고유 고객에게 임시 ID 번호를 부여하는 방식을 들 수 있습니다. 이 동일한 ID 번호는 이후 대규모 중앙 팩트 테이블에서 외래 키(FK)로 사용됩니다. 마지막으로 이러한 키에 대한 인덱스는 책의 책등과 같은 역할을 하여, 데이터베이스가 모든 레코드를 하나씩 읽지 않고도 필요한 위치로 바로 이동할 수 있게 함으로써 쿼리 속도를 크게 향상시킵니다.

 

4. 데이터 로드

데이터 로드는 비어 있는 스키마를 실제 데이터로 채우는 프로세스입니다. 데이터는 소스 시스템에서 추출된 후 정제되고 변환되어 새로운 차원 구조에 맞게 적합화됩니다. 이 과정은 흔히 추출,·변환,·로드(ETL) 또는 추출,·로드,·변환(ELT)이라고 불리며, 세심한 설계가 필요합니다. 이 설계는 차원 테이블에 의도적으로 존재하는 데이터 중복을 명확히 고려해야 하며, 업데이트나 삽입 시에도 팩트 테이블의 외래 키가 비정규화된 차원 테이블의 올바른 레코드를 정확히 참조하도록 보장해야 합니다.

스타 스키마를 사용해야 하는 경우

스타 스키마는 빠른 분석 성능을 위해 설계된 데이터 모델로, 분석 쿼리 속도를 극대화하고 비즈니스에서 즉시 활용할 수 있도록 데이터 구조를 단순화해야 하는 경우 가장 적합한 선택입니다. 대부분의 분석 리포팅과 BI 요구 사항에 최적의 기반을 제공합니다. 다음은 스타 스키마가 적합한 주요 시나리오입니다.

 

쿼리 성능과 속도가 중요한 경우

스타 스키마는 읽기 중심 환경에서 가장 효과적으로 활용되며, 최소한의 조인 수로 쿼리 실행 시간을 크게 줄일 수 있어 쿼리 응답 시간이 최우선 과제일 때 특히 적합합니다.

 

다차원 분석을 수행하는 OLAP 또는 BI 도구에 중점을 두는 경우

이 스키마의 단순한 차원 구조는 OLAP 큐브와 BI 플랫폼의 ‘슬라이스 앤 다이스’ 기능에 정확히 대응되며, 이러한 도구에 가장 높은 호환성과 효율성을 제공하는 모델입니다.

 

비기술 사용자를 위한 단순성과 이해 용이성이 중요한 경우

직관적인 허브 앤 스포크 구조는 비즈니스 분석가와 기타 비기술 이해관계자가 쉽게 이해할 수 있어, 셀프서비스 리포팅과 데이터 리터러시를 촉진합니다.

 

리포팅에서 팩트 테이블과 차원 테이블 전반에서 일관된 집계가 필요한 경우

직접적인 일대다 관계 구조는 분석 계산과 집계(예: 카테고리별 총매출)가 일관되고 신뢰성 있게 수행되도록 보장합니다.

 

데이터가 비교적 안정적이며 쓰기 작업이 최소한인 경우

비정규화된 차원으로 인해 데이터 로드와 업데이트가 더 복잡해지므로, 스타 스키마는 실시간 업데이트가 빈번한 환경보다는 배치 방식으로 데이터를 로드하고 과거 데이터를 읽는 데 중점을 둔 환경에 가장 적합합니다.

결론

스타 스키마가 차원 모델링의 표준으로 자리 잡은 데에는 분명한 이유가 있습니다. 스타 스키마는 원시 트랜잭션 데이터와 의미 있는 비즈니스 인사이트를 연결하는 핵심 아키텍처입니다. 비정규화된 차원과 중앙 팩트 테이블로 구성된 이 허브 앤 스포크 모델을 이해하고 효과적으로 구현하는 것은 성공적인 데이터 웨어하우징 전략에 필수적입니다. 잘 설계된 스타 스키마는 매우 빠른 쿼리 성능과 직관적인 리포팅을 통해 데이터 분석 역량을 크게 향상시킵니다. 궁극적으로 스타 스키마는 일관되게 집계된 지표에 대한 접근을 단순화함으로써 조직이 더 빠른 분석을 수행할 수 있도록 합니다. 이를 통해 경쟁 우위를 주도하는 보다 정보에 기반한 애자일 비즈니스 의사 결정 프로세스를 구축할 수 있습니다.

스타 스키마 관련 자주 묻는 질문

하나의 데이터 웨어하우스에서 스타 스키마와 Snowflake 스키마를 함께 사용하는 것은 하이브리드 스키마 또는 혼합 모델이라 불리며, 일반적이고 효과적인 접근 방식입니다. 이 방식은 대규모 엔터프라이즈 데이터 아키텍처에서 자주 사용되며, 데이터의 각 영역에 두 모델의 장점을 선택적으로 적용할 수 있도록 합니다. 하이브리드 스키마는 성능과 사용 편의성이 중요한 부분에는 스타 스키마를 적용하고, 차원 구조가 복잡한 영역에는 Snowflake 스키마의 스토리지 효율성과 데이터 무결성의 이점을 선택적으로 적용합니다.

스타 스키마는 데이터 웨어하우징과 분석 시스템에서 선호되는 접근 방식인 차원 모델링의 핵심 설계 패턴을 제공함으로써 데이터 모델링에 활용됩니다. 트랜잭션 시스템에는 고도로 정규화된 모델이 사용되지만, 스타 스키마는 쿼리 속도와 단순성을 위해 의도적으로 비정규화 구조를 채택합니다. 측정 가능한 이벤트를 중앙 팩트 테이블로 분리하고, 설명적 속성을 주변 차원 테이블로 분리함으로써 데이터에 대해 직관적이고 비즈니스 중심적인 관점을 제공합니다. 이 아키텍처는 여러 비즈니스 컨텍스트에 걸친 지표 집계를 포함하는 복잡한 분석 쿼리를 최소한의 빠른 조인으로 실행할 수 있도록 보장하며, 효과적인 비즈니스 인텔리전스(BI)를 위한 핵심 설계 청사진이 됩니다.

스타 스키마는 본질적으로 OLAP(온라인 분석 처리) 모델입니다. 이는 데이터 웨어하우스 환경에서의 분석 및 리포팅 워크로드를 위해 특별히 설계된 것으로, OLAP의 핵심 목적입니다. 다만, 운영 데이터베이스에서 일상적으로 실시간의 트랜잭션 처리를 위해 사용되는 OLTP(온라인 트랜잭션 처리) 모델은 아닙니다.

스타 스키마는 쓰기 성능보다 읽기 성능을 우선하고, 비정규화를 활용해 빠른 집계와 데이터의 다차원 분석을 지원함으로써 OLAP 기능을 구현합니다.