↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

已结束支持的版本: 7.0 / 6.5 / 6.4 / 6.3
历史版本。 PostgreSQL 6.3 已结束支持。 请参阅 当前版本手册.

1.2. Postgres 简史

1.2.1. 伯克利 Postgres 项目

Postgres DBMS 的实现始于 1986 年。该系统的最初概念发表于 [[STON86]],而最初数据模型的定义出现在 [[ROWE87]]。当时规则系统的设计描述于 [[STON87a]]。存储管理器的基本原理和体系结构则详细记述于 [[STON87b]]。

从那以后,Postgres经历了几个主要版本。第一个"演示系统"于 1987 年投入运行,并在 1988 年的 ACM-SIGMOD 大会上展出。我们在 1989 年 6 月向少数外部用户发布了版本 1,其描述见 [[STON90a]]。针对对第一个规则系统的批评 ([[STON89]]),规则系统被重新设计 ([[STON90b]]),版本 2 于 1990 年 6 月随新的规则系统一起发布。版本 3 出现于 1991 年,增加了对多个存储管理器的支持、一个改进的查询执行器和一个重写的重写规则系统。从那以后,各版本的重心大多放在可移植性和可靠性上。

Postgres已被用来实现许多不同的研究和生产应用。这些应用包括:一个金融数据分析系统、一个喷气发动机性能监控包、一颗小行星跟踪数据库、一个医疗信息数据库以及若干地理信息系统。Postgres还曾在多所大学被用作教学工具。最后,Illustra Information Technologies(Illustra 信息技术公司)接手了代码并将其商业化。Postgres于 1992 年底成为 Sequoia 2000 科学计算项目的主要数据管理器。此外,外部用户社区的规模在 1993 年间几乎翻了一番。越来越明显的是,原型代码的维护和支持正在占用本应投入到数据库研究中的大量时间。为了减轻这一支持负担,该项目在版本 4.2 之后正式结束。

1.2.2. Postgres95

1994 年,Andrew Yu 和 Jolly Chen 为Postgres添加了 SQL 语言解释器,随后代码被发布到 Web 上自谋生路。Postgres95是这一原始伯克利代码的公共域、开源后代。

Postgres95是Postgres最后一个官方版本(4.2 版)的衍生版本。代码现在完全是 ANSI C,代码规模缩减了 25%。有大量改进性能和代码可维护性的内部变化。与 v4.2 相比,Postgres95 v1.0.x 在 Wisconsin 基准测试上快了大约 30-50%。除错误修复外,主要的增强包括:

  • 查询语言Postquel已被替换为 SQL(在服务器中实现)。我们尚不支持子查询(可以用用户定义的SQL 函数来模仿)。聚合已被重新实现。我们还添加了对``GROUP BY''的支持。libpq接口仍可供C 程序使用。

  • 除 monitor 程序外,我们还提供了一个新的程序(psql),它支持GNU readline。

  • 我们添加了新的前端库libpgtcl,它支持基于Tcl的客户端。示例 shell pgtclsh 提供了新的 Tcl 命令,使tcl 程序能够与Postgres95后端交互。

  • 大对象接口经过了彻底检修。我们只保留 Inversion 大对象作为存储大对象的唯一机制。(不要把这与已被移除的 Inversion 文件系统相混淆。)

  • 实例级的规则系统已被移除。规则仍以重写规则的形式可用。

  • 随源代码分发了一个简短的教程,介绍常规SQL特性以及我们自己的特性。

  • 构建使用的是GNU make(而非BSD make)。此外,Postgres95可以用未打补丁的 gcc编译(double 的数据对齐已经修复)。

1.2.3. PostgreSQL

到了 1996 年,情况已经很清楚:“Postgres95”这个名字经不起时间的考验。于是选择了一个新名字PostgreSQL,以反映原始 Postgres与具备SQL能力的较新版本之间的关系。与此同时,版本编号被重置为从 6.0 开始,使编号回到Postgres项目最初开始的序列。

Postgres95 v1.0.x 各版本的开发重点在于稳定后端代码。而在PostgreSQL的 v6.x 系列中,重点已从识别和理解后端中现存的问题转移到增强功能和能力上,不过各方面的工作都在继续。

主要的增强包括:

  • 重要的后端特性已经实现,包括子查询、默认值、约束和触发器。

  • 添加了更多符合SQL92的语言特性,包括主键、带引号的标识符、字符串字面量类型强制、类型转换,以及二进制和十六进制整数输入。

  • 内建类型得到了改进,包括新的宽范围日期/时间类型和更多的几何类型支持。

  • 后端代码整体速度提高了约 20%,后端启动速度降低了 80%。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.