交叉引用表...维度还是事实?

     2023-03-29     261

关键词:

【中文标题】交叉引用表...维度还是事实?【英文标题】:Cross-reference table...dimension or fact? 【发布时间】:2013-08-02 01:49:54 【问题描述】:

初学者维度建模问题:

您如何在正式的“业务流程”之外为维度之间的关系建模?例如,假设您正在为梦幻棒球联盟建模。一些明显的维度是团队和球员,一个示例事实是球员击球的结果。我很困惑的是如何简单地跟踪哪些球员在哪个球队。

在第三范式中,我将有一个包含团队和球员 FK 的交叉引用表,以及专门与两者组合相关的任何其他字段(招募日期、替补球员指标等)。这与星型模式有什么不同吗?如果不是,那么该表是否被视为事实表,没有数字属性?

让我感到困惑的是,这个交叉引用表本身并没有多大用处。只有在加入其他事实表时才有意义,以获取与另一个事实/流程相关联的团队中的球员列表。这让它感觉更像是一个维度而不是一个事实。

【问题讨论】:

【参考方案1】:

在维度建模中,您必须选择要建模的过程。如果 Team Player 关系对您的模型来说是次要的,您可以忽略它并知道当一名球员为球队击球时属于球队。

当然,这排除了从不击球的球员。

如果要考虑这种关系,即多对多关系,显而易见的解决方案是另一个事实表。事实表甚至可以是无事实的(当您没有关于它的额外信息时,但在这种情况下,球员的薪水将是一个明显且重要的事实)。

【讨论】:

【参考方案2】:

另一种选择是为播放器使用类型 2 SCD。这是一种随时间存储玩家属性变化的方法。

因此,对于单个玩家,您可能有四个维度记录,因为该玩家在四支球队中移动。维度记录具有开始日期和结束日期,因此如果玩家在一月份换了球队并且直到二月份才开始比赛,那么该信息仍然会被存储。

您可以通过这种方式跟踪任何球员的属性,例如受伤等

这是一种无需特殊事实即可跟踪“缓慢”变化的方法。

如果您确实需要某种历史状态报告,您只需将玩家维度加入日期维度即可。

看看本文中的第二类:

http://en.wikipedia.org/wiki/Slowly_changing_dimension

【讨论】:

数据仓库中的交叉引用事实和维度

】数据仓库中的交叉引用事实和维度【英文标题】:CrossreferenceFactsandDimensionsinDatawarehouse【发布时间】:2011-04-2901:42:18【问题描述】:我正在尝试为许可供应商设计一个数据仓库,该供应商在电子商务和其他各种场所销售许可。... 查看详情

数据库——事实表和维度表

】数据库——事实表和维度表【英文标题】:Database-facttableanddimensiontable【发布时间】:2012-02-2014:37:04【问题描述】:在阅读有关业务对象的书籍时,我遇到了术语事实表和维度表。这是所有数据库的标准事物,它们都有事实表... 查看详情

我需要定义事实表或维度表吗?

】我需要定义事实表或维度表吗?【英文标题】:doIneedtodefineFactTableortheDimensiontables?【发布时间】:2014-07-1810:03:31【问题描述】:我正在尝试使用OLTP数据库构建数据仓库,并且想知道是否需要先定义事实表或维度?请帮忙?问... 查看详情

数仓设计--事实表

...围绕着业务过程来设计。其包含与该业务过程有关的维度引用(维度表外键)以及该业务过程的度量(通常是可累加的数字类型字段)事实表通常比较“细长”,即列较少,但行较多,且行的增速快事实表有三种类型:分别是事... 查看详情

数据仓库中的低基数维度

...中有很多列的基数非常低(~8)。这些列中的每一个都存储引用主表的键。我想知道是将这些单独的主表中的每一个作为维度导入还是将值直接存储在事实表中。除了我要存储的值之外,主表没有其他属性。每种方法的优缺点是什... 查看详情

事实表与维度表

...4、它如何在数据仓库中工作?1.5、事实表的优点二、维度表2.1、维度表类型2.1.1、SCD(缓慢变化维)2.1.2、一致维度2.1.3、垃圾维度2.1.4、退化维度2.1.5、角色扮演维度2.2、它在数据仓库中是如何工作的 查看详情

为啥要分出事实表fact和维度表dim

...但是我们通常又为什么会选择将这个单独的属性还是放在维度表中,这里有以下几个原因是我们需要考虑的:数据仓库的设计是一个迭代的开发过程,开发一年,维护若干年,如果我们可以考虑到以上原因,就可以很清楚的考虑... 查看详情

hive建立数据仓库事实表的外键和维度表主键怎么关联啥命令

还是说事实表的外键不需要和维度表主键关联其实hive里面虽然从mysql导入的时候要求mysql的数据有主键,但是在hive里面主键的概念明显是模糊了的甚至说是去掉的,更没有想传统数据仓库的时候,事实表和维表的键可以连在一起... 查看详情

对于维度建模的理解

什么意思维度模型是数据仓库领域大师RalphKimball所倡导,以分析决策的需求出发构建模型,构建的数据模型为分析需求服务,因此它重点解决用户如何更快速完成分析需求,同时还有较好的大规模复杂查询的响应性能。维度建模... 查看详情

事实表中的多个字段引用一维 Qlikview

】事实表中的多个字段引用一维Qlikview【英文标题】:MultiplefieldsinfacttablereferringtoonedimensionQlikview【发布时间】:2017-10-1121:35:38【问题描述】:我是Qlikview的新手。我有一个包含CheckinDate和CheckoutDate字段的事实表Fact_Transaction。我有... 查看详情

大数据分析基础——维度模型

...,通过获取描述业务过程的度量来表达业务过程,包含了引用的维度和与业务过程有关的度量。事实表中一条记录所表达的业务细节程度被称为粒度。通常粒度可以通过两种方式来表述:一种是维度属性组合所表示的细节程度:一... 查看详情

将维度链接到事实表的表是事实的维度吗?

】将维度链接到事实表的表是事实的维度吗?【英文标题】:IsATableLinkingaDimensiontoaFacttable,aDimensionofaFact?【发布时间】:2019-02-2210:51:37【问题描述】:在我对BI表的不完整视图中,事实表表示操作,维度表示实体。我有一个FactOrde... 查看详情

数据仓库 - 多维模型 - 事实表小于维度表

】数据仓库-多维模型-事实表小于维度表【英文标题】:DataWarehouse-MultidimensionalModel-FactTableisSmallerthanDimensionTable【发布时间】:2014-05-1613:54:38【问题描述】:我正在处理客户维度表大于事实表的数据仓库项目。维度表和事实表是... 查看详情

在另一个事实表中使用退化维度

】在另一个事实表中使用退化维度【英文标题】:Usageofdegeneratedimensioninanotherfacttable【发布时间】:2019-11-2818:37:03【问题描述】:如何?【问题讨论】:【参考方案1】:根据定义,退化维度是属性与度量一起保存在事实表中而不... 查看详情

维度建模实践一例维度还是事实

...成本”和“单价”是一个销售实体的事实,还是产品维度的属性?关于这个问题,最开始是在讨论成本计算的时候发现的。与教科书中零售场景不一样的是,工业上某个产品的成本是要计算出来的。而《维度建模... 查看详情

维度表和事实表的区别

简单解释:事实表就是交易表。维度表就是基础表。二者的区别:维度表的冗余很大,主要是因为维度一般不大(相对于事实表来说的),而维度表的冗余可以使事实表节省很多空间。事实表一般都很大,如果以... 查看详情

事实表和维度表

】事实表和维度表【英文标题】:FacttableandDimensiontables【发布时间】:2018-11-0419:03:17【问题描述】:我在网上学习什么是,所以建议用真实的数据集来练习。作为示例,我下载了这个excel文件。我想试试星型模式,据我了解可以... 查看详情

维度表和事实表的含义是啥?

维度表和事实表,在构建企业级数据仓库时经常能见到。维度表被看成是用户用来分析一个事实的窗口,它里面的数据应该是对事实的各个方面描述维度表和事实表,在构建企业级数据仓库时经常能见到。维度表被看成是用户用... 查看详情