一种多维数据库和多维视图模型(解释多维数据库)

 

 

<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:595.3pt 841.9pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:42.55pt; mso-footer-margin:49.6pt; mso-paper-source:0; layout-grid:15.6pt;} div.Section1 {page:Section1;} -->

摘 要   多维 是数据仓库 /OLAP 应用普遍采用的模型化方法,文中提出了一种对多维数据库和在多维数据库上进行的查询/ 统计进行模型化的方法,并给出了模型的形式化定义. 鉴于数 据库本身与一次具体任务产生的结果两种对象的性质的不同,特别区分了多维数据库和多维视图. 多维数据库是对全部数据及其内在关系的全面描述;多维视图则是 针对一次任务的对多维数据库的选择和重组. 文中还着重讨论了多维数据库维的划分问题,以函数依赖为主要依据,提出各维应满足正交限制条件,以免出现稀疏矩 阵异常,并给出了维的划分算法.  多维数据库,多维视图,层次

关键词 TP311.13

中图法分类号

A MULTIDIMENSIONAL DATABASE AND VIEW MODEL

CHEN Wei and ZHONG Cui Hao

(Institute of Software, Chinese Academy of Sciences, Beijing 100080)

Abstract   multidimensional is a widely adopted modeling method in the field of data warehouse/OLAP. Here proposed are a formal definition of a user-oriented multidimensional database and view model, and a method for deriving that model. Realizing that the multidimensional database is essentially different from multidimensional view,a distinction is made between these two concepts. Multidimensional database is the full description of the whole data and relations among them, while multidimensional view is just a selection and reconstruction of a multidimensional database aiming at satisfying one query task. Based on function reliance,it is pointed out that dimensions must be orthogonal from each other to avoid sparse matrix abnormality. An algorithm for dividing dimensions is also given.   multidimensional database, multidimensional view, hierarchy   近年来,数据仓库/OLAP 技术成为信息系统领域内的研究重点1 . 这种趋势受到强烈的市场需求的推动,据META Group 预测,数据仓库市场(包括硬件、数据库软件和工具)将从1995 年的20 亿美元增长到1998 年的80 亿美元2 . 数据仓库是一个面向主体的、集成的、反映时间特性的、稳定的数据集合,主要为组织提供决策支持服务3 . 数据仓库与传统的数据库技术的最显著区别在于数据仓库支持OLAP 应用而传统数据库支持OLTP 应用.OLAP 以支持复杂的分类、统计查询为特征,效率的 主要衡量指标是查询吞吐量;OLTP 以支持原始数据的录入与修改和简单常规的查询为特征,效率的主要衡量指标是事务的吞吐量. 此外,OLAP 应用的数据量 也远远大于OLTP (通常OLAP 应用用到的数据是若干个OLTP 系统在一个较长的时期以来积累的),并且普遍存在数据的异构问题. 所以虽然都是对数据的 检索与维护,但原有的数据库技术并不能解决OLAP 应用中遇到的新问题,数据仓库技术应运而生.
  建立在关系模型基础上的RDBMSOLTP 应用领域占据主导地位,但面对OLAP 应用中复杂的查询/ 统计任务,建立在以关系模型基础上的技术,特别是在对最终用户的支持方面暴露出明显的弱点45 . 多维模型是在学术界和业界都得到公认的最有希望满足OLAP 应用需要的模型. 虽然 多维 作为一种观念已被学术界和业界接受,一些在OLAP 方面领先的软 件公司已推出了基于 多维 概念的产品,但还没有一个严格的模型系统得到公认,多维数据摸型仍然是一个活跃的研究领域.
  本文从如何更直观地向用户描述数据仓库中数据的组织方式,和使用户能够容易地构造查询任务的角度提出了一种 面向用户的多维数据模型”. 文章第2 节说明在多维数据库领域内通用的基本概念;第3 节给出本模型的形式定义;第4 节给出运用该模型的例子.    为了更有效的支持OLAP 应用,数据库的设计者、应用设计者和用户都用多维空间的观点在各个层次上来描述数据库的逻辑模型. 在多维化的数据库中,每个对 象仍然由一系列的属性来刻画. 其中,像销售数量、库存、金额等具有数量特性、作为主要的统计对象的属性称为度量(measure )或事实(fact ),而 对度量起说明作用的属性,如商品、商店、时间、店员等属性称为维(dimension ),每个维可由一个或多个属性组成,维内的多个属性之间可能形成层次 关系,如日-- 年、商品- 小类- 大类等. 多维化的数据库可看作是由其各维构成的多维空间(multidimensional space ),说明属性的值的组合是该空间上的坐标,而度量是该多维空间上的值.   在多数文献中,不区分数据和查询结果,本文基于这两种 对象概念的不同,分别用多维数据库和多维视图来描述这两类不同的对象. 多维数据库与多维视图的区别有如RDBMStableview. 多维数据库要描 述数据库中各数据的模式、值域及相互关系,对于具体的数据库来说只有一个多维数据库描述;多维视图是针对每个查询/ 统计任务的,由一个多维数据库可以导出 若干多维视图,多维视图是对多维数据库的剪裁、重组和统计的结果.
3.2
 多维数据库的定义及导出方法
  定义1.
属性(Attr )是由一个唯一的标识(在一个多维数据库内)和值域组成的二元组,Attr =IDdomain .
  定义2. 多维数据库由三元组描述,即MDB∷=M, D, E
  MMDB 中所有度量属性组成的集合,即M={m1 ,...,mk }, k>=0
  DMDB 所有维的集合,即D ={Di }+ ,该集合的元素是三元组,即Di =Key, Determined, Hierarchies
   Key :该维的关键属性集合;
  Determined :该维的非关键属性集合;
  Hierarchies :维中所有层次关系的集合;
  E MDB 对应的多维空间中的各点的值的集合,是从Domk ×…×Domk Dom1 ×…×Domk 01 上的映射6 . 其中,当1<=i<=k 时,Domi MDB 的度量属性的值域;当k<=i<=k+r 时,Domi MDB 的相应维的所有关键属性的值域的笛卡儿积的值域. 如果MDB 没有度量属性,则E(MDB)d1 dr =1 ;如果〈d1 dr 〉这种组合不存在,E(MDB)d1 dr )=0.
  定义3. 在 一组属性中,如果某个属性(属性组)的值唯一确定其它各个属性的值,则该属性(组)是这组属性的关键属性,其余则为非关键属性. 同一组属性的关键属性与非 关键属性的划分不是唯一的,在一种划分中属于关键属性的属性在另一种划分中可能是非关键属性,反之亦然. 所以关键属性与非关键属性的的区分是相对的.
  定义4. 层次关系用A→B 表示, AB 是属性的标识的集合, 表示从A 中标识所指出的属性的值域的笛卡儿积到B 中标识所指定的属性的值域的笛卡儿积上的多一映射.
  下面说明得到上述逻辑模型的方法:
  (1 ) 确定MDB 的度量属性M.
  M 一般包括在今后的数据分析中要用到的统计量,注意度量属性之间要相互独立,不可有函数依赖关系.
  (2 ) 列出所有数据仓库中可以得到的对(1 )中确定的度量属性起说明作用的属性.
  (3 ) 确定MDB 的维数和各维的关键/ 非关键属性.
  函数依赖是分组的基本依据,我们用有向图来描述分组的过程:以(2 )中列出的每个属性作为图的一个顶点,如果属性集Y 完全函数依赖于属性集X ,则从所有X 中的属性所对应的顶点到所有Y 中属性对应的顶点画一条边. 直到处理完所有的完全函数依赖. 忽略边的方向,原来各顶点分离的图形成了若干连通的子图,每个子图代表MDB 的一维,子图中顶点对应的属性则是组成该维的属性. 在每个子图中,将顶点任意分为两组XY ,如果这种划分满足:
   对于Y 中任一顶点,至少存在一条从X 中的一顶点到该点的边;
  X 中去掉任一顶点, 将不成立;
  ③ X 中的顶点数目是所有满足条件 的划分中最少的,则X 是该维的关键属性(Key ),Y 是非关键属性(Non-key.
  (4 ) 找出各维中属性间的层次关系加到Hierarchy.
  显然,按上述方法得到的MDB 的各维具有正交的特性,如果MDB 各维不具备正交特性,会造成查询/ 统计结果的稀疏矩阵异常. 例如,商品编号函数决定生产厂家,但二属性却分属于维D1 D2 ,如果用户在一次查询中同时选了D1 D2 ,结果表示如表1 ,表中存在大量无意义的空格,这是因为商品编号唯一确定生产厂家,对于每种商品,只有一个生产厂家有效.+r
+1

Key words

1  引  言

2  多维的基本概念

3  多维数据库和多维视图的定义

3.1  多维数据库与多维视图

1  某商店某日商品销售量统计

 

商品1

商品2

商品3

商品4

商品5

商品6

厂家1

37

 

 

 

 

 

厂家2

 

43

 

 

 

 

厂家3

 

 

47

 

 

 

厂家4

 

 

 

53

 

 

厂家5

 

 

 

 

59

 

厂家6

 

 

 

 

 

61

 

3.3  多维视图的定义
  与多维数据库一样,查询/ 统计结果也可看作多维空间的一系列值,不同的是多维数据库必须刻画出所有数据间的关系,而多维数据视图则只要表达一次任务所 关注的那些因素. 多维视图是根据一次任务的需要对多维数据库的多维空间进行重构,对数据进行筛选和聚合的结果. 文中称从多维数据库导出多维视图的过程为重 组(reconstruction.2 是一个典型的OLAP 应用查询/ 统计任务的结果.

2  某连锁商店某月各地销售情况统计  

单位: 万元

 

 

日用品

家用电器

合计

洗涤

美容

食品

合计

采电

冰箱

洗衣机

合计

大连

12

34

43

109

23

21

67

113

222

烟台

15

32

32

79

54

6

70

130

209

宁波

11

43

32

86

37

16

90

143

229

合计

38

109

107

274

114

43

227

386

650

 

  表2 中,城市和商品种类是多维视图的两维,其中商品种类又包含了两个有层次关系的属性(大类和小类),对于每维的每个属性,都包含了一个特殊的值——“ 合计 ,下面给出这类多维视图的形式化定义.
  多维视图(MV )由四元组描述,MV =DfPE
  D : 对组成视图的维及其属性的描述,由若干属性的有序偶组成,每个有序偶中的所有属性属于相应MDB 的同一维,若某维的关键属性由多个属性组合而成,而视图中 又包含至少一个关键属性,则视图必须包括所有关键属性,且关键属性的组合作为一个元素出现在有序偶中. 每个非关键属性作为有序偶的一个元素. 如果该有序偶 含有多个元素,则存在从前一元素到后一元素的多一映射,即相邻元素间存在层次关系.
  f :统计函数,MDB 的数据按视图定义的维结构重构后,新的多维空间某点的值可能对应MDB 定义的多维空间的一个值的集合,f 指出怎样从这个值的集合得到所需的值. 常用的统计函数有求和、平均值、中间值、方差等等.
  P :选择条件,MDB 的所有关键属性是P 的变元 .MDB 中只有满足P 的数据才作为f 的统计样本.
  E :视图对应的多维空间的值的集合. 与多维数据库的多维空间不同,多维视图的空间是若干维数相同的多维空间的复合,如表2 代表的多维视图的多维空间就 包含了:(城市,商品小类)和(城市,商品大类)两个多维空间的值. 我们称每个组成多维视图的复合多维空间的多维空间为子多维空间.s =#D Di D 中的元素,Ni =#Di ,则MV 的子多维空间的维数是s ,子多维空间由从每个Di 中任选一个元素构成的组合定义,显然其总数为1≤is . 所以E 是从Domk×Domk×…×Domkf{Dom1Domk} )的映射,其中DomkMVD 的第i 个元素中任一元素的值域,若该元素只有一个属性,则Domk= 相应的MDB 中的属性的值域∪{ALL} ;否则Domi=MDB 中相应属性的值域的笛卡儿积∪{ALL}.MV 的维数应小于等于相应的MDB 的维数,即s≤r.ALL 是一个特殊的值,相当于表2 合计 4 .
        E(MV)d1,...,ds=f{E(MDB)d1′,...,ds′,...,dr′ ),
     ((1≤i≤sdi 对应于MDB 的关键属性组) --v.gif (910 bytes) di=di′
      ((1≤i≤sdi 不对应于MDB 的关键属性) --v.gif (910 bytes) Fidi′=di
     ∧Pd1′...ds′...dr′}
Fi
是关键属性到非关键属性的函数依赖,据MDB 的定义,Fi 一定存在.+i+i+s+2
+1 Ni

4  用上述方法构造多维数据库和多维视图的例子

  某个零售连锁组织为了提高经营管理水平和赢利,决定建立数据仓库SALES ,要求该数据仓库能有效帮助管理决策人员分析营销业绩、顾客购买趋势、各种商品的表现等等与经营活动密切相关的因素. 我们用上面介绍的方法来构造该数据仓库的多维数据库模型SALES.
  销量(Quantity )和金额(Sum )是主要统计对象,即度量属性M ={Quantity Sum }
  对二度量属性起说明作用的属性有:分店标识(StoreID )、分店所在区(District )、所在市(City )、营业面积(Scale )、员工数目(EmployeeNum )、日期(Date )、星期(Day )、时刻(Time )、促销活动(Promotion )、商品编号(ProductID )、商品名称(ProductName )、商品定价(GeneralPrice )、商品进价(BuyPrice )、商品大类(Class )、商品小类(Category . 根据前面介绍的分维原则,导出各维的定义:
 D ={(StoreID ),(District,City,Scale,EmployeeNum ),(StoreIDDistrict ,DistrictCity
  ),
  〈(Date,Time),(Day, Promotion ),(DateDay,DatePromotion ),
  〈(ProductID ),(ProductName,GeneralPrice,BuyPrice,Class,Category )}
  E 是从Dom (StoreID )×(Dom (DateDom (Time ))×Dom (ProductID )Dom (QuantityDom (Sum ) 上的映射.
  现需要从多维数据库SALES 中得到“10 月份各分店各大类各小类商品销售数量和金额较去年同期的增长幅度 的多维视图Comparison . 显然,这个查询结果与表2 有相同的结构.Comparison 有两维StoreID ProductID ,其中ProductID 包含两个有层次关系的属性Class Category ,即
             D={StoreID,Class,Category}.
选择条件
              P=Date∈{CurrentOct,LastOct}.
统计函数
 f =(SUM (E (MV )|Date ∈{CurrentOct })-SUM (E (MV )|Date ∈{LastOct })/SUM (Date ∈{LastOct })

  ① MDB 的非关键属性不是P 的变元并不意味着不能针对非关键属性提条件,由于非关键属性对关键属性的完全函数依赖,可以把以非关键属性为变元的条件转化成以关键属性为变元的条件,只以关键属性为变元是为了叙述和处理上的方便.
  Quantity Sum 不存在函数依赖,因为有的交易不按商品单价进行.

作者单位:中国科学院软件研究所 北京 100080

   原稿收到日期:1998-02-18 ;修改稿收到日期:1998-08-24 . 本课题得到北京市科委自然科学基金的资助. 陈微,女,197012 月 生,博士研究生,研究方向为数据库、构件软件. 仲萃豪,男,19348 月生,研究员,博士生导师,研究方向为计算机软件.

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值