755 words
4 minutes
[DW]Dimensional Modeling: Basics

Overview#

차원모델링의 기초 개념에 대해 정리한다.

1. 차원 모델링#

차원 모델링(Dimensional Modeling)은 Ralph Kimball이 제시한 데이터 웨어하우스 설계 방법론으로, 비즈니스 유저가 이해하기 쉽고 분석하기 편한 구조로 데이터를 구성하는 기법.

  • 팩트 테이블 (Fact Table) : 비즈니스 프로세스의 측정 가능한 수치 데이터를 저장하는 테이블

  • 차원 테이블 (Dimension Table) : 팩트의 맥락을 제공하는 설명적 속성들을 저장.

    1. 데이터 필터 및 분류의 기준을 제공. 쿼리 필터링,제한, 그룹화에 사용
    2. 분석과 리포팅을 위한 사용자 친화적인 라벨 제공
-- fact_sales
CREATE TABLE fact_sales (
date_key INT,
product_key INT,
customer_key INT,
sales_amount DECIMAL(10,2),
quantity INT
);
-- dim_product
CREATE TABLE dim_product (
product_key INT PRIMARY KEY,
product_name VARCHAR(100),
category VARCHAR(50),
brand VARCHAR(50)
);
## 2. 차원 모델링 설계 프로세스
### 1단계: 비즈니스 프로세스 선택
- 비즈니스에서 측정하고자 하는 활동을 식별
```python
# retail business_processes
business_processes = [
"판매 (Sales)",
"재고 관리 (Inventory)",
"구매 (Procurement)",
"고객 서비스 (Customer Service)"
]

2단계: 그레인(Grain) 선언#

  • 팩트 테이블의 각 행이 나타내는 세부 수준을 정의
  • grain은 fact table의 하나의 row가 나타내는 정보의 세부 수준을 정의한다.
# 판매 팩트의 그레인 예제
grain_definition = {
"level": "각각의 개별 판매 거래 라인 아이템",
"time_grain": "일별",
"description": "특정 날짜에 특정 고객이 특정 제품을 구매한 각 라인"
}
### 3단계: 차원 식별
- 그레인에 맞는 차원들을 식별
```sql
-- 판매 팩트에 대한 차원
-- 시간 차원: 언제 판매가 발생한 시점
-- 고객 차원: 구매한 고객의 특성
-- 제품 차원: 제품의 설명적 속성들
-- 매장 차원: 매장의 설명적 속성들

4단계: 팩트 식별#

  • 측정하고자 하는 수치들을 결정
facts = {
"additive_facts": ["sales_amount", "quantity", "cost"],
"semi_additive_facts": ["inventory_balance"], # 시간에 대해서만 더할 수 없음
"non_additive_facts": ["unit_price", "profit_margin"] # 더할 수 없음
}
---
**_Concept_**
- **차원모델링** : 비즈니스 유저 친화적인 데이터 웨어하우스 설계 방법론
- **팩트테이블** : 비즈니스 프로세스와 관련한 측정값을 저장 sales, inventory 등
- **차원테이블** : 팩트의 맥락을 제공하는 설명적 속성들을 저장하는 테이블. 핵심 역할은 데이터 필터 및 분류, 라벨링 제공
- **그레인** : 팩트 테이블의 각 로우가 나타내는 정보의 세부수준에 대한 명세
- **스타스키마** : 중앙 팩트 테이블과 비정규화된 차원 테이블로 구성된 구조 기본적으로 OLAP에서 사용. 차원 테이블이 비정규화된 이유는 조인 회수를 줄여서 조회 속도를 빠르게 하기 위함.
---
## References
- https://learn.microsoft.com/ko-kr/fabric/data-warehouse/dimensional-modeling-dimension-tables
- https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/grain/
[DW]Dimensional Modeling: Basics
https://yjinheon.netlify.app/posts/02de/data-warehouse/de-dw-01_dm_basics/
Author
Datamind
Published at
2025-08-05
License
CC BY-NC-SA 4.0