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

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

不受支持的版本: 7.0 / 6.5 / 6.4 / 6.3
历史版本PostgreSQL 6.3 已于 2003 年 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%。

提交更正

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