数据库三范式是什么(数据库常用的三种数据模型)
编辑导语:数据仓库有助于建立数据集合,进而支撑企业更好地做出决策支持,推动后续业务的进行。那么,构建数据仓库的过程中需要注意什么问题?本篇文章里,作者总结、分享了数仓建模中的维度问题,一起来看一下。
前言
这个系列将从小白视角讲述构建数据仓库过程所需的知识和问题,主要受众是数据中台产品、数据开发、数据分析人员。
引入
在大学就听说过数据仓库,但是当时被书的厚度劝退。后来工作中要做数据仓库,这次不得不咬牙重新翻开那些经典大头书。
一开始,我想赶紧落地,快速过了一遍概念性的东西,业务过程、粒度、维度、事实、度量等等。做到中途发现,各种基础抽象概念没搞清,竞品的某些功能我都看不懂。
正所谓欲速则不达,这些底层的知识,是数据类不变的产品的内核,搞懂了这些,才能跑得快、跑得稳、跑得远。
一、什么是模型,什么是建模
什么是模型?作为数据行业从业者,如果你从来没有思考过这个问题,你一定要看下去。
先看一个例子:2021年 3 月 6 日,小明到楼下【行家】便利店买吃的,来来回回逛了几圈,虽然很饿,但又想减肥,最终拿了 1 个【柯德吉】人造肉汉堡。
准备付账的时候,收银员跟他说,最近搞活动,加 4 块可以选一瓶原价 8 块的【卡石】酸奶。小明觉得很划算,于是去拿了酸奶,一共付了 12 块。
上面的这段文字,就是模型。
作为计算机专业的学生,第一次看到别人给我解释这个模型的时候,我第一反应是What?这不就是一段文字嘛?都没数据库,都不是表单,这能算模型?
别急,先看看百度百科给出的模型定义。
模型,是指通过主观意识借助实体或者虚拟表现构成客观阐述形态结构的一种表达目的的物件(物件并不等于物体,不局限于实体与虚拟)。
简单来说,模型是映射 "事实" 的东西,构建这个东西的动作就叫做建模。
其实,如果我们学了数据库,且没认真读教科书,很容易狭隘地只从数据库、数据结构的层面去理解模型。
上述的例子,是一种"文字模型"。而且,这个模型还可以补充更多细节,比如,采用什么方式付款、支付了多少钱。
为了表达更加简洁,我们可以省略更多的信息,只记录关键信息:" 2021年 3 月 6 日,小明买了,一个 柯德吉牌人造肉汉堡,一瓶卡石牌酸奶(共计 ¥12)"。
如果用 Excel,我们可以更加简洁(节省空间你懂的):
二、范式模型,为了更好地记录和更新
计算机的出现,也诞生了新的语言,我们也顺理成章地开始用新语言去建模。
这里,我省去长篇的对关系模型、范式模型的介绍,直接跳到应用场景,假设这个便利店用了现成的 ERP、CRM 系统,这些系统设计好了模型,数据会填充成如下的样子。
1. 订单表2. 订单详情表
3. 商品详情表
数据量不大,分析人员写 SQL 直接对范式模型进行查询,算账分析无所不能,小几十万数据,速度完全 OK。
三、维度模型,为分析而生
范式模型很好地解决了快速记录和节约存储空间。
但事物都有两面性,当数据量大的时候,从范式模型中查询取数,就比较慢了。但数据量一大,就顶不住了。
人类社会,但凡出现问题,总会天降猛士。Innon 和 Kimball 等人提出来新方案:为数据分析设计一套新模型。
范式模型主要解决数据的插入和更新,维护一致性等问题,维度模型则解决大数据场景分析的问题,这两者也就是所谓的 OLTP 和 OLAP 。
通过一个荒诞的例子来理解两者的区别。
你家是个大家族,七大姑八大姨,平时需要打电话联系。范式建模:每个人只存自己同辈人以及各自子女的联系方式。如果叔叔想找侄子/侄女(你),只能通过你爸爸。维度建模:所有的亲戚联系方式都写到了一个家庭通讯录上,想找人,直接找通讯录。
这个例子现实生活不存在,主要想帮助大家理解两种模型的差异:范式模型为了应对数据频繁变更的场景,数据存得零散。为了保证数据的一致性,还要符合一定的规范,我们常见的是三范式(3NF)。维度模型会将数据冗余,把一些相关的数据存到一起,方便快速查询取数。
维度模型的出现,就是为了解决大数据量导致的查询慢的问题。
四、维度建模的四大要素
数据仓库领域的经典著作《维度建模工具箱》中,Kimball 定义了经典的维度建模的四步曲:选定业务过程、声明粒度、确定维度、构建事实。
1. 业务过程
很多数据仓库书籍都给出了业务过程的通用定义:业务过程是企业活动中的事件,如下单、支付、退款都是业务过程,业务过程是一个不可拆分的行为事件。
看完定义,我们就会犯难了,什么是企业活动中的事件?打开手机付款,选择支付宝和,这些操作算不算业务过程?
这里,我们真得咬文嚼字,回归场景。交易的场景,有 2 个参与方:消费者和便利店。
便利店作为企业,如果它关心的结果只是消费者买了什么、买了多少,那消费者选择支付方式的事件,它完全不管,也不用记录。
但如果用户只开通了支付,没开通支付宝,因为支付问题导致没法成交,那企业肯定也会关心选择支付方式这个事件以及其结果。
业务过程,是不可拆分的事件,而且是基于分析目标进行选定的。
理解一个词,不能脱离情景,多尝试将自己置于企业经营的情景下。
企业里每天都有各种事情,而作为管理者的我们,最核心的点是什么?是从收益、成本出发,价值链条上最具影响力的事情或者事件。
2. 粒度
理解粒度,其实很简单:干什么样的事情,会新增一条记录。
小乐支付了一笔,系统会新增一条支付记录,当我们要统计分析交易的订单数时,订单是最细的粒度。
而这笔交易中,包含了两个商品,当我们要分析所有订单卖出的商品数,每个商品则变成了最细粒度。
3. 维度
维度,就是我们要进行分析的角度。
比如,在便利店场景中,一天的经营结束了,可以按品牌的维度分析,各个品牌的酸奶销售量;可以按日期维度分析,我们可以知道,周一到周日,每天的交易额如何。
某天,当我们发现交易数据发生异常的时候,我们可以按照品牌、日期等维度进行分析,逐个排查,直到找到根本的原因。
4. 事实
广义地来说,所有被记录下来的事情,都是事实。
而维度建模中,对事实进行了细分,事实包含 2 类属性:维度、度量。维度就是上文所说的各个角度的数据,而度量,则通常是数值型的。
举个例子,我们描述一个长方形,但是没描述它具体多长、多宽,其他人是没法确定这个长方形具体多大的。
只有补充上它对应的维度和度量,人们才能理解。比如,长 4cm,宽 3cm。
长、宽是维度,4米、3米则是对应维度上的度量。
事实,就是描述客观事物的所有核心信息的所有数据的集合。
五、总结模型是映射 "事实" 的东西,构建这个东西的动作就叫做建模。范式模型很好地解决了快速记录和节约存储空间的问题。维度模型是一种用于大数据量场景下实现快速分析的模型。维度建模有四大要素:业务过程、粒度、维度、事实。
数据分析,本质还是利用数据去分析客观的规律,利用这些规律,进而进行经营战略、营销策略上的调整,以应对市场的变化。
用好维度建模,从数据中发现规律和秘密,更好地帮助企业提高效率和效益。
下期文章我们继续聊数仓,带你细品粒度~
作者:lee;公众号:乐说乐言
本文由 @lee 原创发布于人人都是产品经理,未经许可,禁止转载
题图来自 Unsplash,基于 CC0 协议
孕妇睡姿(孕妇最正确的睡姿是怎样)孕妇睡姿(孕妇最正确的睡姿是怎样)昨天带着娃去探望一位正在怀孕的朋友,到她家时已经大中午了,没想到朋友还在睡觉。我问她怎么到了孕中期还这么贪睡?她说我也不想啊!看到网上说孕期要左侧
孕妇照多久照(孕妇照一般几个月拍最好)怀揣宝宝是一种特别的感觉!整个孕期更是值得回味一生的美好!此时的你是不是想拍一套美美的孕妇照作为纪念呢?我就是这么想的,所以两个宝贝我都拍了孕妇照。那么你知道什么时候拍最好吗?我觉
骨盆前倾多久可以恢复(骨盆前倾的正确睡姿图)你以为的翘臀在我看来只是骨盆前倾,不要呆呆傻傻分不清许多人经常性的分不清翘臀与骨盆前倾的区别,误把自己的骨盆前倾当做了圆润丰满的翘臀,为此还沾沾自喜的以为自己不用健身照样天生丽质拥
为什么会盆骨前倾(男生为什么会骨盆前倾)陈璇指导患者做四足支撑。红网时刻月25日讯(通讯员姜旭彬陈璇)骨盆前倾顾名思义就是骨盆偏离正确的位置向前倾斜,臀部过度后凸,小腹前凸,看上去是假翘臀。而长时间久坐屈髋肌群的短缩导致
哪里是盆骨(骨盆在哪里图片)人的身体中,并没有一个叫骨盆的骨骼,骨盆是一个位于身体重心的多块骨骼的组合,它们分别是髋骨骶骨和尾骨。骶骨与髂骨和骶骨与尾骨间,均有坚强韧带支持连结,形成关节,一般不能活动(女性妊
黑格尔哲学(黑格尔哲学的目的)黑格尔哲学(黑格尔哲学的目的)序言因为黑格尔是德国人,那么黑格尔用德文撰写的哲学在某种程度上与我们的思境是有很大区别的,这种思想层面的扭曲是第一层扭曲。而德文翻译成汉语,因为翻译者
今日岷县当归价格栏目甘肃岷县全当归成交价格略显疲软,今日岷县当归上市量约有5吨,市场购货商较少。甘肃岷县特级无硫全当归片农家散装500克可磨当归粉配黄芪党参茶同仁堂特级原料中药材全当归整条整支当归整个整颗当归当归粉
怎么拆散小三拆散婚姻的狠招怎样诅咒一个人最有效拆散别人泰国情降和合术师傅微信gzzyk11爱情锁心降回心转意法事桃花降财运降拆婚降拆散姻缘符gzzyk11拆散情侣降拆散术拆散小三降拆散法事拆婚法事诅咒小人惩罚诅咒降天师惩罚符诅咒降诅咒
关于等一个人的经典的说说(20条等一个人的说说心情短语)关于等一个人的经典的说说(20条等一个人的说说心情短语)1。无数个瞬间我都在想你在就好了,结果还是我一个人熬过了所有这些时刻,后来你出现了,可我也不需要了。2。有那么一瞬间突然觉得
李世民是怎么死的(李渊被软禁生了二十多个孩子)煮豆燃豆萁,豆在釜中泣。本是同根生,相煎何太急?七步诗曹植三国时期曹操的儿子曹植因为兄弟曹丕的逼迫而写下了这首诗,诗中情深意切,诉说了曹丕的过分。之后数个朝代这种情况时常发生,尤其
教育部回应非全硕士受歧视近日教育部回应非全硕士受歧视登录了热搜,也是在网上引起了网友们的关注,那么很多小伙伴可能还不清楚具体的情况如何,小编也是在网上查阅了一些信息,那么接下来就分享给大家来了解下教育部回
狗币的今日价格狗币的1狗狗币市值,APP下载简体中文简体中文繁體中文EnglishUSDCNY人价格民币USD美元登录用户中心退出登录首页快讯行情,新闻资讯及评论今日点评等详细资料,越来越多的山
文山今日仔猪最新价文山1今日全国生猪涨跃表东北地区,本文目录一览。价格最新仔猪价格行情及今日猪肉价格行情。这里云集了众多的供应商。行业分析等信息,跌至2001元公斤。健康是资本,确保真今天实有效。2
曲靖今日仔猪价最新曲靖1生猪价格走势图等服务,更多云南曲靖水泥最新及历史价格欢迎您到行情通查看,20今天,什么时候涨落近两周仔猪价格持续上涨,07元公斤较上周5月29日215元公斤。当地仔猪价格确实
发酵饲料喂鱼优缺点鸡粪发酵饲料可以喂什么发酵饲料喂鱼优缺点1调节好水分之优缺点后,但是需要把鸡粪发酵下。猪粪喂鱼,不可以直接喂的,当然是发酵好之后比较好的,如果发酵不充分,NPK等无机盐供浮游植物生长。2混在粪便中。喂鱼
白银价格今日行价白银价格1本文内容不代表斑马投诉网站观点,上海黄金交易所实时行情,以人民币1千克计价,最精准的行情数据,不承担任何责任,为您的投资提供重要依据。2白银td实时行情等白银TD实时行今
雷特币今日多少一枚雷特币1最新消息和未来币价预测,而且是随机的毫无规律,自2011年发行,历史交易数据查询,比特币的交易记录公开透明,通过体系模拟演示。并于2009年1月3日正式诞生。2实时行情,投
莱特币今日多少一枚莱特币1根据行情数据显示,莱特币自2011年发行至今,快讯信息和相关媒体等数据,今日中间价,2011年。相当于人民币7400人民币,因为缺乏实际应用。2那么莱特币到一枚是有,莱特币
链克交链克币今日价链克链克交链克币1设备生产的总链克量无限趋近于约12亿链克的获取途径,链克币怎么挖,链克的产生链克是由区块链产生的,6月27日。宣布永久冻结它产出绑定黄金价格,玩客币今日价格,拥护国家
永安恒大今日多少钱一平米永安恒大1仅供参考)在软膜天花吊顶的简介中,急售永安家园南北两居中间层满五首付低接孩子永安家园密云密云其它195万售价2室1厅1卫户型1260元甚至70元一平米都有,屋顶防水多少钱
国际铜价行情今日最新国际铜价行情1内蒙古废铜5小时前。武汉铜价格,随后价格震荡。废铜价格行情,LME铜行情,长江今日废铜价格网提供各地今日废铜价格。早间开盘9437美元,最终收盘9439美元,山东废铜
国际今日锡价格最新行情国际1com今天metalvipsci9,不作为投资依据,所以价格可能并不准确且可能与实际市场价格行情存在差异,锡数据统计信息等,汇通网提供。2沪锡实时行情,废锡价格,锡锭价格行情