星型图式设计的组成与分析
星型模式的主要组成部分是什么?
星型模式有四个主要组成部分。下面列出了这些:
- 事实表
- 维度表
- 属性
- 属性层次结构。
让我们一一谈谈:
事实:
- 这些是数值。
- 代表业务活动的绩效度量。
- 示例:生产力、费用、销售额、利润、价格、数量。
- 事实也称为度量。它们存储在事实表中。
数值存储在事实表中,而文本存储在维度表中。数值给出了业务绩效的统计量度。销售数字比文字更容易理解,也很难用文字来描述销售。由于事实用于衡量业务的绩效,因此它们通常被称为度量。
什么是事实表?
- 事实表也称为明细表。
- 事实表是星型模式的中点。
- 事实表包含主键和事实或度量。
事实表由事实和键组成。这些是业务的主要细节。事实表显示业务绩效的摘要,称为明细表。它总是位于星型图的中心或中间。它被维度表包围。事实表的主键也是其中的一部分。
事实表的属性:
- 通过插入来自操作数据库的聚合数据来定期更新事实表。
- 在查询执行期间计算的事实称为指标。
- 每个事实表都有维度表。
- 事实表支持数据的汇总。
- 包含至少一个事实或衡量标准。
- 主键——所有维度表的主键并集。
- 事实表总是在 BCNF 中,但不是维度表。
- 事实表中的一行至少包含一个事实及其维度表的主键。
- 包含不同类型的措施:加法、半加法和非加法。
- 少列多行——相对较长且形状较窄的桌子。
- 事实表中单个记录的详细程度称为事实表的粒度。
- 最有用的事实是数字的、连续的价值和附加的。
销售数字是事实表的典型属性之一。所以,这个数字需要在一段时间后更新,比如每月或每季度。在星型模式中,维度表围绕着中心事实表。事实表总是至少有一个事实,否则它将不存在。它没有代理键,而是所有维度表的主键联合将成为事实表的主键。事实表始终采用 BCNF 的规范化形式。由于事实表具有主键和少量事实,因此它的属性数量较少,但行数较多。如果销售数据每天更新,那么事实表的粒度就是一天。
什么是维度表?
- 维度表包含一个主键和仅在决策过程中使用的那些属性。
- 示例:产品维度、位置维度、时间维度。
- 维度表通过主键到外键关系连接到事实表。
- 维度表支持过滤和分组。
- 维度通常是限定事实的描述性信息。
顾名思义,维度表包含业务实体的支持属性。每个维度表都由一个主键和必要的属性组成。客户表是维度表的一个示例。每个维度表都通过外键关系连接到事实表。
维度表的属性:
- 维度表称为查找表或引用表。
- 维度表未标准化。
- 包含一个主键,它构成事实表主键的一部分。
- 尺寸不会随时间变化或缓慢变化。
- 它们包含几行多列。
- 大多数星型模式都包含时间维度。
- 维度表不相互连接,而是使用 PK-FK 连接将每个维度表连接到事实表。
- 主键通常是代理键。
这些被称为参考表,因为它们支持存储在事实表中的事实。业务实体的摘要显示在事实表中,而维度表支持事实表。维度表未规范化,因为它会导致维度表分解为多个表。这将在模式中引入更多数量的连接,星型查询将变得更加复杂,执行将花费更长的时间。维度表与事实表连接,但彼此不连接,因为不需要这样做。代理键被添加到每个维度表中,用于唯一标识每条记录。
有哪些属性?
- 这些是维度表中的列。
- 客户维度表示例:客户姓名、年龄、性别、婚姻状况等。
- 这些主要是描述性值。
属性是列名。对于客户表,准确描述客户的细节称为客户属性。客户的姓名、性别、年龄和婚姻状况是客户属性的几个例子。大多数情况下,这些是描述性值,例如名称和地址。
什么是属性层次结构?
- 属性可以按层次结构排列。
- 层级之间的关系为 N:1。
- 确定一系列功能依赖关系。
- 示例:产品 -> Product_type、Product_type -> 行业
- 时间维度层次结构:日期 -> 周 -> 月 -> 季度 -> 年。
- 位置层次结构:商店 -> 城市 -> 区 -> 州 -> 国家
- 属性层次结构用于分析各种聚合级别的数据,通常从更高的级别开始。
- 并非维度表的所有列都用于属性层次结构,有些列仅用于维度描述。
当我们想要更细或更粗粒度的信息时,属性层次结构很有用。我们可以找到特定季度发生的总销售额。如果存在时间层次结构,我们可以发现销售发生在同一季度的特定月份。如果层次结构仍然进一步下降,那么我们可以找到该月特定周发生的总销售额。同样,我们可以向上层级。并非所有维度表都必须具有属性层次结构。
各种数据聚合方式有哪些?
- 属性层次结构定义了数据层次结构的方式。
- Roll-Up – 获取层次结构中粒度更粗或更高级的数据。
- 向下钻取——获取更细粒度的数据。
什么是星查询?
- 星型查询是事实表和多个维度表之间的连接。
- 这些是非常复杂的查询。
- 需要很长时间才能执行。
在星型模式上执行的 SQL 查询称为星型查询。之所以使用名称星型查询,是因为我们在星型模式上使用该查询。星型模式包含事实表和维度表之间的许多连接,因此星型查询是一个复杂的查询。由于星型查询中存在许多连接关系,因此执行需要很长时间,即数小时。