王朝百科
分享
 
 
 

PostgreSQL

王朝百科·作者佚名  2009-10-25  
宽屏版  字体: |||超大  

PostgreSQL

PostgreSQL

PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES,版本 4.2为基础的对象关系型数据库管理系统(ORDBMS)。 POSTGRES 领先的许多概念只是在非常迟的时候才出现在商业数据库中。

PostgreSQL 是最初的伯克利的代码的一个开放源码的继承人。

它支持大部分 SQL:2003 标准并且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、多版本并发控制

同样,PostgreSQL 可以用许多方法扩展,比如, 通过增加新的:数据类型、函数、操作符、聚集函数、索引方法、过程语言

并且,因为许可证的灵活,任何人都可以以任何目的免费使用,修改,和分发 PostgreSQL, 不管是私用,商用,还是学术研究使用。

PostgreSQL 的历史简介

现在被称为 PostgreSQL 的对象-关系型数据库管理系统(有一段时间被称为 Postgres95)是从伯克利写的 POSTGRES 软件包发展而来的。经过十几年的发展, PostgreSQL 是世界上可以获得的最先进的开放源码的数据库系统, 它提供了多版本并行控制,支持几乎所有 SQL 构件(包括子查询,事务和用户定 义类型和函数), 并且可以获得非常广阔范围的(开发)语言绑定 (包括 C,C++,Java,perl,tcl,和 python)。

伯克利的 POSTGRES 项目

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

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

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

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

Postgres95

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

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

原来的查询语言 PostQUEL 被 SQL 取代(在 server 端实现)。在 PostgreSQL 之前还不支持子查询)(但这个功能可以在 Postgres95 里面由用户定义的 SQL 函数实现)。重新实现了聚集。同时还增加了对 GROUP BY 查询子句的支持。 C 程序仍可以调用 libpq接口函数。

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

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

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

去掉了记录级(instance-level )的规则系统。 但我们仍然可以通过重写规则使用规则。

在发布的源码中增加了一个简短的常用 SQL 和 Postgres95 特有的 SQL 特性的教程。

用GNU make (取代了 BSD make)用于制作。 Postgres95 可以使用不加补丁的 GCC (修正了偶数字节数据( doubles )的对齐问题)。

PostgreSQL

到了 1996 年, 我们很明显的看出"Postgres95"这个名字已经不能经得起时间 的考验了。于是我们起了一个新名字 PostgreSQL 用于反映最初的 POSTGRES 和最新的使用 SQL 的版本之间的关系。 同时版本号也 重新从 6.0 开始, 将版本号放回到最初的由 伯克利 POSTGRES 项目开始的顺序中。

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

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如何用java替换看不见的字符比如零宽空格​十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
感谢员工的付出和激励的话怎么说?
 干货   2023-06-18
 
>>返回首页<<
 
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有