2.3数据仓库的建模(一)
2.3数据仓库的建模(一)
P2大家好,本次课我们学习数据仓库的建模,我们将从以下几个方面入手学习:什么是数据建模、多维数据模型及相关概念、多维数据模型的实现
P3 什么是数据建模
数据模型是抽象描述现实世界的一种工具和方法,是通过抽象的实体及实体之间联系的形式,来表示现实世界中事务的相互关系的一种映射。在这里,数据模型表现的抽象的是实体和实体之间的关系,通过对实体和实体之间关系的定义和描述,来表达实际的业务中具体的业务关系。
数据仓库模型是数据模型中针对特定的数据仓库应用系统的一种特定的数据模型,一般的来说,我们数据仓库模型分为几下几个层次,如图所示,我们能够很容易的看出在整个数据仓库得建模过程中,我们需要经历一般四个过程:
业务建模,生成业务模型,主要解决业务层面的分解和程序化。
领域建模,生成领域模型,主要是对业务模型进行抽象处理,生成领域概念模型。
逻辑建模,生成逻辑模型,主要是将领域模型的概念实体以及实体之间的关系进行数据库层次的逻辑化。
物理建模,生成物理模型,主要解决,逻辑模型针对不同关系型数据库的物理化以及性能等一些具体的技术问题。
因此,在整个数据仓库的模型的设计和架构中,既涉及到业务知识,也涉及到了具体的技术,我们既需要了解丰富的行业经验,同时,也需要一定的信息技术来帮助我们实现我们的数据模型,最重要的是,我们还需要一个非常适用的方法论,来指导我们自己针对我们的业务进行抽象,处理,生成各个阶段的模型
P4 为什么需要数据仓库建模?
在数据仓库的建设中,我们一再强调需要数据模型,那么数据模型究竟为什么这么重要呢? 一般来说,数据模型的建设主要能够帮助我们解决以下的一些问题:
(1)进行全面的业务梳理,改进业务流程。在业务模型建设的阶段,能够帮助我们的企业或者是管理机关对本单位的业务进行全面的梳理。通过业务模型的建设,我们应该能够全面了解该单位的业务架构图和整个业务的运行情况,能够将业务按照特定的规律进行分门别类和程序化,同时,帮助我们进一步的改进业务的流程,提高业务效率,指导我们的业务部门的生产。
(2)建立全方位的数据视角,消灭信息孤岛和数据差异。通过数据仓库的模型建设,能够为企业提供一个整体的数据视角,不再是各个部门只是关注自己的数据,而且通过模型的建设,勾勒出了部门之间内在的联系,帮助消灭各个部门之间的信息孤岛的问题,更为重要的是,通过数据模型的建设,能够保证整个企业的数据的一致性,各个部门之间数据的差异将会得到有效解决。
(3)解决业务的变动和数据仓库的灵活性。通过数据模型的建设,能够很好的分离出底层技术的实现和上层业务的展现。当上层业务发生变化时,通过数据模型,底层的技术实现可以非常轻松的完成业务的变动,从而达到整个数据仓库系统的灵活性。
(4)帮助数据仓库系统本身的建设。通过数据仓库的模型建设,开发人员和业务人员能够很容易的达成系统建设范围的界定,以及长期目标的规划,从而能够使整个项目组明确当前的任务,加快整个系统建设的速度。
P5多维数据模型及相关概念
多维数据模型是将数据看作数据立方体形式,满足用户从多角度多层次进行数据查询和分析的需要而建立起来的基于事实和维的数据库模型。其数据组织采用多维结构文件进行数据存储,并有索引及相应的元数据管理文件与数据相对应。在这种模型中两种重要的概念需要强调,即事实表和维度表,这两个概念在后面要经常用到。
P6维度建模(dimensional modeling)是专门用于分析型数据库、数据仓库、数据集市建模的方法。它本身属于一种关系建模方法,但和之前在操作型数据库中介绍的关系建模方法相比增加了两个概念:1. 维度表(dimension)。表示对分析主题所属类型的描述。比如"昨天早上张三在京东花费200元购买了一个皮包"。那么以购买为主题进行分析,可从这段信息中提取三个维度:时间维度(昨天早上),地点维度(京东), 商品维度(皮包)。通常来说维度表信息比较固定,且数据量小。2. 事实表(fact table)。表示对分析主题的度量。比如上面那个例子中,200元就是事实信息。事实表包含了与各维度表相关联的外码,并通过JOIN方式与维度表关联。事实表的度量通常是数值类型,且记录数会不断增加,表规模迅速增长。
P7 相关概念。粒度(Granularity)
在这里我们还需要了解相关几个概念。其中粒度就是一处基本的概念。粒度是指数据仓库中数据单元的详细程度和级别,确定数据仓库的粒度是设计数据仓库的一个最重要方面。数据越详细,粒度越小级别就越低;数据综合度越高,粒度越大级别就越高。例如,地址数据中“北京市”比“北京市海淀区”的粒度小。在传统的操作型数据库系统中,对数据处理和操作都是在最低级的粒度上进行的。但是在数据仓库环境中应用的主要是分析型处理,一般需要将数据划分为详细数据、轻度数据、高度数据三级或更多级粒度。
P8维度(Dimension)
维度(简称为维)是指人们观察事物的特定的角度,概念上类似于关系表的属性。例如企业常常关心产品销售数据随着时间推移而变化的情况,这是从时间的角度来观察产品的销售,即时间维;企业也常常关心本企业的产品在不同地区的销售分布情况,这时是从地理分布的角度来观察产品的销售,即地区维。
P9维属性和维成员
一个维是通过一组属性来描述的,如时间维包含年份、季度、月份和日期等属性,这里的年份、季度等称为时间维的维属性。维的一个取值称为该维的一个维成员,如果一个维是多层次的,那么该维的维成员是在不同维层次的取值组合。例如,一个时间维具有年份、季度、月份、日期四个层次,分别在四个层次各取一个值,就得到时间维的一个维成员,即某年某季某月某日。
P10维的层次
同一维度可以存在细节程度不同的各个值,可以将粒度大的值映射到粒度小的值,这样构成维层次(或维层次结构)或概念分层,即将低层概念映射到更一般的高层概念,概念分层允许在各种抽象级审查和处理数据。例如对于地点维,有“杭州→浙江→中国”的维层次。又例如时间维,可以从年、季度、月份、日期来描述,那么“年份→季度→月份→日期”就是维层次。
P11度量(Measure)或事实(Fact)
度量是数据仓库中的信息单元,即多维空间中的一个单元,用以存放数据,也称为事实(Fact)。通常是数值型数据并具有可加性。例如:(日期,商品,地区,销售量)
其中,销售量就是一个度量。
P12总结
好了,到此本次课就要结束了,我们做一个简短的回顾。本次课对数据仓库建模的原由、多维数据仓库建模及相关概念进行了学习。维度是人们理解数据的多角度多层次分析方法,常用的有时间维和地区维等。维度表和度量表是两个重要的概念,需要大家认真领会,在今后课程学习时可以参考借鉴。
好,这次课到此结束,谢谢!