2. PostgreSQL 的简要历史

现在称为 PostgreSQL 的对象关系数据库 Management 系统派生自加利福尼亚大学伯克利分校编写的 POSTGRES 软件包。 PostgreSQL 经过二十多年的 Developing,现已成为可在任何地方使用的最先进的开源数据库。

2 .1.伯克利 POSTGRES 项目

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

从那时起,POSTGRES 经历了几个主要版本。第一个“演示软件”系统于 1987 年投入使用,并在 1988 年 ACM-SIGMOD 会议上展出。 [ston90a]中描述的版本 1 于 1989 年 6 月发布给一些外部用户。为回应对第一个规则系统([ston89])的批评,重新设计了规则系统([ston90b]),并于 1990 年 6 月发布了版本 2,新规则系统。第 3 版于 1991 年问世,增加了对多个存储 Management 器的支持,改进的查询 Actuator 和重写的规则系统。在大多数情况下,Postgres95 之前的后续发行版(请参阅下文)重点关注可移植性和可靠性。

POSTGRES 已用于实施许多不同的研究和生产应用程序。其中包括:财务数据分析系统,喷气发动机性能监视程序包,小行星跟踪数据库,医疗信息数据库以及几个地理信息系统。 POSTGRES 还被一些大学用作教育工具。最终,Illustra Information Technologies(后来合并为Informix,现在由IBM拥有)收购了代码并将其商业化。在 1992 年末,POSTGRES 成为红杉 2000 科学计算项目的主要数据 Management 器。

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

2.2. Postgres95

1994 年,Andrew Yu 和 Jolly Chen 在 POSTGRES 中添加了 SQL 语言解释器。 Postgres95 以一个新名称发布,随后以原始 POSTGRES Berkeley 代码的开源后代的形式在网上发布,以在世界范围内找到自己的方式。

Postgres95 代码完全是 ANSI C,尺寸减小了 25%。许多内部更改改善了性能和可维护性。与 POSTGRES 4.2 版相比,在 Wisconsin Benchmark 上 Postgres95 1.0.x 版的运行速度提高了约 30-50%。除了错误修复,以下是主要增强功能:

  • 查询语言 PostQUEL 已替换为 SQL(在服务器中实现)。 (接口库libpq以 PostQUEL 命名。)直到 PostgreSQL 才支持子查询(请参见下文),但是可以使用用户定义的 SQL 函数在 Postgres95 中模仿子查询。汇总功能已重新实现。对GROUP BY查询子句的支持也已添加。

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

  • 新的前端库libpgtcl支持基于 Tcl 的 Client 端。示例 Shellpgtclsh提供了新的 Tcl 命令,以将 Tcl 程序与 Postgres95 服务器连接。

  • 大对象界面进行了大修。反转大对象是存储大对象的唯一机制。 (反转文件系统已删除.)

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

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

  • 使用 GNU make(而不是 BSD make)进行构建。另外,可以使用未打补丁的 GCC 编译 Postgres95(固定双打的数据对齐)。

2.3. PostgreSQL

到 1996 年,很明显,名称“ Postgres95”将经不起时间的考验。我们选择了一个新名称 PostgreSQL,以反映原始 POSTGRES 和具有 SQL 功能的最新版本之间的关系。同时,我们将版本编号设置为从 6.0 开始,使编号重新回到伯克利 POSTGRES 项目最初开始的 Sequences。

由于传统或因为它更容易发音,许多人 continue 将 PostgreSQL 称为“ Postgres”(现在很少用大写字母表示)。这种用法被广泛接受为昵称或别名。

在 Postgres95 的开发过程中,重点是识别和理解服务器代码中的现有问题。使用 PostgreSQL,尽管所有领域的工作仍在 continue,但重点已转移到增强特性和功能上。

此后在 PostgreSQL 中发生的事情的详细信息可以在Appendix E中找到。