欢迎投稿

今日深度:

细化解析PostgreSQL的昨天今天和明天(1)

细化解析PostgreSQL的昨天今天和明天(1)


今天,如果人们谈论起计算机操作系统,肯定有非常多的人会津津乐道自由软件操作系统Linux,毕竟,众人拾柴火焰高,如今没有任何人敢于忽视Linux这个自由软件操作系统在我们星球的存在,就连国内比较特殊的环境下,也不断地有各种各样的Linux秀出现让公众,甚至是那些对计算机知之甚少的群众都能意识到Linux的存在。但是,如果我们说起数据库,可能绝大多数人只会记得有Oracle,IBM DB2,Informix,Sybase,MS SQL Server以及在互联网广为使用的轻量级Mysql,而提到PostgreSQL的名字,可能很多人都会皱起眉毛:“这是什么?”

PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统ORDBMS),它的很多特性正是当今许多商业数据库的前身。

出身名门

说起PostgreSQL,我们不得不谈Berkeley,也就是中文中的“加州大学伯克利分校”这所大名鼎鼎的大学。老实说,伯克利BSD)对计算机科学的贡献可谓巨大,在整个计算机科学的发展史上,几乎到处都有这所学校的研究人员和学生的足迹。只要稍微对计算机技术史有些记忆的人都会记得在Unix操作系统的发展里程碑上BSD这三个字的分量,然而也许正是由于BSD在系统和网络领域里的光芒太耀眼,掩盖了BSD对计算机技术其他分支的贡献,而PostgreSQL正是其中之一。

追本溯源地讲,PostgreSQL最早开始于BSD的Ingres项目,这个项目主要是研究关系型数据库技术,早在1970年E.F. Codd就提出了关系模型,从那以后,人类在计算机领域的数据管理就进入了一个新的时期。从此人们开始用抽象的关系语句来描述自己的数据,大大提高了人类对数据的抽象描述能力。而Ingres项目正是就此进行研究的,它始于1977年,到1985年结束,而其研究成果后来被一家叫Relational Technologies的商业公司拿去做成了商品软件,后来这家公司又被Computer AssociatesCA)收购,不知道CA的JASMINE里面是否还有当年Ingres的影子?

新项目Postgres

然后,从1986年开始,BSD的Michael Stonebraker教授领导了称为Postgres的“后Ingres”项目,其主要目的是数据库管理系统的更高级研究,因此而产生了PostgreSQL的直接前身,Postgres,而PostgreSQL的名字也是从Postgres项目继承过来的。这个项目的成果是非常巨大的,在现代数据库的许多方面都做出的大量的贡献,比如,面向对象的数据库,部分索引技术,规则,过程和数据库扩展等方面都走在了数据库管理系统的前列。而且,Stonebraker教授还做出了一件造福全人类的事情,那就是把Postgres放在了BSD版权的保护下,在这个版权的范围里,任何人几乎可以做任何事情,包括增强它和商业化等。条件只是把BSD的版权声明包括在软件的源程序里。

Postgres在1989年发布了第一个版本,因为是BSD版权,所以很快在各种研究机构和一些公众服务组织里广泛使用起来,由于众多用户使Postgres的开发变得更多地是维护代码和打补丁,而日益背离了原先的数据库管理系统的研究的目标,到了1994年Postgres在版本4.2的时候正式终止。而Postgres的许多成果则转化成一个商业公司Illustra,后来Illustra被Informix收购。看到这里,想必大家应该对Postgres的影响有一些认识了吧!

炎黄子孙的贡献Postgres95

Postgres并没有因为Postgres项目的终止而停止发展,而是获得了一次新生:在1994年,两名伯克利的研究生在做研究生课题的时候,向Postgres里增加了现代的SQL语言的支持。请不要奇怪,SQL的祖宗是E.F. Codd的关系模型,但是SQL作为语言,一直到1992年才形成真正的国际标准还是草案),当时称为SQL2,但是人们常称为SQL92。而在那之前,所以查询语言都是由不同的数据库管理系统自己实现的,比如,在Postgres里原来是用叫Postquel的查询语言;这两位研究生是AndrewYu和Jolly Chen,看了名字,大家可能会想:“很象中国人的名字嘛”,没错,他们就是黑头发黄皮肤的炎黄子孙,不过很可惜的是他们并没有在中国的包括台湾省的)xx大学取得这样的成就。这样,Postgres迎来了1995年,大概是受xxxxxxx95的命名方法的“启发”吧!他们俩把这个版本的Postgres命名为Postgres95,并且继续发布了几个版本,增强了一些特性。

国际化PostgreSQL

到了1996年,Andrew Yu和Jolly Chen相继离开Postgres95的开发队伍,Andrew Yu加入了Informix,Jolly Chen继续读书),而在一些自由软件黑客的发起下,Postgres项目又开始了新的历程,最先是由几位加拿大黑客发起,开始了PostgreSQL项目,后来参与的人越来越多,逐渐成为了一个由近20个国家的近四十名黑客组成的团体共同开发的自由软件项目。PostgreSQL重新把版本号放到了原先Postgres项目的顺序中去,从6.0开始Postgres本身到4.2,Postgres95算5.0)。经过五年多的协作开发,PostgreSQL可以说是目前世界上最先进,功能最强大的自由软件的数据库管理系统。

目前,PostgreSQL的稳定版本到了7.3,具有非常丰富的特性和商业级数据库管理系统的质量。而即将到来的7.4版本又将是一次飞跃,将向高质量大型数据库管理系统的方向又迈进了一步。

在这里,先让我告诉您怎么念PostgreSQL的确很绕口):Post-gres-Q-L,大概因为大多自由软件开发人员把SQL念做:S-Q-L,而不是IBM常说的squel)。

特点

PostgreSQL可以说是最富特色的自由数据库管理系统,甚至我们也可以说是最强大的自由软件数据库管理系统。事实上,PostgreSQL的特性覆盖了SQL-2/SQL-92和SQL-3/SQL-99,首先,它包括了可以说是目前世界上最丰富的数据类型的支持,其中有些数据类型可以说连商业数据库都不具备,比如IP类型和几何类型等;其次,PostgreSQL是全功能的自由软件数据库,很长时间以来,PostgreSQL是唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统。直到最近才有Inprise的InterBase以及SAP等厂商将其原先专有软件开放为自由软件之后才打破了这个唯一。最后,PostgreSQL拥有一支非常活跃的开发队伍,目前的提交人员已经超过三十人,而且在许多黑客的努力下,PostgreSQL的质量日益提高,也从另外一个侧面上增加了人们使用PostgreSQL的信心,毕竟数据库管理系统不能象桌面操作系统那样一天宕一次还让人觉得挺满意。

从技术角度来讲,PostgreSQL采用的是比较经典的C/Sclient/server)结构,也就是一个客户端对应一个服务器端守护进程的模式,这个守护进程分析客户端来的查询请求,生成规划树,进行数据检索并最终把结果格式化输出后返回给客户端。为了便于客户端的程序的编写,由数据库服务器提供了统一的客户端C接口。而不同的客户端接口都是源自这个C接口,比如ODBC,JDBC,Python,Perl,Tcl,C/C++,ESQL等,同时也要指出的是,PostgreSQL对接口的支持也是非常丰富的,几乎支持所有类型的数据库客户端接口。这一点也可以说是PostgreSQL一大优点。


www.htsjk.Com true http://www.htsjk.com/shujukugl/18206.html NewsArticle 细化解析PostgreSQL的昨天今天和明天(1) 今天,如果人们谈论起计算机操作系统,肯定有非常多的人会津津乐道自由软件操作系统Linux,毕竟,众人拾柴火焰高,如今没有任何人敢于忽视...
评论暂时关闭