分享

数据仓库模型设计

 timtxu 2019-08-18

数据仓库的设计是建立面向企业决策者的分析环境和系统。

数据仓库设计 vs 数据库设计

数据仓库中的数据具有面向主题、数据集成、不易更新、随时间变化的特点,这些特点是数据库系统没有的,因此数据仓库的设计将有别于数据库系统的设计,两者的区别主要包括:面向的需求不同、系统目标不同、设计方法不同。

数据仓库模型设计

1 ) 系统的设计目标不同。数据库系统的设计是为了进行OLTP事务处理,因而进行事务处理的并发性、安全性是系统的主要目标。而数据仓库的目标是为企业提供一个数据一致的分析型环境,进而在数据仓库的基础上建立决策支持系统。要到达这个目的,数据仓库中的数据必须具备面向主题、数据集成、不易更新、随时间变化的特点。

2)面向需求不同。操作型系统的数据来源主要是业务操作员的输入,因此数据库系统的设计就是要描述如何通过操作人员交互获取数据、如何将获取的数据按照OLTP的需求合理的存放、如何使得OLTP的性能能够更加优化、如何保证事务处理的安全性等等。数据仓库系统的数据来源于业务系统,主要解决如何对数据按照主题进行组织、如何保证进入数据仓库系统的数据的一致性、如何对数据颗粒度进行合理划分、如何优化存储方式使得OLAP的性能得到优化等问题。

3)系统设计方法不同。由于系统的目标和面向的问题不同,导致设计方法不同。传统的系统开发生命周期,“需求驱动”,先收集需求、分析需求,再进行设计和开发;系统的需求在收集和分析需求阶段之后就定下来了,一旦进入构建数据库阶段,系统的需求就基本不变了。所以系统设计一般采用系统生命周期法(Systems Development Life Cycle ,SDLC).数据仓库运行于一个与之完全不同的生命周期下,有时称为CLDS(与SDLC顺序相反)。

数据仓库模型设计

数据仓库构建模式

数据仓库模型设计

1)先整体后局部的模式,是由W.H.Inmon提出。先构建一个完整的数据仓库,提供全局视图,再从数据仓库中分离业务部门业务集市,逐步建立各个主题的数据集市。优点:数据规范化高。

2)先局部后整体的模式,有Kimball提出。先建立数据集市,然后在此基础上逐步形成数据仓库。

数据仓库模型设计

数据仓库设计实施过程

业界常用的几种数据仓库设计实施过程:Kimball模型实施过程,Inmon模型实施过程,

数据仓库模型设计

以及如下其他常用模型实践实施过程。后面我们专门介绍下。

数据仓库的设计步骤

一个数据仓库系统的设计可以分成数据仓库模型设计部分和数据装载接口设计部分,其设计的基本过程如下图所示。

数据仓库模型设计

数据模型:什么是模型?模型是对客观现实的事物的某些特征与内在联系,所作的一种模拟或抽象。

什么是数据模型?数据模型是对现实世界数据的特征抽象,用于描诉数据的定义概念,逻辑结构,物理组织存储。

(1)分析建立企业模型(业务模型)

企业模型是从企业用户的角度对企业所需数据的内容以及数据间的关系的抽象。在构建企业模型的时候,并不需要考虑操作型系统和数据仓库之间的差异,它只反映企业各个阶层人员对数据的需求情况。构建企业模型,需要进行各个部分之间业务工作的界定,理清各业务部门之间的关系,深入了解各个业务部门的内具体业务流程并将其程序化。

企业模型反映了各个部门的各个视角。

数据仓库模型设计

通过面向对象分析法绘画出超市的企业模型。

数据仓库模型设计

在构建企业模型时,我们可以使用ER模型,或者面向对象分析方法。

备注:面向对象方法和ER模型关键的区别在于:

面向对象方法在描述类之间的关系上比ER模型复杂。在ER模型中,实体之间的关系只包括一对多和多对多,这在某些错综复杂的关系面前就显得表达能力不足。而面向对象的方法定义了继承、包容、关联关系,这3种关系能够将复杂的关系描述得更加清晰;面向对象理论还有动态模型分析方法,通过动态模型分析,使得设计者能够利用动态模型来刻系统对数据的处理过程。ER模型只是对企业进行静态的描述,对于企业动态运作处理的描述无能为力。

数据仓库模型设计

通过将企业模型映射到(对应到)数据库系统,可以很快地了解现有数据库系统完成了企业模型中的哪些部分,还缺少哪些部分。我们可以将ER模型中的实体以及实体间的关系(类和类间关系)映射到数据库系统中的一张关系表。

数据仓库模型设计

(2)概念模型设计

虽然数据仓库设计同数据库设计有许多不同点,但是从理解问题和解决问题的方法上看,数据仓库的设计也存在这3个层次。概念模型、逻辑模型和物理模型之间的关系如下图所示。

数据仓库模型设计

概念模型描述的是从客观世界到主观认识的映射,通过概念模型,我们用适合计算机世界的模型和语言对客观世界中的具体问题进行了描述。数据仓库是按照主题来组织数据的,将企业模型映射到概念模型上,首先要确定主题并根据主题确定边界。在概念模型中,抽取关键业务概念,并将之抽象化。将业务概念分组,按照业务主线聚合类似的分组概念。细化分组概念,理清分组概念内的业务流程并抽象化。

数据仓库模型设计

在概念模型中,常用的表示方法是ER图,另一种很好的方法是面向对象的分析方法。ER模型形式简单直观易于理解,便于同客户交流,同时可以对问题进行更为深入细致的描述。

(3)逻辑模型设计

逻辑模型设计需要对概念模型中的每一个主题进行设计。

逻辑模型实际上就是关系模型,它具有严格的数学基础—关系数据理论,概念简单、清晰,需要完成的任务就是将概念模型映射到关系模型。在关系模型中,基本的概念包括关系表、元组(关系表的一行)、属性(关系表的一列)、域(属性的取值范围)、主键(能够惟一标识一个数据行的键或者键的组合)等。

数据仓库的逻辑模型设计包括如下几点,数据粒度选择(在数据量较小的时候可以采取单一的数据粒度,即直接存储。当数据量大时,对历史数据进行汇总,保留近期明细数据)、表分割()、去除操作型数据、表划分、增加计算字段(方便后续使用)。

数据仓库模型设计

(4)物理模型设计

物理模型设计结局的是逻辑模型的实现细节,确定数据仓库的存储结构、数据的存储位置和索引策略。例如合并涉及的表存储时放到一起,可大大减少磁头定位时间,提高I/O效率、按列存储。

数据仓库模型设计

确定数据的存储结构。不同的存储结构有不同的实现方式,应综合考虑存取时间、存取空间利用率和维护代价等因素,根据各种存储结构的优缺点和适用范围选择合适的存储结构。

确定数据的存储位置。对数据按照其重要程度、使用频率和对响应时间的要求等进行分类,并将不同类别的数据存储在不同的存储设备中。设置存储分配参数,对块的大小、缓冲区的大小和个数等进行物理优化处理。

确定索引策略。通过对数据存取路径的分析,为各个数据存储建立专用的索引,以获得存取的高效率。

数据仓库建模方法

  1. 3NF范式建模方法
  2. 维度建模法
  3. 实体建模法
  4. Data vault 建模法
  5. Anchor 模型

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多