一、postgresql概述
postgresql数据库是目前功能最强大的开源关系型数据库,而且是BSD协议在使用和二次开发上基本没有限制。postgresql是唯一能做到数据零丢失的开源数据库。支持丰富的数据类型(如JSON和JSONB类型、数组类型)和自定义类型。该数据支持大量的主流开发语言,包括C、C++、Perl、Python、Java、Tcl及PHP等,postgresql的社区十分活跃,基本上没三个月推出一个补丁版本。
二、发展史
前身Ingres:postgresql的前身是伯克利大学1977年的Ingres项目,这个项目是由著名数据库科学家Michael Stonebraker领导的。1982年Michael Stonebraker离开伯克利大学,把Ingres商业化使之成为Relational Technologies公司的一个产品,后来该公司被Computer Associates(CA)收购。Ingres是一个非关系型数据库。
Postgres项目:20世纪80年代,数据库系统中主要问题是数据关系维护,1985年Michael Stonebraker回到伯克利大学后为了解决Ingres中的数据关系维护问题启动了后Ingress(post-Ingres)项目,这就是POSTGRES的开端。1989年6月发布了版本1给一些外部的用户使用。但是由于源代码维护的时间日益增加,占用了太多本应用于数据库研究的时间,为了减少支持负担,POSTGRES项目在版本4.2时正式终止。
Postgres95:1994年,中国香港的两名伯克利的研究生Andrew Yu和Jolly Cheney向POSTGRES中增加了现在SQL语言的解析器,将Postgres改名为Postgres95,随后将其源码发布到互联网上,它成为了一个开源的POSTGRES代码的继承者。
Postgres6.X:到1996年,Postgres95的名称改为PostgreSQL,即增加了sql功能的Postgres的意思,同时版本号也沿用伯克利POSTGRES项目的顺序,从6.0开始。
PostgreSQL7.1:PostgreSQL7.1时继6.5版本之后的又一个有巨大变化的版本,首先它引用了预写日志的功能,事务拥有了完善的日志机制,可以提供更好的性能和实现更优良的备份和灾难恢复能力(比如联机热备和宕机后的自动恢复)。其次是不再限制文本类型的数据段长度,这从很大程度上解决了PostgreSQL大对象的问题。
PostgreSQL8.X:该版本可以在Windows下运行。添加了一些新的特性,如:具有事务保存点功能、改变字段的类型、表空间、即时恢复(即时恢复允许对服务器进行连续的备份。既可以恢复到失败的那个点,也可以恢复到以前的任意事务)等功能。并且开始支持Perl服务器端编程语言。
PostgreSQL9.X:进入9.X版本,PostgreSQL进入了黄金发展阶段。2010年9月20日发布了PostgreSQL9.0,大大增强了复制的功能(replication),比如增加了流复制功能(stream replication)和HOT standby功能。可以很方便的搭建主从数据库。2011年9月12日发布了PostgreSQL9.1,该版本中增加了同步复制功能;2012年9月10日发布了PostgreSQL9.2,增加了级联复制的功能。
–谨以此文章致本人即将开始的PostgreSQL学习