Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16

2. PostgreSQL 简史 #

2.1. 伯克利 POSTGRES 项目
2.2. Postgres95
2.3. PostgreSQL

现在称为 PostgreSQL 的对象关系数据库管理系统源自加州大学伯克利分校编写的 POSTGRES 软件包。经过几十年的发展,PostgreSQL 现已成为全球最先进的开源数据库。

2.1. 伯克利 POSTGRES 项目 #

POSTGRES 项目由迈克尔·斯通布雷克教授领导,由国防高级研究计划局 (DARPA)、陆军研究办公室 (ARO)、国家科学基金会 (NSF) 和 ESL 公司赞助。 POSTGRES 的实施始于 1986 年。该系统的最初概念在 [ston86] 中提出,初始数据模型的定义出现在 [rowe87] 中。当时规则系统的设计在 [ston87a] 中进行了描述。存储管理器的原理和架构在 [ston87b] 中进行了详细说明。

POSTGRES 自那时起经历了几个主要版本。第一个 demoware 系统于 1987 年投入运行,并在 1988 年 ACM-SIGMOD 会议上展示。第 1 版在 [ston90a] 中进行了描述,于 1989 年 6 月发布给了一些外部用户。为了回应对第一个规则系统的批评 ([ston89]),规则系统进行了重新设计 ([ston90b]),并于 1990 年 6 月发布了带有新规则系统的第 2 版。第 3 版于 1991 年出现,并增加了对多个存储管理器、改进的查询执行器和重写的规则系统。在很大程度上,直到 Postgres95(见下文)的后续版本都专注于可移植性和可靠性。

POSTGRES 已被用于实现许多不同的研究和生产应用程序。其中包括:财务数据分析系统、喷气发动机性能监控包、小行星跟踪数据库、医疗信息数据库和几个地理信息系统。POSTGRES 也已被用作几个大学的教育工具。最后,Illustra Information Technologies(后来合并到 Informix 中,现在归 IBM 所有)采用了该代码并将其商业化。1992 年末,POSTGRES 成为 Sequoia 2000 科学计算项目 的主要数据管理器。

1993 年,外部用户群体的规模几乎翻了一番。越来越明显的是,维护原型代码和支持占用了大量时间,而这些时间本应用于数据库研究。为了减轻这种支持负担,伯克利 POSTGRES 项目正式以第 4.2 版结束。

2.2. Postgres95 #

1994 年,Andrew Yu 和 Jolly Chen 为 POSTGRES 添加了一个 SQL 语言解释器。在新的名称下,Postgres95 随后发布到网络,作为原始 POSTGRES 伯克利代码的开源后代,在世界上找到了自己的发展道路。

Postgres95 代码完全是 ANSI C,并且大小减少了 25%。许多内部更改提高了性能和可维护性。Postgres95 1.0.x 版本在 Wisconsin Benchmark 上比 POSTGRES 4.2 版快了约 30-50%。除了错误修复之外,以下是一些主要增强功能

  • 查询语言 PostQUEL 已被 SQL(在服务器中实现)取代。(接口库 libpq 以 PostQUEL 命名。)在 PostgreSQL 之前不支持子查询(见下文),但可以在 Postgres95 中使用用户定义的 SQL 函数对其进行模仿。重新实现了聚合函数。还增加了对 GROUP BY 查询子句的支持。

  • 提供了一个用于交互式 SQL 查询的新程序 (psql),它使用 GNU Readline。这在很大程度上取代了旧的 monitor 程序。

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

  • 大对象接口已经过大修。反转大对象是存储大对象的唯一机制。(反转文件系统已被移除。)

  • 实例级规则系统已被移除。规则仍然可用作重写规则。

  • 一份简短的教程介绍了常规 SQL 功能以及 Postgres95 的功能,并随源代码一起分发。

  • GNU make(而不是 BSD make)用于构建。此外,Postgres95 可以使用未修补的 GCC 进行编译(双精度数据的对齐方式已修复)。

2.3. PostgreSQL #

到 1996 年,很明显,名称 Postgres95 无法经受时间的考验。我们选择了新名称 PostgreSQL,以反映原始 POSTGRES 与具有 SQL 功能的较新版本之间的关系。同时,我们将版本编号设置为从 6.0 开始,将数字放回到最初由伯克利 POSTGRES 项目开始的序列中。

由于传统或发音更方便,许多人仍然将 PostgreSQL 称为 Postgres(现在很少全部大写)。这种用法被广泛接受为昵称或别名。

Postgres95 开发期间,重点是识别和理解服务器代码中存在的问题。在 PostgreSQL 中,重点已转向增强功能和能力,尽管所有领域的工作仍在继续。

PostgreSQL 中自那时起发生的事情的详细信息可在 附录 E 中找到。