<!-- /* 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 应用中遇到的新问题,数据仓库技术应运而生.
建立在关系模型基础上的RDBMS 在OLTP 应用领域占据主导地位,但面对OLAP 应用中复杂的查询/ 统计任务,建立在以关系模型基础上的技术,特别是在对最终用户的支持方面暴露出明显的弱点[4 ,5 ] . 多维模型是在学术界和业界都得到公认的最有希望满足OLAP 应用需要的模型. 虽然“ 多维” 作为一种观念已被学术界和业界接受,一些在OLAP 方面领先的软 件公司已推出了基于“ 多维” 概念的产品,但还没有一个严格的模型系统得到公认,多维数据摸型仍然是一个活跃的研究领域.
本文从如何更直观地向用户描述数据仓库中数据的组织方式,和使用户能够容易地构造查询任务的角度提出了一种“ 面向用户的多维数据模型”. 文章第2 节说明在多维数据库领域内通用的基本概念;第3 节给出本模型的形式定义;第4 节给出运用该模型的例子. 为了更有效的支持OLAP 应用,数据库的设计者、应用设计者和用户都用多维空间的观点在各个层次上来描述数据库的逻辑模型. 在多维化的数据库中,每个对 象仍然由一系列的属性来刻画. 其中,像销售数量、库存、金额等具有数量特性、作为主要的统计对象的属性称为度量(measure )或事实(fact ),而 对度量起说明作用的属性,如商品、商店、时间、店员等属性称为维(dimension ),每个维可由一个或多个属性组成,维内的多个属性之间可能形成层次 关系,如日- 月- 年、商品- 小类- 大类等. 多维化的数据库可看作是由其各维构成的多维空间(multidimensional space ),说明属性的值的组合是该空间上的坐标,而度量是该多维空间上的值. 在多数文献中,不区分数据和查询结果,本文基于这两种 对象概念的不同,分别用多维数据库和多维视图来描述这两类不同的对象. 多维数据库与多维视图的区别有如RDBMS 的table 和view. 多维数据库要描 述数据库中各数据的模式、值域及相互关系,对于具体的数据库来说只有一个多维数据库描述;多维视图是针对每个查询/ 统计任务的,由一个多维数据库可以导出 若干多维视图,多维视图是对多维数据库的剪裁、重组和统计的结果.
3.2 多维数据库的定义及导出方法
定义1. 属性(Attr )是由一个唯一的标识(在一个多维数据库内)和值域组成的二元组,Attr = 〈ID ,domain 〉.
定义2. 多维数据库由三元组描述,即MDB∷= 〈M, D, E 〉
M :MDB 中所有度量属性组成的集合,即M={m1 ,...,mk }, k>=0 ;
D :MDB 所有维的集合,即D ={Di }+ ,该集合的元素是三元组,即Di = 〈Key, Determined, Hierarchies 〉
Key :该维的关键属性集合;
Determined :该维的非关键属性集合;
Hierarchies :维中所有层次关系的集合;
E :MDB 对应的多维空间中的各点的值的集合,是从Domk ×…×Domk 到Dom1 ×…×Domk 、0 或1 上的映射[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 表示, A 和B 是属性的标识的集合, 表示从A 中标识所指出的属性的值域的笛卡儿积到B 中标识所指定的属性的值域的笛卡儿积上的多一映射.
下面说明得到上述逻辑模型的方法:
(1 ) 确定MDB 的度量属性M.
M 一般包括在今后的数据分析中要用到的统计量,注意度量属性之间要相互独立,不可有函数依赖关系.
(2 ) 列出所有数据仓库中可以得到的对(1 )中确定的度量属性起说明作用的属性.
(3 ) 确定MDB 的维数和各维的关键/ 非关键属性.
函数依赖是分组的基本依据,我们用有向图来描述分组的过程:以(2 )中列出的每个属性作为图的一个顶点,如果属性集Y 完全函数依赖于属性集X ,则从所有X 中的属性所对应的顶点到所有Y 中属性对应的顶点画一条边. 直到处理完所有的完全函数依赖. 忽略边的方向,原来各顶点分离的图形成了若干连通的子图,每个子图代表MDB 的一维,子图中顶点对应的属性则是组成该维的属性. 在每个子图中,将顶点任意分为两组X 和Y ,如果这种划分满足:
① 对于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 多维视图的定义 表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 中,城市和商品种类是多维视图的两维,其中商品种类又包含了两个有层次关系的属性(大类和小类),对于每维的每个属性,都包含了一个特殊的值——“ 合计” ,下面给出这类多维视图的形式化定义. 4 用上述方法构造多维数据库和多维视图的例子 某个零售连锁组织为了提高经营管理水平和赢利,决定建立数据仓库SALES ,要求该数据仓库能有效帮助管理决策人员分析营销业绩、顾客购买趋势、各种商品的表现等等与经营活动密切相关的因素. 我们用上面介绍的方法来构造该数据仓库的多维数据库模型SALES. ① MDB 的非关键属性不是P 的变元并不意味着不能针对非关键属性提条件,由于非关键属性对关键属性的完全函数依赖,可以把以非关键属性为变元的条件转化成以关键属性为变元的条件,只以关键属性为变元是为了叙述和处理上的方便. 作者单位:中国科学院软件研究所 北京 100080 原稿收到日期:1998-02-18 ;修改稿收到日期:1998-08-24 . 本课题得到北京市科委自然科学基金的资助. 陈微,女,1970 年12 月 生,博士研究生,研究方向为数据库、构件软件. 仲萃豪,男,1934 年8 月生,研究员,博士生导师,研究方向为计算机软件. |