bt365最新网站-bte365娱乐线-bt365官方网站

数据建模:关系模型和维度模型

前言一个业务场景两张图关系模型维度模型结语前言 提到数据建模,接触过数仓的同学很容易就能说出:关系模型(Inmon)和维度模型(Kimball)

数据建模:关系模型和维度模型

前言一个业务场景两张图关系模型维度模型结语前言

提到数据建模,接触过数仓的同学很容易就能说出:关系模型(Inmon)和维度模型(Kimball)。如果要去细究这两种模型具体有什么区别的时候,就有点说不清楚了。我还特意去找了《数据仓库》这本书的相关章节,感觉内容比较晦涩,估计看的也不是很明白。

这里我结合自己实践和理解,尝试用 一个业务场景 + 两张图 的方式描述一下两种模型之间的区别,供大家参考。

一个业务场景

以电商场景中用户购物为例,主要涉及三类数据:

用户

用户 ID、性别、地区和姓名等;

商品

商品 ID、类型、厂家和名称等;

订单

订单 ID、用户 ID和商品 ID等;

分析需求:

按性别统计用户的购物情况

按地区统计用户的购物情况

按类型统计商品的出售情况

按厂家统计商品的出售情况

我们分别使用关系模型和维度模型来看一下:数据是如何存取的和需求是如何实现的。

两张图

关系模型和维度模型之间的主要区别体现在 数据组织形式 的不同。

关系模型

用户表和性别表、地区表之间分别使用性别 ID、地区 ID 建立连接。

商品表和类型表、厂家表之间分别使用类型 ID、厂家 ID 建立连接。

订单表和用户表、商品表之间分别使用用户 ID、商品 ID 建立连接。

这些 ID 被称之为 外键,数据表之间通过 外键 建立关联关系。

如果要按性别统计用户的购物情况,需要 连接 查询订单表、用户表和性别表。

如果要按地区统计用户的购物情况,需要 连接 查询订单表、用户表和地区表。

如果要按类型统计商品的出售情况,需要 连接 查询订单表、商品表和类型表。

如果要按厂家统计商品的出售情况,需要 连接 查询订单表、商品表和厂家表。

维度模型

订单表和用户表、性别表、地区表、商品表、类型表和厂家表之间通过 外键 建立关联关系,订单表被称之为 事实表,其它表被称之为 维度表。

如果要按性别统计用户的购物情况,直接查询订单表。

如果要按地区统计用户的购物情况,直接查询订单表。

如果要按类型统计商品的出售情况,直接查询订单表。

如果要按厂家统计商品的出售情况,直接查询订单表。

可以看出,维度模型的订单表相比于关系模型的订单表 冗余 存储了额外的性别 ID、地区 ID、类型 ID和厂家 ID,虽然需要使用更多的 存储空间,但是查询的时候可以直接得出结果,节省了数据表之间的 连接开销。

维度模型可以细分为 星型模型(如上图)、雪花模型 和 星座模型,雪花模型相比于星型模式,维度表之间可以有关联关系;星座模型相比于星型模型,可以有多张事实表。

结语

关系模型和维度模型之间没有绝对的好坏之分,业务复杂的场景下,更多的是理论参考,严格按照模型定义去实践的意义不大,有时候整合应用的效果也是不错的。

← 上一篇: 如何解决CCtalk应用程序在手机应用商店下载错误的问题?
下一篇: 物联网专业要学什么技术 →

相关推荐

cf雷豹怎么样,cf雷豹多少钱

cf雷豹怎么样,cf雷豹多少钱

CF雷豹怎么样:游戏中的顶尖佣兵角色 在《穿越火线》(CF)这款备受玩家喜爱的射击游戏中,雷豹(Special Air Service,别名SAS特勤队)无疑是一

臆造银币有价值吗

臆造银币有价值吗

精彩内容 臆造币,指的是官方根本没有发行过,由一些不法分子(古玩贩子)凭空想象造出来的钱币。如今在古玩地摊上,到处都是那种粗糙的

什么是最低工资标准,它都包括了哪些部分

什么是最低工资标准,它都包括了哪些部分

你知道什么是最低工资标准吗?这是指劳动者在法定工作时间或依法签订的劳动合同约定的工作时间内提供了正常劳动的前提下,用人单位依法应

“包租婆”为什么要叫房东?中国这3点讲究,很多人都不知道!

“包租婆”为什么要叫房东?中国这3点讲究,很多人都不知道!

“包租婆”为什么要叫房东?中国这3点讲究,很多人都不知道! 又快到发工资的日子了,租房的朋友是不是开始在准备给房东“纳贡”了呢?

《朴朴超市》在哪些城市有

《朴朴超市》在哪些城市有

朴朴超市是一个新推出的生鲜即时配送的网购平台,手机下单买生鲜蔬菜,30分钟送达,有用户好奇朴朴超市在哪些城市有,下面就来告诉大家

严重醉酒后难受怎么缓解

严重醉酒后难受怎么缓解

严重醉酒后难受可以及时去医院的急诊科就诊,并在医生指导下采用促进排泄法、饮食控制法、药物治疗法缓解。一般通过以上方法治疗后,患