Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 事实表和维度表之间的区别?_Database_Data Warehouse_Business Intelligence_Fact Table - Fatal编程技术网

Database 事实表和维度表之间的区别?

Database 事实表和维度表之间的区别?,database,data-warehouse,business-intelligence,fact-table,Database,Data Warehouse,Business Intelligence,Fact Table,在阅读一本关于业务对象的书时,我遇到了术语-事实表和维度表 我试图理解维度表和事实表之间的区别是什么 我在网上读了几篇文章,但我不太明白 任何简单的例子都能帮助我更好地理解?这是对以下部分的回答: 我试图理解维度表是否可以是事实表 好还是不好 简短的回答(INMO)是否定的。这是因为创建这两种类型的表的原因不同。但是,从数据库设计的角度来看,维度表可以有一个父表,而事实表总是有一个(或多个)维度表作为父表。此外,事实表可以聚合,而维度表不聚合。另一个原因是事实表不应该就地更新,而维度表在某些情况

在阅读一本关于业务对象的书时,我遇到了术语-事实表和维度表

我试图理解维度表和事实表之间的区别是什么

我在网上读了几篇文章,但我不太明白


任何简单的例子都能帮助我更好地理解?

这是对以下部分的回答:

我试图理解维度表是否可以是事实表 好还是不好

简短的回答(INMO)是否定的。这是因为创建这两种类型的表的原因不同。但是,从数据库设计的角度来看,维度表可以有一个父表,而事实表总是有一个(或多个)维度表作为父表。此外,事实表可以聚合,而维度表不聚合。另一个原因是事实表不应该就地更新,而维度表在某些情况下可以就地更新

更多详情:

事实和维度表出现在通常称为星型模式的模式中。星型模式的主要目的是简化一组复杂的规范化表,并将数据(可能来自不同的系统)整合到一个可以高效查询的数据库结构中

最简单的形式是,它包含一个事实表(例如:StoreSales)和一个或多个维度表。每个维度条目都有0,1个或多个与其关联的事实表(维度表的示例:地理、项目、供应商、客户、时间等)。维度具有父维度也是有效的,在这种情况下,模型的类型为“雪花”。但是,设计师试图避免这种设计,因为它会导致更多连接,从而降低性能。在StoreSales的示例中,地理维度可以由列组成(GeoID、ContentName、CountryName、StateProvName、CityName、StartDate、EndDate)

在雪花模型中,可以有两个规范化的地理信息表,即:内容表、国家表

你可以找到很多关于星型模式的例子。此外,请查看此项以查看星型模式模型的另一个视图。Kimbal有一个很好的论坛,您也可以在这里查看:

编辑:回答有关4NF示例的评论:

  • 违反4NF的事实表示例:
销售事实(ID、BranchID、salersonid、ItemID、Amount、TimeID)

  • 不违反4NF的事实表示例:
合计销售额(分公司、总金额)

这里的关系是4NF

最后一个例子相当罕见

  • 事实表主要由业务事实和引用维度表中主键的外键组成。维度表主要由作为文本字段的描述性属性组成
  • 维度表包含代理键、自然键和一组属性。相反,事实表包含外键、度量和退化维度
  • 维度表为事实表的度量提供描述性或上下文信息。另一方面,事实表提供了企业的度量
  • 比较两个表的大小时,事实表比维度表大。在比较表中,显示的维度比事实表多。在事实表中,观察到的事实数量较少
  • 必须首先加载维度表。在加载事实表时,应该查看维度表。这是因为事实表具有度量值、事实和外键,它们是维度表中的主键

  • 阅读更多:维度表和事实表|维度表与事实表之间的差异

    这似乎是如何区分事实表和维度表的一个非常简单的答案

    将维度视为事物或对象可能会有所帮助。这样的事 作为一种产品,它可以在不涉及任何业务的情况下存在 事件维度是你的名词。这是可以存在的东西 独立于商业活动,如销售。产品,员工,, 设备,是所有存在的东西。维度也可以 做了什么,或者做了什么

    员工销售,客户购买。员工和客户就是这样的例子 尺寸,它们确实如此

    产品出售时,它们也是尺寸,因为它们有一些东西 对他们做了什么

    事实是动词。事实表中的条目标记离散事件 这发生在维度表中的某些内容上。产品销售 将记录在事实表中。销售活动将是 记录销售的产品、销售的员工以及 顾客买的。产品、员工和客户都是维度 描述了这一事件,销售

    此外,事实数据表通常也具有某种定量属性 数据。销售数量、每件商品的价格、总价等

    资料来源:
    在数据仓库建模中,星型模式和雪花模式由事实表和维度表组成

    事实表:

    • 它包含维度和关联维度的所有主键 销售数量、销售金额和平均销售额等事实或指标(可进行计算的财产)
    维度表:

    • 维度表为事实表中记录的所有度量提供描述性信息
    • 与事实表相比,维度相对较小
    • 常用的维度是人、产品、地点和时间


    最简单的形式是,我认为维度表类似于“主”表,它保存了所有“项”的列表,所以