搭建数据仓库第05篇:逻辑建模–2–范式建模

目录

  • 前言
  • 使用情景
  • 如何来范式建模
  • 使用的效果
  • 小结

 

 

前言

 

上篇讲述了一些抽象的概念模型和逻辑模型设计的东西,接下来就该讲述如何来一步一步的利用Inmon和Kimball数据仓库的理论来建设数据仓库的模型,主要分几块吧,一个是范式建模,然后是维度建模(分几篇总结),最后是因地制宜,按照自己的平台来考虑如何综合的考虑Inmon和Kimball数据仓库的理论的应用。

Inmon最初的建模理论是通过构建一个符合三范式的集中式的数据中心DW层,此层次的表一般不对BI和应用开放,而是基于DW的数据构建数据集市DM层来对外服务。DM层的数据一般也采用范式建模,不过随后融入了维度建模的思想,把DM层建设成星型模型。但是并未提出使用一致性维度。

本篇将会讲述范式建模部分。当然3范式的概念也不再赘述,度娘全都有。

 

使用情景

 

提起数据仓库建模,谁都会知道Inmon的以范式建模为理论基础的集线器式建模,以及Kimball的以维度建模为理论基础的总线式建模,关于这两者这更好的争论就不在这里陈述了。实际上,随着数据仓库的发展,现在两种模型都在原来的基础上再往同一个方向发展,最终大家都比较相似了,甚至出现的复合式的数据仓库理论,将这两种架构整合在了一起,充分利用了两者的优点。

我个人的看法是,范式建模,有着维护数据的一致性,稳定性,可扩展性,减少冗余,同时也有着规范化但是不利于分析理解数据等的特点,这样子完全可以把范式建模利用在ODS和DW层之间的中间层数据模型,因为这一层数据承载着DW层的数据,但又不会对用户开放,放式建模完美的匹配上了。

 

如何来范式建模

 

范式建模采用的是3范式,而大多数的线上业务数据库也遵循着3范式的规范,所以范式建模是推荐贴源(ODS)的,甚至简单的业务情况下不需要中间层,直接使用ODS层即可。

当然对于如下情况我们还是建议通过范式建模来重新组织数据

  1. 业务数据库的表没有遵循3范式
  2. 有复杂的字段(比如json字段)需要解析
  3. 业务维度比较复杂,很难直接关联取出所需的数据,比如业务X营销体系=n

使用的效果

通过范式建模,可以

  1. 保证数据的一致性(因为采用完全不冗余的方式,避免了数据的不一致,比如出现 广东 厦门的这样不一致的记录)
  2. 解耦方便维护,也提高了运行效率
  3. 针对复杂字段的解析和复杂业务的分解,有利于DW层的直接使用

小结

 范式建模不仅在线上业务数据库中展现了强劲的风采,也在数据仓库侧发挥着重要的作用。范式建模的难度在于如何抽象业务,来进行DW建设前夕的准备工作。建好了这一层的数据模型,对于DW层数据的建设,将是大大的提高了效率和大大降低了复杂性。

 

posted @ 2016-11-17 22:06  晨柳溪  阅读(4867)  评论(0编辑  收藏  举报