对于维度表的描述属性,虽然是不怎么变化的,但是随着时间的推移,它们还是倾向于被更改.产品范围的调整,引起产品体系的改变;顾客的流动,导致地理信息的改变;推销员的重组,致使业务版图的改变等等,下面是集中处理维度表表的方法.
第一种方法:直接覆盖
产品变部门后,数据库中变为:
优点:方便快捷.仅仅用当前的给定值去改写现有值就可以了.
事实表不会被修改.
缺点:历史会丢失.
适用:对于起更正作用的属性修改应用是很适合的.
没有旧描述值可供保存的场合.
第二种方法:添加维度行
产品变部门后,数据库中变为:
另,在后面添加上生效日期标记.
优点:保留历史
事实表不会被修改
可以根据需要,便捷的跟踪许多方面的维度变化
缺点:加速了维度表的膨胀
不能将新属性值同旧事实历史联系起来
问题:超过百万行且需要保留历史的情况的维度表的修改怎么来做?
不适用于:超过百万行的维度表
第三种方法:添加字段
产品变部门后,数据库中变为:
适用:任意通过新的或者以前的属性值,了解新的以及历史的实际数据.
问题:对于多次变化的属性,怎么来做?需要加多个属性吗?或者只有一个部门变化了,那也要加一个属性吗?
混合渐变维度处理方法:
可以通过上面三种方法的混合使用,来满足用户的各种需求.(具体见下篇博客)
快变维度:
处理快变维度的一个有利方法:
将这些迅速变化的属性分裂成一个或者多个单独的维度,然后在事实表中放置两个外关键字,一个用于主维度表,而另一个用于快变维度属性.这些维度表在每次向事实表加入行时相互关联起来.(具体见以后博客)