(注意:本文介绍的是数据仓库设计的Kimball方法,即多维模型;关系模型,即Inmon方法参见(四))
用户和系统的面向性:OLTP面向事务,日常操作;OLAP面向分析,用于决策支持。
数据内容:OLTP当前数据;OLAP历史数据
数据库设计:OLTP使用ER图、面向应用;OLAP使用星形模式或雪花,面向主题。
视图:OLTP是详细的,一般的关系;OLTP汇总的,多维的。
访问模式:OLTP读写操作都有,需要并行控制和恢复机制;OLAP多为读
数据仓库和OLAP基于多维数据模型。此模型用数据方表示数据。
方体:数据汇总。方体是数据,方体的维度即各个维表,方体的值即事实表的度量;星型图则是事实表与维表的组织结构,与数据无关。数据仓库是面向主题的,主题用事实表表示。
方体的格:根据不同的汇总级别或维的不同子集,构造方体的格。
数据方:方体的格即为一个数据方。数据方由维和度量组成。
原语:立方体定义 (事实表):
define cube []:
维定义 ( 维表):
define dimension as ()
度量可以根据所用得聚集函数类型分为三类。
分布的:一个聚集函数是分布的,如果它能用如下分布方式进行计算:设数据划分为n个集合,将函数用于每个划分,得到n个聚集值;再将函数用于前述n个聚集值得到的结果与将函数用于整个数据集(不划分)得到的结果一样,则该函数可以用分布方式计算。一个度量是分布的,如果它可以用分布聚集函数得到。如count(),sum(),min(),max()都是分布聚集函数。
代数的:一个聚集函数是代数的,如果它能够用具有M个参数的代数函数计算(其中M是有界正整数),而每个参数都可以用一个分布聚集函数求得。一个度量是代数的,如果它可以用代数聚集函数得到。如avg(),min_N(),max_N(),standard_deviation()都是代数聚集函数。
整体的:一个聚集函数是整体的,如果描述它的子聚集所需的存储没有常数界。即不存在一个有M个参数的代数函数进行这一计算(其中M是常数)。如median(),mode(),rank()都是。
一般是对于维的概念分层。概念分层为数据库模式中属性的全序或偏序称作模式分层。概念分层可用于OLAP中上卷和下钻。OLAP上卷操作通过沿一个维的概念分层向上攀升或者通过维规约(即,一个或多个维从给定的立方体中删除),对数据立方体进行聚集。
多维数据模型可以以星形模式、雪花模式、事实星座模式形式存在。
星形模式:(1)一个大的、包含大批数据、不含冗余的中心表(事实表);(2)一组小的附属表(维表),每维一个。
雪花模式:雪花模式是星型模式的变种,其中某些维表是规范化的,因而把数据进一步分解到附加的表中。雪花模式比星形模式的维表更规范,这样减少了冗余,但是可能需要更多的join操作,性能降低。数据仓库设计中,星形模式更多。
事实星座模式(星系模式):多个事实表共享维表。
须考虑的四种视图:
-自顶向下视图:选择数据仓库所需的有关信息
-数据源视图:揭示被操作数据库系统捕获、存储、和管理的信息
-数据仓库视图:包括事实表和维表
-商务查询视图:从最终用户的角度透视数据仓库中的数据
典型的数据仓库设计过程:
-选取待建模的商务处理, 例如, 订单, 发票, 库存等.
-选取商务处理的粒度, 例如,单个事务、一天的快照等
-选取用于每个事实表记录的维, 如,时间、商品、顾客、供应商、仓库、事务类型和状态 等
-选取将安放在事实表中的度量. 典型的度量是可加的数值量, 如dollars_sold和units_sold
数据仓库系统的原始需求一般并不明确,且不断变化和增加,因此,采用原型法来进行数据仓库开发是比较合适的,原型法的思想是:从构建系统的简单的基本框架入手,不断丰富和完善整个系统。但是,数据仓库设计开发又不同于一般意义上的原型法,因为数据仓库的设计时数据驱动的。
虽然数据仓库开发是一个迭代过程,如(三)中所述CLDS(SDLC,系统开发生命周期的相反方法),但是数据仓库的设计并不是没有步骤可言的,大体上分为:
概念模型最常用的是E-R法(实体-联系法,Inmon支持这种方法),使用E-R图作为描述工具。另一种方法是Kimball支持的多维模型。
此步骤主要完成的工作是:(1)界定系统边界;(2)确定主要的主题域及其内容。
例如,商场的边界可以界定为包含销售子系统、采购子系统、库存子系统在内的集合。在此基础上,确定三个基本主题:顾客、供应商、商品。
本阶段工作:技术评估,技术环境准备。
成果:技术评估报告,软硬件配置方案,系统(软硬件)总体设计方案。
目前数据仓库一般建立在关系数据库基础之上,因此,在数据仓库的设计中采用的逻辑模型为关系模型。
关系模型的基本概念:
数据仓库的逻辑模型描述了数据仓库的主题的逻辑实现,即每个主题所对应的关系表的关系模式的定义。
本阶段主要工作:(1)粒度层次划分;(2)数据分割策略;(3)记录系统定义;(4)关系模式定义。
主要工作:(1)确定存储结构;(2)确定索引结构;(3)确定存放位置;(4)确定存储分配。
主要工作:(1)设计接口;(2)数据装入。
接口是指将操作性环境下的数据装载进入数据仓库环境,需要在两个不同环境的记录系统之间建立一个接口。
包括:(1)建立DSS应用;(2)理解需求,改善和完善系统,维护数据仓库。
DSS应用开发的步骤:确定所需的数据、编程抽取数据、合并数据、分析数据、回答问题、例行化。
参考文献:
[1]数据挖掘:概念与技术
[2]《数据仓库技术与联机分析处理》