维度表和域表是一样的吗?

问题描述 投票:3回答:3

我想我知道域表是什么(它基本上包含了其他一些列可以包含的所有可能的值),并且我在维基百科中查找了维度表。不幸的是,我很难理解他们在那里的描述,因为他们用另一个术语解释它:“事实表”,其解释为“由业务流程的度量,指标或事实组成” “。对我而言,这是非常重复的,这是not helpful。有人可以用简单的英语解释这个吗?

sql data-modeling
3个回答
4
投票

精简版:

  • 域表示您从事实表中提取的数据,以使事实表更小。
  • 维度表示您预先聚合的轴,以便更快地进行查询。

这是一个简单的英文长版:

你从一些事实开始。例如,您的公司收到的每一笔销售,包括日期,产品,价格,地理位置,客户名称 - 无论您的信息的完整组合如何 - 每次销售。你可以把这些事实放在一张大桌子里。

您想要运行的各种查询原则上是对事实表的一些相当简单的查询。但是,你的事实表变得非常庞大。您需要更快地进行查询。


(1)使速度更快的第一个技巧是将数据移出它,使其更小。因此,您可以获取“长文本”的每一列,将其可能的值放入域表中,并将原始列替换为该表中的id。这将使您的事实表变得更小,如果需要,您仍然可以获取原始数据。这使得查询所有行的速度更快,因为它们占用的数据更少。

如果你有一个足够小的数据集来查询整个事实表是可以接受的快速,那就没问题了。但是很多公司都有足够的数据,所以他们必须变得更聪明。


(2)使其更快的第二个技巧是预先计算查询。这是一种方法。确定一组维度,然后沿维度和维度组合预先计算。

例如,客户名称是一个维度,一些查询是按客户名称,而其他查询是所有客户。因此,您可以在事实表中添加预先计算的事实,这些事实已在所有客户中预先汇总数据,并且客户名称已成为维度。

维度的另一个好选择是地理位置。您可以添加按县,州和所有位置聚合的摘要记录。完成客户名称汇总后,将完成此总结,因此它将自动记录给定邮政编码中所有客户的总销售额。

重复任意数量的其他尺寸。

现在,当有人提出查询时,很有可能他们的查询可以被重写以利用您预先聚合的维度,只查看一些预先汇总的事实,而不是所有单独的销售记录。这将大大加快查询速度。

在实践中,这比预期聚合更多。因此,构建数据仓库的人做了一些聪明的事情,这些事情让他们可以牺牲预先聚合的组合,而这些组合是没有人可能想要的,而不是需要预先计算组合的运行时工作。

如果你想深入研究这个话题,你可以从http://en.wikipedia.org/wiki/Star_schema开始。


0
投票

事实表和维度表组合在一起构成了一个星型模式。 Star Schema是SQL表中多维数据模型的表示。多维数据模型将统计信息“事实”存储为多维空间中的值,其中每个维度中的“位置”为事实建立上下文的一部分。多维数据模型是在推进data warehousing概念的背景下开发的。

维度表提供每个维度的关键字以及与该维度相关的属性。

MDDB可以存储在专门为此目的而构建的数据立方体中,而不是使用SQL(关系)数据库。 Cognos是一家拥有自己的数据立方体产品的供应商。与使用特殊用途的数据立方体产品相比,使用SQL数据库和星型模式有一些优点。使用数据立方体产品还有其他优点。有时,SQL + Star模式方法的优势超过了数据立方体产品的优势。

通过设计Snowflake Schema而不是Star模式可以获得归一化获得的一些优点。但是,星型模式和雪花模式都不会免于更新异常。它们通常用于数据仓库或报告数据库,将数据从操作数据库复制到其中一个数据库中是一项编程挑战。有为此目的出售的工具。


0
投票

事实表是包含业务流程的度量或度量或事实的表。例:

  • 销售业务流程中的“月销售数量”
  • 利润业务流程中的“每月利润额”

其中大部分是添加剂(销售,利润),有些是半添加剂(余额为),有些不是添加剂(单价)。

Fact表中的细节级别称为表的“颗粒”,即粒度可以是精细的或粗糙的。事实表还包含维度表的外键。

而维度表是那些包含有助于描述事实表事实的属性的表。

以下是维度表的类型:

  • 慢慢改变尺寸
  • 垃圾尺寸
  • 确认尺寸
  • 退化的维度

要了解更多信息,您可以通过Data Warehousing Tutorials

© www.soinside.com 2019 - 2024. All rights reserved.