现在的位置: 首页 > 综合 > 正文

数据挖掘系列之四(数据仓库之二):数据仓库设计–Kimball方法

2018年02月17日 ⁄ 综合 ⁄ 共 2664字 ⁄ 字号 评论关闭

注意:本文介绍的是数据仓库设计的Kimball方法,即多维模型;关系模型,即Inmon方法参见(四)

1. OLAP(联机分析处理)与OLTP(联机事务处理)主要区别

用户和系统的面向性:OLTP面向事务,日常操作;OLAP面向分析,用于决策支持。

数据内容:OLTP当前数据;OLAP历史数据

数据库设计:OLTP使用ER图、面向应用;OLAP使用星形模式或雪花,面向主题。

视图:OLTP是详细的,一般的关系;OLTP汇总的,多维的。

访问模式:OLTP读写操作都有,需要并行控制和恢复机制;OLAP多为读

2. 多维数据模型

数据仓库和OLAP基于多维数据模型。此模型用数据方表示数据。

方体:数据汇总。方体是数据,方体的维度即各个维表,方体的值即事实表的度量;星型图则是事实表与维表的组织结构,与数据无关。数据仓库是面向主题的,主题用事实表表示

方体的:根据不同的汇总级别或维的不同子集,构造方体的格。

数据方:方体的格即为一个数据方。数据方由维和度量组成。

原语:立方体定义 (事实表):

define cube <cube_name> [<dimension_list>]:<measure_list>

维定义 ( 维表):

define dimension <dimension_name> as (<attribute_or_subdimension_list>)

2.1 度量

度量可以根据所用得聚集函数类型分为三类。

分布的:一个聚集函数是分布的,如果它能用如下分布方式进行计算:设数据划分为n个集合,将函数用于每个划分,得到n个聚集值;再将函数用于前述n个聚集值得到的结果与将函数用于整个数据集(不划分)得到的结果一样,则该函数可以用分布方式计算。一个度量是分布的,如果它可以用分布聚集函数得到。如count(),sum(),min(),max()都是分布聚集函数。

代数的:一个聚集函数是代数的,如果它能够用具有M个参数的代数函数计算(其中M是有界正整数),而每个参数都可以用一个分布聚集函数求得。一个度量是代数的,如果它可以用代数聚集函数得到。如avg(),min_N(),max_N(),standard_deviation()都是代数聚集函数。

整体的:一个聚集函数是整体的,如果描述它的子聚集所需的存储没有常数界。即不存在一个有M个参数的代数函数进行这一计算(其中M是常数)。如median(),mode(),rank()都是。

2.2 概念分层

一般是对于维的概念分层。概念分层为数据库模式中属性的全序或偏序称作模式分层。概念分层可用于OLAP中上卷和下钻。OLAP上卷操作通过沿一个维的概念分层向上攀升或者通过维规约(即,一个或多个维从给定的立方体中删除),对数据立方体进行聚集。

3. 多维数据库模式

多维数据模型可以以星形模式、雪花模式、事实星座模式形式存在。

星形模式:(1)一个大的、包含大批数据、不含冗余的中心表(事实表);(2)一组小的附属表(维表),每维一个。

雪花模式:雪花模式是星型模式的变种,其中某些维表是规范化的,因而把数据进一步分解到附加的表中。雪花模式比星形模式的维表更规范,这样减少了冗余,但是可能需要更多的join操作,性能降低。数据仓库设计中,星形模式更多。

事实星座模式(星系模式):多个事实表共享维表。

4. 数据仓库设计

须考虑的四种视图:
-自顶向下视图:选择数据仓库所需的有关信息
-数据源视图:揭示被操作数据库系统捕获、存储、和管理的信息
-数据仓库视图:包括事实表和维表
-商务查询视图:从最终用户的角度透视数据仓库中的数据

典型的数据仓库设计过程
-选取待建模的商务处理, 例如, 订单, 发票, 库存等.
-选取商务处理的粒度, 例如,单个事务、一天的快照等 
-选取用于每个事实表记录的, 如,时间、商品、顾客、供应商、仓库、事务类型和状态 等
-选取将安放在事实表中的度量.  典型的度量是可加的数值量, 如dollars_sold和units_sold 

5 数据仓库设计步骤[2]

数据仓库系统的原始需求一般并不明确,且不断变化和增加,因此,采用原型法来进行数据仓库开发是比较合适的,原型法的思想是:从构建系统的简单的基本框架入手,不断丰富和完善整个系统。但是,数据仓库设计开发又不同于一般意义上的原型法,因为数据仓库的设计时数据驱动的。

虽然数据仓库开发是一个迭代过程,如(三)中所述CLDS(SDLC,系统开发生命周期的相反方法),但是数据仓库的设计并不是没有步骤可言的,大体上分为:

  • 概念模型设计;
  • 技术准备工作;
  • 逻辑模型设计;
  • 物理模型设计;
  • 数据仓库生成;
  • 数据仓库运行与维护。

5.1 概念模型设计

概念模型最常用的是E-R法(实体-联系法,Inmon支持这种方法),使用E-R图作为描述工具。另一种方法是Kimball支持的多维模型。

此步骤主要完成的工作是:(1)界定系统边界;(2)确定主要的主题域及其内容。

例如,商场的边界可以界定为包含销售子系统、采购子系统、库存子系统在内的集合。在此基础上,确定三个基本主题:顾客、供应商、商品。

5.2 技术准备工作

本阶段工作:技术评估,技术环境准备。

成果:技术评估报告,软硬件配置方案,系统(软硬件)总体设计方案。

5.3 逻辑模型设计

目前数据仓库一般建立在关系数据库基础之上,因此,在数据仓库的设计中采用的逻辑模型为关系模型。

关系模型的基本概念:

  • 关系:一个二维表;
  • 元组:表中的一行称为一个元组;
  • 属性:表中的一列称为属性,列名即属性名;
  • 主码:表中的某个属性组,它们的值唯一的标识一个元组;
  • 域:属性的取值范围;
  • 分量:元组中的一个属性组;
  • 关系模式:对关系的描述,用关系名(属性名1,属性名2,……,属性名n)表示。

数据仓库的逻辑模型描述了数据仓库的主题的逻辑实现,即每个主题所对应的关系表的关系模式的定义。

本阶段主要工作:(1)粒度层次划分;(2)数据分割策略;(3)记录系统定义;(4)关系模式定义。

5.4 物理模型设计

主要工作:(1)确定存储结构;(2)确定索引结构;(3)确定存放位置;(4)确定存储分配。

5.5 数据仓库生成

主要工作:(1)设计接口;(2)数据装入。

接口是指将操作性环境下的数据装载进入数据仓库环境,需要在两个不同环境的记录系统之间建立一个接口。

5.6 数据仓库运行与维护

包括:(1)建立DSS应用;(2)理解需求,改善和完善系统,维护数据仓库。

DSS应用开发的步骤:确定所需的数据、编程抽取数据、合并数据、分析数据、回答问题、例行化。

参考文献:

[1]数据挖掘:概念与技术

[2]《数据仓库技术与联机分析处理》

抱歉!评论已关闭.