星和雪花图式

Anonim

数据仓库是一种系统,用于在中央存储库中存储和组织数据,包括来自其他来源的数据。它是关系数据库模型中商业智能的核心概念,它采用分析技术将业务数据集成到中央数据库中。

数据仓库中使用了两种常见的架构模型:

  • 星空计划
  • 雪花图式

两者都是常见的多维数据库模型,用于满足实际数据仓库中用于分析目的的大型数据库的需求。

我们提出了两者之间无偏见的比较,以便更好地理解哪一个比另一个好。

什么是Star Schema?

它是用于开发数据仓库和数据集市的最常见且被广泛接受的架构模型,其中数据被组织成事实和维度。它是最简单的架构模型,其中一个事实表用于引用多个维度表,模仿星形图案。

顾名思义,该图类似于一个明星,其中心事实表位于中心,多个维度表从中辐射出来,创造出类似星星的模式。

它也称为Star Join Schema,它将维度的所有属性存储到一个非规范化事实表中,以快速浏览大型多维数据集,从而解决快速查询响应时间问题。

什么是雪花架构?

它是星型模式的扩展,增加了功能。与星型模式不同,雪花模式中的维度表被规范化为多个相关表。

体系结构模型表示多对一关系层次中的表的逻辑排列,其中多个维度表被标准化为子维度表,类似于雪花状模式,因此得名。

它是星型模式的更复杂版本,维度表之间的连接更多,这导致获取数据的处理时间变慢,这意味着查询响应时间变慢。它最大限度地减少了数据冗余,从而提高了查询性能。

星与雪花图式的区别

星和雪花架构的建筑

在关系数据库中,星型模式是用于开发数据仓库和多维数据集市的最简单的架构模型。顾名思义,该模型类似于一个从中心辐射的点的星形,意味着事实表是中心,点是维度表。与其他维度模型一样,它由事实和维度形式的数据组成。另一方面,雪花模式是更复杂的体系结构模型,它指的是具有雪花形式的表的逻辑排列的多维数据库。

尺寸表

雪花模式与星型模式非常相似,除了它可以有多个维度表,这些维度表进一步标准化为多个相关表,称为子维度表。它代表了多层次的关系,分为雪花图案。但是,星型模式将维度的所有相关属性存储到一个非规范化维度表中,这使得它易于理解和处理更简单的查询。

星和雪花图式的商业模式

维度表不能在关系数据库模型中包含重复行,因为它可能会在检索中产生歧义。每个表都应该有一个列或一组称为主键的列,它们唯一地标识所有表记录。外键是一列或一组列,它们提供两个表之间的链接。在星型模式中,每个维度表都有一个主键,该主键与事实表中的外键相关。雪花模式中的业务层次结构由维度表之间的主键/外键关系表示。

星形和雪花模式中的数据完整性

两个关系数据库模型之间的关键区别在于规范化。星型模式中的维度表未规范化,这意味着业务模型将使用相对更多的空间来存储维度表,而更多空间意味着更多冗余记录最终会导致不一致。另一方面,雪花模式可以最大限度地减少数据冗余,因为维度表是标准化的,它可以解决更少的冗余记录。业务层次结构及其维度通过引用完整性保留,意味着关系可以在数据仓库中独立更新。

查询性能

与具有多个连接的雪花模式相比,星型模式在维度表和事实表之间具有更少的连接,这些连接考虑了较少的查询复杂性。由于星型模式中的维度通过中央事实表链接,因此它具有明确的连接路径,这意味着快速的查询响应时间和快速响应时间意味着更好的性能。 Snowflake架构具有更高的连接数,因此查询响应时间更长,从而导致更复杂的查询,最终会影响性能。

Star Schema vs. Snowflake Schema:比较图表

星辰雪花图式概述

两者都是用于开发数据库仓库和数据集市的最常见和广泛采用的架构模型。但是,每种商业模式都有其公平的利弊。虽然星型模式是用于将数据组织成事实和维度的最简单的多维模型,但它非常适合开发涉及不太复杂关系的数据集市。 Snowflake模式是多维数据库中表的逻辑表示,其中维存储在子维表中。两者之间的主要区别是规范化。雪花模式中的维度表完全标准化为多个查找表,而在星型模式中,维度表被非规范化为一个中心事实表。