在计算领域，**星型模式**是最简单的数据集市模式，也是最广泛用于开发数据仓库和维度数据集市的方法。 星型模式由一个或多个事实表（英语：）组成，这些事实表引用任意数量的维表（英语：）。星型模式是雪花型模式（英语：）的一个重要特例，对于处理更简单的查询更有效。 

星型模式的名称来源于物理模型（英语：）与星形的相似性。事实表位于中心，维表周围代表星形的点。

模型
--

星型模式将业务流程数据分为事实和维度，事实保存有关业务的可测量的定量数据，维度是与事实数据相关的描述性属性。事实数据的示例包括销售价格、销售数量以及时间、距离、速度和重量测量。相关维度属性示例包括产品型号、产品颜色、产品尺寸、地理位置和销售人员姓名。

具有多个维度的星型模式有时称为*蜈蚣模式*。 维度仅包含几个属性，虽然更易于维护，但会导致查询中包含许多表连接，并使星型模式不太易于使用。

### 事实表

事实表记录特定事件的测量或指标。事实表通常由数值和保存描述性信息的维度数据的外键组成。 事实表被设计为低水平的统一细节（称为"粒度"或"粒度"），这意味着事实可以在非常原子的级别上记录事件。随着时间的推移，这可能会导致事实表中积累大量记录。事实表定义为以下三种类型之一：

* 交易事实表记录有关特定事件（例如销售事件）的事实
* 快照事实表记录给定时间点的事实（例如，月底的帐户详细信息）
* 累积快照表记录给定时间点的聚合事实（例如，产品本月至今的总销售额）

事实表通常分配一个代理键以确保每一行都可以唯一标识。该键是一个简单的主键。

### 维表

与事实表相比，维表通常具有相对较少数量的记录，但每条记录可能具有大量属性来描述事实数据。维度可以定义多种特征，但维表定义的一些最常见的属性包括：

* 时间维度表描述了星型模式中记录事件的最低时间粒度级别的时间
* 地理维度表描述位置数据，例如国家、州或城市
* 产品尺寸表描述产品
* 员工维度表描述员工，例如销售人员
* 范围维度表描述时间、美元价值或其他可测量数量的范围，以简化报告

维表通常分配一个代理主键，通常是单列整数数据类型，映射到形成自然键的维度属性的组合。

好处
--

星型模式是非规范化的，这意味着在星型模式设计和实现期间，放宽了应用于事务关系数据库的典型规范化规则。星型模式非规范化的好处是：

* 更简单的查询 - 星型模式连接逻辑通常比从高度规范化的事务模式检索数据所需的连接逻辑更简单。
* 简化的业务报告逻辑——与高度规范化的模式相比，星型模式简化了常见的业务报告逻辑，例如同期报告和当前报告。
* 查询性能提升——与高度标准化的模式相比，星型模式可以为只读报告应用程序提供性能增强。
* 快速聚合——针对星型模式的更简单的查询可以提高聚合操作的性能。
* 提供多维数据集——所有OLAP系统都使用星型模式来高效构建专有的OLAP 多维数据集；事实上，大多数主要的 OLAP 系统都提供ROLAP操作模式，可以直接使用星型模式作为源，而无需构建专有的多维数据集结构。

例子
--

示例查询使用的星型模式。
比如一个来自连锁店的销售数据库，按日期、商店和产品分类。右侧的架构图像是雪花模式文章中提供的示例架构的星型架构版本。

`Fact_Sales`是事实表，有三个维度表`Dim_Date` 、 `Dim_Store`和`Dim_Product` 。

每个维表的`Id`列上都有一个主键，与`Fact_Sales`表的三列（复合）主键（ `Date_Id` 、 `Store_Id` 、 `Product_Id` ）的列之一（在示例架构中视为行）相关。本示例中事实表的非主键`Units_Sold`列表示可用于计算和分析的度量或指标。维表的非主键列表示维度的附加属性（例如`Dim_Date`维度的`Year` ）。

例如，以下查询回答 1997 年每个品牌和国家/地区销售了多少台电视机：

```
SELECT
 P.Brand,
 S.Country AS Countries,
 SUM(F.Units\_Sold)

FROM Fact\_Sales F
INNER JOIN Dim\_Date D ON (F.Date\_Id = D.Id)
INNER JOIN Dim\_Store S ON (F.Store\_Id = S.Id)
INNER JOIN Dim\_Product P ON (F.Product\_Id = P.Id)

WHERE D.Year = 1997 AND P.Product\_Category = 'tv'

GROUP BY
 P.Brand,
 S.Country

```

相关资料
----

* 数据仓库
* 在线分析处理
* 反向星型模式
* 雪花模式
* 事实星座
* 活动图式

外部链接
----

* 星星：查询优化模式的模式语言
* 事实星座图


|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| * 
* 论
* 编
数据仓库 |
| --- |
|  |
| 

|  创建数据仓库 |
| --- |
|  |
| 

|  |  |
| --- | --- |
| Concepts | 
* 数据库
* Dimension
* Dimensional modeling
* Fact
* 線上分析處理
* 星型模式
* Snowflake schema
* Reverse star schema
* Aggregate

 |
|  |
| Variants | 
* Anchor Modeling
* 列式数据库
* Data vault modeling
* HOLAP
* MOLAP
* ROLAP
* ODS

 |
|  |
| Elements | 
* 数据字典/元数据
* 資料超市
* 第六范式
* 代理鍵

 |
|  |
| Fact | 
* Fact table
* Early-arriving fact
* Measure

 |
|  |
| Dimension | 
* Dimension table
* Degenerate
* Slowly changing

 |
|  |
| Filling | 
* ETL
* Extract
* Transform
* Load

 |

 |

 |
|  |
| 

|  使用数据仓库 |
| --- |
|  |
| 

|  |  |
| --- | --- |
| Concepts | 
* 商业智能
* Dashboard
* 数据挖掘
* 决策支持系统
* OLAP cube
* Data warehouse automation

 |
|  |
| Languages | 
* Data Mining Extensions (DMX)
* MultiDimensional eXpressions (MDX)
* XML for Analysis (XMLA)

 |
|  |
| Tools | 
* Business intelligence software
* Reporting software
* 電子試算表

 |

 |

 |

 |