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

Posted 晨柳溪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搭建数据仓库第05篇:逻辑建模–2–范式建模相关的知识,希望对你有一定的参考价值。

目录

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

 

  • 前言

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

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

  • 使用情景

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

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

  • 如何来范式建模

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

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

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

通过范式建模,可以

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

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

 

以上是关于搭建数据仓库第05篇:逻辑建模–2–范式建模的主要内容,如果未能解决你的问题,请参考以下文章

数据仓库数仓建模之星型模型与维度建模

搭建数据仓库第04篇:逻辑建模–1–概要

如何搭建一个数据仓库

搭建数据仓库第08篇:逻辑建模–5–维度建模核心之一致性维度2

数据仓库之维度建模篇

数仓理论- 03 数据仓库建模