PostgreSQL7.0手册-用户手册-1. 简介
PostgreSQL
The PostgreSQL Development Team
Edited by
Thomas Lockhart
PostgreSQLis Copyright ?1996-2000 by PostgreSQL Inc.
编译:何伟平 laser@zhengmai.com.cn
中文译稿版权声明:
本文的中文译稿版权属于其中文译稿作者。您可对本手册进行非商业用途的自由传播,但务必保证手册的完整性,转载时请保留本版权声明.由于译者水平有限,错误之处在所难免,希望各位用户指正.由此带来的一切后果,本人概不负责.
第一章. 简介
内容
何为 Postgres?
简单回顾 Postgres
关于这个版本
资源
术语
符号
问题汇报指导
Y2K 声明
版权和商标
这份文档是最初由加州大学伯克利分校开发的 PostgreSQL 数据库管理系统的用户手册.PostgreSQL以 Postgres release 4.2为基础。 当初由 Michael Stonebraker 教授领导的 Postgres 项目,是由高级防务研究项目局(Defense Advanced Research Projects Agency)(DARPA) , 陆军研究处 (ARO ), 国家科学基金会 (National Science Foundation)(NSF),和 ESL 公司赞助进行的。
何为 Postgres?
传统的关系型数据库管理系统 ( DBMS ) 支持一个由命名关系(表)的集合(包括特定类型的属性/字段)组成的数据模型.在现代的商用系统中,可能的类型通常包括浮点数, 整数, 字符串, 金额及日期. 现在, 人们普遍认为这个模型已经不能满足未来的数据处理应用的需要了.而关系型模型成功地取代了以前的模型在某种程度上来说是因为它的简单. 当然,正如我们常说的, 简单通常会使某些应用的实现变得非常困难. Postgres 通过一种让用户可以很容易扩展系统的方法整合了下面四种基本概念,使其能提供可观的附加功能:
类/表(classes)
继承(inheritance)
类型(types)
函数(functions)
其他特性还提供了附加的功能和灵活性:
约束(constraints)
触发器(triggers)
规则(rules)
事务完整(transaction integrity)
这些特性将 Postgres 置于对象-关系 (object-relational) 型数据库的范畴. 请注意, 这是和那些所谓的面向对象(object-oriented) 的数据库不同的概念;面向对象型数据库通常并不适合于支持传统的关系型数据库语言. 所以, 尽管 Postgres 有一些面向对象的特性, 它仍然属于关系型数据库的范畴, 事实上, 一些商用数据库最近已经集成了一些 Postgres 所领先的特性.
--------------------------------------------------------------------------------
简单回顾 Postgres
--------------------------------------------------------------------------------
现在被称为 PostgreSQL 的对象-关系型数据库管理系统(有一段时间被称为Postgres95 )是从伯克利写的 Postgres 软件包发展而来的。经过十几年的发展,PostgreSQL世界上可以获得的最先进的开放源码的数据库系统,它提供了多版本并行控制,支持几乎所有 SQL 构件(包括子查询,事务和用户定义类型和函数),并且可以获得非常广阔范围的(开发)语言绑定(包括 C,C++,Java,perl,tcl,和python)。
伯克利的 Postgres 项目
PostgresDBMS 的实现始于1986年, 该系统最初的概念详见 Postgres的设计.最早的数据模型定义见Postgres 数据模型.当时的规则系统设计在 Postgres 规则系统设计 里描述.存储管理器的理论基础和体系结构在 Postgres 存储系统 里有详细描述.
从那以后, Postgres 经历了几次主要的版本更新.第一个演示性的系统在1987年便可用了, 并且在1988年的ACM-SIGMOD 大会上展出. 我们在1989年发布版本 1(在 Postgres的实现里有描述)给一些外部的用户使用.作为对第一个规则系统的批评的响应,(对 Postgres 规则系统的讨论),我们重新设计了规则系统(On Rules, Procedures, Caching and Views in Database Systems)并在1990年6月发布了使用新规则系统的版本 2. 版本 3 在1991年出现, 增加了多存储管理器的支持, 并且改进了查询执行器,重新编写了重写规则系统. 从那以后, 直到 Postgres95发布发布前(见下文),工作都集中在移植性和可靠性上。
Postgres 已经被用于许多研究或实际的应用中去了.这些应用包括: 一个财务数据分析系统, 一个喷气引擎性能监控软件包, 一个小行星跟踪数据库,一个医疗信息数据库和一些地理信息系统. Postgres 还被许多大学用于教学用途. 最后,Illustra Information Technologies (后来并入 Informix )拿到代码并使之商业化. 在1992年末Postgres 成为 Sequoia 2000 科学计算项目的首要数据管理器.
到了1993年, 外部用户的数量几乎翻番. 随着用户的增加. 用于源代码维护的时间日益增加占用了太多本应该用于数据库研究的时间, 于是该项目在版本4.2时正式终止.
Postgres95
在1994年,Andrew Yu 和 Jolly Chen 向 Postgres中增加了SQL语言的解释器.并随后将Postgres95源代码发布到互联网上供大家使用,成为一个开放源码的,原先伯克利Postgres代码的继承者.
Postgres95 所有源代码都是完全的 ANSI C , 而且代码量减少了25%. 并且有许多内部修改以利于提高性能和代码的维护性.Postgres95 v1.0.x 在进行Wisconsin Benchmark 测试时大概比 v4.2快30-50%. 除了修正了一些错误,其他的一些主要改进还有:
原来的查询语言 Postquel 被 SQL 取代(在 server 端实现).在PostgreSQL 之前还不支持子查询(但这个功能可以在 Postgres95 里面由用户定义的 SQL 函数实现)。重新实现了聚集。同时还增加了对 ``GROUP BY''的支持. C 程序仍可以调用 libpq 接口函数.
在监控程序方面, 增加了新利用 GNUreadline 进行交互查询的监控程序(psql)。
增加了新的前端库, libpgtcl, 用以支持以 Tcl为基础的客户端.一个样本shell,pgtclsh,提供了新的 Tcl命令用于 tcl 程序和 Postgres95 后端之间的交互.
彻底重写了大对象的接口. 保留了将大对象转置(Inversion )作为存储大对象的唯一机
The PostgreSQL Development Team
Edited by
Thomas Lockhart
PostgreSQLis Copyright ?1996-2000 by PostgreSQL Inc.
编译:何伟平 laser@zhengmai.com.cn
中文译稿版权声明:
本文的中文译稿版权属于其中文译稿作者。您可对本手册进行非商业用途的自由传播,但务必保证手册的完整性,转载时请保留本版权声明.由于译者水平有限,错误之处在所难免,希望各位用户指正.由此带来的一切后果,本人概不负责.
第一章. 简介
内容
何为 Postgres?
简单回顾 Postgres
关于这个版本
资源
术语
符号
问题汇报指导
Y2K 声明
版权和商标
这份文档是最初由加州大学伯克利分校开发的 PostgreSQL 数据库管理系统的用户手册.PostgreSQL以 Postgres release 4.2为基础。 当初由 Michael Stonebraker 教授领导的 Postgres 项目,是由高级防务研究项目局(Defense Advanced Research Projects Agency)(DARPA) , 陆军研究处 (ARO ), 国家科学基金会 (National Science Foundation)(NSF),和 ESL 公司赞助进行的。
何为 Postgres?
传统的关系型数据库管理系统 ( DBMS ) 支持一个由命名关系(表)的集合(包括特定类型的属性/字段)组成的数据模型.在现代的商用系统中,可能的类型通常包括浮点数, 整数, 字符串, 金额及日期. 现在, 人们普遍认为这个模型已经不能满足未来的数据处理应用的需要了.而关系型模型成功地取代了以前的模型在某种程度上来说是因为它的简单. 当然,正如我们常说的, 简单通常会使某些应用的实现变得非常困难. Postgres 通过一种让用户可以很容易扩展系统的方法整合了下面四种基本概念,使其能提供可观的附加功能:
类/表(classes)
继承(inheritance)
类型(types)
函数(functions)
其他特性还提供了附加的功能和灵活性:
约束(constraints)
触发器(triggers)
规则(rules)
事务完整(transaction integrity)
这些特性将 Postgres 置于对象-关系 (object-relational) 型数据库的范畴. 请注意, 这是和那些所谓的面向对象(object-oriented) 的数据库不同的概念;面向对象型数据库通常并不适合于支持传统的关系型数据库语言. 所以, 尽管 Postgres 有一些面向对象的特性, 它仍然属于关系型数据库的范畴, 事实上, 一些商用数据库最近已经集成了一些 Postgres 所领先的特性.
--------------------------------------------------------------------------------
简单回顾 Postgres
--------------------------------------------------------------------------------
现在被称为 PostgreSQL 的对象-关系型数据库管理系统(有一段时间被称为Postgres95 )是从伯克利写的 Postgres 软件包发展而来的。经过十几年的发展,PostgreSQL世界上可以获得的最先进的开放源码的数据库系统,它提供了多版本并行控制,支持几乎所有 SQL 构件(包括子查询,事务和用户定义类型和函数),并且可以获得非常广阔范围的(开发)语言绑定(包括 C,C++,Java,perl,tcl,和python)。
伯克利的 Postgres 项目
PostgresDBMS 的实现始于1986年, 该系统最初的概念详见 Postgres的设计.最早的数据模型定义见Postgres 数据模型.当时的规则系统设计在 Postgres 规则系统设计 里描述.存储管理器的理论基础和体系结构在 Postgres 存储系统 里有详细描述.
从那以后, Postgres 经历了几次主要的版本更新.第一个演示性的系统在1987年便可用了, 并且在1988年的ACM-SIGMOD 大会上展出. 我们在1989年发布版本 1(在 Postgres的实现里有描述)给一些外部的用户使用.作为对第一个规则系统的批评的响应,(对 Postgres 规则系统的讨论),我们重新设计了规则系统(On Rules, Procedures, Caching and Views in Database Systems)并在1990年6月发布了使用新规则系统的版本 2. 版本 3 在1991年出现, 增加了多存储管理器的支持, 并且改进了查询执行器,重新编写了重写规则系统. 从那以后, 直到 Postgres95发布发布前(见下文),工作都集中在移植性和可靠性上。
Postgres 已经被用于许多研究或实际的应用中去了.这些应用包括: 一个财务数据分析系统, 一个喷气引擎性能监控软件包, 一个小行星跟踪数据库,一个医疗信息数据库和一些地理信息系统. Postgres 还被许多大学用于教学用途. 最后,Illustra Information Technologies (后来并入 Informix )拿到代码并使之商业化. 在1992年末Postgres 成为 Sequoia 2000 科学计算项目的首要数据管理器.
到了1993年, 外部用户的数量几乎翻番. 随着用户的增加. 用于源代码维护的时间日益增加占用了太多本应该用于数据库研究的时间, 于是该项目在版本4.2时正式终止.
Postgres95
在1994年,Andrew Yu 和 Jolly Chen 向 Postgres中增加了SQL语言的解释器.并随后将Postgres95源代码发布到互联网上供大家使用,成为一个开放源码的,原先伯克利Postgres代码的继承者.
Postgres95 所有源代码都是完全的 ANSI C , 而且代码量减少了25%. 并且有许多内部修改以利于提高性能和代码的维护性.Postgres95 v1.0.x 在进行Wisconsin Benchmark 测试时大概比 v4.2快30-50%. 除了修正了一些错误,其他的一些主要改进还有:
原来的查询语言 Postquel 被 SQL 取代(在 server 端实现).在PostgreSQL 之前还不支持子查询(但这个功能可以在 Postgres95 里面由用户定义的 SQL 函数实现)。重新实现了聚集。同时还增加了对 ``GROUP BY''的支持. C 程序仍可以调用 libpq 接口函数.
在监控程序方面, 增加了新利用 GNUreadline 进行交互查询的监控程序(psql)。
增加了新的前端库, libpgtcl, 用以支持以 Tcl为基础的客户端.一个样本shell,pgtclsh,提供了新的 Tcl命令用于 tcl 程序和 Postgres95 后端之间的交互.
彻底重写了大对象的接口. 保留了将大对象转置(Inversion )作为存储大对象的唯一机

