728x90
반응형
데이터베이스에서 Fact 테이블과 Dimension 테이블은 데이터 웨어하우스(Data Warehouse)에서 자주 사용되는 개념입니다.
✅ 1. Fact 테이블 (사실 테이블)
"측정값(수치 데이터)"을 저장하는 테이블
일반적으로 트랜잭션 데이터(판매, 클릭 수, 매출 등) 를 포함
📌 특징
- 주로 숫자 데이터(측정값, 집계 대상) 를 저장
- Dimension 테이블의 키(FK)를 포함하여 관계를 형성
- 대량의 데이터를 저장하는 경우가 많음
📌 예제 (판매 데이터)
주문ID | 고객ID | 제품ID | 판매액 | 수량 | 날짜ID |
1001 | C001 | P001 | 50,000 | 2 | 20240301 |
1002 | C002 | P003 | 120,000 | 1 | 20240302 |
1003 | C003 | P002 | 80,000 | 4 | 20240303 |
📌 Fact 테이블의 핵심 데이터:
✅ 판매액, 수량 → 숫자로 측정 가능한 측정값 (Measure)
✅ 고객ID, 제품ID, 날짜ID → Dimension 테이블을 참조하는 외래키 (FK)
✅ 2. Dimension 테이블 (차원 테이블)
"설명(속성 정보)"을 저장하는 테이블
예: 고객 정보, 제품 정보, 시간 정보 등
📌 특징
- Fact 테이블의 수치 데이터(Measure)와 연결
- 보통 텍스트 또는 범주형 데이터(이름, 지역, 카테고리 등) 저장
- 크기가 상대적으로 작으며, Fact 테이블보다 변화가 적음
📌 예제 (고객 정보)
고객ID | 고객명 | 성별 | 지역 |
C001 | 홍길동 | 남 | 서울 |
C002 | 김영희 | 여 | 부산 |
C003 | 이철수 | 남 | 대전 |
📌 Dimension 테이블의 핵심 데이터:
✅ 고객명, 성별, 지역 → 고객을 설명하는 속성(Attribute)
🚀 Fact 테이블 vs. Dimension 테이블 비교
구분 | Fact 테이블 | Dimension 테이블 |
주요 데이터 | 수치 데이터 (매출, 주문 수량 등) | 설명 데이터 (제품명, 고객명 등) |
키(FK 포함 여부) | 외래키(FK) 포함 | 기본키(PK) 사용 |
데이터 크기 | 크고 많음 (트랜잭션 데이터) | 상대적으로 작음 (설명 데이터) |
예시 | 주문, 매출, 클릭 데이터 | 고객 정보, 제품 정보, 날짜 정보 |
✅ 3. Fact & Dimension 테이블 관계도 (스타 스키마)
아래와 같은 스타 스키마(Star Schema) 구조를 가지는 경우가 많습니다.
[고객 테이블] [제품 테이블] [날짜 테이블] \ | / \ | / [🔹Fact 테이블🔹]
✔ Fact 테이블(중앙) → 트랜잭션 데이터 저장
✔ Dimension 테이블(주변) → 속성 정보 제공
👉 결론:
- Fact 테이블은 숫자로 분석할 데이터를 저장 (매출, 수량 등)
- Dimension 테이블은 Fact 테이블의 데이터를 설명하는 속성 (고객, 제품, 시간 등)
- 데이터 분석(OLAP, BI 도구)에서 Fact 테이블의 데이터를 Dimension 테이블 기준으로 그룹화 및 집계하여 사용
📊 쉽게 말해, "Fact 테이블 = 수치, Dimension 테이블 = 설명"!
300x250
반응형