多维数据集与关系数据库的对比理解。

对于习惯了关系数据库,刚接触多维数据集的人来说,概念的对比是最容易糊涂的了。

2个简单的表。

主表Table1 ,从表Table2,他们之间为一对多的关系。

Table1的字段有2个,date1和keyid
Table2的字段为key,date2.

两表的连接依靠的是Table1.keyid = Table2.key

现在我们把他们转为多维数据集,看看结果变成如何。

Table1:事实表,date1的数据称之为度量值,keyid是作为和Table2连接的键。
Table2:维度表,key,date2都称呼为table2的属性。而他们所代表的数据的分类称之为成员。

事实表其实不是一张表,而是很很多张表的集合。每个维度表的属性都会在事实表中映射出一张表。

例如:Table1和2数据如下:
date1   keyid                        key    date2
A         a                                a      m
B         a                                b      m
C         b                                c      n
D         c

那么在多维度数据集中,事实表就还存在着这样两张表。
date1   key         date1  date2
A+B      a         A+B+C   m
C           b         D            n
D           c

第一张表是table2的key字段通过在table1中相同的数据直接映射出来的,所以key属性是table2维度表的第一层。
第二张表是table2的date2字段,不过这个字段的数据在table1并没有对应的数据,所以他是通过key字段才能在Table1中映射,所以date2属性是从属于key属性的第二层。这个就是维度表所谓的“层次结构”了。

成员这样也好理解了,原本date2的数据是m,m,n。但其实他只有2个成员,m,n。属性成员来自于相应的字段数据,但是是对数据结果的分类。

posted on 2007-01-13 13:25  猪小小  阅读(771)  评论(1)    收藏  举报