在过去的三年中,Oracle、IBM和微软都相继发布了它们各自旗舰级数据库软件产品的免费版本,这种举动在几年前是闻所未闻的。尽管这几家公司官方声称这是为了更好地满足用户的需求,但是很明显这些商家不会如此慷慨,实际上是它们感受到了来自于开源数据库的持续压力,像MySQL、 PostgreSQL等,才使得这些主流商业数据库巨头们开始重新考虑它们的策略,以在这个竞争日益激烈的数据库市场中抢得先机。
2006年11月份,在《Linux Journal》杂志的“2006年度开源数据库编辑选择奖”中,号称“世界上最先进的开源数据库”PostgreSQL夺得桂冠,而淘汰了人们意想中的 MySQL。尽管PostgreSQL被采用得比率继续急速上升,但一些人还是感到奇怪。按照这个产品如此令人印象深刻的功能,为什么它的采纳率没有表现得更加优秀呢?一种推测的可能性是,那些不考虑采用PostgreSQL的人可能是因为错误的认为PostgreSQL功能老套,或者对 PostgreSQL有什么其他的错误认识?
为了消除大家对于这款开源数据库产品的恐惧、怀疑的心理,接下来的内容将摆出用户们在选用PostgreSQL的时候比较普遍存在的一些顾虑,然后逐个帮助大家分析。
理由1: PostgreSQL不可以在Windows之上运行
这已经是过去时态了,PostgreSQL目前可以支持每一个现代的兼容Unix操作系统,并且还可以与Novell NetWare以及OS/2进行很好的结合。而且PostgreSQL通过其8.0版本完成了对于所有主流操作系统的支持,当然也包含Windows。
现在你可以非常轻松地在一个台式机或者笔记本电脑上安装PostgreSQL,这得益于它有一个像安装微软的办公软件Windows Word或者播放器Quicken一样方便的安装向导。
理由2:没有专业性的开发和管理工具
大多数不太熟悉开源项目的用户可能会认为,数据库管理员需要通过一系列神秘的命令来管理数据库。事实上,PostgreSQL不但可以很好地利用功能强大的命令行环境,还具有很多直观的图形界面管理工具,从而能够简易的完成一些常见的任务,例如系统管理以及数据库设计等。
以下仅列举了一部分面向PostgreSQL开发者的工具:
数据库模型——有好几个商业性的或者开源的产品可以帮助你完成数据建模的问题,例如Visual Case以及Data Architect。
管理和开发——在这个方面有很多不错的选择,其中有三项产品是更加优秀和有前途的。一个是pgAdmin III,它有着一个相当长的开发历史,并且它几乎可以处理所有任务,无论是简单的创建表操作,还是管理多服务器的数据复制等。二是Navicat PostgreSQL,它提供了与pgAdmin III相似的功能,并且被封装在一个设计非常优秀的界面中。还有一个很好的基于浏览器的管理工具是phpPgAdmin。
报表工具——PostgreSQL可以与很多的主流报表工具对接,包括著名的水晶报表(Crystal Reports)、Cognos ReportNet以及日益流行的开放源码报表程序JasperReports。
理由3:PostgreSQL不能够支持“我”的程序设计语言
现在的企业大多经常依赖于某种类型的程序设计语言,并且如果PostgreSQL API能够适应于很多的程序语言,那么该数据库将会在很多的系统环境中被广泛使用。
PostgreSQL可以支持目前比较普遍使用的大多数程序语言,包括C++、C#、JDBC、Perl、PHP、Python、Ruby 以及Tcl等。
另外,PostgreSQL还支持一些超出我们想象的的语言,例如Ada、Common Lisp以及 Pascal。
理由4:出现问题没有人负责
很多人错误地认为开源产品缺乏完善的技术支持和保障,尤其是有人认为当开放源码系统出现问题时没有人负责,也没有人可以找来帮助解决。
实际上,你可以轻松地在PostgreSQL官方手册中找到很多问题的答案,该手册包含了1450多页的详细的文件说明,几乎囊括了该数据库的每一个细节,从所支持的数据类型到系统内核。
这个文件可以从网上下载其PDF格式的版本(下载地址为http://www.postgresql.org/docs/manuals/)。如果你需要更多帮助,还可以通过Google新闻组查找访问更多新闻组。新闻组的主题包括性能方面、管理方面、SQL构建方面、开发方面以及一些常见问题等。
如果需要一些快捷的答复,那么你可以登陆IRC(irc.freenode.net #postgresql?),在那里你可以得到很多PostgreSQL志愿者的帮助。
你可以在任何常用操作系统(包括Windows)上安装IRC聊天客户端,然后在任何的时间进入IRC聊天室,在那里你可以进行各种问题的咨询。在最近的周三晚上,我发现就有超过240人登陆进了该频道之中。第二天早上醒来,我发现还有252人在线,包括几个著名的业内专家在内。聊天的内容多种多样,既包括教导一些新手们进入并使用PostgreSQL的方法,也包括与一些高级人士探讨像决策树生成算法等高深的问题。每一个人都被欢迎来参与和提出问题,无论是非常简单的问题还是困难的问题。
对于那些希望使用更正规的支持的用户来说,还有一些其他的选择。(这些支持对国内用户感觉意义不大,故隐去)
理由5:按需选购
简单的说,如果你需要的是一种SQL标准的数据库,并且拥有其他的企业版产品的所有特性,还能够储存大容量的数据信息,以及具有高压运行能力,那么请选用PostgreSQL,它将能够很好的满足你的需求。不过,它没有一个漂亮的包装盒,也不会在你下载后有销售人员站在你面前喋喋不休的向你推销。
如果你的应用程序需要Oracle数据库配合才能正常工作,那么可以考虑EnterpriseDB,这也是PostgreSQL的一个版本,但是它重新设计了一些功能,例如数据类型、视图及指针等,这些都是模仿Oracle而设计的。
只要将多种产品进行对比,那么你就很容易选择PostgreSQL,它还是一种可以节省成本的方案。