9 数据建模之事实表与维度表

在上一篇《数据建模之维度建模》中,我们探讨了维度建模的基本概念及其在数据仓库中的重要性。本文将深入讨论数据建模中的事实表维度表,并结合实例进行阐述,以帮助你更好地理解这些核心内容。

事实表与维度表的定义

在数据仓库中,事实表维度表是组成数据模型的两个主要元素。

事实表

事实表是一种以数值为主的表,通常记录事件发生的数据。每一条记录都对应着某项业务活动的结果,并包含以下特征:

  • 度量值事实表中的核心数据,通常是需要进行分析的数值,如销售额、交易数量等。
  • 外键:连接到相关的维度表,提供上下文信息。

示例

假设我们有一个销售数据的事实表,如下所示:

销售ID 产品ID 客户ID 店铺ID 销售额 销售日期
1 101 201 301 500 2023-01-01
2 102 202 302 300 2023-01-02
3 103 203 301 700 2023-01-01

在这个例子中,销售额就是我们的度量值,而产品ID客户ID店铺ID都是外键,它们指向相应的维度表

维度表

维度表是用于描述事实表中事件的上下文信息的表。它们通常包含具有丰富信息的文本字段,有助于进行深入的分析和筛选。

示例

继续以产品维度表为例,我们可以这样定义一个维度表

产品ID 产品名称 类别 价格
101 手机 电子产品 300
102 电脑 电子产品 600
103 平板 电子产品 400

在这个例子中,产品维度表事实表提供了关于销售的进一步信息,如产品名称、类别和价格。

事实表与维度表的关系

在数据建模中,事实表维度表之间的关系通常是通过外键来实现的。这种设计使得我们能够在执行查询时,以更丰富的上下文信息来分析事实表中的数据。例如,我们可以利用维度表的数据进行分组、过滤,甚至进行更复杂的聚合分析。

示例查询

假设我们想要查询每个产品的总销售额,可以使用如下SQL语句:

1
2
3
4
5
6
7
8
9
10
11
SELECT 
p.产品名称,
SUM(f.销售额) AS 总销售额
FROM
销售事实表 f
JOIN
产品维度表 p
ON
f.产品ID = p.产品ID
GROUP BY
p.产品名称;

此查询将返回每个产品的总销售额,并体现出事实表维度表的紧密结合。

总结

在本文中,我们讨论了事实表维度表的基本概念及其重要性,理解了它们在数据建模中的作用以及如何通过外键将它们联系起来。掌握这些内容为我们下一步深入了解星型模型雪花模型打下了基础。

在下一篇文章中,我们将探讨数据建模中的星型模型与雪花模型,这两种模型是组织事实表维度表的常用方式,欢迎继续关注!

9 数据建模之事实表与维度表

https://zglg.work/data-warehouse-zero/9/

作者

IT教程网(郭震)

发布于

2024-08-11

更新于

2024-08-12

许可协议

分享转发

复习上节

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论