PostgreSQL简史

御弟哥哥 等级 726 0 0
标签: postgresql

现在被称为PostgreSQL的对象-关系型数据库管理系统是从加州大学伯克利分校写的POSTGRES软件包发展而来的。经过二十多年的发展,PostgreSQL是世界上可以获得的最先进的开源数据库。

2.1. 伯克利的POSTGRES项目

由Michael Stonebraker教授领导的POSTGRES项目是由防务高级研究项目局(DARPA)、陆军研究办公室(ARO)、国家科学基金(NSF) 以及 ESL, Inc 共同赞助的。 POSTGRES的实现始于 1986 年。该系统最初的概念详见[ston86] 。 最初的数据模型定义见[rowe87]。当时的规则系统设计在[ston87a]里描述。存储管理器的理论基础和体系结构在[ston87b]里有详细描述。

从那以后,POSTGRES经历了几次主要的版本更新。 第一个“演示性”系统在 1987 年便可使用了, 并且在 1988 年的ACM-SIGMOD大会上展出。在 1989 年6月发布了版本 1(见[ston90a])给一些外部的用户使用。 为了回应用户对第一个规则系统([ston89])的批评,规则系统被重新设计了([ston90b]),在1990年6月发布了使用新规则系统的版本 2。 版本 3 在1991年出现,增加了多存储管理器的支持, 并且改进了查询执行器、重写了规则系统。直到Postgres95发布前(见下文)的后续版本大多把工作都集中在移植性和可靠性上。

POSTGRES已经被用于实现很多不同的研究和生产应用。这些应用包括: 一个财务数据分析系统、一个喷气引擎性能监控软件包、一个小行星跟踪数据库、一个医疗信息数据库和一些地理信息系统。POSTGRES还被许多大学用于教学用途。最后,Illustra Information Technologies(后来并入Informix, 而Informix现在被IBM所拥有) 拿到代码并使之商业化。在 1992 年末POSTGRES成为Sequoia 2000科学计算项目的主要数据管理器。

在 1993 年间,外部用户社区的数量几乎翻番。随着用户的增加, 用于源代码维护的时间日益增加并占用了太多本应该用于数据库研究的时间,为了减少支持的负担,伯克利的POSTGRES项目在版本 4.2 时正式终止。

2.2. Postgres95

在 1994 年,Andrew Yu 和 Jolly Chen 向POSTGRES中增加了 SQL 语言的解释器。并随后用新名字Postgres95将源代码发布到互联网上供大家使用, 成为最初POSTGRES伯克利代码的开源继承者。

Postgres95的源代码都是完全的 ANSI C,而且代码量减少了25%。许多内部修改提高了性能和可维护性。Postgres95的1.0.x版本在进行 Wisconsin Benchmark 测试时大概比POSTGRES的版本4.2 快 30-50%。除了修正了一些错误,下面的是一些主要提升:

  • 原来的查询语言 PostQUEL 被SQL取代(在服务器端实现)。接口库libpq被按照PostQUEL命名。在PostgreSQL之前还不支持子查询(见下文),但它们可以在Postgres95中由用户定义的SQL函数模拟。聚集函数被重新实现。同时还增加了对GROUP BY 查询子句的支持。

  • 新增加了一个利用GNU的Readline进行交互 SQL 查询的程序(psql)。这个程序很大程度上取代了老的monitor程序。

  • 增加了新的前端库(libpgtcl), 用以支持基于Tcl的客户端。一个样本 shell(pgtclsh),提供了新的 Tcl 命令用于Tcl程序和Postgres95服务器之间的交互。

  • 彻底重写了大对象的接口。保留了将大对象倒转(Inversion )作为存储大对象的唯一机制(去掉了倒转(Inversion )文件系统)。

  • 去掉了实例级的规则系统。但规则仍然以重写规则的形式存在。

  • 在发布的源码中增加了一个介绍SQL和Postgres95特性的简短教程。

  • 用GNU的make(取代了BSD的make)来编译。Postgres95可以使用不打补丁的GCC编译(修正了双精度数据对齐问题)。

2.3. PostgreSQL

到了 1996 年, 很明显“Postgres95”这个名字已经跟不上时代了。于是我们选择了一个新名字PostgreSQL来反映与最初的POSTGRES和最新的具有SQL能力的版本之间的关系。同时版本号也从 6.0 开始, 将版本号放回到最初由伯克利POSTGRES项目开始的序列中。

很多人会因为传统或者更容易发音而继续用“Postgres”来指代PostgreSQL(现在很少用全大写字母)。这种用法也被广泛接受为一种昵称或别名。

Postgres95的开发重点放在标识和理解后端代码的现有问题上。PostgreSQL的开发重点则转到了一些有争议的特性和功能上面,当然各个方面的工作同时都在进行。

收藏
评论区

相关推荐

阿里云德哥:PostgreSQL 数据库的前世今生
内容摘要 PostgreSQL是以加州大学伯克利分校计算机系开发的 Posrgres,现在已经更名为PostgreSQL。它是一个自由的对象关系数据库服务器(数据库管理系统),它在灵活的 BSD风格许可证下发行。PostgreSQL 中国社区发起人之一Digoal为我们带来PostgreSQL 前世今生、社区理念以及阿里云Postgr
postgresql和mysql哪个好
postgresql和mysql都是免费且功能强大的开源数据库,很多用户面对这两个库都会有一个问题,那就是哪一个才是最好的开源数据库,MySQL还是PostgreSQL呢?该选择哪一个开源数据库呢? postgresql和mysql哪个好 一.PostgreSQL相对于MySQL的优势 1、在SQL的标准实现上要比MySQL完善,而且功能实现比较严谨;
PostgreSQL介绍以及如何开发框架中使用PostgreSQL数据库
最近准备下PostgreSQL数据库开发的相关知识,本文把总结的PPT内容通过博客记录分享,本随笔的主要内容是介绍PostgreSQL数据库的基础信息,以及如何在我们的开发框架中使用PostgreSQL数据库,希望大家多多提意见。 1、PostgreSQL数据库介绍 PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES,现在已经更
PGPOOL 配置
pgpool 是 A generic connection pool/replication/load balance server for PostgreSQL。 > pgpool-II version 3.4.3 (tataraboshi), A generic connection pool/replication/load balance serv
VS2010编译PostgreSQL 9.2.2
我用的是VS2010英文专业版,PostgreSQL的版本是9.2.2,操作系统的平台是win7 32bit/64bit。 首先下载PostgreSQL 9.2.2的源码,链接地址是[http://ftp.postgresql.org/pub/source/v9.2.2/postgresql-9.2.2.tar.gz](https://www.oschin
CentOS 7 安装、配置、使用 PostgreSQL 9.5(一)安装及基础配置
> 一直不知道怎么读这个数据库的名字,在官网上找到了文档。 > PostgreSQL is pronounced Post-Gres-Q-L. [读音](https://www.oschina.net/action/GoToLink?url=http%3A%2F%2Fwww.postgresql.org%2Ffiles%2Fpostgresql.mp3)
ClickHouse外部字典表配置
yum install -y unixODBC.x86\_64 yum install -y postgresql-odbc.x86\_64 vim /etc/odbc.ini [pg] Description = Test to pg Driver = PostgreSQL #与/etc/odbcinst.ini 中一致
Linux系统:Centos7下搭建PostgreSQL关系型数据库
本文源码:[GitHub·点这里](https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fgithub.com%2Fcicadasmile%2Flinux-system-base) || [GitEE·点这里](https://gitee.com/cicadasmile/linux-system-
PostgreSQL 数据库备份与恢复 pd_dump pg_restore
备份 PG 数据库生成的文件可以有两种,一种是 SQL 文件,一种是二进制文件,二进制文件只能使用 pg\_restore 进行恢复。 PostgreSQL 数据库操作简要说明 PostgreSQL数据库版本 psql --version psql (PostgreSQL) 9.1.3 下面是在linux下的操作,在windows下面将su -p
PostgreSQL 逻辑复制文档 (pglogical 文档 ) [翻译]
本文档适用于 PostgreSQL 9.4 9.6 [原文连接](https://www.oschina.net/action/GoToLink?url=https%3A%2F%2F2ndquadrant.com%2Fresources%2Fpglogical%2Fpglogical-docs%2F) ##### 翻译:亭亭小次郎 pglogical是
PostgreSQL.Live生而全球 敢于颠覆
这,是开源技术的未来 这,汇集中外大咖 分享核心技术 这,畅聊主流话题 交流顶尖技术 这,与顶级企业联手,合作共赢 ****PostgreSQL.Live简介**** PostgreSQL.Live由中国PostgreSQL分会与PostgreSQL国际社区共同筹备、知名PostgreSQL生态链企业参与,live沙龙将以在线直播+按需学习相结合的
PostgreSQL“ DESCRIBE TABLE”
### 问题: 如何在PostgreSQL中执行等效于Oracle `DESCRIBE TABLE`的命令(使用psql命令)? * * * ### 解决方案: 参考一: [https://stackoom.com/question/SRJ/PostgreSQL-DESCRIBE-TABLE](https://www.oschina.net/acti
PostgreSQL入门
PostgreSQL入门-安装与基本使用(Ubuntu) PostgreSQL 是一个免费的对象-关系数据库服务器(ORDBMS),号称是 "世界上最先进的开源关系型数据库"。 PostgreSQL 是以加州大学计算机系开发的 POSTGRES 4.2版本为基础的对象关系型数据库。 今天在Ubuntu系统上,我们一起来安装并简单使用一下PostgreS
PostgreSQL数据库切割和组合字段函数
Postgresql里面内置了很多的实用函数,下面介绍下组合和切割函数 环境:PostgreSQL 9.1.2           CENTOS 5.7 final **一.组合函数** **1.concat** a.语法介绍 concat(str "any" [, str "any" [, ...]])
Postgresql 数据库控制解析(一)
前面我们通过“探索postgresql数据库(一)”和“探索postgresql数据库(二)”基本了解了postgresql数据库。接下来本文开始介绍下数据库控制(server control)。。 一、手动开启数据库(Starting the database server manually) 默认postgresql会随着系统自动启动,不过