将产品销售关系什么是数据模型型规范为Ⅲ范式


VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

还剩53页未读 继续阅读
}

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

还剩28页未读 继续阅读
}

建设什么是数据模型型既然是整個数据仓库建设中一个非常重要的关键部分那么,怎么建设我们的数据仓库模型就是我们需要解决的一个问题这里我们将要详细介绍洳何创建适合自己的什么是数据模型型。

大千世界表面看五彩缤纷,实质上万物都遵循其自有的法则。

数据仓库的建模方法同样也有佷多种每一种建模方法其实代表了哲学上的一个观点,代表了一种归纳概括世界的一种方法。

目前业界较为流行的数据仓库的建模方法非常多这里主要介绍范式建模法,维度建模法实体建模法等几种方法,每种方法其实从本质上讲就是从不同的角度看我们业务中的問题不管从技术层面还是业务层面,其实代表的是哲学上的一种世界观

我们下面给大家详细介绍一下这些建模方法。

范式建模法其实是我们在构建什么是数据模型型常用的一个方法该方法的主要由 Inmon 所提倡,主要解决关系型数据库得数据存储利用的一种技術层面上的方法。
目前我们在关系型数据库中的建模方法,大部分采用的是三范式建模法
范式是数据库逻辑模型设计的基本理论,一個关系模型可以从第一范式到第五范式进行无损分解这个过程也可称为规范化。
在数据仓库的模型设计中目前一般采用第三范式它有著严格的数学定义。从其表达的含义来看一个符合第三范式的关系必须具有以下三个条件 :
每个属性值唯一,不具有多义性 ;
每个非主属性必须完全依赖于整个主键而非主键的一部分 ;
每个非主属性不能依赖于其他关系中的属性,因为这样的话这种属性应该归到其他关系中詓。
由于范式是基于整个关系型数据库的理论基础之上发展而来的因此,本人在这里不多做介绍有兴趣的读者可以通过阅读相应的材料来获得这方面的知识。
根据 Inmon 的观点数据仓库模型得建设方法和业务系统的企业什么是数据模型型类似。在业务系统中企业什么是数據模型型决定了数据的来源,而企业什么是数据模型型也分为两个层次即主题域模型和逻辑模型。同样主题域模型可以看成是业务模型的概念模型,而逻辑模型则是域模型在关系型数据库上的实例

从业务什么是数据模型型转向数据仓库模型时,同样也需要有数据仓库嘚域模型即概念模型,同时也存在域模型的逻辑模型
这里,业务模型中的什么是数据模型型和数据仓库的模型稍微有一些不同主要區别在于:
数据仓库的域模型应该包含企业什么是数据模型型的域模型之间的关系,以及各主题域定义
数据仓库的域模型的概念应该比業务系统的主题域模型范围更加广。
在数据仓库的逻辑模型需要从业务系统的什么是数据模型型中的逻辑模型中抽象实体实体的属性,實体的子类以及实体的关系等。
以笔者的观点来看Inmon 的范式建模法的最大优点就是从关系型数据库的角度出发,结合了业务系统的什么昰数据模型型能够比较方便的实现数据仓库的建模。
但其缺点也是明显的由于建模方法限定在关系型数据库之上,在某些时候反而限淛了整个数据仓库模型的灵活性性能等,特别是考虑到数据仓库的底层数据向数据集市的数据进行汇总时需要进行一定的变通才能满足相应的需求。

维度建模法Kimball 最先提出这一概念。其最简单的描述就是按照事实表,维表来构建数据仓库数据集市。

事实表是用来记录具体事件的包含了每个事件的具体要素,以及具体发生的事情;维表则是对事实表中事件的要素的描述信息

比如一个事件会包含时间、地点、人物、事件,事实表记录了整个事件的信息但对时间、地点和人物等要素只记录了一些关键标记,比如事件的主角叫“Michael”那么Michael到底“长什么样”,就需要到相应的维表里面去查询“Michael”的具体描述信息了

基于事实表和维表就可以构建出多种多维模型,包括星形模型、雪花模型和星座模型

维度建模法最被人广泛知晓的名字就是星型模式(Star-schema)。

上图的这个架构中是典型的星型架构煋型模式之所以广泛被使用,在于针对各个维作了大量的预处理如按照维进行预先的统计、分类、排序等。
通过这些预处理能够极大嘚提升数据仓库的处理能力。
特别是针对 3NF 的建模方法星型模式在性能上占据明显的优势。
同时维度建模法的另外一个优点是,维度建模非常直观紧紧围绕着业务模型,可以直观的反映出业务模型中的业务问题
不需要经过特别的抽象处理,即可以完成维度建模这一點也是维度建模的优势。
但是维度建模法的缺点也是非常明显的,由于在构建星型模式之前需要进行大量的数据预处理因此会导致大量的数据处理工作。
而且当业务发生变化,需要重新进行维度的定义时往往需要重新进行维度数据的预处理。
而在这些与处理过程中往往会导致大量的数据冗余。
另外一个维度建模法的缺点就是如果只是依靠单纯的维度建模,不能保证数据来源的一致性和准确性洏且在数据仓库的底层,不是特别适用于维度建模的方法
因此以笔者的观点看,维度建模的领域主要适用与数据集市层它的最大的作鼡其实是为了解决数据仓库建模中的性能问题。
维度建模很难能够提供一个完整地描述真实业务实体之间的复杂关系的抽象方法

实体建模法并不是数据仓库建模中常见的一个方法,它来源于哲学的一个流派
从哲学的意义上说,客观世界应该是可以细分的客觀世界应该可以分成由一个个实体,以及实体与实体之间的关系组成
那么我们在数据仓库的建模过程中完全可以引入这个抽象的方法,將整个业务也可以划分成一个个的实体而每个实体之间的关系,以及针对这些关系的说明就是我们数据建模需要做的工作
虽然实体法粗看起来好像有一些抽象,其实理解起来很容易
即我们可以将任何一个业务过程划分成 3 个部分,实体事件和说明。
例如我们描述一个簡单的事实:“小明开车去学校上学”以这个业务事实为例,我们可以把“小明”“学校”看成是一个实体,“上学”描述的是一个業务过程我们在这里可以抽象为一个具体“事件”,而“开车去”则可以看成是事件“上学”的一个说明
从上面的举例我们可以了解,我们使用的抽象归纳方法其实很简单任何业务可以看成 3 个部分:
实体,主要指领域模型中特定的概念主体指发生业务关系的对象。
倳件主要指概念主体之间完成一次业务流程的过程,特指特定的业务过程
说明,主要是针对实体和事件的特殊说明
由于实体建模法,能够很轻松的实现业务模型的划分因此,在业务建模阶段和领域概念建模阶段实体建模法有着广泛的应用。从笔者的经验来看再沒有现成的行业模型的情况下,我们可以采用实体建模的方法和客户一起理清整个业务的模型,进行领域概念模型的划分抽象出具体嘚业务概念,结合客户的使用特点完全可以创建出一个符合自己需要的数据仓库模型来。
但是实体建模法也有着自己先天的缺陷,由於实体说明法只是一种抽象客观世界的方法因此,注定了该建模方法只能局限在业务建模和领域概念建模阶段因此,到了逻辑建模阶段和物理建模阶段则是范式建模和维度建模发挥长处的阶段。
因此笔者建议读者在创建自己的数据仓库模型的时候,可以参考使用上述的三种数据仓库得建模方法在各个不同阶段采用不同的方法,从而能够保证整个数据仓库建模的质量

多维什么是数据模型型是最流荇的数据仓库的什么是数据模型型,多维什么是数据模型型最典型的什么是数据模型式包括星型模式、雪花模式和事实星座模式本文以實例方式展示三者的模式和区别。

星型模式的核心是一个大的中心表(事实表)一组小的附属表(维表)。星型模式示例如下所示:

可以看出星形模式的维度建模由一个事实表和一组维表成,且具有以下特点:

a. 维表只和事实表关联维表之间没有关联;

b. 每个维表的主码为单列,且该主码放置在事实表中作为两边连接的外码;

c. 以事实表为核心,维表围绕核心呈星形分布;

雪花模式是星型模式的扩展其中某些维表被规范化,进一步分解到附加表(维表)中雪花模式示例如下图所示:

从图中我们可以看到地址表被进一步细分出了城市(city)维。supplier_type表被进一步细分出来supplier维

星形模式中的维表相对雪花模式来说要大,而且不满足规范化设计雪花模型相当于将煋形模式的大维表拆分成小维表,满足了规范化设计然而这种模式在实际应用中很少见,因为这样做会导致开发难度增大而数据冗余問题在数据仓库里并不严重。

数据仓库由多个主题构成包含多个事实表,而维表是公共的可以共享,这种模式可以看做星型模式的汇集因而称作星系模式或者事实星座模式。本模式示例如下图所示:

如上图所示事实星座模式包含两个事实表:sales和shipping,二者共享维表

事实星座模式是数据仓库最常使用的什么是数据模型式,尤其是企业级数据仓库(EDW)

前面介绍的两种维度建模方法都是多维表对应单事实表,但在很多时候维度空间内的事实表不止一个而一个维表也可能被多个事实表用到。在业务发展后期绝大蔀分维度建模都采用的是星座模式。

这也是数据仓库区别于数据集市的一个典型的特征从根本上而言,数据仓库什么是数据模型型的模式更多是为了避免冗余和数据复用套用现成的模式,是设计数据仓库最合理的选择

归纳一下,星形模式/雪花模式/星座模式的关系如下圖所示:

在进行维度建模前首先要了解用户需求。而笔者在数据库系列的第一篇就讲过ER建模是当前收集和可视化需求的最佳技术。因此假定和某零售公司进行多次需求PK后得到以下ER图:

随后可利用建模工具将ER图直接映射到关系图:

需求搜集完毕后,便可进行维度建模了本例采用星形模型维度建模。但不论采取何种模式维度建模的关键在于明确下面四个问题:

1.哪些维度对主题分析有用?

本例中根据產品(PRODUCT)、顾客(CUSTOMER)、商店(STORE)、日期(DATE)对销售额进行分析是非常有帮助的;

2.如何使用现有数据生成维表?

3.用什么指标来”度量”主题

本例的主题是销售,而销量和销售额这两个指标最能直观反映销售情况;

4.如何使用现有数据生成事实表

明确这四个问题后,便能轻松完成维度建模:

细惢的读者会发现三个问题:1. 维表不满足规范化设计(不满足3NF);2. 事实表也不满足规范化设计(1NF都不满足); 3. 维度建模中各维度的主码由***ID变成***Key;

对于湔两个问题由于当前建模环境是数据仓库,而没有更新操作所以不需要严格做规范化设计来消除冗余避免更新异常。

因此虽然可以以膤花模型进行维度建模如下所示:

但这样会加大查询人员负担:每次查询都涉及到太多表了。因此在实际应用中雪花模型仅是一种理論上的模型。星座模型则出现在”维度建模数据仓库”中本文后面将会讲到。

对于第三个问题***Key这样的字段被称为代理码(surrogate key),它是一个通過自动分配整数生成的主码没有任何其他意义。使用它主要是为了能够处理”缓慢变化的维度”

前文已经讲过,有多个事实表的维度模型被称为星座模型星座模型主要有以下两大作用:共享维度和设置细节/聚集事实表。下面分别对这两种情况进行分析:

以前文提到的零售公司为例假如该公司质量监管部门希望用分析销售主题同样的方法分析劣质产品,那么此时不需要重新维度建模只需往模型里加叺一个新的劣质产品事实表。之后新的数据仓库维度建模结果如下:

细节事实表(detailed fact tables)中每条记录表示单一事实而聚集事实表(aggregated fact tables)中每条记录则聚匼了多条事实。从表的字段上看细节事实表通常有设置TID属性,而聚集事实表则无

两种事实表各有优缺点,细节事实表查询灵活但是响應速度相对慢而聚集事实表虽然提高了查询速度,但使查询功能受到一定限制一个常见的做法是使用星座模型同时设置两种事实表(可含多个聚集事实表)。这种设计方法中聚集事实表使用和细节事实表细节事实表的维度。如下维度建模方法采用星座模型综合了细节事实表和两种聚集事实表:

}

我要回帖

更多关于 什么是数据模型 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信