↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

不受支持的版本: 7.0 / 6.5 / 6.4 / 6.3
历史版本PostgreSQL 6.4 已于 2003 年 10 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页。

1.2. Postgres 简史

1.2.1. 伯克利 Postgres 项目

Postgres DBMS 的实现始于 1986 年。该系统的最初概念见于 The Design of Postgres,而最初数据模型的定义见于 The Postgres Data Model。当时规则系统的设计见于 The Design of the Postgres Rules System。 存储管理器的设计动机和体系结构详见 The Postgres Storage System。

Postgres 此后经历了多个主要版本。第一个"演示版"(demoware)系统于 1987 年开始运行,并在 1988 年的 ACM-SIGMOD 大会上进行了展示。我们在 The Implementation of Postgres 中描述了版本 1, 并于 1989 年 6 月将其发布给少数外部用户。针对第一代规则系统所受到的批评(A Commentary on the Postgres Rules System),规则系统被重新设计(On Rules, Procedures, Caching and Views in Database Systems), 版本 2 于 1990 年 6 月随新规则系统一同发布。版本 3 出现于 1991 年,增加了对多种存储管理器、改进的查询执行器和重写的重写规则系统的支持。此后 的版本大部分都集中在可移植性和 可靠性上。

Postgres 已被用于实现许多不同的 研究和生产应用。这些应用包括金融数据分析系统、喷气发动机性能监测软件包、小行星跟踪数据库、医学信息数据库以及多个 地理信息系统。 Postgres 还曾被 多所大学用作教学工具。最后, Illustra Information Technologies (后来并入 Informix) 接手了这套代码并将其商业化。 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%。有许多 内部更改提升了性能和代码可维护性。 Postgres95 v1.0.x 在 Wisconsin Benchmark 上比 v4.2 快大约 30-50%。除了错误修复之外,这些就是主要的增强:

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

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

  • 我们添加了一个新的前端库 libpgtcl,它 支持基于 Tcl 的客户端。一个示例 shell pgtclsh 提供了新的 Tcl 命令,用于让 tcl 程序与 Postgres95 服务器交互。

  • 大对象接口经过了全面改造。我们 保留反转大对象作为存储大对象的唯一 机制。(不要把它与已被移除的 反转文件系统混淆。)

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

  • 源代码中附带了一份介绍常规 SQL 特性 以及我们自有特性的简短教程。

  • 构建使用的是 GNU make(而不是 BSD make)。 此外,Postgres95 可以用未经修改的 gcc 编译(双精度浮点数的 数据对齐问题已修复)。

1.2.3. PostgreSQL

到 1996 年,很明显 “Postgres95” 这个名字经不起时间的考验。我们选择了新名字 PostgreSQL, 以体现原始 Postgres 与后来具备 SQL 能力的版本之间的关系。 同时,版本号被重置为从 6.0 开始, 使编号回到最初由 Postgres 项目开启的序列中。

Postgres95 v1.0.x 版本的开发 重点是稳定后端代码。 而在 PostgreSQL 的 v6.x 系列中, 重点已经从识别和理解后端中存在的 问题转移到增强特性和能力,尽管 各方面的工作仍在继续。

主要增强包括:

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

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

  • 内置类型得到了改进,包括新的大范围日期/时间类型 和额外的几何类型支持。

  • 后端代码的整体速度提升了大约 20-40%, 而且自 v6.0 发布以来后端启动时间缩短了 80%。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。