2.2 嵌入式及移动数据库
如果我们按照技术来分,数据库大约可以分为:前关系型数据库(第一代数据库,即网状,层次数据库),关系型数据库(第二代数据库),后关系型数据库或面向对象的数据库(第三代数据库)。
我们知道,对象数据库的研究和发展已经有差不多有10多年的历史了,目前在市场上已经有大量的面向对象数据库产品:Versant,Objectivity,ObjectStore,GemStone等。这些产品为面向对象的开发环境提供了相应的数据存储,使得数据的存储和处理符合了人们的开发经验。于是最初充满了热情的人们期望这些产品被期望能够打造一个新的数据库市场,甚至可能成为市场的领袖和主流。
然而事与愿违,理论上的完美性并没有带来市场的热烈反应。其不成功的主要原因在于,这种数据库产品的主要设计思想是企图用新型数据库系统来取代现有的数据库系统。这对许多已经运用数据库系统多年并积累了大量工作数据的客户,尤其是大客户来说,是无法承受新旧数据间的转换而带来的巨大工作量及巨额开支的。另外, 面向对象的关系型数据库系统使查询语言变得极其复杂,从而使得数据库的开发商和应用客户都将其复杂的应用技术视为畏途。
嵌入式及移动数据库,4大厂商都有提供相应的产品。根据2005年的IDC的一份报告显示,嵌入式DBMS市场排名顺序大概是:PROGRESS SOFTWARE;INERSYSTEMS(CACHE),ORACLE, IBM,MICROSOFT;
根据IDC当时的报告,从2003年开始,后关系型数据库增长率最高,达到11%,市场容量达11.28亿美元。同时,InterSystems公司以38%的增长率超过所有其它嵌入式数据库提供商,其1.41亿美元的年收入已超越Oracle,成为全球第二大嵌入式数据库提供商。IDC研究部分析师Carl Olofson认为,嵌入式数据库的市场2005年估计刚刚超过20亿美元,到2009年,预计会增长到超过32亿美元。
在过去的一年里面,老牌的数据库厂商Oracle在嵌入式数据库方面,也有很大的动作。而此前,Oracle嵌入式数据库产品线已经包括了用于移动产品的Oracle Lite和用于高性能内存数据库应用的Oracle TimesTen。
2006年年初,甲骨文收购了开源软件公司Sleepycat,并将其Berkeley DB数据库添加到了Oracle嵌入式数据库产品线中。而在最近一个月,Oracle又发布了其嵌入式数据库的战略,足见主流厂商对这一领域的重视。
前面提到了,InterSystems的产品CACHE从2004年开始,就有很大的增长。作为混合型书库的早期代表,CACHE获得成功不是偶然的,而是因为传统关系型数据库正面临越来越多的限制和问题。
关系数据库最大的问题是:二维的固定关系结构的数据和复杂的、用对象的思想和观点来理解的对象(具有多维数据)之间的矛盾。所以CACHE既不说自己是关系的,也不说自己是对象的,而是一种真正的混合型产品,这种产品能提供关系接口和对象接口双重优势。底层是多维的数据结构,但同时支持SQL,面向对象的访问。所以会在市场上大获全胜。
关于性能问题,我们可以分析一下网友对CACHE的一些测试结果:
将1,000,000条模拟数据(每条数据包括13个字段)插入到cache'中去,速度达到62,000条/秒,测试结果如上图。
测试环境:(Dell D600 1.7Ghz Pentium M CPU, 2GB RAM, Windows XP, Java 2 SDK 1.4.2_03, Cache 5.0.18.6103);有兴趣的读者,可以和第一部分中的DB2 9数据库的测试结果做一个简单对比,还可以到cache的官方网站上去下载其最新的测试结果。
如果模拟1,000,300条NYSETAQ的交易数据(每条13个字段,所有的数据总量在100M以上)插入到Caché中,计算所用的时间和插入的速度。
这是其中的一个运行结果: 
上面这组数据来自于cache光方公布的测试结果。
遗憾的是,迟缓的IBM直到2006年才推出了与CACHE能够真正竞争的产品Viper。
特别值得一提的是,2006年年末发布的CACHÉ 2007,加入了最新的快速开发功能,其中有一个名为Jalapeño的新组件,可以省去Java程序员在开发过程中会遇到的繁琐的对象关系映射(object-relational mapping)环节。
所以,在未来的一年内,CACHÉ将和IBM数据库在市场上面临一场恶战。