多维数据库(Multi Dimensional Database,MDD)可以简单地理解为:将数据存放在一个n维
数组中,而不是像
关系数据库那样以记录的形式存放。因此它存在大量
稀疏矩阵,人们可以通过多维视图来观察数据。多维数据库增加了一个时间维,与关系数据库相比,它的优势在于可以提高数据处理速度,加快反应时间,提高查询效率。
相关定义
维(Dimension):是人们观察数据的特定角度,是考虑问题时的一类属性,属性集合构成一个维(时间维、地理维等)。
维的层次(Level):人们观察数据的某个特定角度(即某个维)还可以存在细节程度不同的各个描述方面(时间 维:日期、月份、季度、年)。
维的成员(Member):维的一个取值,是数据项在某维中位置的描述。(“某年某月某日”是在时间维上位置的描述)。
度量(Measure):多维数组的取值。(2000年1月,上海,笔记本电脑,0000)。
OLAP的基本多维分析操作有钻取(Drill-up和Drill-down)、切片(Slice)和切块(Dice)、以及旋转(Pivot)等。
钻取:是改变维的层次,变换分析的粒度。它包括向下钻取(Drill-down)和向上钻取(Drill-up)/上卷(Roll-up)。Drill-up是在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;而Drill-down则相反,它从汇总数据深入到细节数据进行观察或增加新维。
切片和切块:是在一部分维上选定值后,关心度量数据在剩余维上的分布。如果剩余的维只有两个,则是切片;如果有三个或以上,则是切块。
旋转:是变换维的方向,即在表格中重新安排维的放置(例如行列互换)。
特点
后
关系型数据库的主要特征是将多维处理和面向对象技术结合到
关系数据库上。这种数据库使用强大而灵活的对象技术,将经过处理的多维数据模型的速度和可调整性结合起来。由于它独有的可兼容性,对于开发高性能的交换处理应用程序来说,后关系型数据库非常理想.在后关系型数据库管理系统中,采用了更现代化的多维模型,作为数据库引擎。并且,这种以稀疏数组 为基础的独特的多维数据库
架构,是从已成为国际标准的数据库语言基础上继承和发展的,是已积累了实践经验的先进而可靠的技术。
多维数据模型能使数据建模更加简单,因为开发人员能够方便地用它来描述出复杂的现实世界结构,而不必忽略现实世界的问题,或把问题强行表现成技术上能够处理的形态,而且多维数据模型使执行复杂处理的时间大大缩短。例如开发一个服装连锁店信息管理系统时,如果用关系数据库,就需要建立许多表,一张表用来说明每种款式所具有的颜色和尺寸,另一张表用来建立服装和供应商之间的映射,并表示它是否已被卖出,此外还需要建一些表来表示价格变化、各店的库存等等。每成交一笔生意,所有这些表都需要修改,很快这些关系数据库就会变得笨重而缓慢。而在多维数据模型中,可以将这些数据看做是存在于一个“立方体”中,这个“立方体”有足够多的“面”,以便对数据进行完全分类,如款式、颜色、价格、库存等等都能够立刻互相映射,获取数据极其迅速,而且由于清除了冗余的数据,多维数据库非常简单,不仅好用,而且更经济。
产品
多维数据库增加了一个
时间维,与关系数据库相比,它的优势在于可以提高数据处理速度,加快反应时间,提高查询效率。
有两种MDD 的OLAP产品:基于多维数据库的
MOLAP和基于关系数据库的
ROLAP。ROLAP建立了一种新的体系,即星型结构。
MDD并没有公认的多维模型,也没有像
关系模型那样标准地取得数据的方法(如SQL、API等)。基于MDD的OLAP产品,依据决策支持的内容使用范围也有很大的不同。
在低端,用户使用基于单用户或小型LAN的工具来观察多维数据。这些工具的功能性和实用性可能相当不错,但由于受到规模的限制,它们不具备OLAP的所有特性。这些工具使用
超立方结构,将模型限制在n维形态。当模型足够大且稀疏数据没有控制好时,这种模型将会不堪一击。这些工具使用数据库的大小是以MB来计量的,而不是以GB计量的,因此只能进行只读操作,且具备有限的复杂计算。
在高端,OLAP工具用
4GL提供了完善的开发环境、统计分析、时间序列分析、财政报告、
用户接口、多层
体系结构、图表等许多其他功能。尽管不同的OLAP工具都使用了它们自己的多维数据库,但它们在不同程度上也利用了关系数据库作为存储媒体。因为关系数据库和OLAP工具同时在高端服务器上处理,所以速度和效率仍然很快。
纯多维
数据库引擎也被开发出来。尽管这些工具缺乏
4GL及充分的开发环境,但却有比高端MDD工具所使用的数据库更为复杂的数据库。这些工具也具有统计分析、财务分析和时间序列分析等功能,并有自己的API,允许其对前端的开发环境开放。
MDD能提供优良的查询性能。存储在MDD中的信息比在关系数据库中的信息具有更详细的索引,可以常驻内存。MDD的信息是以数组形式存放的,所以它可以在不影响索引的情况下更新数据。因此MDD非常适合于读写应用。
组织方式
各公司多维数据库产品的数据组织不完全相同,Arbor公司的ESSbase多维数据库是一种具有代表性的产品,下面以这种组织方式为例,说明从多维数据库或关系数据库中抽取出来、存放在多维数据库的数据组织。
将用于分析的数据从关系数据库或关系数据仓库中抽取出来,存放到多维数据库的
超立方结构中。
有一组包含6个维的数据:
销售方式 6成员
产品 1500成员
销售地 100成员
时间 17成员
项目8成员
统计50成员
其中,一些维被称为“稠密维”(dense dimensions),这些维构成了数据存储的“多维体”,其他的维被称为“稀疏维”(sparsedimensions)。
可以将这些“稀疏维”存储在类数据库表结构中,这个表中只记录那些组合存在的数据,并有一个索引指向相应的“多维体”。
在例子中“时间”、“项目”和“统计”是“稠密维”,它们构成了“立方体”;其他的三维产品、销售方式、销售地区是“稀疏维”。
这种多维体是以多维数组方式记录各测量值的,相应各维有一定的记录维及维内层次的元数据结构。这种数据组织方式消除了大量数据库表中由于空穴造成的空间浪费,以及在每个元组中存储的外键信息,它由统一的维与数组的对应系数限定数据,大大减少了存储空间。当使用多维数据库作为数据仓库的基本数据存储形式时,其最主要的特点是:大大减少了以维为基本框架的存储空间,针对多维数据组织的操作算法,极大地提高了多维分析操作的效率。
与关系数据库不同
多维数据库是在最近十年内发展起来,其目的是分析数据而不是完成在线事务。多维数据库(MDA)对数据进行建模以作为事实、维度或者数值度量,这些都为做出决策而进行了大量数据的交互分析。这类数据库常见的示例包括InterSystems Cache、ContourCube以及Cognoa PowerPlay。
关系数据库常常需要SELECT……FROM以及其他类型的SQL查询来提供信息,与此不同,多维数据库允许用户以更为口语化的英语来询问问题,例如,“How many type Z dog leashes have been sold in New Jersey so far this year?”为达到此目的可以使用一种在线分析处理(OLAP)的软件,该软件可以迅速地提供出复杂数据库的查询答案。OLAP软件常常使用于销售与市场业务报表、管理报表、趋势分析等类似的领域中。访问多维数据库中数据的OLAP应用软件称为MOLAP(多维OLAP)应用软件。