Kimball 방법론, 컨포밍 디멘션, 브릿지 테이블
50 Data Modeling Interview Questions for DEs (2026 Guide) — DataVidhya blog Star Schema & Dimensional Modeling, Q15-16, 19-20 (pp.6-7)
이 모듈을 다 읽으면
- Kimball 접근법의 특징과 컨포밍 디멘션이 필요한 이유를 설명할 수 있다
- 브릿지 테이블로 N:M 관계를 해소하는 방법과 이중 계산 위험을 설명할 수 있다
- 팩트리스 팩트 테이블의 두 가지 유형(이벤트 추적형, 커버리지형)을 구분할 수 있다
Kimball의 상향식(bottom-up) 웨어하우스 구축 방식, 여러 마트에 걸쳐 일관성을 보장하는 컨포밍 디멘션, N:M 관계를 푸는 브릿지 테이블, 그리고 숫자 없이 관계만 기록하는 팩트리스 팩트 테이블을 다룬다.
Kimball 접근법과 컨포밍 디멘션
Kimball 접근법은 차원 모델(스타 스키마)을 이용해 비즈니스 프로세스별 데이터 마트를 상향식(bottom-up)으로 구축한다. 각 마트는 판매, 재고, 배송처럼 단일 비즈니스 프로세스를 중심으로 설계되며, 여러 마트에 걸친 일관성을 위해 컨포밍 디멘션(conformed dimension)을 사용한다.
컨포밍 디멘션은 여러 팩트 테이블이나 데이터 마트에서 동일하게 공유되는 차원 테이블이다. 예를 들어 dim_customer 테이블은 판매 마트와 지원 마트 모두에서 동일한 키, 속성, 정의를 가져야 한다. 컨포밍 디멘션이 없으면 '진실의 두 가지 버전'이 생긴다 — 판매팀은 고객이 5만 명이라고 하는데 지원팀은 4만 8천 명이라고 말하는 상황이다. 컨포밍 디멘션에는 소유권과 변경 관리 프로세스가 필요하다는 점에서 이는 거버넌스의 문제이기도 하다(18~19번 모듈 참고).
핵심 포인트
- Kimball 접근법은 비즈니스 프로세스별 스타 스키마 마트를 상향식으로 구축한다.
- 컨포밍 디멘션은 여러 마트에서 동일한 키·속성·정의를 공유하는 차원 테이블로, 없으면 팀마다 다른 숫자가 나오는 '진실의 두 버전' 문제가 생긴다.
브릿지 테이블 — N:M 관계 해소
브릿지 테이블(bridge table, 팩트리스 팩트 테이블 또는 연관 엔티티라고도 부름)은 N:M 관계를 해소하기 위해 팩트와 차원 사이에 위치한다. 예를 들어 한 환자가 여러 진단을 받을 수 있고 한 진단이 여러 환자에게 적용될 수 있다면, patient_key와 diagnosis_key를 가진 브릿지 테이블을 만든다. 브릿지 테이블은 N:M 관계를 두 개의 1:N 관계로 분해해 준다.
여기서 반드시 주의할 점은 이중 계산(double-counting) 문제다. 한 환자가 진단 3개를 가지고 있다면, 이 환자 관련 지표를 단순 집계하면 3배로 부풀려질 수 있다. 이를 막으려면 가중치(weighting factor) 컬럼을 두거나 신중한 집계 로직이 필요하다.
핵심 포인트
- 브릿지 테이블은 팩트와 차원 사이에서 N:M 관계를 두 개의 1:N 관계로 분해한다.
- 브릿지 테이블을 거친 집계는 이중 계산 위험이 있으므로 가중치 컬럼이나 신중한 집계 로직이 필요하다.
팩트리스 팩트 테이블
팩트리스 팩트 테이블(factless fact table)은 숫자 측정값 없이 차원 키만 담는 테이블로, '학생 X가 날짜 Z에 수업 Y에 출석했다'처럼 이벤트나 조건을 기록한다. 두 가지 유형이 있다. 첫째는 이벤트 추적형(event-tracking) — 실제로 무언가가 일어났다는 사실을 기록한다. 둘째는 커버리지형(coverage) — 무엇이 일어날 수 있었는지를 기록한다(예: 어떤 매장에서 어떤 제품이 프로모션 중이었는지). 커버리지형이 더 강력한 이유는 '무엇이 일어나지 않았는지' 분석을 가능하게 하기 때문이다 — 프로모션 중이었지만 판매가 0건이었던 제품을 찾는 것은 거래 데이터만으로는 불가능하고, 커버리지 팩트리스 팩트를 실제 판매 팩트와 LEFT JOIN해야만 알 수 있다.
핵심 포인트
- 팩트리스 팩트 테이블은 숫자 측정값 없이 차원 키만으로 이벤트나 조건을 기록한다.
- 이벤트 추적형은 실제 발생한 일을, 커버리지형은 일어날 수 있었던 조건을 기록한다.
- 커버리지형 팩트리스 팩트를 실제 판매와 LEFT JOIN하면 '판매 0건 프로모션'처럼 부재(absence)를 분석할 수 있다.