PG的简介
https://www.postgresql.org/docs/12/intro-whatis.html
https://www.postgresql.org/docs/12/history.html
PostgreSQL是一个基于POSTGRES的对象关系数据库管理系统(ORDBMS),版本4.2,由加州大学伯克利分校计算机科学系开发。POSTGRES开创了许多概念,这些概念在很久以后才在某些商业数据库系统中出现。
PostgreSQL是这个原始Berkeley代码的开源后代。它支持SQL标准的很大一部分,并提供许多现代功能:
复杂的查询
外键
触发器
可更新的视图
交易完整性
多版本并发控制
此外,用户可以通过多种方式扩展PostgreSQL,例如添加新的
数据类型
功能
运营商
集合函数
索引方法
程序语言
由于自由许可,PostgreSQL可以由任何人免费使用,修改和分发用于任何目的,无论是私人的,商业的还是学术的。
2.1 伯克利POSTGRES项目
2.2 和Postgres95
2.3 PostgreSQL的
现在称为PostgreSQL的对象关系数据库管理系统源自加州大学伯克利分校编写的POSTGRES包。PostgreSQL经过二十多年的发展,现已成为世界上最先进的开源数据库。
2.1 伯克利POSTGRES项目
由Michael Stonebraker教授领导的POSTGRES项目由国防高级研究计划局(DARPA),陆军研究办公室(ARO),国家科学基金会(NSF)和ESL公司赞助.POSTGRES的实施始于该系统的初始概念在[ston86]中提出,初始数据模型的定义出现在[rowe87]中。当时的规则系统的设计在[ston87a]中有所描述。存储管理器的基本原理和体系结构在[ston87b]中有详细说明。
自那时起,POSTGRES经历了几次重要发布。第一个“ demoware ”系统于1987年开始运作,并在1988年的ACM-SIGMOD会议上展出。[ston90a]中描述的版本1 于1989年6月发布给少数外部用户。为了回应对第一个规则系统的批评([ston89]),规则系统被重新设计([ston90b])和版本2 1990年6月发布了新规则系统。版本3出现在1991年,增加了对多个存储管理器,改进的查询执行器和重写规则系统的支持。在大多数情况下,后续版本直到Postgres95 (见下文)侧重于可移植性和可靠性。
POSTGRES已被用于实现许多不同的研究和生产应用程序。这些包括:财务数据分析系统,喷气发动机性能监测包,小行星跟踪数据库,医疗信息数据库和若干地理信息系统。POSTGRES也被用作几所大学的教育工具。最后,Illustra Information Technologies(后来合并到Informix,现在由IBM拥有)获取代码并将其商业化。1992年末,POSTGRES成为Sequoia 2000科学计算项目的主要数据管理员。
1993年,外部用户社区的规模几乎翻了一番。越来越明显的是,原型代码和支持的维护占用了应该用于数据库研究的大量时间。为了减轻这种支持负担,Berkeley POSTGRES项目正式以版本4.2结束。
2.2 和Postgres95
1994年,Andrew Yu和Jolly Chen在POSTGRES中添加了一个SQL语言解释器。在新的名称下,Postgres95随后被发布到网络上,作为原始POSTGRES伯克利代码的开源后代,在世界上找到了自己的方式。
Postgres95代码完全是ANSI C,大小减少了25%。许多内部更改提高了性能和可维护性。与POSTGRES版本4.2 相比,Postgres95版本1.0.x在威斯康星基准测试中的运行速度提高了约30-50%。除了错误修复,以下是主要的增强功能:
查询语言PostQUEL已替换为SQL(在服务器中实现)。(接口库libpq以PostQUEL命名。)直到PostgreSQL(见下文)才支持子查询,但它们可以在Postgres95中使用用户定义的SQL函数进行模仿。聚合函数已重新实现。GROUP BY还添加了对查询子句的支持。
为交互式SQL查询提供了一个新程序(psql),它使用GNU Readline。这在很大程度上取代了旧的监控程序。
一个新的前端库libpgtcl,支持基于Tcl的客户端。示例shell pgtclsh提供了新的Tcl命令,用于将Tcl程序与Postgres95服务器连接。
大对象界面进行了大修。反转大对象是存储大对象的唯一机制。(反转文件系统已被删除。)
实例级规则系统已删除。规则仍然可用作重写规则。
随源代码一起分发了一个简短的教程,介绍了常规的SQL功能以及Postgres95的功能
GNU make(而不是BSD make)用于构建。此外,Postgres95可以使用未修补的GCC进行编译(双精度数据对齐是固定的)。
2.3 PostgreSQL的
到1996年,很明显“ Postgres95 ”这个名字经不起时间的考验。我们选择了一个新名称PostgreSQL来反映原始POSTGRES与具有SQL功能的更新版本之间的关系。同时,我们将版本编号设置为从6.0开始,将数字放回最初由Berkeley POSTGRES项目开始的序列中。
许多人继续将PostgreSQL称为“ Postgres ”(现在很少用全都大写字母),因为传统或者因为它更容易发音。此用法被广泛接受为昵称或别名。
Postgres95开发过程中的重点是识别和理解服务器代码中存在的问题。使用PostgreSQL,重点已转移到增强功能和功能,尽管所有领域的工作仍在继续。
什么已经发生了详细的PostgreSQL自此之后可以发现附录E。