A Brief History of PostgreSQL

The object-relational database management system now known as PostgreSQL is derived from the POSTGRES package written at the University of California at Berkeley. With over two decades of development behind it, PostgreSQL is now the most advanced open-source database available anywhere

现在的PG来源于加州大学伯克利分校的POSTGRES。经过二十几年的发展,PG成为了当今最先进的开源数据库。

 

2.1. The Berkeley POSTGRES Project

The POSTGRES project, led by Professor Michael Stonebraker, was sponsored by the Defense Advanced Research Projects Agency (DARPA), the Army Research Office (ARO), the National Science Foundation (NSF), and ESL, Inc. The implementation of POSTGRES began in 1986. The initial concepts for the system were presented in [ston86], and the definition of the initial data model appeared in [rowe87]. The design of the rule system at that time was described in [ston87a]. The rationale and architecture of the storage manager were detailed in [ston87b].

POSTGRES has undergone several major releases since then. The first “demoware” system became operational in 1987 and was shown at the 1988 ACM-SIGMOD Conference. Version 1, described in [ston90a], was released to a few external users in June 1989. In response to a critique of the first rule system ([ston89]), the rule system was redesigned ([ston90b]), and Version 2 was released in June 1990 with the new rule system. Version 3 appeared in 1991 and added support for multiple storage managers, an improved query executor, and a rewritten rule system. For the most part, subsequent releases until Postgres95 (see below) focused on portability and reliability.

POSTGRES has been used to implement many different research and production applications. These include: a financial data analysis system, a jet engine performance monitoring package, an asteroid tracking database, a medical information database, and several geographic information systems.POSTGRES has also been used as an educational tool at several universities. Finally, Illustra Information Technologies (later merged into Informix2, which is now owned by IBM3) picked up the code and commercialized it. In late 1992, POSTGRES became the primary data manager for the Sequoia 2000 scientific computing project4.

The size of the external user community nearly doubled during 1993. It became increasingly obvious that maintenance of the prototype code and support was taking up large amounts of time that should have been devoted to database research. In an effort to reduce this support burden, the Berkeley POSTGRES project officially ended with Version 4.2

2.1 伯克利POSTGRES项目

由Michael Stonebraker主导的项目,由DARPA,ARO,NFS,ESL等赞助。POSTGRES始于1986.该系统的初始概念于1986年发布,初始数据模型的定义在1987年出现。当时对于规则系统的设计在1987年进行了描述。同年,对存储结构的基本原理及体系结构进行了详细描述。

之后,POSTGRES经历了几次重要版本的发布。第一版从1987年开始开发,于1988年的ACM-SIGMOD大会上展出。第一版,在1989年6月对少数用户进行了发布,并在1990年的相关文章中进行了描述。为回应对于1989年发布的规则系统的批评,在1990年对规则系统进行了重新定义,并在于1990年6月发布的第二版中使用了新的规则系统。第三版于1991年发布,增加了对多存储管理的支持,查询器的优化,及规则系统的重写。在大多数情况下,PG95之前的版本,基本都侧重于可移植性及稳定性方面。

POSTGRES被用于各种正式或研究用业务系统。包括:财务分析系统、喷气式飞机引擎性能监控、行星跟踪、医疗、地理信息系统等。POSTGRES也在几所大学中被用做教学工具。最终,Illustra Information Technologies(之后合并到由IBM拥有的Informix中)取得了它的代码并将其商业化。在1992年底,POSTGRES称为了Sequoia 2000科学计算项目的主要数据管理工具。

 

1993年期间,外部用户社区规模几乎翻倍。越来越明显的是,对于代码的维护及支持占用了本应用于数据库研究的时间,为了减轻这种负担,POSTGRES项目正式终止于版本4.2。

2.2. Postgres95

In 1994, Andrew Yu and Jolly Chen added an SQL language interpreter to POSTGRES. Under a new name, Postgres95 was subsequently released to the web to find its own way in the world as an opensource descendant of the original POSTGRES Berkeley code.

Postgres95 code was completely ANSI C and trimmed in size by 25%. Many internal changes improved performance and maintainability. Postgres95 release 1.0.x ran about 30-50% faster on the Wisconsin Benchmark compared to POSTGRES, Version 4.2. Apart from bug fixes, the following were the major enhancements:

• The query language PostQUEL was replaced with SQL (implemented in the server). (Interface library libpq was named after PostQUEL.) Subqueries were not supported until PostgreSQL (see below), but they could be imitated in Postgres95 with user-defined SQL functions. Aggregate functions were re-implemented. Support for the GROUP BY query clause was also added.

• A new program (psql) was provided for interactive SQL queries, which used GNU Readline. This largely superseded the old monitor program.

• A new front-end library, libpgtcl, supported Tcl-based clients. A sample shell, pgtclsh, provided new Tcl commands to interface Tcl programs with the Postgres95 server.

• The large-object interface was overhauled. The inversion large objects were the only mechanism for storing large objects. (The inversion file system was removed.)

• The instance-level rule system was removed. Rules were still available as rewrite rules.

• A short tutorial introducing regular SQL features as well as those of Postgres95 was distributed with the source code

• GNU make (instead of BSD make) was used for the build. Also, Postgres95 could be compiled with an unpatched GCC (data alignment of doubles was fixed)

2.2 Postgres95

1994年,Andrew Yu和Jolly Chen在POSTGRES中添加了一个SQL语言解析器。然后,以一个新的名字:Postgres95发布到了网上。这样,POSTGRES以一种全新的方式现身:开源。

Postgres95的代码全部有ANSI C写成,在大小方面减少了25%。许多的内核更改提高了性能及可维护性。Postgres95的1.0.x版比POSTGRES4.2在Wisconsin Benchmark测试中快大概30-50%。Postgres95不仅修复了许多bug,还对以下内容进行了增强:

  • 在服务端,用SQL替换了原查询语言PostQUEL。(接口库libpq以PostQUEL命名)。直到PostgreSQL才支持子查询,但在Postgres95中可以使用用户定义的SQL函数实现类似功能。聚合函数以重新实现,且添加了对于GROUP BY 的支持。

  • 一个新的程序:psql用以进行SQL查询交互,它使用开源的GUN Readline库。这在很大程度上替换了旧有的监控程序。

  • 一个新的前端库,libpgtcl,支持基于tcl的客户端。示例shell,pgtclsh,提供了新的tcl命令用以将tcl程序与Postgres95服务端连接起来。

  • 对大对象接口进行了彻底整改。反转大对象是存储大对象的唯一机制(反转文件系统已被移除)。

  • 移除了实例级的规则系统。规则仍可用作重写规则。

  • 随源码一起发布了一个简短的教程,介绍常用的SQL特性及Postgres95功能。

  • 构建的时候使用GUN而不是BSD。而且,Postgres95可以使用外部的GCC进行编译(double数据类型的对齐是固定的)。

2.3. PostgreSQL

By 1996, it became clear that the name “Postgres95” would not stand the test of time. We chose a new name, PostgreSQL, to reflect the relationship between the original POSTGRES and the more recent versions with SQL capability. At the same time, we set the version numbering to start at 6.0, putting the numbers back into the sequence originally begun by the Berkeley POSTGRES project.

Many people continue to refer to PostgreSQL as “Postgres” (now rarely in all capital letters) because of tradition or because it is easier to pronounce. This usage is widely accepted as a nickname or alias.

The emphasis during development of Postgres95 was on identifying and understanding existing problems in the server code. With PostgreSQL, the emphasis has shifted to augmenting features and capabilities, although work   continues in all areas.

Details about what has happened in PostgreSQL since then can be found in  E. Release Notes.

2.3 PostgreSQL

到了1996年,Postgres95这个名字明显跟不上时间变换了。我们选取了一个名字:PostgreSQL用以反映原始POSTGRES与具有SQL功能的新版本之间的关系。同时,将版本编号设置为从6.0开始,将数字返回到伯克利POSTGRES项目开始的序列中。

或许是因为传统,又或许是因为Postgres更容易发音,现在许多人仍称呼PostgreSQL为Postgres(很少用全大写)。这被认为是一种昵称或者别名。

Postgres95在开发过程中的重点是识别和理解服务器代码中已存在的问题。PostgreSQL中,重点转移到了扩展特性及功能,当然,其他所有领域的工作仍在继续。

之后,PostgreSQL的详细历程可以在附录E. Release Notes中找到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值