多维数据集与关系数据库的对比理解。
对于习惯了关系数据库,刚接触多维数据集的人来说,概念的对比是最容易糊涂的了。
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。属性成员来自于相应的字段数据,但是是对数据结果的分类。
浙公网安备 33010602011771号