之前参考过很多资料,其主要的核心理念是,DV(Data Vault)是结合ER和DM的一套建模理论。其实与其说是这样,还不如说是ER这一派,想找一个中间地带,两者都能兼顾。
最近看了在维基百科看到关于DV的解释,其中提到DM的一段:
For this purpose, the hubs and related satellites on those hubs can be considered as dimensions and the links and related satellites on those links can be viewed as fact tables in a dimensional model.
简言之,维表既是Hub及Hub的卫星表,事实表是关联表及相关的卫星表。始终感觉实在是有点凑合的意思,但是不能去否认DV这个模型理念。
从阿里出的大数据之路这本书,我们看到DM已经有了演化,维表已经作为一种辅助表,事实表中已经冗余了维表信息。
换句话说,在ER里面似乎也能看到相同的演化方式,主题会变少,各主题中不再是3NF类型的表数据,而是通过冗余,形成一些常用的表字段,一些原先需要通过关系历史拉链表关联才能得到数据的,现在因为有了冗余,也变成辅助表的形式,但这里面的辅助表只是针对的该主题,在别的主题下,有可能成为关联表。
也就是说现有的数据仓库的建模形式,对于DV而言,理念是有所冲突的,因为DV还是建立在ER和DM这两个基础模型上,对于ER和DM的演化模型,DV里面定义的Hub就完全相左,但也不能完全抛弃,只要我们改一改定义就好,原先DV的框架继续采用。
那Hub怎么去定义呢?个人认为就是冗余的这部分表数据,因为我们常这些用数据,我们才会去冗余,不管是DM冗余部分,还是ER冗余
部分。这边要特别强调一下,各自冗余的部分还是保留自己的特色的,也就是还是能够看出实体与关系、维度和事实表的。
那Satellite表呢,似乎就是我们上面所说的两个模型的辅助表。
再谈谈Link,个人认为起的作用仅仅是解耦的部分,也就是针对多对多的现象。
那似乎一个新型融合DM和ER的模型就有了一个框架。那么下一次我们专门讲这个模型,欢迎大家多提问题,一起讨论。