目录:
1. 概述编辑
本文提供一些数据表基本概念。
在维度模型中,维度表描述与业务和分析要求相关的实体。 大致而言,维度表代表你建模的内容。 内容可以是产品、人员、地点或任何其他概念,包括日期和时间。 若要轻松识别维度表,通常要为其名称加上前缀 d_ 或 Dim_。
2. 维度表名词解释编辑
示例给出一个销售人员维度表,如下图所示:

代理键
定义: 代理键是一种由数据仓库系统自动生成的唯一标识符,用于识别维度表中的每一行记录。
作用:
稳定性: 代理键的值是由系统分配的,不受业务变化的影响,因此更为稳定。
性能优势: 由于代理键是递增或随机生成的数字,对于数据库索引的性能有积极影响,提高了查询效率。
优势:
灵活性: 允许系统独立管理唯一标识,降低了与业务变化相关的复杂性。
易维护性: 由于代理键不受外部业务数据的影响,维护起来更加简便。
适用场景:
维度表: 通常在维度表中使用代理键,用于唯一标识每个维度记录。
关联: 在与事实表建立关联时,作为连接点,提供更高效的关联操作。
示例中的 Salesperson_SK 表示代理键。
自然键
自然键是维度模型中的一个关键概念,与代理键相对。自然键使用数据本身的业务属性作为标识符,其在维度表中用于唯一地标识记录。以下是自然键的主要特点:
定义:自然键是由维度表中现有的业务数据属性构成的标识符,用于唯一标识每个维度记录。
作用:
业务关联: 自然键直接反映真实业务世界中的关系,与业务实体的属性相对应。
可读性: 自然键通常具有业务含义,使得数据更易理解,有助于业务用户的可读性。
优势:
业务可理解性: 由于自然键基于现有数据,更容易为业务人员理解和使用。
反映真实业务: 自然键直接映射到业务实体,提供了更直观的数据模型。
限制:
不稳定性: 部分情况下,自然键可能受到业务变化的影响,导致不稳定性。
复杂性: 在处理变化、合并或分割等业务操作时,自然键可能引入复杂性。
适用场景:
业务明确: 当业务实体有清晰的、稳定的业务标识时,自然键是一个合适的选择。
用户可理解: 当用户更容易通过业务属性识别记录时,自然键有助于提高可理解性。
示例中的 EmployeeID 表示自然键。
外键
其他维度表可以引用外键,并且它们存在于维度表中是一种特殊情况。 它表示该表与另一个维度表相关。
示例中的 SalesRegion_FK 表示外键。
维度属性
示例维度表还具有维度属性,如 FirstName 列。 维度属性为存储在相关事实数据表中的数值数据提供上下文。 它们通常是分析查询中使用的文本列,用于筛选和分组,但不能自行合并。 一些维度表包含少数几个属性,而另一些则包含许多属性。
退化维度
当维度与相关事实数据的粒度相同时,可能会发生退化维度。 退化维度的常见示例是与销售事实数据表相关的销售订单号维度。 不复制此数据来创建单独的维度表是可接受的做法。
下面的关系图描绘了 Sales_Order 维度,它是基于销售事实数据表中的 SalesOrderNumber 列的退化维度。

角色扮演维度
在当一个维度在事实数据表中被多次引用时,称为角色扮演维度。
例如,当销售事实数据表具有订单日期、装运日期和交付日期维度键时,日期维度以三种方式关联。 每个方式都表示不同的角色,但只有一个实际日期维度。
下面的关系图描绘了事实数据表。 销售维度是角色扮演维度,因为它作为机会销售维度和签单销售维度与事实数据表有两次关联。


