技术开发 频道

2007数据库技术谁主沉浮(上):商业数据库市场与技术分析报告

【IT168技术评论】

2006年转眼就消逝了,在新的一年里,让我们一起来回顾一下在这过去的一年中,数据库领域都发生了哪些重要变迁。

一、 近年数据库市场分析

首先我们从2005年的统计数据开始,了解一下2005年数据库市场的份额情况。

1.1 市场的分布
  根据Gartner公司的统计数据,2005年全球数据库市场增长了约8%;其中,Oracle的全球市场份额为48.6%,IBM的市场份额为22%,微软的市场份额为15%(下表所示市场规模单位为百万美元,数据来自Gartner公司官方网站):

  我们注意到前三强的市场占有率达到了85.6%,而Oracle以48.6%的份额几乎占据了数据库市场的半壁江山,处于绝对的领导地位;Oracle的份额是IBM的2倍还多,比IBM和微软的总和还要高出10个百分点。
另外一个值得注意的是地方是,Teradata凭借其在数据仓库领域的出色表现,已经在数据库市场占据了3.2%的份额,这一份额超过了老牌数据库厂商Sybase。

以下图表可以使我们清晰地看到这一市场分布:
 
1.2 微软的更新

  微软公司在2005年发布了SQLServer2005版,这一版本耗时达五年之久,曾多次推迟发布时间。据说微软每次推迟发布都和来自竞争对手新产品的压力有关。
微软的新产品发布及一系列相关政策使得微软在2005年获得了16.6%的增长,这一增长十分显著。

  不过微软最终认识到让用户用5年时间来等待升级实在是过于漫长,于是成立了一个SRI(SoftwareReengineeringInitiative)部门,用来确保用户升级不用等待超过两年的时间。
微软似乎和五年很有缘份,SQLServer2000和SQLServer2005、IE6和IE7、WindowsXp和Vista,微软的延期发布几乎已经成为了习惯。

  微软SRI部门负责人甚至总结到:在过去的5年中,甲骨文推出了二个升级版本,IBM公司也是如此。但如果考察一下他们的版本会发现,各个版本的变化都不特别大,客户似乎很喜欢这样。


1.3 Oracle的产品更新

那么让我们来看一下,Oracle公司在以怎样的频率发布他们的新产品:

  从Oracle6开始,Oracle的版本更新平均只需要3.2年,看来Oracle公司的产品更新能力果然不同凡响。在微软进行埋头开发的5年中,Oracle的确已经发布了两个主要版本Oracle9i和Oracle10g,而且Oracle也正是通过不断的新产品升级保持领先优势并给竞争对手施加压力。

通过更直观的图表我们可以看到Oracle整个产品序列的发布时间:

  (注:图中未标注1998年Oracle发布了Oracle8i版本)

  现在我们可以退得更远一点,我们知道自从1970年E.F.Codd博士发表那篇著名的论文(ARelationalModelofDataforLargeSharedDataBanks)以来,关系数据库的发展已经经历了一个漫长的历史过程;关系数据库理论早已成熟,而关系型数据库技术却只是在完善的道路上不断前行。针对Oracle来说,Oracle7已经是一款很稳定和功能完善的数据库产品,在1992年之后,Oracle更多的工作是在锦上添花。而即使在这个方向上,Oracle也一直在引导潮流。

  所以在2006年IBM发布了蓄势已久的IBMDB2V9Viper版本,并且在这个版本中引入PureXML支持,IBM期望通过这一新特性赶上并且超过Oracle数据库产品。

1.4 Sybase-曾经的强者

  从上面的统计数据中我们看到,Sybase的份额已经降到很低,仅为3%左右,在Oracle、IBM、微软的强大攻势下Sybase节节败退,甚至早在1997年,Gartner公司已经将Sybase从”Big5”DBMS市场领先者中除名。

  然而毕竟Sybase曾经是数据库市场上的强者(微软的SQLServer也是丛Sybase发展而来),尤其是在中国市场,Sybase进入的较早,在中国的电信、金融、铁路等行业占据较高的市场份额,具有颇深的影响力。根据CCID的统计数据,2002年Sybase以36.2%的份额占据中国铁路数据库市场绝对的领导地位;而在中国电信行业这一数字更是高达45%;根据国内统计公司易观国际最近发布的统计数据,在2006年的第三季度,Sybase在中国市场的占有率仍然高达13.3%,位居第四位(具体数据图表见后文)。

  虽然Sybase在逐渐失去的传统关系数据库市场,但是多年的积累使他们仍然维持了一部分用户,这部分用户使Sybase在这个领域仍然拥有一席之地;当Sybase在关系数据库领域选择了防守撤退之后,他们选择了另外一个细分市场:移动数据库领域,据统计Sybase在全球移动数据库市场的份额已经高达73%。虽然这仍然是一个较小的细分市场,但是Sybase已经选择了这个方向进行突围,我们希望这个曾经的强者能够一路走好。


2.1 IBM的DB2V9Viper横空出世

  在2006年IBM发布了DB2V9Viper数据库版本,在这一数据库版本中,IBM引入PureXML支持,这意味着XML数据将以其自身固有的分层格式进行存储和查询;通过将原生XML带入传统的关系型数据库中,使得关系型数据可以和非关系型数据在同一数据库中并存,IBM期望通过XML数据的灵活性来弥补关系型数据库在这方面的不足。
而且依托于IBM的种种技术创新,新的XML技术和传统的以大对象方式存储具有本质的区别,这更被看作关系型数据库向传统数据库的一种回归。从这个意义上说,IBM在2006年引导了数据库市场的一时之风。

在DB2V9中IBM主推9大技术特性:
  1.新的XML特性,PureXML支持
  2.新的应用与开发特性
  3.新增自动数据库管理功能
  4.性能与可扩展性增强
  5.新的安全特性与增强
  6.使用分区改进大型数据库管理
  7.数据恢复增强
  8.自动管理性增强
  9.自动演进(包括自动统计数据收集等)
我们可以看到,在众多新特性之中,唯一的突出亮点就是“新的XML特性”,这也是IBM耗时五年抛出的”杀手锏”;而其他的特性增强对于竞争对手Oracle来说,早已经不是什么新鲜事了。

那么这一新技术到底将在数据库领域占有什么样的位置呢?

2.2 数据库的发展方向

  我们知道,长期以来,关系型数据库一直向着容纳更多、需求更少、应用更高等方向发展。

  所谓容纳更多,也就是将更多样的数据存入数据库之中,不断扩展数据库的存储能力。从早期的文本数据到现在的音频、视频数据,各类文档、非结构化XML数据等,几乎所有的数据都可以被存储在数据库之中。

  从这个意义上说XML数据也只是数据库向存储更多方向发展的一个产物,IBM的PureXML也并没有跳出关系数据库的传统范畴,这一新特性不过是关系数据库在完善过程中的一个选择。


2.3 2006年第三季度数据库市场份额

  根据最近国内统计公司易观国际的统计数据,在2006年第三季度,国内市场的数据库市场规模达到4.63亿元,具体份额分布情况为:Oracle占有39%,IBM占有26%,微软为17.8%,Sybase占有13.3%(统计数据来自互联网)

 
  如果Q3国内的统计数据基本准确的话,我们回顾2005年的数据,仅通过两个统计数据粗略类比一下比例份额:Oracle份额有所下降,DB2仅取得了有限的增长。
有限的增长可能说明IBM的DB2V9Viper在国内已经取得了一定的进展,有的用户已经逐渐开始尝试这一全新的数据库版本。

  我们都知道,通常期望稳定用户迁移至新的数据库软件是不太现实的,所以数据库厂商一直以来都把新的数据库版本或新特性作为吸引新用户的主要手段。伴随IBM铺天盖地的宣传攻势,可能有用户已经向DB2倾斜;可是长期的趋势有待更全面的统计数据以及竞争对手的反映。

2.4 Oracle在做什么?

那么面对两大竞争对手的新产品攻势,Oracle在做什么呢?

  Oracle在2006年并未发布新的软件版本,自2004年Oracle10g开始推出以来,Oracle一直在对这一版本进行不断修正,在2005年Oracle发布了Oracle10gRelease2版本;而在2006年,Oracle在服务方面进行了大规模的调整,这包括使用Oracle自己的HTMLDB技术重构了Metalink站点(Oracle的技术支持站点)、修改用户注册和激活方式等,在新的模式下,服务过期的用户将会无法访问Metalink的资源,而在此之前,服务过期用户是可以访问Metalink获得文档资源或下载补丁的;据统计,这一修正已经促使了很多用户续签或再次购买Oracle的技术服务,在一切以服务为中心的时代,Oracle的这一变革尤其引人瞩目,所以我们猜测Oracle在2006年的营收方面仍然会有不俗的表现。

  在2006OracleOpenWorld技术大会上,Oracle又一强势举动是宣布提供企业级别的Linux支持服务,并且很快发布了打上了OracleLogo的EnterpriseLinux,这也就意味着Oracle已经开始染指操作系统,强化并完善其战略布局。自从Oracle随Oracle10g发布了群集支持软件CRS(ClusterReadyServices-Oracle的群集支撑软件)以后,大家一直在猜测Oracle进军操作系统的步伐,现在Oracle已经做出反映。

  总结一下,虽然Oracle在2006年并没有推出强势的数据库功能以抗衡IBM的PureXML技术,但是Oracle在完善战略布局,加强服务等方面的确取得了重大进步。在2006年Oracle最大的举措就是通过完善服务、升级软件来进一步稳固自己的市场。
数据库市场的竞争远没有想象的那么简单,短期之内,市场格局应该不会有太大的变化。


2.5 性能与易用性仍然是数据库发展的方向

  我们前面谈到,关系型数据库所以升级缓慢,其中一个主要原因就是没有关键的技术革新,各大厂商所做的主要工作都是在对自己的产品进行锦上添花式的不断完善。这一发展方向就是使数据库向着需求更少的方向增强。所谓需求更少是指数据库以更少的相对资源消耗、更高的性能运行,并且随着技术的不断进步,数据库变得更加智能,维护和使用将更加简单。
这是数据库技术在完善过程中的必经之路。

  在这一方面,Oracle数据库一直走在前列,从Oracle9i开始,Oracle一直致力于是数据库软件更加自动化,在这一原则的支撑下,Oracle不断实现了诸如自动PGA管理、自动SGA管理、自动段空间管理(ASSM)、自动存储管理(ASM)等等新特性,这些新特性切实降低了DBA的工作量,使得数据库的管理更加简单;而IBMDB2也一直在加强这方面的功能,IBM的SMART技术(Self-ManagingAndResourceTuning-自我管理和资源调优)正是在这些方面的增强。在DB2V9中IBM同样推出了一系列的自动化特性,包括自动数据库管理功能、自动统计数据收集等功能,但是这些特性相较Oracle而言是来之甚晚的,所以在2006年IBM主推的是XML这一重大改进。

  然而一项新的技术能否得到用户的认可还需要时间去检验。根据Oracle公司在2006年10月举行的OpenWorld大会上公布的统计数据,自Oracle10g发布以来,仅有约一半的用户升级到Oracle10g,其他用户仍然维持在原来的版本运行;所以IBM的Viper能否最终得到用户的认可取得成功,还有待检验。

  在2006年的OpenWorld大会上,Oracle展示了新的数据库版本Oracle11g(正式版本可能不叫这个名字),从公开的有限的资料看来,在这一版本中,Oracle在易用性方面做出了进一步的增强。这包括最受瞩目的在线应用升级等特性,Oracle期待通过HotPatching等功能实现Oracle数据库的无当机(NoDowntime)维护,Oracle所作的所有增强都是用户最为需要的。

2.6 混合数据库中的XML技术特性

  XML技术已经诞生近十年,也有很多有益的技术尝试,很广为人知的两大站点CSDN和5460一度就是使用XML技术来构建Web应用的,可能后来由于性能问题过于严重,CSDN转向.NET技术,5460转向了JSP。XML技术得到数据库的支持由来已久,早在1998年,Oracle已经开始对XML进行一定程度的支持;对于XML技术,一直以来,用户最关心的是性能问题,由于在转换过程中,大量标签、标记的引入,XML会带来大量的冗余数据,从而影响性能。

  过去关系数据库对XML数据大都采取扩展的实现,即要么将XML数据作为大对象存储,或者将XML数据映射到关系表中去。如果将XML数据最为大对象存储,无疑会禁锢XML数据本身的信息内容和业务价值。而映射到关系表中的话,又丧失了XML数据的灵活性。而对于纯XML数据库的话,又缺乏扩展性,难以和传统的关系数据库整合。而IBM的新版数据库作为一种新的模式而出现,即混合模式。那么这种XML数据库的性能到底如何呢?

我们可以从IBM官方的测试数据来获取一点PureXML的直观印象:
IBM工程师通过一个测试场景对金融公司在线经纪业务进行建模。
测试在以下设备上运行:
处理器:IBMSystemp5560Q,使用8个处理器的逻辑分区(LPAR),1.5GHz频率
内存:32GB
操作系统:AIX5Lv5.3TL04
存储:IBMTotalStorageDS8100

测试插入工作负载的结果:
插入36,020,833个文档花费的总时间大约是160分钟,产生的平均吞吐量是每秒3770个插入。吞吐量随文档的大小而变化:
• 订单文档(1K到2K)以平均每秒5320个插入的吞吐量插入。
• 帐号文档(3K到10K)以平均每秒1550个插入的吞吐量插入。
插入这两种文档的数据量速度都是大约每小时30GB。下图显示随着订单数量增长到300万个文档,订单插入的速度几乎保持不变。

订单文档的插入速度
 

测试查询工作负载的结果
查询工作负载随着CPU利用率接近100%,吞吐量曲线逐渐变平。最好的吞吐量出现在有150个用户的情况下,在CPU利用率为96%时达到每秒5480个查询:

只读查询吞吐量、CPU利用率和I/O等待时间
 

测试混合工作负载的结果
混合工作负载最好的性能也出现在有150个并发用户时,吞吐量是每秒1980个事务

混合工作负载吞吐量、CPU利用率和I/O等待时间
 

  大家可以根据自己的业务规模、设备性能大致估算出自己系统的性能指标。随着硬件系统的不断升级,性能也许不再是人们主要关心的问题。

  通常我们认为,技术的进步有两种,一种是用户推动的变革、一种是由厂商推动的革新。前者为用户所接受是顺理成章的,而后者则会相对困难。

  从目前的情况来看,Oracle为用户所不断推动,而2006年,IBM一直在不遗余力的推动其XML新特性,至于结果怎样,也许只有时间能够告诉我们。


2.7 搜索是数据库的未来之路

  随着数据库技术的不断完善,用户数据的不断积累,用户的需求也不断提高,在此之上,更高级的应用应运而生,这包括已经成熟的数据仓库应用、广为接受的商业智能(BI)应用、以及方兴未艾的SOA等。当数据库能够容纳几乎所有数据之后,我们必然面临的一个问题是如何快速获得我们需要的数据。

  当用户访问数据库时,怎样减少用户的等待,快速返回用户需要的数据是所有数据库都需要解决的问题。这也就需要另外一项高级增强--面向搜索的增强,从某种意义上说面向需求的增强-数据分析和挖掘也正是这个方向上的高级应用之一。目前各数据库在这一方面都不够完善,我们相信在未来,数据库能够容纳和存储各种数据之后,必然向快速搜索和查询方面进行增强。

  微软公司在2006年12月发布的Vista操作系统中,已经将搜索框加入到开始菜单的最初始位置,让用户最先接触到搜索,最快的找到用户的数据;2006年,Google获得了飞速发展,Google带给我们的最大便利就是快速的获取数据。无论在Vista或者Google之后,都存在着关系型或非关系型数据库的支持,微软或Google的搜索技术代表了一种潮流,如何快速找到需要的数据已经越来越为用户所关心。

那么无疑,关系型数据库和相关应用也必然朝着这个方向不断发展和完善…(待续)

0
相关文章