分享

数据仓库 之 数据建模理论

 喵感数据 2020-10-06

数据仓库建模理论就像大厦的地基,只有把建模理论理解清楚,在数据建模时才能有理有据。作为一个数据仓库开发人员,数据建模理论是我们必须要掌握和理解的一部分,只要充分理解了数据建模理论知识,在建设数据仓库时我们就可轻松上手。

数据建模理论

数据仓库的两大模式:Kimball维度建模 和 Inmon范式建模

一、Inmon范式建模

1.1、什么是Inmon范式模型?

数据仓库是商业智能的一部分,一家企业或公司只有一个数据仓库,数据集市的信息皆来源数据仓库。现在的数据库大多数都是依据3FN范式来建立的,而依据范式的思想来进行数据仓库建模,就是范式建模。数据仓库中的数据信息必须符合第三范式。

范式是关系型数据库的基本概念。是指符合某些条件、符合某些规则的关系集合。范式是分级的,每向上一级,条件和规则更加严格,每一级是下一级的子集。

范式最主要的目的是消除冗余,每一份信息必须存放一次,也只能存储一次。数据的冗余不仅仅会造成存储资源的浪费,而且可能会引发数据的更新异常。

二、Kimball维度建模

2.1、什么是Kimball维度建模?

数据仓库是公司内部所有数据集市的集合,信息总是被存储在多维模型中。是面向数据集市、数据主题的,一般采用星型模型建模。依据星型模型,构建事实表和维度表,建立数据仓库模型的过程,就是维度建模。Kimball的核心思想就是星型模型和维度建模。

2.2、什么是星型模型?

所有的表直接与事实表关联,整个图解就像星星一样,该模型称为星型模型。星型模型是一种非正规化的结构,是反范式的。因为多维数据集的每一个维度都直接与事实表相连接,不存在渐变维度,所以数据有一定的冗余,

星型模型

2.3、事实表和维度表

事实表描述业务过程的度量、以可加数据为主题,每一行代表一个可以观察的实体或事件。主要的是发生了业务过程,如卖出一件商品,用户购买一件商品,这都触发了业务过程。卖出的商品有商品属性、有卖出的门店、有出货记录,有购物者信息等等。

维度表描述事实所处的环境、面向分析,代表针对事实的一种分类。直白点,维度表就是用来描述事实的。还以卖出商品为例,卖出的商品,商品有属性,包括颜色、尺码、风格、季节等多种属性,这些属性组合在一起就构成了描述商品的维度表。

对维度表再建立更细的维度,称为支架表。支架表是维度表的维度表,支架表是去冗余的产物,在星型模型中,对冗余很宽容。所以支架并不是必须的,并且应该尽量少用。合适的方法是:将支架表合并到和事实表直接连接的维度表

2.2、什么是雪花模型?

当有维表没有直接连接到事实表上,而是通过连接其他维表间接连接到事实表,其图解就像多个雪花连接在一起,故称雪花模型。雪花模型是对星型模型的扩展。它对星型模型的维表进一步层次化,把原有的维表进一步拓展,形成更多细分层次。

处理雪花模型的方式,和支架表一样,理想的模型是只存在和事实表直接相连接的维度表。在数据仓库中,数据冗余不重要,连接性能更重要!我们通过牺牲空间来换取时间,这些数仓很常用的手段。

雪花模型

雪花模型是一种规范的数据建模模型,规范化的目的是去冗余,在节省存储的同时减少重复更新。但是对于数据仓库来说,这两者都不重要,数据仓库本来就不更新。Kimball模式的数据仓库的查询性能优先!星型模型,是反范式的

总结:数据仓库建模过程是一个很复杂的过程,一方面不仅要根据自家业务处理建模需要,一方面还要深入了解建模的理论基础。

有理论指导更加有利于建仓工作开展。理论学习可以使我们更能把握数仓建模规范,具有整体视角,具备全面思维。下一节,将会写一些维表和事实表设计,以及建模流程的个人见解。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多