핵심 인사이트 (3줄 요약)

  1. 본질: 팩트 테이블은 **비즈니스 이벤트의 측정값(매출액·수량·클릭 수)**을 저장하는 대용량 테이블이고, 디멘전 테이블은 **분석 축(날짜·상품·고객·지역)**의 속성을 저장하는 마스터 테이블이다.
  2. 가치: "2024년 1월 서울 매장의 전자제품 매출"을 분석할 때, 팩트(매출)에 디멘전(날짜·지역·카테고리)을 **JOIN하면 자유로운 다차원 분석(OLAP Cube)**이 가능하다.
  3. 판단 포인트: 팩트 유형(Transaction·Periodic·Accumulating Snapshot)과 디멘전 변경 관리(SCD Type 1/2/3)를 정확히 구분해야 한다.

Ⅰ. 개요 및 필요성

┌───────────────────────────────────────────────────────┐
│    팩트 테이블 구조                                    │
├───────────────────────────────────────────────────────┤
│  FACT_매출                                            │
│  ┌─────────┬─────────┬─────────┬──────┬──────┐       │
│  │ 날짜KEY  │ 상품KEY  │ 고객KEY  │ 매출액│ 수량 │       │
│  ├─────────┼─────────┼─────────┼──────┼──────┤       │
│  │ 20240101│ P001    │ C100    │30000 │  2   │       │
│  │ 20240101│ P002    │ C101    │15000 │  1   │       │
│  └─────────┴─────────┴─────────┴──────┴──────┘       │
│  FK(날짜KEY) → DIM_날짜                               │
│  FK(상품KEY) → DIM_상품                               │
│  FK(고객KEY) → DIM_고객                               │
└───────────────────────────────────────────────────────┘
  • 📢 섹션 요약 비유: 팩트는 "무슨 일이 일어났는가(숫자)"이고, 디멘전은 "그 일의 맥락(누가·언제·어디서·무엇을)"이다.

Ⅱ. 아키텍처 및 핵심 원리

팩트 테이블 유형

유형설명
Transaction이벤트 발생 시마다 1행주문·클릭
Periodic Snapshot정해진 주기로 스냅샷월말 재고·잔액
Accumulating Snapshot프로세스 전체 추적주문→배송→반품

SCD (Slowly Changing Dimension) 유형

Type방법이력
Type 1덮어쓰기없음
Type 2새 행 + 유효기간보존
Type 3이전/현재 컬럼제한적
  • 📢 섹션 요약 비유: SCD Type 2는 "이사 기록"이다. 서울→부산 이사 시 서울 행(만료)과 부산 행(현재)을 모두 유지한다.

Ⅲ. 비교 및 연결

비교팩트 테이블디멘전 테이블
내용측정값 (숫자)속성 (텍스트)
행 수수억수천~수만
변경Append (추가)SCD (갱신)
FK (디멘전 참조)PK (Surrogate Key)

Ⅳ. 실무 적용 및 기술사 판단

Surrogate Key vs Natural Key

  • Natural Key (상품코드 "P001"): 비즈니스 의미 있음, 변경 가능.
  • Surrogate Key (자동증가 정수): DW 내부 전용, SCD Type 2에 필수.

Ⅴ. 기대효과 및 결론

팩트/디멘전 분리 설계는 OLAP 분석의 기본이며, 현대 클라우드 DW(BigQuery, Snowflake)에서도 이 패턴이 표준으로 사용된다. dbt(data build tool)가 팩트/디멘전 모델 자동 생성을 지원한다.


📌 관련 개념 맵

개념연결 포인트
스타 스키마팩트 중심 + 1단 디멘전 JOIN
SCD디멘전 변경 이력 관리
Surrogate KeyDW 디멘전의 내부 PK
OLAP Cube팩트+디멘전으로 구성하는 다차원 분석
dbt팩트/디멘전 모델 자동 빌드 도구

📈 관련 키워드 및 발전 흐름도

[ER 모델 3NF (OLTP)]
    │
    ▼
[Kimball 차원 모델링 (1996) — 팩트/디멘전 분리]
    │
    ▼
[SCD Type 2 (이력 보존 표준)]
    │
    ▼
[클라우드 DW (BigQuery, 2010s) — 스타 스키마 최적화]
    │
    ▼
[현재: dbt + 팩트/디멘전 자동 생성]

👶 어린이를 위한 3줄 비유 설명

  1. 팩트 테이블은 "가게 매출 일지"예요. 얼마를 벌었는지 숫자를 기록해요.
  2. 디멘전 테이블은 "누가, 언제, 어디서, 무엇을"이라는 맥락 사전이에요.
  3. 일지와 사전을 합치면 "서울 매장에서 1월에 전자제품이 얼마나 팔렸는지" 다차원 분석이 가능해요!