Loading AI tools
来自维基百科,自由的百科全书
在计算领域,星型模式是最简单的数据集市模式,也是最广泛用于开发数据仓库和维度数据集市的方法。 [1]星型模式由一个或多个事实表组成,这些事实表引用任意数量的维表。星型模式是雪花型模式的一个重要特例,对于处理更简单的查询更有效。 [2]
星型模式将业务流程数据分为事实和维度,事实保存有关业务的可测量的定量数据,维度是与事实数据相关的描述性属性。事实数据的示例包括销售价格、销售数量以及时间、距离、速度和重量测量。相关维度属性示例包括产品型号、产品颜色、产品尺寸、地理位置和销售人员姓名。
具有多个维度的星型模式有时称为蜈蚣模式。 [4]维度仅包含几个属性,虽然更易于维护,但会导致查询中包含许多表连接,并使星型模式不太易于使用。
事实表记录特定事件的测量或指标。事实表通常由数值和保存描述性信息的维度数据的外键组成。 [4]事实表被设计为低水平的统一细节(称为“粒度”或“粒度”),这意味着事实可以在非常原子的级别上记录事件。随着时间的推移,这可能会导致事实表中积累大量记录。事实表定义为以下三种类型之一:
事实表通常分配一个代理键以确保每一行都可以唯一标识。该键是一个简单的主键。
与事实表相比,维表通常具有相对较少数量的记录,但每条记录可能具有大量属性来描述事实数据。维度可以定义多种特征,但维表定义的一些最常见的属性包括:
维表通常分配一个代理主键,通常是单列整数数据类型,映射到形成自然键的维度属性的组合。
星型模式是非规范化的,这意味着在星型模式设计和实现期间,放宽了应用于事务关系数据库的典型规范化规则。星型模式非规范化的好处是:
比如一个来自连锁店的销售数据库,按日期、商店和产品分类。右侧的架构图像是雪花模式文章中提供的示例架构的星型架构版本。
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
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.