Power BI에서 데이터 모델링: 조인, 관계 및 스키마 설명
Source: Dev.to
데이터 모델링
데이터 모델링은 다양한 데이터 유형과 그들 사이의 관계를 분석하고 정의하는 과정입니다.
SQL 조인
표 A(왼쪽)와 표 B(오른쪽)를 데이터 집합으로 가정합니다.
Inner Join
표 A와 표 B 모두에서 일치하는 행만 반환합니다.
Left Join
왼쪽 표(A)의 모든 행과 오른쪽 표(B)에서 일치하는 행을 반환합니다. 일치하지 않는 표 B의 행은 NULL 로 표시됩니다.
Right Join
오른쪽 표(B)의 모든 행과 왼쪽 표(A)에서 일치하는 행을 반환합니다. 일치하지 않는 표 A의 행은 NULL 로 표시됩니다.
Full Outer Join
두 표 모두의 모든 행을 반환하며, 일치하지 않는 부분은 NULL 로 표시됩니다.
Left Anti Join
오른쪽 표(B)와 일치하지 않는 왼쪽 표(A)의 행을 반환합니다.
Right Anti Join
왼쪽 표(A)와 일치하지 않는 오른쪽 표(B)의 행을 반환합니다.
조인 예시

Power BI 관계
관계는 키를 사용해 테이블을 연결합니다.
One‑to‑Many (1:M)
가장 일반적인 관계로, 기본 테이블의 한 레코드가 관련 테이블의 여러 레코드와 연결됩니다.
예시: 한 환자가 여러 방문 기록을 가짐.
Many‑to‑Many (M:M)
두 테이블 모두 중복 값을 포함하여, 각 측의 여러 레코드가 서로 다수의 레코드와 연결될 수 있습니다.
예시: 환자와 질병 – 한 환자가 여러 질병을 가질 수 있고, 하나의 질병이 여러 환자에게 발생할 수 있음.
One‑to‑One (1:1)
한 테이블의 각 레코드가 다른 테이블의 정확히 하나의 레코드와 매칭됩니다.
예시: 환자와 그들의 주민등록번호(NIN).
**Cardinality(카디널리티)**는 두 테이블 사이의 관계 유형을 정의합니다(예: 1:M, 1:1, M:M).
Fact 테이블 vs. Dimension 테이블
- Fact 테이블은 방문, 판매, 사례 등 측정 가능한 정량 데이터를 포함합니다.
- Dimension 테이블은 환자 상세 정보, 위치, 시간 등 설명적 속성을 포함합니다.
스키마
데이터 모델에서 테이블이 조직되는 방식:
- Star Schema – 중앙에 Fact 테이블이 있고 그 주변에 Dimension 테이블이 배치된 형태.
- Snowflake Schema – Dimension 테이블이 더 작은 관련 테이블들로 정규화된 형태(예: location → country → region → district).
- Flat table (DLAT) – 모든 데이터가 하나의 비정규화된 테이블에 저장되는 형태.
Role‑playing dimensions
단일 Dimension 테이블이 모델 내에서 여러 역할로 사용됩니다(예: 주문일, 배송일, 청구일에 모두 사용되는 날짜 테이블).