Jupyter AI

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

📅发表日期: 2024-08-11

🏷️分类: 数据仓库

👁️阅读次数: 0

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

事实表与维度表的定义

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

事实表

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

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

示例

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

销售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语句:

SELECT 
    p.产品名称, 
    SUM(f.销售额) AS 总销售额 
FROM 
    销售事实表 f 
JOIN 
    产品维度表 p 
ON 
    f.产品ID = p.产品ID 
GROUP BY 
    p.产品名称;

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

总结

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

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

💬 评论

暂无评论