💡 핵심 인사이트
빅데이터를 분석하는 데이터 웨어하우스(DW) 환경에서 '팩트 테이블'은 매일 쏟아지는 영수증의 합계 금액(숫자)을 끝없이 쌓아두는 거대한 댐이며, '차원 테이블'은 그 숫자를 "어느 시간대? 어느 지점? 어떤 고객?"이라는 다채로운 필터(돋보기)를 끼워 해석할 수 있게 해주는 기준표입니다.
Ⅰ. 팩트 테이블 (Fact Table) - "숫자와 외래키의 집합소"
비즈니스에서 실제로 일어난 하나의 거대한 '사건(Event, 예: 물건 결제, 주식 거래)' 그 자체를 측정하여 기록한 중앙 장부입니다. 스타 스키마의 한가운데 심장에 위치합니다.
팩트 테이블의 주요 특징
- 측정값 (Measure / Fact): 분석의 대상이 되는 연산(SUM, AVG) 가능한 순수한 숫자 데이터들입니다.
- 예:
판매 수량(3개),총매출액(50,000원),할인액(5,000원).
- 예:
- 외래 키 (Foreign Keys): 주변에 빙 둘러싸인 수많은 차원 테이블들과 조인(연결)하기 위해, 그 차원들의 기본 키(PK) 번호들을 왕창 끌어안고 있습니다.
- 예:
날짜_ID(20260401),매장_ID(S001),고객_ID(C999).
- 예:
- 거대한 크기: 회사에서 일어나는 모든 영수증 1건이 1줄로 기록되므로, 로우(Row) 개수가 수억 건에서 수십억 건에 달하는 미친듯한 덩치를 자랑합니다.
Ⅱ. 차원 테이블 (Dimension Table) - "분석의 돋보기"
팩트 테이블에 적힌 숫자 '50,000원'이 도대체 무슨 의미인지 설명해 주는 해설집입니다. 보통 팩트 테이블의 'Who, What, Where, When'을 담당합니다.
차원 테이블의 주요 특징
- 서술적(Descriptive) 데이터: 숫자가 아닌 문자열 텍스트 위주입니다.
- 예:
매장 차원 테이블에는매장_ID,매장명(강남점),지점장_이름(김철수),매장_평수(50평)등의 묘사 정보가 들어갑니다.
- 예:
- 필터링과 그룹핑의 기준: 경영진이 "강남점(매장 차원)에서 30대 여성(고객 차원)이 주말(시간 차원)에 산 매출액을 합쳐라!"라고 쿼리(GROUP BY, WHERE)를 칠 때 쓰이는 잣대(기준) 역할을 합니다.
- 작은 크기와 비정규화: 팩트 테이블에 비하면 데이터 건수가 매우 적습니다(고객이 아무리 많아도 수천만 명 수준). 성능(속도)을 위해 중복을 허용하는 비정규화 상태로 옆으로 뚱뚱하게 놔둡니다.
Ⅲ. 팩트와 차원의 상호 작용 (조인의 마법)
이 둘이 결합(조인)될 때 비로소 진정한 비즈니스 통찰(Insight)이 폭발합니다.
- 시나리오: 팩트 테이블(영수증 10억 건)에
[20240401, P001, C001, M001, 수량 3개, 매출 3만원]이라는 무미건조한 데이터가 쌓여 있습니다. - 분석가의 쿼리: 이 팩트 테이블을 4개의 차원 테이블(시간, 상품, 고객, 매장)과 조인합니다.
- 변환된 결과: "아하! **2024년 4월 1일 봄(시간 차원)**에, **신상품 원피스(상품 차원)**를, **20대 VIP 고객(고객 차원)**이, **판교 팝업 스토어(매장 차원)**에서 3개(3만 원)나 샀구나!"라는 입체적이고 완벽한 마케팅 보고서가 1초 만에 튀어나오게 됩니다.
📢 섹션 요약 비유: 팩트 테이블은 천문학자가 밤하늘을 보며 기록한 **'별빛의 밝기(Lux)와 거리(숫자 데이터)를 적어둔 빽빽한 관측 수첩'**입니다. 차원 테이블은 그 숫자들이 도대체 무슨 별자리인지 알려주는 **'적도좌표계, 계절, 망원경 배율이 적혀있는 해설 필터 렌즈'**입니다. 수첩(팩트)의 숫자만 보면 아무것도 알 수 없지만, 이 4개의 렌즈(차원)를 눈에 겹쳐 끼고 하늘을 보면 선명한 오리온자리가 입체적으로 보이게 됩니다.