©
本文档使用
php.cn手册 发布
作为一款出名的对象-关系型数据库管理系统, PostgreSQL是从美国加州大学伯克利分校写的POSTGRES软件包发展而来的。 经过超过二十多年的发展滞后,PostgreSQL是世界上最先进的开源的数据库系统。
Michael Stonebraker领导的POSTGRES项目 是由防务高级研究项目局(DARPA)、陆军研究办公室(ARO)、国家科学基金(NSF)、ESL公司共同赞助的。 POSTGRES的实现始于1986年, 该系统最初的概念详见 The design of POSTGRES POSTGRES的设计 ,和 The POSTGRES data model 中的初始数据模型定义。 最早的数据模型定义见POSTGRES 规则系统的设计。 存储管理器的理论基础和体系结构在 POSTGRES存储系统的设计 里有详细描述。
从那以后,POSTGRES经历了几次主要的版本更新。 第一个"demoware"系统在1987年便可使用了, 并且在1988年的ACM-SIGMOD大会上展出。 在1989年6月发布了版本1(在 POSTGRES的实现 里有描述)给一些外部的用户使用。 为了回应用户对第一个规则系统的指正( POSTGRES规则系统的注解 ), 我们重新设计了规则系统( 有关数据库系统的规则,过程,缓存和视图 ),并在1990年6月发布了使用新规则系统的版本2。 版本3在1991年出现,增加了多存储管理器的支持,并且改进了查询执行器,重新编写了规则系统。 从那以后,随后的版本直到Postgres95发布前(见下文),工作都集中在移植性和可靠性上。
POSTGRES已经在许多研究或实际的应用中得到了应用。 这些应用包括:一个财务数据分析系统、一个喷气引擎性能监控软件包、一个小行星跟踪数据库、一个医疗信息数据库和一些地理信息系统。 POSTGRES还被许多大学用于教学用途。 最后,Illustra Information技术(后来并入Informix, 而它现在属于IBM)拿到代码并使之商业化。 在1992年末POSTGRES成为Sequoia 2000 scientific computing project的首要数据管理器。
到了1993年,外部用户的数量几乎翻番。 随着用户的增加,用于源代码维护的时间日益增加,以至占用了太多本应该用于数据库研究的时间, 为了减少支持的负担,伯克利的POSTGRES项目在版本4.2时正式终止。
1994年,Andrew Yu和Jolly Chen向POSTGRES中增加了SQL语言的解释器, 并随后将Postgres95的源代码发布到互联网上供大家使用, 从而成为一个开放源码的原伯克利POSTGRES的继承者。
Postgres95所有源代码都是完全的ANSI C,而且代码量减少了25%, 并且有许多内部修改以利于提高性能和代码的可维护性。 Postgres95版本1.0.x在进行Wisconsin Benchmark测试时大概比POSTGRESv4.2快 30%-50% 。 除了修正了一些错误,下面的是一些主要改进:
原来的查询语言PostQUEL被SQL取代(在服务器端实现)。 在PostgreSQL之前还不支持子查询(见下文), 但这个功能可以在Postgres95里面由用户定义的SQL函数实现, 重新实现了聚集,同时还增加了对GROUP BY查询子句的支持。
新增加了利用GNUReadline进行交互SQL查询(psql)。 这个程序很大程度上取代了老的monitor程序。
增加了新的前端库(libpgtcl), 用以支持以Tcl为基础的客户端。 一个样本shell(pgtclsh), 提供了新的Tcl命令用于Tcl程序和Postgres95后端之间的交互。
彻底重写了大对象的接口,保留了将大对象倒转(inversion)作为存储大对象的唯一机制,去掉了倒转(inversion)文件系统。
去掉了实例级的规则系统,但我们仍然可以通过重写规则来使用规则。
在发布的源码中增加了一个简短的常用SQL和Postgres95特有的SQL特性的教程。
用GNUmake取代了BSDmake用于编译。 Postgres95可以使用不加补丁的GCC进行编译(修正了偶数字节数据的对齐问题)。
到了1996年,我们很明显的看出"Postgres95"这个名字已经经不起时间的考验了。 于是我们起了一个新名字PostgreSQL 用于反映最初的POSTGRES和最新的使用SQL的版本之间的关系。 同时版本号也重新从6.0开始,将版本号放回到最初的由伯克利POSTGRES项目开始的顺序中。
许多人处于习惯或者拼写简单的原因,将PostgreSQL称为"Postgres",这种称法被当做绰号或者别名而广泛接受。
Postgres95版本的开发重点放在标明和理解现有的后端代码的问题上。 PostgreSQL开发重点转到了一些有争议的特性和功能上面,当然各个方面的工作同时都在进行。
自那以来,PostgreSQL发生的变化可以在Appendix E发行注记里面找到。