---
url: /v6.2/datarelation-source.md
---
# 维度建模简介

维度建模的理论由 Ralph Kimball 提出，他提出将数据仓库中的表划分为事实表和维度表两种类型。维度建模是面向分析场景而生，针对分析场景构建数仓模型；重点关注快速、灵活的解决分析需求，同时能够提供大规模数据的快速响应性能。

“事实表”，用来存储事实的度量（measure）及指向各个维的外键值。“维度表”，简称维表，用来保存该维的元数据，即维的描述信息，包括维的层次及成员类别等。简单的说，维度表就是你观察该事物的角度，事实表就是你要关注的内容。

## 维度建模的三种模式

### 星型模型

星型模型（Star Schema）由一个中心主题表和多个维度表组成，中心主题表也称为事实表，维度表用来描述事实表的属性。星型模型的中心思想是：所有的维度属性都应该直接连接到事实表，而不应该通过其他维度表来连接。

![](/images/data-relation/dim-model-001.png)

### 雪花模型

雪花模型（Snowflake Schema）是在星型模型基础上将维表再次扩展，每个维表可以继续向外连接多个子维表。

![](/images/data-relation/dim-model-002.png)

### 星座模型

星座模型（Fact Constellations Schema）也是星型模型的扩展，存在多个事实表且可共用同一个维表。这种模型往往应用于数据关系比星型模型和雪花模型更复杂的场合。事实星座模型需要多个事实表共享维度表，因而可以视为星形模型的集合，故亦被称为星系模型。

![](/images/data-relation/dim-model-003.png)
