数据仓库工具箱维度建模权威指南 --事实表
维度建模是展现分析数据的首选技术,主要基于以下两个需要同 时满足的需求:
1、以商业用户可理解的方式发布数据。
2、提供高效的查询 性能。
维度模型包含的信息与规范化模型包含的信息相同,但将数据以一种用户可理解的、 满足 查询 性能要求的、灵活多变的方式进行了包装。
维度模型中的事实表存储组织机构业务过程事件的性能度量结果。
应该尽量将来源于同一个业务过程的底层度烟结果存储于一个绯度模型中。因为度据的数据械巨大, 所以不应该为满足多个组织功能的前要而将这些数据存放在多个地方。应该允许多个组织的业务用户访问同一个单一的集中式数据仓库,确保他们能在整个企业中使用 一致的数据。
“事实” 这一术语表示某个业务度量 。
事实表中的每行对应一个度量事件。每行中的数据是一个特定级别的细节数据 , 称为粒度。
维度建模的核心原则之一是同一事实表中的所有度量行必须具有相同的粒度。
物理世界的每一个度量事件与对应的事实表行具有一对一的关系, 这一思想是维度建模的基本原则。
最实用的事实是数值类型和可加类型事实。可加性是至关重要的, 因为BI应用不太可能仅检索事实表的单 一行。常见的 情况是 ,BI应用往往一次需要检索成百上千, 甚至百万级别的事实表行。处理如此多行数据的最有用的操作是将它们加到一起。
可能也会遇到一些半可加,甚至是不可加的 事实。半可加事实(例如 账户节余)不能按时间维度执行汇总操作。不可加事实(例如, 单位价格)不可相加。面对这种情况时, 不得不进行计数或者取平均值操作 , 或者简化为一次输出一个事实行, 当 然当事实表包含海 量数据行时, 执行这种操作是不现实的。
事实通常以连续值描述, 这样做有助于区 分到底是事实还是维度属性的问题。
设计者应该尽最大可能将文本数据放入维度中, 将它们有效地关联到其 他文本维度属性上 , 以减少空间开销。不要在事实表中存储冗余的文本信息。除非对事实表中的每个行来说 , 其文本是唯一的,否则, 应将其 放入维度表中。准确的文本事实比较少见, 因为文本事实存在不可预测性, 例如, 自由文本注释 ,几乎没有对其进行分析的可能性 。
一般事实表具有两个或更多个外键与维度表的主键关联。
事实表通常有包含外键集合的主键。事实表的主键常称为组合键, 具有组合键的表称为事实表。事实 表表示多对多 关系。其他表称为维度表