Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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
Sql 缓慢变化的维度-什么是纯类型6实现_Sql_Sql Server 2008_Database Design_Data Modeling_Scd - Fatal编程技术网

Sql 缓慢变化的维度-什么是纯类型6实现

Sql 缓慢变化的维度-什么是纯类型6实现,sql,sql-server-2008,database-design,data-modeling,scd,Sql,Sql Server 2008,Database Design,Data Modeling,Scd,我试图理解纯6型SCD实现,从中可以看出主要有三点 如果维度需要更改,则为每个时间片使用类型2代理项可能会导致问题 纯类型6实现不使用此项,而是为每个主数据项使用代理密钥(例如,每个唯一的供应商都有一个代理密钥) 这样可以避免主数据中的任何更改对现有事务数据产生影响 但是,我无法清楚地看到这些问题。处理“类型6”或“混合”的要点是,通过为每个新版本添加新行来跟踪更改,然后更新以前版本上的某些属性以反映数据的当前状态。这样,数据就可以在所有版本中进行过滤和汇总,以便于报告 这里还有另一种解释:

我试图理解纯6型SCD实现,从中可以看出主要有三点

  • 如果维度需要更改,则为每个时间片使用类型2代理项可能会导致问题
  • 纯类型6实现不使用此项,而是为每个主数据项使用代理密钥(例如,每个唯一的供应商都有一个代理密钥)
  • 这样可以避免主数据中的任何更改对现有事务数据产生影响
  • 但是,我无法清楚地看到这些问题。

    处理“类型6”或“混合”的要点是,通过为每个新版本添加新行来跟踪更改,然后更新以前版本上的某些属性以反映数据的当前状态。这样,数据就可以在所有版本中进行过滤和汇总,以便于报告

    这里还有另一种解释:

    例如:

    处理“类型6”或“混合”的要点是,通过为每个新版本添加新行来跟踪更改,然后更新以前版本上的某些属性以反映数据的当前状态。这样,数据就可以在所有版本中进行过滤和汇总,以便于报告

    这里还有另一种解释:

    例如:


    如果我正在更新以前版本中的某些If属性,它将如何反映数据的当前状态?此外,为什么选择代理密钥与类型2或类型6混合建模不同。添加了链接示例(请注意“当前部门名称”列)您引用的示例是类型6混合,即类型1、2、3。而我正在研究纯类型6场景,其中没有当前的历史列。相反,它们只使用单个列。此外,在这个例子中,我无法理解为什么我们要更新过期记录的当前列。@ShantanuGupta,我明白了。除了在维基百科上,我在任何地方都没见过所谓的“纯6型”。当心不要把你在维基百科上读到的任何东西当真。其要点似乎是具有一个不会随时间变化的代理项。@ShantanuGupta但如果需要在行的所有版本中进行汇总或筛选,则需要一个在所有版本中都一致的值。这就是为什么您可能希望同时保留当前和历史属性。如果我正在更新以前版本中的一些If属性,它将如何反映数据的当前状态?此外,为什么选择代理密钥与类型2或类型6混合建模不同。添加了链接示例(请注意“当前部门名称”列)您引用的示例是类型6混合,即类型1、2、3。而我正在研究纯类型6场景,其中没有当前的历史列。相反,它们只使用单个列。此外,在这个例子中,我无法理解为什么我们要更新过期记录的当前列。@ShantanuGupta,我明白了。除了在维基百科上,我在任何地方都没见过所谓的“纯6型”。当心不要把你在维基百科上读到的任何东西当真。其要点似乎是具有一个不会随时间变化的代理项。@ShantanuGupta但如果需要在行的所有版本中进行汇总或筛选,则需要一个在所有版本中都一致的值。这就是为什么您可能希望同时保留当前和历史属性。