外篇  postgresql   加入书签
章节字数:2402
滚屏速度: 保存设置 开始滚屏

    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项目
    MichaelStonebraker领导的POSTGRES项目是由防务高级研究项目局(DARPA),陆军研究办公室(ARO),国家科学基金(NSF),以及ESL,Inc共同赞助的。POSTGRES的实现始于1986年,该系统最初的概念详见POSTGRES的设计。最早的数据模型定义见ThePOSTGRESDataModel。当时的规则系统设计在POSTGRES规则系统的设计里描述。存储管理器的理论基础和体系结构在POSTGRES存储系统的设计里有详细描述。
    从那以后,POSTGRES经历了几次主要的版本更新。第一个"演示性"系统在1987年便可使用了,并且在1988年的ACM-SIGMOD大会上展出。在1989年六月发布了版本1给一些外部的用户使用。为了回应用户对第一个规则系统的批评,作者重新设计了规则系统,并在1990年6月发布了使用新规则系统的版本2。版本3在1991年出现,增加了多存储管理器的支持,并且改进了查询执行器,重新编写了规则系统。从那以后,随后的版本直到Postgres95发布前工作都集中在移植性和可靠性上。
    POSTGRES已经在许多研究或实际的应用中得到了应用。这些应用包括:一个财务数据分析系统,一个喷气引擎性能监控软件包,一个小行星跟踪数据库,一个医疗信息数据库和一些地理信息系统。POSTGRES还被许多大学用于教学用途。最后,IllustraInformationTechnologiesIllustraInformationTechnologies(后来并入Informix)后者现在属于IBM)拿到代码并使之商业化。在1992年末POSTGRES成为Sequoia2000科学计算计划的首要数据管理器。
    到了1993年,外部用户的数量几乎翻番。随着用户的增加。用于源代码维护的时间日益增加占用了太多本应该用于数据库研究的时间,为了减少支持的负担,伯克利的POSTGRES项目在版本4。2时正式终止。
    Postgres95
    在1994年,AndrewYu和JollyChen向POSTGRES中增加了SQL语言的解释器。并随后将Postgres95源代码发布到互联网上供大家使用,成为一个开放源码的,原先伯克利POSTGRES代码的继承者。
    Postgres95所有源代码都是完全的ANSIC,而且代码量减少了25%。并且有许多内部修改以利于提高性能和代码的维护性。Postgres95版本1。0。x在进行WisconsinBenchmark测试时大概比POSTGRESv4。2快30-50%。除了修正了一些错误,下面的是一些主要改进:
    原来的查询语言PostQUEL被SQL取代(在server端实现)。在PostgreSQL之前还不支持子查询)(但这个功能可以在Postgres95里面由用户定义的SQL函数实现)。重新实现了聚集。同时还增加了对GROUPBY查询子句的支持。C程序仍可以调用libpq接口函数。
    新增加了利用GNUReadline进行交互SQL查询(psql)。这个程序很大程度上取代了老的monitor程序。
    增加了新的前端库,libpgtcl,用以支持以Tcl为基础的客户端。一个样本shell,pgtclsh,提供了新的Tcl命令用于Tcl程序和Postgres95后端之间的交互。
    彻底重写了大对象的接口。保留了将大对象倒转(Inversion)作为存储大对象的唯一机制。(去掉了倒转(Inversion)文件系统。)
    去掉了记录级(instance-level)的规则系统。但我们仍然可以通过重写规则使用规则。
    在发布的源码中增加了一个简短的常用SQL和Postgres95特有的SQL特性的教程。
    用GNUmake(取代了BSDmake)用于制作。Postgres95可以使用不加补丁的GCC(修正了偶数字节数据(doubles)的对齐问题)。
    PostgreSQL
    到了1996年,我们很明显的看出"Postgres95"这个名字已经不能经得起时间的考验了。于是我们起了一个新名字PostgreSQL用于反映最初的POSTGRES和最新的使用SQL的版本之间的关系。同时版本号也重新从6。0开始,将版本号放回到最初的由伯克利POSTGRES项目开始的顺序中。
    Postgres95版本的开发重点放在标明和理解现有的后端代码的问题上。PostgreSQL开发重点转到了一些有争议的特性和功能上面,当然各个方面的工作同时都在进行。
2024, LCREAD.COM 手机连城