我想我知道域表是什么(它基本上包含了其他一些列可以包含的所有可能的值),并且我在维基百科中查找了维度表。不幸的是,我很难理解他们在那里的描述,因为他们用另一个术语解释它:“事实表”,其解释为“由业务流程的度量,指标或事实组成” “。对我而言,这是非常重复的,这是not helpful。有人可以用简单的英语解释这个吗?
精简版:
这是一个简单的英文长版:
你从一些事实开始。例如,您的公司收到的每一笔销售,包括日期,产品,价格,地理位置,客户名称 - 无论您的信息的完整组合如何 - 每次销售。你可以把这些事实放在一张大桌子里。
您想要运行的各种查询原则上是对事实表的一些相当简单的查询。但是,你的事实表变得非常庞大。您需要更快地进行查询。
(1)使速度更快的第一个技巧是将数据移出它,使其更小。因此,您可以获取“长文本”的每一列,将其可能的值放入域表中,并将原始列替换为该表中的id。这将使您的事实表变得更小,如果需要,您仍然可以获取原始数据。这使得查询所有行的速度更快,因为它们占用的数据更少。
如果你有一个足够小的数据集来查询整个事实表是可以接受的快速,那就没问题了。但是很多公司都有足够的数据,所以他们必须变得更聪明。
(2)使其更快的第二个技巧是预先计算查询。这是一种方法。确定一组维度,然后沿维度和维度组合预先计算。
例如,客户名称是一个维度,一些查询是按客户名称,而其他查询是所有客户。因此,您可以在事实表中添加预先计算的事实,这些事实已在所有客户中预先汇总数据,并且客户名称已成为维度。
维度的另一个好选择是地理位置。您可以添加按县,州和所有位置聚合的摘要记录。完成客户名称汇总后,将完成此总结,因此它将自动记录给定邮政编码中所有客户的总销售额。
重复任意数量的其他尺寸。
现在,当有人提出查询时,很有可能他们的查询可以被重写以利用您预先聚合的维度,只查看一些预先汇总的事实,而不是所有单独的销售记录。这将大大加快查询速度。
在实践中,这比预期聚合更多。因此,构建数据仓库的人做了一些聪明的事情,这些事情让他们可以牺牲预先聚合的组合,而这些组合是没有人可能想要的,而不是需要预先计算组合的运行时工作。
如果你想深入研究这个话题,你可以从http://en.wikipedia.org/wiki/Star_schema开始。
事实表和维度表组合在一起构成了一个星型模式。 Star Schema是SQL表中多维数据模型的表示。多维数据模型将统计信息“事实”存储为多维空间中的值,其中每个维度中的“位置”为事实建立上下文的一部分。多维数据模型是在推进data warehousing概念的背景下开发的。
维度表提供每个维度的关键字以及与该维度相关的属性。
MDDB可以存储在专门为此目的而构建的数据立方体中,而不是使用SQL(关系)数据库。 Cognos是一家拥有自己的数据立方体产品的供应商。与使用特殊用途的数据立方体产品相比,使用SQL数据库和星型模式有一些优点。使用数据立方体产品还有其他优点。有时,SQL + Star模式方法的优势超过了数据立方体产品的优势。
通过设计Snowflake Schema而不是Star模式可以获得归一化获得的一些优点。但是,星型模式和雪花模式都不会免于更新异常。它们通常用于数据仓库或报告数据库,将数据从操作数据库复制到其中一个数据库中是一项编程挑战。有为此目的出售的工具。
事实表是包含业务流程的度量或度量或事实的表。例:
其中大部分是添加剂(销售,利润),有些是半添加剂(余额为),有些不是添加剂(单价)。
Fact表中的细节级别称为表的“颗粒”,即粒度可以是精细的或粗糙的。事实表还包含维度表的外键。
而维度表是那些包含有助于描述事实表事实的属性的表。
以下是维度表的类型:
要了解更多信息,您可以通过Data Warehousing Tutorials