1. 多维数据库简介 多维数据库(Multi Dimesional Database,MDD)可以简单地理解为:将数据存放在一个n维数组中,而不是像关系数据库那样以记录的形式存放。因此它存在大量稀疏矩阵,人们可以通过多维视图来观察数据。多维数据库增加了一个时间维,与关系数据库相比,它的优势在于可以提高数据处理速度,加快反应时间,提高查询效率。MDD的信息是以数组形式存放的,所以它可以在不影响索引的情况下更新数据。因此MDD非常适合于读写应用。 1.1. 关系数据库存在的问题 利用SQL进行关系数据库查询的局限性: 1) 查询因需要“join”多个表而变得比较烦琐 ,查询语句(SQL) 不好编程; 2) 数据处理的开销往往因关系型数据库要访问复杂数据而变得很大。 关系型数据库管理系统本身局限性: 1) 数据模型上的限制 关系数据库所采用的两维表数据模型,不能有效地处理在大多数事务处理应用中,典型存在的多维数据。其不可避免的结果是,在复杂方式下,相互作用表的数量激增,而且还不能很好地提供模拟现实数据关系的模型。关系数据库由于其所用数据模型较多,还可能造成存储空间的海量增加和大量浪费,并且会导致系统的响应性能不断下降。而且,在现实数据中,有许多类型是关系数据库不能较好地处理的 。 2) 性能上的限制 为静态应用例如报表生成,而设计的关系型数据库管理系统,并没有经过针对高效事务处理而进行的优化过程。其结果往往是某些关系型数据库产品,在对GUI和Web的事务处理过程中,没有达到预期的效果。除非增加更多的硬件投资,但这并不能从根本上解决问题。 用关系数据库的两维表数据模型,可以处理在大多数事务处理应用中的典型多维数据,但其结果往往是建立和使用大量的数据表格,仍很难建立起能模拟现实世界的数据模型。并且在数据需要作报表输出时,又要反过来将已分散设置的大量的两维数据表,再利用索引等技术进行表的连接后,才能找到全部所需的数据,而这又势必影响到应用系统的响应速度。 3) 扩展伸缩性上的限制 关系数据库技术在有效支持应用和数据复杂性上的能力是受限制的。关系数据库原先依据的规范化设计方法,对于复杂事务处理数据库系统的设计和性能优化来说,已经无能为力。此外,高昂的开发和维护费用也让企业难以承受。 4) 关系数据库的检索策略,如复合索引和并发锁定技术,在使用上会造成复杂性和局限性。 1.2. 多维数据库的相关定义 维(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则相反,它从汇总数据深入到细节数据进行观察或增加新维。 切片和切块:是在一部分维上选定值后,关心度量数据在剩余维上的分布。如果剩余的维只有两个,则是切片;如果有三个或以上,则是切块。 旋转:是变换维的方向,即在表格中重新安排维的放置(例如行列互换)。 1.3. 多维数据库的特点 后关系型数据库的主要特征是将多维处理和面向对象技术结合到关系数据库上。这种数据库使用强大而灵活的对象技术,将经过处理的多维数据模型的速度和可调整性结合起来。由于它独有的可兼容性,对于开发高性能的交换处理应用程序来说,后关系型数据库非常理想.在后关系型数据库管理系统中,采用了更现代化的多维模型,作为数据库引擎。并且,这种以稀疏数组 为基础的独特的多维数据库架构,是从已成为国际标准的数据库语言基础上继承和发展的,是已积累了实践经验的先进而可靠的技术。 多维数据模型能使数据建模更加简单,因为开发人员能够方便地用它来描述出复杂的现实世界结构,而不必忽略现实世界的问题,或把问题强行表现成技术上能够处理的形态,而且多维数据模型使执行复杂处理的时间大大缩短。例如开发一个服装连锁店信息管理系统时,如果用关系数据库,就需要建立许多表,一张表用来说明每种款式所具有的颜色和尺寸,另一张表用来建立服装和供应商之间的映射,并表示它是否已被卖出,此外还需要建一些表来表示价格变化、各店的库存等等。每成交一笔生意,所有这些表都需要修改,很快这些关系数据库就会变得笨重而缓慢。而在多维数据模型中,可以将这些数据看做是存在于一个“立方体”中,这个“立方体”有足够多的“面”,以便对数据进行完全分类,如款式、颜色、价格、库存等等都能够立刻互相映射,获取数据极其迅速,而且由于清除了冗余的数据,多维数据库非常简单,不仅好用,而且更经济。 2. 现有多维数据库相关分类 现有的多维数据库主要分为“纯”多维数据库和“准”多维数据库,前者以cache这种不依附与关系数据库的数据库种类为主,后者主要是依附于关系数据库,在其之上提取数据生成多维数据表便于进行统计和分析。 现有的准多维数据库大多是基于关系数据库为基础,在关系数据库提供数据的基础上建立多维数据,便于查询和分析。主要包括以下几个:基于Oracle的ORACLE EXPRESS SERVER,基于SQL Server的Microsoft SQL Server Analysis Services,基于DB2的OLAP Server以及Hyperion Essbase 数据库。 2.1. Cache数据库 Caché 数据库是一种面向对象的多维数据库,同时支持SQL的访问方式。在数据库的划分上,超越关系数据库被称为第三代,后关系型数据库。该数据库有以下特点: 1、速度快。Cache数据库在同等条件下查询相同数据比Oracle等普通数据库要快。Cache是基于普通关系型数据库如:Oracle, SQL server, Sybase等的基础之上并有所改进而产生的。Caché在性能上可以和内存数据库比美,在一台笔记本上可以实现每秒数万条的插入速度。Caché独特的动态的位图索引技术 可以实现数据库在更新的同时做查询和分析,而不影响使用性能。 2、使用简单。Cache数据库支持标准SQL语句,因此不太熟悉M语言 的用户依然可以轻易对数据库中的数据进行操作。 3、接口容易。Cache数据库支持ODBC标准接口,因此在与其他系统进行数据交换时非常容易。同时Cache亦可以将数据输出成文本文件格式以供其它系统访问调用。 4、真正的3层结构。Cache数据库能够真正意义上实现3层结构,实现真正的分布式服务。升级扩容方便。正因为由上述分布式3层结构,所以当医院需要增加客户端PC或医院进行扩大规模时,不需要重新购买或更新主服务器,只需要适当增加二级服务器的数量即可,二级服务器相对来说要比主服务器要便宜许多,因此,医院可节约资金减少重复投资。 5、对象型编辑。Cache数据库是真正的对象型数据库,开发时用户可直接用数据库定义自己想要的对象,然后再在其它开发工具中调用该对象的方法和属性即可完成开发工作,非常方便。支持远程映射和镜像。Cache数据库支持远程的映射和镜像,比如在不同城市之间,或在同一城市的不同区域之间,Cache可以进行镜像(Mapping),使不同区域的Cache数据库同步联系起来,虽然在不同区域,但大家使用起来就像共用一个数据库。 6、灵活性。基于Caché数据库的应用软件不仅可以不经修改便能在多种操作系统平台上(如Windos98/NT、各种UNIX和Linux环境下运行,也可以随意布署运行在两层或三层的C/S结构即客户机/服务器环境中,或者B/S结构即浏览器/服务器环境中。而且应用服务器和数据库服务器的数量是在运行中是随意可以增加扩充而不影响运行。 7、支持WEB开发。Cache 数据库提供自带的Web开发工具,使用维护非常方便,符合当今软件业发展的趋势。 8、价格便宜。Cache数据库的价格比Oracle要便宜许多。 这种数据库已经超越了传统关系数据库的局限,在Internet或Client/Server环境下任务关键和突发大负载的情况下,Caché具有独特超群的高响应速率特性、高度灵活的可伸缩性能、高强度联机处理能力。 在InterSystems 全球业务里,有50%是医疗行业,30%在金融业、另外20%在船务、饭店管理、会议系统等方面。所有这些行业都有一个共同点,都需一个庞大的数据库,数据需要很快更新。国外的成功案例已经有许多,如:美国十大医院、三大医疗卫生实验机构、全球最大的在线证券交易公司、美林投资集团、美国国防部等均采用了Caché数据库;国内目前也有一些应用,但主要限于医疗行业,如:北京安贞医院、福州军区总医院和哈尔滨医科大学第一附属医院等。在美国和欧洲的HIS系统中,CACHE数据库所占的比例是最大的,被医疗界公认为首选数据库。 2.2. Microsoft SQL Server Analysis Services SQL Server 2008 Analysis Services工具,实现了多维分析数据库的构建,同时提供了管理工具与用户访问软件。它使用了一种称为“Block Computation(分块计算)”的技术,存储模式使得分区的聚合和其源数据的复本以多维结构存储在分析服务器计算机上。利用了多维数据集的稀缺性,仅处理非 NULL 数据,以提高查询效率。更加适合于频繁使用的多维数据集中的分区和对快速查询响应的需要。能够极大地提高查询效率,因此可以更细的粒度进行分析。Analysis Services 中的数据挖掘算法提供了这种预测分析能力,而 SQL Server 2008 Analysis Services 改善了数据挖掘算法,可以实现更全面的分析。 SQL Server 2008 Analysis Services 新引进了一套创新的 Best Practice Design Alerts(最佳实践设计警报),可在开发流程的早期阶段对潜在的设计问题自动发出通知,这会减少由于设计错误导致的时间浪费,并有利于实施更快的开发流程。SQL Server 2008 Analysis Services 利用新的、改进的多维数据集、维度和属性设计器,进一步提高了开发人员的工作效率。Analysis Services 可以进行缩放,以支持许多规模达到兆兆字节并且服务于数千名用户的数据库。SQL Server 2008 Analysis Services 提供了与数据库引擎所用的类似的 Dynamic Management Views(动态管理视图)。这些特性提供了实时的企业系统信息,用于监视、分析和进行性能调整。SQL Server 2008 Analysis Services 之后,新的备份存储子系统会使备份时间随着数据库大小的增加仅按线性增长。 Analysis Services 10.0 OLE DB 访问接口 (msolap100.dll) 是应用程序与 Microsoft Analysis Services 进行交互的接口。ADOMD.NET 是用于与 Microsoft SQL Server Analysis Services 进行通信的 Microsoft .NET Framework 数据访问接口。 2.3. Oracle Express Server Oracle Express Server是一个先进的计算机引擎和数据高速缓存。它使用多维模型,多维模型最能反应用户对其业务的思考方法,将电子表格的行和列扩展三维或者更多的维。维可以是时间、产品、产品系列、地区,用户分析的对象可以是像单位销售额这样的综合数据。对于多维模型的查询是很迅速的。这些查询是对数组中的某一部分的算术计算。因此,这个数组支持最大、最复杂的OLAP应用。 Express Server能够存储和管理多维数组,或者通过一种只需很少、甚至不需索引的复杂的多维高速缓存方案,提供直接面向关系的分析。Oracle Express Server不仅支持多维模型,而且具有分析、预测、建模,以及对进行假设分析的能力。具有用于数学、财务、统计和时间序列管理等方面的内置功能。具有伸缩性、强健性和基于应用的特性,支持多个用户,并且为大型库实现完整性控制。灵活的数据组织方式,数据可以存放在Express Server内,也可直接在RDB上使用,有内建的分析函数和4GL用户自己定制查询。 Oracle Express Server是先进的多维计算引擎,是进行OLAP分析的基础。Express Server的最新版本是6.3,这个版本在处理能力、分析功能等多方面有重大改进。 1. 处理能力的提高:Express Server 6.3展示了OLAP 服务器最快的计算能力和查询性能。Express Server 6.3引入了很多新特性,可以极大提高Express Server对大数据量和大的并发用户数的支持。 2. 更快的汇总计算:Express Server 6.3引入了全新的汇总计算管理机制。新的汇总机制允许定制汇总方法,并且可以显著降低装载和汇总计算的时间。 3. 分析功能的提高:新引入的统计分析函数将使Express Server 6.3的分析能力显著提高。 4. 预测功能的提高:新的预测系统将提供数据抽样和基于数据模式推荐最佳预测方法的能力。 5. 基于Web的管理工具:Express Server 的管理将由新的Express Instance Manger统一进行,Express Instance Manger是基于Java的应用,可以和Oracle Enterprise Manager集成。这使DBA可通过Oracle Enterprise Manager的Java窗口或Browser对NT或UNIX上的多维数据库进行管理。 6. Oracle Express 对Web技术的支持:Express Server 的一个重要发展策略是支持Internet计算,这也是Express产品领先于同类产品的一个重要方面。DBA可通过Oracle Enterprise Manager的Java窗口或Browser对NT或UNIX上的多维数据库进行管理。Express Server 从6.0版本开始增加了Express Web Agent选项,使基于Express Server的OLAP应用拥有了Web公布能力 7. 支持各种关系型数据库系统的集成。 2.4. DB2 OLAP Server IBM公司提供了一套基于可视数据仓库的商业智能(BI)解决方案,包括:Visual Warehouse(VW)、Essbase/DB2 OLAP Server 5.0、IBM DB2 UDB,以及来自第三方的前端数据展现工具(如BO)和数据挖掘工具(如SAS)。其中,VW是一个功能很强的集成环境,既可用于数据仓库建模和元数据管理,又可用于数据抽取、转换、装载和调度。Essbase/DB2 OLAP Server支持“维”的定义和数据装载。Essbase/DB2 OLAP Server不是ROLAP(Relational OLAP)服务器,而是一个(ROLAP和MOLAP)混合的HOLAP服务器,在Essbase完成数据装载后,数据存放在系统指定的DB2 UDB数据库中。 严格说来,IBM自己并没有提供完整的数据仓库解决方案,该公司采取的是合作伙伴战略。例如,它的前端数据展现工具可以是Business Objects的BO、Lotus的Approach、Cognos的Impromptu或IBM的Query Management Facility;多维分析工具支持Arbor Software的Essbase和IBM(与Arbor联合开发)的DB2 OLAP服务器;统计分析工具采用SAS系统。 IBM DB2 OLAP Server把Hyperion Essbase的OLAP引擎和DB2的关系数据库集成在一起.,与Essbase API完全兼容,数据用星型模型存放在关系数据库DB2中。 2.5. Hyperion Essbase Hyperion Essbase是一个联机分析处理(OLAP)服务器,使用一个多维模型从一系列数据源中提取数据,计算后对它们加以综合,然后提供对结果的快速访问。是一个多维数据库服务器,可以创建“块存储”或“聚合存储”数据库,前者用于需要进行读/写访问的小型、高密度的数据集,后者用于具有很多维度和只读访问的稀疏、销售分析类型的应用程序。 Essbase是BI软件hyperion的多维数据库,目前已更新至11版本。 它不同于通常意义上的关系数据库,Essbase把数据按“块”划分,每个数据块会定义不同的维度。其中Essbase有7个默认维度,并可以自行定义13个用户维度。 7个默认维度为科目、期间、年份、情景、货币、版本、实体。 Essbase的特点: 1、 高性能:快速地查询响应 2、 计算/分析能力 聚合 无限制的跨维计算能力 场景假设分析 分摊 趋势分析/回归分析 决策树/神经网络/关联分析 财务智能/货币转换 数学函数 预测 Hyperion Essbase现状:以服务器为中心的分布式体系结构–有超过100个的应用程序;有300多个用Essbase作为平台的开发商;具有几百个计算公式,支持多种计算;用户可以自己构件复杂的查询;快速的响应时间,支持多用户同时读写;有30多个前端工具可供选择;支持多种财务标准;能与ERP或其他数据源集成;全球用户超过1500家 3. 简要比较 综合以上5种多维数据库的比较如下: 作为医疗界公认为首选数据库,Cache数据库的优点较多,如具有较快的查询速度,使用简单和灵活性等特点,适合在开发阶段直接使用,由于采用直接插入数据的形式,所以对已有未用Cache的老产品不太适合,数据的迁移性不太好。 作为微软在多维数据上应用的典型产品,Analysis Services具有较好的查询和分析性能,并且由于Sql Server的广泛应用,使得Analysis Services有较多的应用。Sql Server 2008对Analysis Services做出了一些改进,进一步提高了查询效率和分析能力。在数据源方面适用于多种数据源,但是该系统的应用环境只是windows,不能用于Linux系统上。 Oracle支持关系数据存储和多维数据存储,利用Oracle Express Server实现多维数据的存储,在Express Server 6.3公布之前,Oracle Express Server 的技术更新的太慢,占用的内存很大,影响了其应用。Express Server 6.3提高了处理能力和分析能力,但是提高的程度有待于验证。 DB2 OLAP Server是一个ROLAP和MOLAP混合的HOLAP服务器,在Essbase完成数据装载后,数据存放在系统指定的DB2 UDB数据库中。对Essbase的API完全兼容。主要应用在DB2的数据库之上。 Hyperion Essbase是多维数据库服务器,支持从广泛的数据源提取数据,但与 Oracle OLAP 将数据存储在关系数据库引擎外不同,它通常将数据存储在自己的专用服务器上,从而具有较快的查询响应以及计算分析能力。 考虑现在应用的数据库为Oracle数据库,尽管cache数据库和DB2 OLAP Server性能较高,但短时间内使用这两种产品的可能性不大,现有数据库数据不能快速顺利的移植或者应用到Cache数据库,DB2 OLAP Server会依托于Hyperion Essbase数据库,与现用的Oracle数据库同时使用会有些累赘。所以暂时选择以下三种策略。 策略1:Oracle Oracle Express Server 策略2:Oracle Hyperion Essbase 策略3:Oracle SQL Server Analysis Service 综合比较上述三种策略如下:
表1:三种策略比较
Oracle Express Server | Hyperion Essbase | Sql Server Analysis Service | |
---|---|---|---|
公司 | Oracle | Oracle | Microsoft |
适用系统 | Linux, Windows | Linux,Windows | Windows |
移植性 | 较高 | 较高 | 较差 |
开放性 | 较好 | 较好 | 较差 |
可伸缩性 | 较高 | 较高 | 有限 |
并行性 | 较好 | 一般 | 较差 |
安全性 | 较高 | 较高 | 一般 |
分析性能 | 一般 | 较好 | 较好 |
数据源 | 多数据源 | 多数据源 | 多数据源,支持oracle |
操作程度 | 界面和命令行 | 界面(主)和命令行 | 图形界面 |
使用风险 | 偏高 | 较低 | 较低 |
使用复杂度 | 一般 | 较高 | 较低 |
使用推荐:Hyperion Essbase(高),Oracle Express Server(中),Sql Server Analysis Service(低)。