2

是否有一种Star Schema类型的名称,其中有一个Fact 表,该表具有单个值列,并且值的类型(度量)由维度定义?

换句话说,像这样的表:

Dim1ID     Dim2ID       MeasureID      Value
---------  -----------  -------------  ------------
543        44           1              234.3
543        45           1              256.3
544        44           1              245.3
544        45           1              264.5
543        44           2              10
543        45           2              8
544        44           2              9
544        45           2              10

一个值列通过外键表示不同的度量。

这种模式有名字吗?

4

3 回答 3

2

也许是 实体-属性-值模型?

社论:有些人认为这是一种反模式(在 SQL 中),尽管在基于列的存储中,这是通常的行为(BigTable,Cassandra)。

于 2010-11-11T17:56:42.917 回答
0

在我看来,就像MeasureID引用列出所有可能度量的表格一样,您只有一个具有三个维度的星图,其中一个维度被命名为“度量”。

于 2010-11-11T18:50:42.437 回答
0

我只称它为 4D 表:三个关键属性和一个非关键属性。我不认为它需要一个特殊的名字。

前段时间我使用了一个几乎相同的模型。我们有超过 8000 个措施和数十亿行。在我们使用的 DBMS 中,创建具有 1000 列的表是完全不切实际的(也没有必要)。对于大多数行上的大多数度量,“宽”行版本根本没有值。因此,我们要么必须为不存在的数据生成空值或虚拟值,要么必须创建数百个“更窄”的表,其中包含几乎任意的度量集。“垂直”模型更有意义,并且与正确的 DBMS 配合得很好。

我不同意您的设计未正确规范化的建议。只要所有度量都具有相同的数据类型,那么它就是一个合法的设计并且至少处于第 5 范式(假设维度和度量标识符构成键)。如果强制您使用空值,那么具有大量列的替代设计肯定不会被规范化。

于 2010-11-11T21:51:31.967 回答