精华内容
下载资源
问答
  • 星型模型、雪花模型3NF、OLAP

    千次阅读 2020-02-03 17:45:04
    在关系型数据库管理系统中实现的维度模型称为星型模型,其中每个维度表都直接事实表连接,数据存在冗余。 星型模型的两个关键部件 1、 事实表 事实表存储组织业务过程事件的性能度量结果。来源于同一个业务过程的...

    一、星型模型

    在关系型数据库管理系统中实现的维度模型称为星型模型,其中每个维度表都直接和事实表连接,数据存在冗余。

    星型模型的两个关键部件

    1、 事实表

    事实表存储组织业务过程事件的性能度量结果。来源于同一个业务过程的底层度量结果应该存储在一个维度模型中。并允许多个组织的业务用户访问一个单一的集中式数据仓库,一个是因为数据量巨大,避免重复而浪费资源,另一个是能确保同一个企业中使用的业务数据的一致性。

    2、 维度表

    维度表包含与业务过程度量事件有关的文本环境。

    如一个销售事实,包含产品维度、商店维度、日期维度等。


    二、联机分析处理(OLAP)多维数据库

    在多维数据库环境中实现的维度模型通常称为联机分析处理多维数据库

    数据在被加载到多维数据库时,使用维度设计的格式和技术。并且采用预计算、索引策略等方法实现高性能查询。OLAP多维数据库还提供大量健壮的分析函数。


    三、雪花模型
    通过规范化的方法构建的数据维度模型称为雪花模型,其满足第三范式的要求,所有维度表不都是与事实表直接相连。
    维度表通常是非规范化的,不一定要满足第三范式,一个维度表中通常存在这多对一的关系,主要为方便使用和提高查询性能。

    不管哪种模型,星型模型或者雪花模型,其表示的都是事实表与维度表在数据库中的逻辑排列关系。星型模型和雪花模型的区别在于是否规范化,因为星型模型存在一定的冗余,在查询操作中,可以避免很多连接操作,因此其查询性能会高一些。

    四、3NF

    数据库中的3NF主要强调消除冗余,规范化的3NF将数据划分为多个不同的实体,每个实体之间构成一个关系表。

    第一范式:要求数据库表中的每一行都是唯一的,这通常通过主键来确定。并且要求属性是原子性的,不能再细分。

    第二范式:在第一范式的基础上,还要求每个非键属性必须完全函数依赖于整个候选键,例如一个学生表(姓、名、年龄、身高),想要知道年龄,必须通过姓和名两个候选键,而不能只通过名就知道其年龄。

    第三范式:在第二范式的基础上,还要求每个非键属性必须非传递依赖于候选键,也就是说所有非键属性之间相互独立。这里边怎么理解呢?可以认为在一张表中,不能通过一个非键属性就能知道另一个非键属性。

    在进行维度建模的过程中,必须遵循的一个原则是同一事实表中的所有度量行必须具有相同的粒度,并且必须注意其简单性和对称性。维度属性的好坏直接决定着数据仓库的好坏,DW/BI的分析能力也直接取决于维度属性的质量和深度。维度属性设计的好,能直接体现在分片-分块分析能力。

    展开全文
  • (一)维度模型基础  既然维度模型是数据仓库建设中的一种数据建模方法,那不妨先看一下几种主流的数据仓库架构。  1. Kimball的DW/BI架构 图(一)- 1  2. Inmon企业信息工厂架构 图(一)- 2  3. 混合型...
    (一)维度模型基础
    

            既然维度模型是数据仓库建设中的一种数据建模方法,那不妨先看一下几种主流的数据仓库架构。

            1. Kimball的DW/BI架构

    图(一)- 1
            2. Inmon企业信息工厂架构

    图(一)- 2
            3. 混合型架构

    图(一)- 3

            从图中可以看出,每种架构中都有数据集市。数据集市就是面向终端用户的数据库。数据集市通常使用维度模型来建模,并根据报表和分析的需求而优化。Kimball和Inmon架构最大的区别就是是否需要一个企业级的数据仓库(EDW)。Inmon架构中有EDW,Kimball架构中没有。EDW本质上就是一个大的数据仓库,包括了从企业各个数据源集成过来的所有的历史数据。EDW不能由终端用户直接访问,仅用来存储和报表相关的,用于审计的各种历史数据。Inmon认为EDW位于业务系统和数据集市之间,也是数据集市的唯一数据来源。至于混合型架构则是结合了Kimball与Inmon架构的产物。

            以上这些方法论的东西简单描述了几种数据仓库总体架构的异同之处。除了架构层面,还有两种主要的建模方法,即规范化模型和维度模型。规范化模型用于EDW建模,而维度模型用于数据集市建模。规范化模型对于数据库设计者来说非常熟悉,通常业务数据库、OLTP系统都采用规范化模型。简单地说,1NF就是消除重复元组,并保持列的原子性,具体到数据库设计上就是每个表都要有一个主键来唯一标识一行记录。2NF就是在1NF的基础上消除了部分依赖,即非键属性必须完全依赖于主键。3NF在2NF基础上消除了传递依赖,即非键属性只能完全依赖于主键。一般数据库设计需要满足3NF。在《构建Oracle高可用环境》这本书里有一个很好的例子讲述数据库范式设计。而对于维度模型最简单的描述就是,按照事实表、维度表来构建数据仓库、数据集市。这种方法被人们熟知的有星型模式和雪花模式。

            星型模式是部署在关系数据库管理系统之上的多维结构,主要包含事实表,以及通过主键/外键关系与之关联的维度表。在星型模式实施中,所有维度级别的维度数据存储在单个表或视图中。雪花模就是将维度层次进一步规范化为子维度。在雪花模式实施中,使用多个表或视图来存储维度数据。单独的数据库表或视图存储与维中每个级别相关的数据。

            看一下以上星型模式的定义,问题来了:既然事实表与维度表也是以主键/外键的方式相互关联,换句话说,3NF和维度模型都能用实体/关系图(ERD)表示,那么两者的根本区别是什么呢?答案就是:3NF的本质是消除数据冗余,那么维度模型与其根本区别就是数据冗余程度不同。随着规范化程度的提高,必然会使得表和表之间的关系越来越多。而维度模型虽然常应用在关系数据库管理系统之上,但是并不要求必须满足3NF,也就是说维度模型允许可控的数据冗余。这样做简少了表和表间关系的数量,同时提高了查询速度。下面引用《数据仓库设计》书中的一个例子,进一步说明3NF与维度模型的差异。

    图(一)- 4 

            左边是一个销售订单的典型的规范化表示。订单(Order)实体描述有关订单文档的信息,订单明细(Order Line)实体描述有关订单明细的信息,两个实体都包含描述订单和它的状态的信息。右边是一个订单状态维(Order Status Dimension),该维描述与订单和订单明细中对应的状态编码值的唯一组合。它包括在实体模型的订单和订单明细实体中都出现的属性。当销售订单事实行被装载时,参照在订单状态维中的适合的状态编码的组合设置它的外键。

            维设计的整体观点是要简化和加速查询。例如,假设有100万订单,每个订单有10条明细,订单状态和订单明细状态各有10种。如果用户要查询某种状态特性的订单,按3NF模型,逻辑上需要关联100万与1000万的两个大表,然后过滤两个表的状态值得到所要的结果。另一方面,事实表(图中并没有画出)按最细数据粒度有1000万记录,3NF里的订单表属性在事实表里是冗余数据,状态维度有100条数据,只需要关联1000万与100的两个表,再进行状态过滤即可。

    展开全文
  • 目录 前言 什么是维度建模 维度建模的好处 未来内容 更多技术文章请关注公众号: ...数据模型就是数据的组织存储方法,它强调从业务...数仓典型的模型方法论有以下几种:ER模型,维度模型,Data Vault模型,Anch...

    维度模型系列文章:

    《维度模型系列》-1初识维度模型

    《维度模型系列》-2数据仓库总线架构

    《维度模型系列》-3事实表核心技术(上)

    《维度模型系列》-3事实表核心技术(下)

    。。。

    更多最新文章请文末扫码关注公众号查看


    前言

    数据模型就是数据的组织和存储方法,它强调从业务,数据存取,和使用角度合理的存储数据。

    模型设计是数据仓库的必备技能和主要工作之一。模型设计的好坏直接影响数仓整体的性能,存储成本,使用效率,数据质量等等。

    数仓典型的模型方法论有以下几种:ER模型,维度模型,Data Vault模型,Anchor模型,目前互联网行业应用最广泛的应属于维度模型。

    本系列文章对维度模型理论做完整的介绍,通过实例让大家对维度建模有更加深入的理解。本人经验有限,文章中有理解错误或不同观点,欢迎指正。

     

    什么是维度建模

    维度建模是一种将数据结构化的逻辑设计方法。首先介绍两个最重要的概念:事实,维度。

    维度建模将业务过程分为度量和上下文。度量是由业务过程和支持它们的业务源系统获取的,常常以数值形式体现,我们称它们为“事实”。

    事实由大量的文本形式的上下文包围着,这些文本形式的上下文是伴随着事实产生而确定的。这些上下文被直观的分割成多个独立的模块我们将其称作“维”。维度描述了事实的相关信息,比如who,what,when,where,why等等。

    举个栗子:

    小明在淘宝上下单100元买了两箱牛奶,100元和2箱就是事实,而小明,牛奶,时间,配送地址等等这些信息就是维

    如下图就是按照维度建模方式来组织的数据结构,看上去像个星状结构,也经常被称作星型模型。中间蓝色的就是事实表有若干维度键和度量值组成,黄色就是维度表,维度表由维度键和若干属性组成(如用户维度表可以包含姓名,性别,年龄,住址,学历等等信息)

     

    维度建模的好处

    • 易于理解使用

    相对于业务系统的规范化(3NF)模型,维度建模更易于业务用户理解,因为相同类别的信息已经放到对应的维度表中,对于使用分析来说意义都很明确。业务分析人员很容易就能找出分析操作所需的信息

    • 查询性能

    维度建模的反规范化维度层次结构,减少了查询的关联操作,而关联查询是非常耗时的查询操作。

    • 一致性

    维度建模强调维度一致性和事实一致性,数据仓库总线架构要求所有事实共用一套维度表,这样保证了数据一致性

    • 快速迭代

    基于一致性维度的总线架构,其实施过程可以按照不同业务过程进行拆分,快速满足业务需求

     

    未来内容

    前面对维度建模进行了简单介绍,其中很多技术细节和专业数据没有展开细讲,只是让大家对维度建模有一个初步的认识。未来文章会对维度建模做更加详细的介绍,包括数据仓库总线架构概念,事实表和维度表技术细节的讨论,以及维度设计过程详解

     

    更多技术文章请关注公众号:

     

    展开全文
  • 数据仓库——关系模型和维度模型

    千次阅读 2018-07-07 09:59:40
    关系建模又叫ER建模,是数据仓库之父Inmon推崇的,其从全企业的高度设计一个3NF模型的方法,用实体加关系描述的数据模型描述企业业务架构,在范式理论上符合3NF,其是站在企业角度进行面向主题的抽象,而不是针对...

    大神Inmon的《数据仓库》和kimball《数据仓库工具箱》算是两个经典吧,最近出了本很厚的《数据仓库与商业智能宝典》,但也是人家kimball以前经典文章的合集。

     

    关系建模又叫ER建模,是数据仓库之父Inmon推崇的,其从全企业的高度设计一个3NF模型的方法,用实体加关系描述的数据模型描述企业业务架构,在范式理论上符合3NF,其是站在企业角度进行面向主题的抽象,而不是针对某个具体业务流程的,它更多是面向数据的整合和一致性治理,正如Inmon所希望达到的“single version of the truth”。

     

     

    维度模型则是数据仓库领域另一位大师Ralph Kimball 所倡导的。维度建模以分析决策的需求为出发点构建模型,一般有较好的大规模复杂查询的响应性能,更直接面向业务,典型的代表是我们比较熟知的星形模型,以及在一些特殊场景下适用的雪花模型。

     

     

    Inmon的ER建模优点体现在规范性较好,冗余小,数据集成和数据一致性方面得到重视,适用于较为大型的企业级、战略级的规划,但缺点是需要全面了解企业业务、数据和关系,对于建模人员要求很高,实施周期非常长,成本昂贵,笔者刚进公司的时候就经历了中国移动的的ER数据仓库项目,的确不是一个新人能短时消化的。

     

    Kimball的维度建模相对能快速上手,快速交付,但缺点是冗余会较多,灵活性比较差,但其实现在看来也没什么,淘宝在大数据之路书中也提到“淘宝数据平台变迁的过程正好解释了二者的不同,最初,淘宝业务单一、系统简单,主要是简单的报表系统;后期数据量越来越大,系统越来越多,尝试用ER建模的数据仓库,但是在实践中发现快速变化的业务之下,构建ER模型的风险和难度都很高,现在则主要采用基于维度建模的模型方法了。”

     

    但Inmon和kimball关于关系建模和维度建模的争论其实也没什么值得探讨的,没有谁更好,在企业内,这两种建模方式往往同时存在,底层用关系建模合适一点,技术的优雅换来了数据的精简,往上维度建模更合适一些,靠数据的冗余带来了可用性,优势互补,都说关系建模不易,概念模型是个坎,其实维度建模也不易,维度的梳理和运营是艰巨的,否则就是烂摊子的活。

     

    在数据建模上,很多人纠结于如何建模,用关系建模、维度建模亦或其它?回过头来也是浮云,其实刚起步的时候没有那么多的循规蹈矩,满足报表和取数的需求即可,尽量做到“高内聚,松耦合”,这是服务的原则,放到数据建模照样适用。

     

    很多企业花了巨大的代价建设了一套数据模型,周期长达1-2年,几年后却推倒重来,问题的根子不在于当初的项目完成的情况如何,包括建模方式是否合理,而在于项目完成了成鸟兽散,缺乏持续的运营。

     

    想想企业的数据仓库模型,有多大的比例在日常的运营中进行了改进呢,有10%吗?阿里在建设数据中台,很大的挑战在于日常运营中对于中台业务的把控能力和持续改进的勇气,数据模型要成为使能者,不是简单的满足需求,也不是为了博得业务人员一时的满意,而是要立足于长远,始终主动、自发和持续的自我进化。

     

    前段时间团队成员说为了满足数据挖掘需求要做一张超级宽表,很能说明问题,任何一个企业的数据模型都会碰到类似的挑战,但这也是混乱的开始,以下是经典的对话:

     

    A:“现在数据挖掘变量准备太慢了,要搞一张大宽表,我们已经梳理了,需要从几十张表中取出字段,这个是这些表的清单?”

     

    B:“跨度这么大,这么多字段,从DWD到DWI,再到DWA,有想过更好的办法吗?”

     

    A:“这个?我们看了,融合模型缺这缺那的,还是再做一张吧,只是为这类数据做的!”

     

    B:“你这张宽表下次会碰到融合模型同样的问题,融合模型是当前平衡做的相对好的,能否去增强融合模型,按字段归属到各融合模型,而不要另起条线,资源也有限的,让这些表的融合模型负责人过来讨论下?”

     

    数据仓库模型的持续提升始终来自于日常朴实无华的需求驱动,数据中台蕴含着企业数据文化的再造,涉及到一系列机制流程的完善,认识到这点很重要。

    展开全文
  • 2.1 维度模型 2.1.1 星型模型 2.1.2 雪花模型 2.1.3星座模型 2.2 范式模型 2.3 Data Vault模型 2.4 Anchor模型
  • 数据仓库中的ER实体模型和维度模型

    千次阅读 2020-02-16 16:34:30
    一、数据仓库建模的意义 一个公司中会有多个业务业务系统,比如:OA系统、订单系统、财务系统、人事系统、仓储系统等,因此需要按照一定的组织结构将所有...二、ER实体模型 在数据系统中,将事物抽象为实体(Entity)...
  • 关系模型、维度模型

    千次阅读 2016-03-31 16:53:08
    1. 以遵循第三范式(3NF)为基础的关系模型,从ER图的“观感”上来说,较为松散、零碎,物理表数量多,而数据冗余程度低。由于数据分布于众多的表中,这些数据可以更为灵活地被应用,功能性较强 2. 主要应用于事务型...
  • 数据建模-关系模型、维度模型

    千次阅读 2016-08-24 10:18:25
    Kimball:维度建模以数据分析需求为驱动,倡导总线架构:一致的事实一致的维度,这种数据模型易于用户理解数据分析操作。 Immon:基于主题域的实体关系建模以源系统数据为驱动,整合企业的所有数据,站在企业级...
  • ER模型是用实体加关系描述的数据模型描述企业业务架构,在范式理论上符合3NF,是以业务功能为出发构建数据模型,而不是针对某个具体业务流程的,面向功能性模块开发。 维度建模以分析决策的需求为出发点构建模型,...
  • 数据仓库可能大家非常熟悉的两位建模理论的创始人:William H.Inmon Ralph Kimball,对应的 Inmon 主要的模型是:实体-关系模型, Kimball主导的模型是:维度模型 本片文章的目录: 0.数据库三范式回顾 1...
  • 维度模型-星型模型 事实表:记录特定时间的数字化考量、一般由数字值指向维度表的外键组成、低粒度,记录原始的操作型事件。 维度表:对事实数据属性的描述、记录通常比事实表少、记录包含大量用于描述事实数据的...
  • CDM层又细分为DWD层DWS层,分别是明细数据层汇总数据层,采用维度模型方法作为理论基础,更多地采用一些维度退化手法,将维度退化至事实表中,减少事实表维表的关联,提高明细数据表的易用性;同时在汇总数据...
  • 在GeeksforGeeks上看到了几篇关于数据仓库架构、维度数据建模的文章,进行翻译整理并加入了一些自己的理解,输出了这篇文章。 一、数据仓库架构 数据仓库是将不同来源的数据在统一的模式下组织起来的异构集合。构建...
  • 文章目录1 数仓分层1.1 基本分层模型1.2 数据集市数据仓库2 数仓理论2.1 范式理论2.2 关系建模和维度建模2.2.1 关系建模2.2.2 维度建模2.2.2.1 维度建模的三种模型2.3 维度事实表2.3.1 维度表2.3.2 事实表 ...
  • 范式建模是数仓之父 Inmon 所倡导的,“数据仓库”这个词就是这位大师所定义的,这种建模方式在范式理论上符合3NF,这里的3NF与OLTP中的3NF还是有点区别的:关系数据库中的3NF是针对具体的业务流程的实体对象关系...
  • 浅析3NF数据仓库建模

    2010-03-04 13:10:39
    3NF数据仓库建模和维度数据仓库建模是目前使用的最多的两类数据仓库建模技术。本日志主要从技术的角度介绍了3NF数据仓库的内容。另外,这篇日志是从Len Silverston的TheData Model Resource Book整理而来,有兴趣者...
  • 维度建模

    2021-03-16 21:11:30
    维度模型简介 维度建模被广泛接受为数据分析的首选技术,因为它同时满足了两个需求: 1.向用户交付可以理解的数据 2.提供快速查询的性能 维度建模 实体建模 第三范式(3NF)建模 适合表连接以及聚合计算的...
  • 一篇文章搞懂数据仓库:四种常见数据模型(维度模型、范式模型等) 不吃西红柿丶 2020-12-04 14:05:00 10860 收藏 60 分类专栏: 数据仓库 文章标签: 数据模型 范式模型 雪花模型 版权 数据仓库 专栏收录该内容 ...
  • model对于数仓是最核心的东西,数据模型是数据组织存储方法,模型的好坏,决定了数仓能支撑企业业务多久。 为什么大多数企业,数仓都要重建,这不仅仅是业务拓展、发展迅速,很大一部分是因为模型建的很烂。 基本...
  •  逻辑建模涉及到整个数据仓库所有层次的模型设计,从DW到DM甚至到了OLAP。重点的设计是在DWDM层  逻辑模型是对概念模型进行具体的设计,实体的属性,主键,外键等等,主要是将领域模型的概念实体以及实体之间的...
  • 以上面的维度模型可以聚合出创建、跟进、风控等各个维度的上层展现的数据 雪花、星型模型对比: 星型模型雪花模型的主要区别在于对维度表的拆分,对于雪花模型,维度表的设计更加规范,一般符合3NF;而星型模型,...
  • 这个阶段的大部分表现形式为数据库前端报表工具。 **(2)数据集市阶段:**这个阶段,主要是根据某个业务部门的需要,进行一定的数据的采集,整理,按照业务人员的需要,进行多维报表的展现,能够提供对特定业务...
  • 维度建模范式建模之前,先了解下模型设计的三个阶段吧。。 概念模型 将业务划分成几个主题 逻辑模型 定义各种实体、属性、关系 物理模型 设计数据对象的物理实现,比如表的命名规范、字段的命名规范、字段...
  • 数据仓库工具箱(第3版) ---维度建模权威指南 本书共21章 ...PB前提:DW/BI系统必须以业务用户的需求来驱动,才能真正从维度角度设计展现 维度建模是一种主要的DW/BI,受到广泛认可。从业者学者...
  • 维度建模简介

    2020-01-05 17:11:36
    1、维度建模 VS 范式(3NF)建模 建模方法 开发周期 开发成本 数据冗余 维护成本 维度建模(Kimball) 短 低 有 高 范式建模(Inmon) 长 高 无 低 在数仓模型架构设计中,维度建模以星型模型为主。 dw层通...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,949
精华内容 779
关键字:

维度模型和3nf