OBIEE – 模式

模式是整个数据库的逻辑描述。它包括所有类型的记录的名称和描述,包括所有相关的数据项和聚合。与数据库非常相似,DW 也需要维护模式。数据库使用关系模型,而 DW 使用星型、雪花型和事实星座模式(星系模式)。

星型模式

在星型模式中,有多个非规范化形式的维度表,它们仅连接到一个事实表。这些表以逻辑方式连接以满足分析目的的某些业务需求。这些模式是多维结构,用于使用 BI 报告工具创建报告。

星型模式中的维度包含一组属性,事实表包含所有维度和测量值的外键。

星型模式

在上述星型模式中,中心有一个事实表"销售事实",并使用主键连接到 4 个维度表。维度表未进一步规范化,这种表的连接在 DW 中称为星型模式。

事实表还包含度量值 − dollar_sold 和 unit_sold。

雪花模式

在雪花模式中,有多个标准化形式的维度表,它们仅连接到一个事实表。这些表以逻辑方式连接起来,以满足分析目的的某些业务需求。

星型模式和雪花模式之间的唯一区别是维度表进一步规范化。规范化将数据拆分为其他表。由于雪花模式中的规范化,数据冗余减少了,而不会丢失任何信息,因此变得易于维护并节省存储空间。

雪花模式

在上面的雪花模式示例中,产品和客户表进一步规范化以节省存储空间。有时,当您执行需要直接在规范化表中处理行的查询时,它还会提供性能优化,因此它不会处理主维度表中的行,而是直接进入模式中的规范化表。

粒度

表中的粒度表示表中存储的信息级别。数据粒度高意味着数据处于或接近事务级别,具有更多细节。粒度低意味着数据具有低级别信息。

事实表通常设计为低粒度。这意味着我们需要找到事实表中可以存储的最低级别的信息。在日期维度中,粒度级别可以是年、月、季度、期间、周和日。

定义粒度的过程包括两个步骤 −

  • 确定要包含的维度。
  • 确定放置每个信息维度层次结构的位置。

缓慢变化的维度

缓慢变化的维度是指随时间变化的属性值。它是 DW 中的常见概念之一。

示例

Andy 是 XYZ Inc. 的员工。他于 2015 年 7 月首次在纽约市工作。员工查找表中的原始条目有以下记录 −

Employee ID 10001
名称 Andy
Location New York

后来,他搬到了加利福尼亚州洛杉矶。XYZ Inc. 现在应该如何修改其员工表以反映这一变化?

这被称为"缓慢变化维度"概念。

有三种方法可以解决此类问题 −

解决方案 1

新记录替换原始记录。旧记录不存在任何痕迹。

缓慢变化维度,新信息只是覆盖原始信息。换句话说,不保留任何历史记录。

Employee ID 10001
名称 Andy
Location LA, California
  • 优点 − 这是处理缓慢变化维度问题的最简单方法,因为无需跟踪旧信息。

  • 缺点 − 所有历史信息均会丢失。

  • 用途 − 当 DW 不需要跟踪历史信息时,应使用解决方案 1。

解决方案 2

在员工维度表中输入一条新记录。因此,员工 Andy 被视为两个人。

向表中添加一条新记录以表示新信息,并且原始记录和新记录都将存在。新记录获得自己的主键,如下所示 −

Employee ID 10001 10002
名称 Andy Andy
Location New York LA, California
  • 优点 − 这种方法允许我们存储所有的历史信息。

  • 缺点 − 表的大小增长更快。当表的行数非常高时,表的空间和性能可能是一个问题。

  • 用途 − 当 DW 需要保留历史数据时,应使用解决方案 2。

解决方案 3

修改员工维度中的原始记录以反映更改。

将有两列指示特定属性,一列指示原始值,另一列指示新值。还将有一列指示当前值何时变为活动状态。

Employee ID Name Original Location New Location Date Moved
10001 Andy New York LA, California July 2015
  • 优点 − 由于更新了新信息,因此不会增加表的大小。这使我们能够保留历史信息。

  • 缺点 − 当属性值更改多次时,此方法不会保留所有历史记录。

  • 使用 − 仅当 DW 需要保留历史更改信息时才应使用解决方案 3。

规范化

规范化是将表分解为冗余较少的小表而不丢失任何信息的过程。因此,数据库规范化是组织数据库的属性和表以最小化数据冗余(重复数据)的过程。

规范化的目的

  • 它用于消除某些类型的数据(冗余/重复)以提高一致性。

  • 它通过以简化形式保留与对象类型相对应的表,提供最大的灵活性以满足未来的信息需求。

  • 它产生更清晰、更易读的数据模型。

优点

  • 数据完整性。
  • 增强数据一致性。
  • 减少数据冗余和所需空间。
  • 降低更新成本。
  • 最大程度地灵活响应临时查询。
  • 减少每个块的总行数。

缺点

数据库查询性能较慢,因为必须执行连接才能从多个规范化表中检索相关数据。

您必须了解数据模型才能在多个表之间执行正确的连接。

示例

规范化的目的

在上面的例子中,绿色块内的表代表红色块中的表格的规范化。绿色块中的表格冗余度较低,行数也较少,且不会丢失任何信息。