第一站走进开源数据库
10%的投入实现90%的理想
在Linux这种开放源代码的操作系统已经逐渐被越来越多的企业应用时,在基础软件平台的另一端,开源数据库开始显山露水。
近2年来,美国一些大企业纷纷采用开放源码数据库,它们往往在总部采用商业数据库,而在分支机构的Linux服务器上采用开源产品。这些数据库除了费用便宜,还各有独到之处。与商业化产品相比,开源数据库结构简单,但功能不简单,读取操作快捷,易治理,甚至不需要全职的治理员。 由此吸引了像Cisco、Yahoo这样的大公司,以及众多的中小企业。而在国内,我们熟悉的新浪、网易等大型门户网站也是开源数据库的使用者。
在开源运动的热潮中,我们随处可见开源数据库的身影。mysql、PostgreSQL、MaxDB、Berkeley DB,开源数据库大家庭成员众多,其中不乏出类拔萃者。
一些分析家称,“Oracle、微软和IBM的产品提供了非常强大的功能,但其功能只有40%被客户利用。”因为企业都在寻求“瘦身”,所以这60%的未用功能完全可以减掉,而开源数据库产品追求的目标是用10%的投入实现90%的理想。
第二站市场格局
让数据库巨头忐忑不安
目前的开源数据库还不太可能在功能和处理能力方面追上商业级产品,但价格的侵蚀力无法回避,开源数据库迅速增长的市场份额甚至让数据库领域的三巨头,Oracle、IBM、微软都感到忐忑不安。
去年7月, 接受Forrester研究机构调查的企业中有一半称,正在考虑是否采用开源数据库产品。Forrester的分析师Noel Yuhanna称,到2008年,开源数据库的市场规模会由现在的1.2亿美元增长到10亿美元,这将引起传统数据库市场的骚动。
从功能上来看,开源数据库与商业数据库擅长的领域并不相同,商业数据库在处理能力,集成工具环境等方面依然强大,而开源数据库强调的是在某几个单项功能上的突出表现,以及轻便、易用的特点。MySQL AB公司的CEO Mickos说:“别以为你能把Oracle干掉,我们需要考虑如何才能开发和服务一个新的市场。”
MySQL关注的新市场目前还不错,根据Evans Data Corporation的调查,MySQL在开源数据库市场拥有40%的占有率,安装量超过500万套,紧随其后的是Firebird(39%)和PostgreSQL(11%)。
Forrester预计,明年会有35%的开源数据库产品处理虚拟商务活动。MySQL强势的市场增长,不仅是在开源市场上独领风骚,更让人惊奇的是对商业数据库市场的入侵,这跟开源产品的价格与成熟度紧密相关。
MySQL大约每2年进行一次大的版本升级,每几个月就会有一次小规模的升级,这种小步快跑式的升级逐渐拉近了与商业数据库产品之间的距离。据MySQL称,今年晚些时候推出的MySQL5.0正式版将具有更多的企业级特性。
Yuhanna指出,MySQL的客户群体正在日益扩大,NASA、雅虎、Google、美联社以及 Suzuki就是其中的客户。他谈到,“MySQL花了很长的时间才从甲骨文手中争取到上述客户。与此同时,开源数据库产品日益成为客户值得信赖的产品,我认为,在未来几年内其客户数还会增加。”
价格本来是一个敏感的话题,但由于数据库市场的三分天下,数据库这片“海洋”近几年显得波澜不惊,数据库产品的价格似乎也在大家的默契之下风平浪静,由而开源数据库用户数量的增长,则把价格问题的波浪推到了岸边,既然可以用非常低的价格、甚至是免费得到数据库产品,那么就有相当一部分用户从商业数据库的阵营被吸引到开源这边来。这导致了像IBM和甲骨文这样的公司要考虑产品降价的问题,Forrester研究机构的分析师Noel Yuhanna称:“商业厂商将会在未来12~24个月内降价产品价格。”
比起IBM和甲骨文来说,更应该感到威胁的是微软。在上世纪90年代中期,凭借着一款低端数据库产品SQL Server,微软硬是在Oracle、IBM、Sybase、Informix把持的数据库市场中分了一杯羹。微软当时最成功的策略就是利用SQL Server与商用软件高度兼容,以及低廉的价格从低端市场逐步向上渗透,现在,已经有将近20%的全球市场占有率,中小企业是微软的大本营。
而开源数据库有着与中小企业天然的亲密关系,它们与微软产品之间的相似之处在于软件的兼容性和开发环境,微软则在简易性方面一直都有着上佳的表现,但开源产品并不完全依靠于Windows,它能够运行在其他操作系统之上,随着产品的稳定和成熟,开源产品对中小企业更具吸引力。
与开源数据库产品的频繁升级不同,SQL Server2000的推出已经是1999年的事情了,在每次SQL Server被黑客攻陷之后,才会出补丁软件,记者采访了多家网站的技术人员,他们表示用SQL Server会有这样的担心:“因为源代码不公开,问题出现时,损失已经造成了。”目前,国内的IDC有一个不成文的规矩,假如网站要把系统放到服务器上来时,要问一句数据库是不是SQL Server,还要亲自检看是否打了最新的补丁,假如用的是开源数据库就不会这样的问题。开源数据库的成长无疑动摇了SQL Server在中低端市场上的强者地位。
另外一个有意思的地方就是,开源数据库厂商可能会成为被收购的对象,这主要是指MySQL这样的企业,尽管MySQL的用户绝对数量不大,但在份额相近的商业数据库市场上已经能够左右天秤的摇摆,此外,MySQL在中小企业和开发人员心目中的超强人气也很有商业价值。
一些国外的分析人士曾猜测,MySQL可能被像Red Hat这种开源操作系统厂商所收购,其中也不无道理,Red Hat收购MySQLl会成为数据库-Linux强者,假如Red Hat收购了MySQL,会为他的生产线增添一员大将,目前,很多企业在应用开源数据库的同时也使用开源操作系统,这种搭配本身也说明了市场的一种需要。
日前,又传来了MySQL和Red Hat公司加强合作的消息,双方为客户提供整合的、协作的技术支持。Red Hat和MySQL公司也计划对MySQL数据库和Red Hat的Cluster Suite以及Global File System进行兼容性测试。
第三站这里有5大景点
开源数据库各领神通
在布满传奇色彩的软件行业,开源运动早已不再是一种哗众取宠的时尚,而是成为一种潜移默化的文化。这里包括“最受欢迎的开源数据库”MySQL、“最先进的开源数据库”PostgreSQL、“新世纪的关系型数据库” Firebird,此外还包括将嵌入式作为自己重要使命的精巧的Berkeley DB和曾经在ERP领域取得不俗业绩的SAP DB(MaxDB)。 更为可喜的是,伴随着Java技术而快速发展的功能同样出色的Apache 组织的Derby(由IBM闻名的Cloudscape 10演化而来)、Hypersonic的HSQL等,凡此种种, 开源数据库阵营可谓“乱花渐欲迷人眼”。
那么如何选择和自己的业务比较契合的开源数据库呢?本文将选择以下五种比较常见的开源数据库,从功能特性及应用等角度进行简要的评析,期望能够对用户有些帮助。
MySQL的发展在一开始便定位于快速、稳定的大型关系型数据库的目标,因而在设计上当性能和标准不相协调时,更主要的是性能和稳定性的考虑,这也许可以解释为什么MySQL 4迄今还不支持如外键引用等数据库治理员们所钟爱的功能。
如今的MySQL 4版本可以运行于多种操作系统平台,支持全文搜索,提供了常见开发语言的编程接口,最大可支持64TB的表空间……,而可伸缩的设计体系使得MySQL既能够提供企业级的客户机/服务器工作方式和复杂的集群工作方式, 也能够作为嵌入式的数据库引擎集成到其他的应用系统之中。
对于那些需要海量数据的检索,不需要复杂的事务操作的用户来说,MySQL应该是一个比较理想的选择。
MaxDB是2003年SAP公司和MySQL AB公司合作之后SAP DB新的名称。MaxDB是一款重量级的、获得SAP R/3认证,适宜于联机事务处理和联机分析处理等多种业务类型的高可用性、高可靠性和极具伸缩性的数据库,支持大容量的用户和并发业务操作,采用多线程多进程的服务器设计,支持多处理器的应用,并通过集群和热部署提供高可靠性,支持TB级的海量数据,支持企业级的数据同步和复制等复杂应用。
上述的功能如此强大,就难怪Intel, Toyota,DaimlerChrysler, Yamaha等业界列强选择它了。应该说,对于开展ERP业务的用户,尤其是采用SAP ERP系统的用户,假如考虑较高的性价比,采用MaxDB应该是非常明智的选择。
PostgreSQL自1986年发展迄今已有近20年的历史了。如今的PostgreSQL 8.0可谓身怀特技,它支持一系列要害特性:支持分布式的事务处理;支持外键功能,以及所有的SQL 99的连接类型、触发器;支持用户自定义的对象数据类型和操作;支持子查询、部分索引和表达式索引;支持多种语言产生的存储过程,同时PostgreSQL提供了多种编程接口,拥有热备份和选择性备份恢复工具等……。
如此奇妙的特性,无怪乎它享有“最先进”的美誉了,印度的农业信用社就使用PostgreSQL处理金融业务。
但是,和MySQL相比PostgreSQL的性能一直被视为弱项。对于那些需要复杂业务操作,而对性能要求不是过于苛刻,同时期望系统的设计富于扩展性的用户而言,不妨采用PostgreSQL。
FireBird数据库是Inprise(Borland)公司在自己的IDPL(Initial Developer's PUBLIC LICENSE)许可协议基础上,将Interbase 6.0数据库贡献给开源组织后的产品。
FireBird全面支持SQL 92 Entry Level 1的功能和绝大部分的SQL 99功能,能够运行于Windows、Linux或其它Unix等多种平台上。但是由于未知的原因,Firebird的后续开发比较缓慢,迄今为止的1.5版本,仅仅是用C++重写原有的C代码,缺乏新的功能点,而且其开源部分似乎并不完全,如:缺乏企业级应用的复制机制。然而,作为一款成熟的起步级的数据库治理系统,Firebird还