Power BI 中的数据建模:联接、关系和模式详解
Source: Dev.to
数据建模
数据建模是分析和定义不同数据类型以及它们之间关系的过程。
SQL 连接
假设表 A(左)和表 B(右)为数据集。
内连接
仅返回表 A 和表 B 中都有匹配的行。
左连接
返回左表(A)中的所有行以及右表(B)中匹配的行。表 B 中没有匹配的行将显示为 NULL。
右连接
返回右表(B)中的所有行以及左表(A)中匹配的行。表 A 中没有匹配的行将显示为 NULL。
完全外连接
返回两个表中的所有行,在没有匹配的地方显示 NULL。
左反连接
返回左表(A)中没有在右表(B)中匹配的行。
右反连接
返回右表(B)中没有在左表(A)中匹配的行。
连接示意图

Power BI 关系
关系使用键将表连接起来。
一对多 (1:M)
最常见的关系;主表中的一条记录对应关联表中的多条记录。
示例: 一个患者有多次就诊。
多对多 (M:M)
两个表都包含重复值,允许每一侧的多条记录与另一侧的多条记录关联。
示例: 患者与疾病——一个患者可以患多种疾病,一种疾病也可以影响多位患者。
一对一 (1:1)
一个表中的每条记录恰好对应另一表中的一条记录。
示例: 患者与其国家身份证号(NIN)。
基数(Cardinality) 定义了两个表之间的关系类型(例如 1:M、1:1、M:M)。
事实表 vs. 维度表
- 事实表 包含可度量的、量化的数据,如就诊、销售或案例。
- 维度表 包含描述性属性,如患者详情、地点或时间。
模式
表在数据模型中的组织方式:
- 星型模式 – 中央事实表被维度表环绕。
- 雪花模式 – 维度表被规范化为更小的相关表(例如,地点 → 国家 → 区域 → 区县)。
- 平面表 (DLAT) – 所有数据存储在单个非规范化表中。
角色扮演维度
单个维度表在模型中被多次使用于不同角色(例如,同一个日期表用于订单日期、发货日期和发票日期)。