English 中文(简体)
是否有必要在数据仓库的概况介绍中披露主要要素?
原标题:
  • 时间:2009-05-30 18:10:51
  •  标签:

当我问我们的非行设计师为什么我们的概况介绍没有PK时,我被告知,表中没有一套独特的栏目,即使选择了所有栏目。 当我建议我们成为该案中的一栏身份时,我被告知,“我只是浪费空间,而是需要什么东西”。

我的感觉是,来源系统中的每一个表格都应有一个PK,即使它是一个身份栏。 鉴于数据仓是来自其他系统专门知识的数据的接收者,否则我就能够确保DW中的数据准确反映来源系统中的哪些数据,如果无法将个人记录联系起来的话? 如果你有一个分散的负荷方案,能够重新编制数据,并且已经运行一个星期,那么你如何将差异与现场交易源系统相调和/某种独特的制约因素进行比较?

最佳回答

没有主要钥匙的数据库表似乎好像设计选择差,为不同类型异常留出许多空间,即你如何删除或更新表格中的单一记录?

问题回答

数据仓库不一定是关系数据储存,尽管你可能选择将其放在一起,因此不一定适用关系定义。

只有当你想要与需要独特识别资料的数据做一些事情时,才需要一个首要的关键(例如,对来源进行追踪,但不一定总是需要或必要,甚至可能的话);在数据仓库中,数据往往可以用不需要主要钥匙的方式使用。 具体来说,你可能不需要相互区分。 最常见的做法是建立总价值。

时间不是建立数据仓表的必要内容。

这在心理上可能不舒服,浪费空间是一个棘手的问题,但你的同事是正确的——必须用PK。

身份类一栏是“保险”钥匙,取代您的“证明”钥匙之一(简略)。 添加一个代号的关键栏目,如果你可以不指明一行,则无一例外。 这需要一名候选人。

您至少应在事实表中拥有一个自然关键人物,以便你能够确定行踪,并根据源头或在必要时跟踪变化。

页: 1 服务器的特性一栏使你能够使用序列(如Oracle)免费和其他系统的代用钥匙。 由于各种原因,分门别类的事实表钥匙可能有用。 一些可能的申请是:

  • 一些工具如在事实表格上有数字钥匙,最好是单体增加。 其中一个例子是MSQ服务器分析服务,它实际上喜欢有数字、单州性增加的用于人口测量组的概况介绍的关键。 这尤其需要增加负荷。

  • 如果您在事实表格(例如书面表格)之间有任何关系,那么,这里的合成钥匙是有用的。

  • 如果你在M:M与事实表(如ICD代码)的关系中存在层面,那么事实表中的一个数字关键因素就说明了这一点。

  • 如果您对交易有自雇要求(例如某些交易是对他人的更正),那么合成钥匙将简化工作。

  • 如果你在数据仓库内开展反国家行动(即通过产生逆转和重新启用行文处理交易数据的变化),那么你就能够拥有相同自然钥匙的多个事实表格。

否则,如果你在1:M关系中赢得任何一席之事,那么合成钥匙可能胜过任何东西。

我同意你的意见。

“我被告知,表格中没有任何一栏能够独一无二地确定记录,即使选择了所有栏目”,这似乎打破了我所理解的有关数据库的基本内容。

事实包括附加价值加上外在层面的关键。 时间是我所知道的每个层面模式所共有的一个明显层面。 如果没有其他东西,包含时间序列的综合关键肯定是独特的。

我不禁要问,你们的德国统计局是否对中间模式有很了解。 它具有不同于正常关系、交易风格的不同思维方式。

你是正确的。 如果没有主要关键因素,表格就不符合关系的最低定义。 至关重要的是,它不能允许重复增长。 数据仓设计表应具有关联性,即使表格不严格按正常格式进行。

因此,各行之间必须有一些一栏(或一组)能够独一无二地识别各行。 但是,它不一定要成为代用钥匙的特性一栏。

如果事实表没有一套能够发挥候选人关键的作用的栏目,那么该表需要更多的内容表,而情况表需要更多的栏目。

仅这一新的方面可能不是主要的关键;它可能与事实表中现有的栏目结合,以形成候选人的关键。

如果事实表处于饥饿状态,那么实际上就有一个候选人的钥匙。 如果你把事实表中的所有外国钥匙放在一起,那就意味着问题表上的增长,而问题表是候选人的关键。

宣布它为首要关键可能并不好。 唯一可以做的是保护你不受流.的ETL进程的影响。 经营该仓库的民间人士可能手足轻重。

就指数化和查询速度而言,整个问题都与采用OLTP的面向数据库相比,有星体。 经营该仓库的人也可能拥有这些财产。

在设计一个使用异常低价竞标的数据库时,它不希望有一个没有主要钥匙的表格。 同样的考虑没有结转到仓库。

我总是认为,应该根据其最常见的问询或业绩考量来订购一个表格,因此,一个表格的分组索引应当与最困难或最常见的问答相一致。

主要的钥匙不一定是分门别类的指数,因此,我知道你会问,在什么时候我会这样做,但我对分组指数的关切比主要关键因素(而且,他们通常相互追随)。

因此,对我来说,最初的问题不是“我是否在事实桌上拥有一个主要钥匙?” ,而是更像“我是否在事实表中有一个分组指数?” 我认为,答案是,你应该有一席之地(而且,在这个网站上还有涉及这一问题的其他职位,但我仍然认为,在这里,正如人们真的问话,尽管措辞是错误的,但还是应该提到这个问题)。

有时,你想要 sur取钥匙,但我很振奋地建议, sur子是NOT,是表格的分组指数。 这样做将使表格符合无谓地 sur取钥匙。 (经常有人在表格中添加一个外加身份栏,使其成为主要关键,也是按违约分类的指数)

因此,集中指数的栏目是什么? 在我个人上,我就象事实表的日期一样,而且你可能为独一无二而增加某些其他方面的科索沃解放阵线,但这会增加规模,而且可能不会带来任何好处,因为指数要有用,就必须提及相关层面(关键因素的产生顺序)。

为此(以及我在此回答的原因) 我认为,你补充说了一个 sur子,然后就关键日期制定分组索引,然后是代号(按该顺序)。 我之所以这样做,是因为光靠这个日期不会带来一个独特的增长,而是增加 sur的意志。 这使数据按日期顺序排列,有助于所有其他非分类索引,并使分类指数规模保持合理。

此外,随着数据的增长,你可能希望分门别类,在这种情况下,你将需要一定时间分门别类。 建立分组指数,其日期是关键部分的主要部分,使这项工作更加容易。 现在,如果分门别类,你可以使用滑动窗口技术来存档旧数据或装货。

每一行没有独一无二的识别标志,比最初似乎更糟。 当然,它很不稳定,很容易无意中删除一些行文。

但业绩也更糟。 每当你最终要求数据库将雇员的浏览带上<代码>。 EmployeeType = 经理你正在进行细微比较。 认证员更快、更好。

此外,储存费用较低,在这种情况下,我想到对空间的影响将不到四分之一个百分点if/em>,因为作为数据仓,你可能设计用于夸大数据。

http://www.ralphkimball.com/html/controversies.html

Fable:

事实表的主要关键部分包括所有参考的外在钥匙。

Fact:

事实表往往有10个或10个以上外国钥匙加入内容表的主要要点。 然而,对于增长独一无二的特点,通常只需要一张事实表的外在关键词。 大部分事实表主要包括外国钥匙的加固/复合子集。

采用综合层面,将关键因素作为事实表所有情况下工作的主要关键。 审议三个方面(a、b和c)的情况。 在大多数设计中,我们通常拥有一个“无人知道”的层面,假设总是把这个词分配给第一顶顶顶顶替。 我可以很容易地在我的事实表中有两行,这两行的钥匙是:n1、b=n2和c=-1, 即重复钥匙,因为两行没有达到有效的C级值,因此,两行都决心给不知名的行。

你在此重述两个问题——在事实表中确定一个独一无二的记录,从来源系统到事实表追踪记录。

在后一种情况下,单一记录在源系统中可以有多个事实表记录。 公布源系统记录,显示从一个账户向另一个账户转移资金。 可能有两个事实表记录来说明这一点,一个是借记账户,另一个是贷记账户。 此外,可能会有多个事实记录,以代表源系统不同邦在生命周期的不同地点进行记录。

关于事实表中主要问题,确实没有“正确”答案。 您可能希望具备某种可取/基本特征(例如,单一记录的身份可在系统用户之间轻易传送,或可轻易删除或更新单一记录)。 然而,就甲骨质系统而言,只要它偶尔会发生变化,它就很可能如此。

确实,在保持单一合成钥匙方面,管理费用太少,而你也可以这样做。 你们可能选择不将其指数化,因为指数将比列本身大得多的资源消费者。





相关问题