一、商业数据库和开源数据库总览
1. 商业数据库之Oracle
Oracle是商业数据库的代表,具有非常丰富的功能、广泛的平台支持和大量的附加功能。在IDC的一个调查中,Oracle占据了数据库市场的44%,增长了14%。
Oracle的功能从表分区和大量的统计功能,到一些高可用功能,诸如本地复制、数据镜像和应用集群(Real Application Clusters,RAC)等。
图2:Oracle RAC
Oracle另一个强大的功能是在线表和索引重建。在很多数据库中,需要离线进行重建,也就是说当索引被重建的时候,不允许访问数据,因为这个操作要求独占性访问对象。当然,这不是Oracle的全部功能,只是其所能提供的高级功能的一些示例。
2. 商业数据库之IBM DB2
在2004年,DB2数据库的销售主要集中在IBM大型机和它们自己的AS/400系列系统中。尽管根据2006 IDC的调查报告,DB2的市场占有率高居第二位,但是与Oracle相比,它的销售额和市场占有率都要低很多。
现在除了IBM的专有操作系统外,DB2可以运行在Windows、Linux和Unix平台上。新版的DB2 V9在XML处理方面具有较大的改进。在我最近的一个使用了其他数据库的项目中,在规划XML方面我们做了大量的额外工作。如果我们所使用的数据库具有DB2 V9的相应功能,或许就不会有这么多麻烦了。
图3:IBM DB2 V9的XML特性
另外,IBM正在通过其DB2 Everyplace进入移动领域,目前支持PDA和智能手机。
3. 商业数据库之微软SQL Server
和本篇文章中提到的其他数据库不同的是,微软的SQL Server只可以运行在其Windows操作系统平台上。不过由于Windows操作系统的广泛普及,缺乏对其他系统的支持并没有阻挡SQL Server的市场份额的增长。
根据IDC的统计,微软的SQL Server是市场份额增长最快的数据库,市场份额仅次于DB2,排名第三。
在最新版本的SQL Server 2005中,增加了许多新的功能,使其进一步对Oracle够成威胁。其中包括表分区、在线索引操作和很多其他管理功能。从下文中你将看到,很多用户对SQL Server的直观、易用的管理界面深表支持。
图4:SQL Server 2005的产品线
对比2004—2006年三大企业级数据库的市场份额是涨幅变化,如下图:
图5:2004—2006年全球关系型DBMS软件厂商利润和市场份额分布
4. 商业数据库之Sybase
最新版本的Sybase Adaptive Server与以前的版本相比,具有更丰富的功能设置,但是与上面Oracle和DB2两个商业数据库相比还是少很多,举个例子来说,它缺少对高可用群集和在线索引重建的支持。这或许是为什么在IDC的一次调查中,它仅排名第四,只有可怜的3.2%的市场份额。
Sybase比较强大的地方在于它对资源的低占有率上。在这一方面,Sybase 15还引入了新的“专利查询过程技术”,显示了增强的性能和降低的硬件资源消耗。
另一方面,Sybase正在通过其SQL Anywhere数据库服务器进入移动领域。SQL Anywhere功能之一就是其常驻内存的数据库管理系统,可以运行在Windows Mobile、Windows、Palm OS和Symbian上。
图6:Syabse数据仓库
关于Sybase还有一个很有意思的历史插曲,微软的SQL Server是从Sybase开发而来的。微软和Sybase签订了一个合约,微软被授权可以销售一个重新包装的Sybase,或在它的基础上开发一个它自己的版本。尽管微软已经对其进行了很多修改,你依然可以在SQL Server的命令组成中看到两者之间的渊源。
5.开源数据库之MySQL
MySQL是开源数据库中的佼佼者,它的用户数是在同类开源数据库中是最多的,它既可以被小的新兴公司所使用,也可以被采用了操作系统集群的大型Web站点所使用。
MySQL拥有很多插入式的存储引擎,用来给用户提供不同的所需功能,而不是默认具有全部功能。这也是为什么MySQL会在数据恢复操作中具有非常好的表现的另一个原因。
自从MySQL第一版发布以来,就提供一个存储引擎接口。它让用户来根据需要选择数据存储引擎。MySQL既有事务安全(ACID兼容)的存储引擎(诸如InnoDB、Falcon),也有不支持事务处理的存储引擎(MyISAM)、日志引擎(不能被更新或删除,Archive)和通过无共享体系结构实现高可用性的群集技术, MySQL还有专有的第三方引擎,例如InfoBright和Nitro。
图7:MySQL体系结构
MySQL拥有很多实现特定功能的存储引擎,但是并不建议你全部安装它们。而像Google这样的公司则编写了自己的存储引擎来加速它们的常用操作。
MySQL与Oracle相比的一个优势就是它对资源的占用非常少。MySQL是实现数据恢复方面最快的数据库,但是它的确缺少一些在Oracle中的功能。
MySQL从来没有想过与其他数据库在功能数量上一较高下,MySQL的目标是易用、稳定和性能。MySQL现在具有丰富的功能,已经得到了很多开发者的支持。
6. 开源数据库之PostgreSQL
在开源数据库中,PostgreSQL以其丰富的功能而显得格外突出,其中包括存储过程、表分区(partitioning)、多过程语言支持和多种数据类型和索引的支持。
另外,PostgreSQL的标准兼容性和严格的安全功能也被众多用户所称道。PostgreSQL的在线事务处理(OLTP)是其最受欢迎的功能,在开源数据库中,它的数据仓库方面也是表现最好的。
图8:PostgreSQL V8.1 架构
由于PostgreSQL是一个被不同公司支持的社区控制型开源项目,很多公司提供对它的支持,诸如Sun、Fujitsu、SRA和Red Hat和很多新兴公司和顾问公司。PostgrefSQL在日本的市场情况很不错,仅次于Oracle。
7. 开源数据库之Ingres
在Ingres 2006版中引入了很多新功能,其中一些功能是关于大规模部署方面的,例如键范围表分区(key range table partitioning)和并行查询支持。
另外,诸如存储过程、触发器和视图功能早已被Ingres所支持,不过Ingres现在还不支持内部任务。
8.嵌入式数据库应用
数据库的一个比较特别的应用案例是嵌入式应用程序,在这方面应用中,低资源占用成为一个必需的要求。
MySQL由于其设计理念,在这一方面被应用的比较多。微软的SQL Server 2005 Express版也被做为嵌入式数据库使用,它被认为是微软数据库引擎(MSDE)的下一版本,而且它也是完全免费的。而Oracle则又通过收购得来的TimesTen内存数据库来满足嵌入式应用程序。
Linux是开源数据库的首选操作系统,因为它们都是开源而且完全免费的产品。现在的消费电子产品市场中,Linux变种已经被广泛应用。而这也使得开源数据库们在嵌入式应用程序受益。