了解主要模式:星型模式 vs 雪花模式
多维模式旨在构建数据仓库系统模型。
这些模式的主要目的是满足用于分析目的(OLAP)的大型数据库的需求。
这种方法用于对数据库中的数据进行良好的排列,从而使顾客能够提出与业务或市场趋势相关的问题。
此外,多维模式以数据立方体的形式表示数据,使得可以从不同的角度和维度进行查看和分析。
它有三种类型,但很多人在星型模式和雪花模式之间感到困惑。因此,对于他们来说选择合适的模式变得困难。
如果你是其中之一,让我们讨论一下星型模式和雪花模式之间的区别,从定义开始了解它们的优势、挑战、图表和特点。
什么是多维模式?
模式是指完整数据库和数据集市的逻辑描述。它包括记录的名称和描述,包括聚合和关联数据项。
数据库通常使用关系模型来进行描述,而多维模式使用模式模型。
多维模式可以用数据挖掘查询语言(DMQL)来定义。
为了定义数据集市和数据仓库,它使用两个基本概念 – 维度定义和立方体定义。
多维模式使用不同类型的模式模型。它们包括:
- 星型模式
- 雪花模式
- 星系模式
让我们讨论一下星型模式和雪花模式是什么。
星型模式 vs. 雪花模式:它们是什么?
什么是星型模式?
星型模式是一种架构化的数据仓库和数据模型,需要一个单独的事实表来存储度量和事务数据。它还使用不同的较小的维度表来保存有关业务数据的属性。
它的命名是根据其结构而来的。像一个星星一样,事实表位于图表的中心,小的维度表像分支一样坐落在中心表旁边,形成一个类似星星的结构。
每个星型模式由一个单独的事实表和多个小的维度表组成。事实表包括需要分析的特定可测量数据,例如已记录的性能、销售记录等。它可以是某个时间点的历史数据或交易性的数据。
此外,星型模式是数据仓库和数据集市模式中最简单和最基本的模式。它可以有效处理基本查询。星型模式通常支持商业智能、自由查询、分析应用和在线分析处理立方体。
星型模式还支持对多个记录进行计数、平均值、总和和其他聚合操作。用户可以通过维度轻松筛选和分组聚合结果。例如,用户可以生成类似于“查找所有6月份的销售记录”或“分析2022年XYZ办公室的总收入”的查询。
什么是雪花模式?
雪花模式是一种多维数据模型,也可以被称为星型模式的扩展。这是因为雪花模式中的维度表可以分解为子维度。
如果一个或多个维度表不直接链接到事实表,而是通过其他维度表连接,那么模式就是雪花形状。
雪花化是将星型模式中的维度表标准化的现象。当所有维度表都被标准化时,所得到的结构类似于一个中间包含事实表的雪花结构。
简单来说,雪花模式由模型中间的一个事实表组成,该事实表与维度表相连,这些维度表又与其他维度表相连。这种模式用于提高查询性能。
该模型用于在复杂的关系和维度之间进行快速、灵活的查询。对于各个维度级别之间的一对多和多对多关系非常有帮助。
由于更严格地遵循更多的规范化标准,您将获得更高的存储效率。但是,与星型模式等非规范化数据模型相比,数据冗余可以忽略不计,性能较低。
星型模式与雪花模式:它们是如何工作的?
星型模式是如何工作的?
星型模型中间的事实表存储两种类型的信息-数字和维度属性值。让我们用销售数据库的例子来理解它们。
- 数字值对于每一行和数据点都是唯一的。这与存储在另一行中的数据没有关联或联系。这些是关于给定交易的事实,如总金额、订单数量、确切时间、净利润、订单ID等。
- 维度属性值不直接存储任何数据,而是为维度表中的行存储外键值。中心表中的不同行将引用此信息,如数据值、销售员工ID、分支机构ID、产品ID等。
维度表始终存储来自事实表的辅助信息。每个维度表与事实表的列及维度值相关,并存储有关该值的附加数据。
示例:员工维度表使用员工ID作为键值,还包含姓名、性别、地址和电话号码等信息。同样,产品维度表存储包括产品名称、颜色、上市日期、制造成本等信息。
雪花模式是如何工作的?
想象一个雪花设计,有一个中心盒子和通过该盒子与不同点连接的不同连接。为了维护数据集市和数据仓库,雪花模式派上用场。
它与星型模式类似,但有微小的变化。与星型模式不同,雪花模式扩展了其子维度表,这些子表与维度表相连。
此模型的主要目的是规范化星型模型的非规范化信息。这样,它可以解决与星型模式相关的常见问题。
在模式的核心,您将找到与维度表中包含的信息相关联的事实表。这些表再次向外辐射到具有描述维度表信息的详细信息的子维度表。
示例:雪花模式包含销售事实表和存储位置、线路、类别、产品和时间维度表。市场维度由两个维度表组成,以店铺为主维度表,店铺位置为子维度表。产品维度有三个子维度表,分别提到产品、线路和类别子维度表。
星型模式与雪花模式:特点
星型模式的特点
- 星型模式可以从规范化数据中过滤数据,以满足数据仓库的需求。每个事实表的关联信息生成唯一键,用于标识每一行。
- 它提供快速计算和聚合,例如每个月末的收入和总销售额。这些详细信息可以根据需要通过编写合适的查询进行过滤。
- 它是包含有限数量值的事件测量,由外键组成。这些键与维度表相关联。有多种类型的事实表,以原子级别的值构建。
- 交易事实表包含特定事件的数据,例如销售和假期。
- 记录事实包括给定期间的账户信息,例如年底或每个季度。
- 维度表提供有关中心表中的属性或记录的详细数据。
- 用户可以根据需要自己设计表。
- 您可以使用星型模式累积快照表。
雪花模式的特点
- 雪花模式需要较小的磁盘空间。
- 该模型由于具有单独和主要维度表而易于实施。
- 维度表至少包含两个属性,以定义多个粒度的信息。
- 由于存在多个表,性能较星型模式较低。
- 雪花模式具有最高的数据完整性水平,并且由于规范化而具有较低的冗余。
星型模式与雪花模式:优势
星型模式的优势
- 星型模式是数据集市模式中最简单的方式。
- 它具有简单的报告逻辑,该逻辑是动态隐含的。
- 它使用通过在线事务处理应用的馈送立方体来使立方体高效且有效工作。
- 星型模式由简单的逻辑和易于从事务处理中提取的查询组成。
- 它为报告应用程序提供了改进的性能。
- 它用于控制数据的快速恢复。
- 过滤和选择的信息可以轻松应用于不同的情况。
雪花模式的优势
- 雪花模式用于提高查询性能,因为它具有较少的要求。
- 它在组件和维度级别之间提供更大的可扩展性。
- 它更容易维护。
- 星型模式提供快速的数据检索。
- 它是数据仓库中常见且简单的数据模式。
- 它有助于提高数据质量。
- 结构化数据减少了数据完整性问题。
星型模式与雪花模式:限制
星型模式的限制
它具有高度非规范化和完整性状态。如果用户未能更新数据,则整个过程将崩溃。链接和保护也有限。此外,星型模式不像分析模型那样灵活,不提供对各种关系的有效支持。
雪花模式的限制
雪花模式的主要限制是由于增加的小维度表数量而带来的额外维护工作。许多复杂查询使得查找所需数据变得困难。此外,由于表的增多,问题的实施时间更长。该模型也比较死板,维护成本较高。
星型模式与雪花模式:差异
星型和雪花是多维模式的类型,但具有不同的结构和属性。前者类似于星星,而后者类似于雪花,这就是它们的名称的来源。
在星型模式中,只有一个连接可以建立中心事实表和辅助维度表之间的关系。另一方面,雪花模式需要多个连接来链接维度表。
星型模式通常适用于维度表中的行数较少的情况,而雪花模式适用于维度表相对较大的情况。
下面的图表显示了这两种模式以及不同模式下维度表和事实表之间的链接关系。
参数 | 星型模式 | 雪花模式 |
磁盘空间 | 星型模式使用更多的磁盘空间。 | 雪花模式使用较少的磁盘空间。 |
数据冗余 | 它具有较高的数据冗余。 | 它具有较低的数据冗余。 |
规范化 | 维度表是非规范化的,意味着在表内重复相同的值。 | 维度表是完全规范化的。 |
查询性能 | 执行查询所需的时间最短,性能更好。 | 与星型模式相比,查询执行所需的时间更长,性能较差。 |
查询复杂度 | 查询复杂度较低。 | 查询复杂度高于星型模式。 |
维护 | 由于数据冗余较高,维护星型模式稍微困难。 | 由于数据冗余较低,维护和更改雪花模式较为简单。 |
数据完整性 | 数据完整性较高,因为数据在维度表中冗余存储,存在多个副本。 | 由于完全规范化维度表,数据完整性较低。 |
层级关系 | 星型模式中维度表的层级关系存储在维度表中。 | 层级关系分为单独的维度表。 |
数据库设计 | 它具有简单的数据库设计。 | 它具有非常复杂的数据库设计。 |
事实表 | 多个维度表围绕一个事实表。 | 事实表由维度表围绕,而维度表又由子维度表围绕。 |
设置 | 星型模式易于设计和设置,直接关系表示它们。 | 另一方面,雪花模式设置有些复杂。 |
立方体处理 | 立方体处理速度更快。 | 由于复杂的连接,立方体处理速度较慢。 |
外键 | 它具有最少的外键。 | 它具有最多的外键。 |
结论
星型模式和雪花模式在不同的领域中都有用。因此,决定哪个更好取决于它们的要求。
雪花模式是星型模式的扩展,在星型模式中对维度表进行了规范化。
星型模式设计简单,查询速度更快,设置容易。另一方面,雪花模式更易维护,占用更少的磁盘空间,并且不太容易出现数据完整性问题。
因此,如果您需要简单的设计、较少的外键和更快的立方体处理,则星型模式可能是更好的选择。但是,如果您需要更少的磁盘空间、较低的数据完整性和较低的维护成本,则雪花模式可能更合适。
您还可以探索一些最佳的graph database解决方案。