在数据仓库中建模的方式我们采用的是维度建模,而不采用三范式的结构。
三范式建模的方式有利于OLTP系统的更新插入操作,比如我需要在OLTP系统上更新一个表的数据,如果我采用的是维度建模方式,代表着我更新这个字段需要扫描更多的块才能找到相应的记录去更改,对于insert操作也是如此,这是需要操作跟多的I/O,在OLTP系统中我们是以事物为主,所以采用三范式设计还是比较理想的。
而对于数据仓库中我们是查询为主,对于用户来说,他们不是专业的IT人员,如果查询过于复杂,用户将无法理解,浏览和记忆,所以我们需要采取简明的设计,在者在数据仓库查询的过程中需要关联到很多维度去分析,这就导致了查询的sql跨表去关联,这样就增加了I/O的访问,如果把可以合并的维度表合并,那么就没有跨表去关联,相对于这个访问来说我们减小了访问的I/O.