liangsheng 发表于 2015-1-19 03:04:51

PostgreSQL - 功能强大 自由开源对象 关系型 BSD 许可数据库

PostgreSQL - 功能强大 自由开源对象 关系型 BSD 许可数据库
PostgreSQL 是一个自由开源对象-关系型数据库服务器 (数据库管理系统),在 BSD 许可下发行。PostgreSQL 可免费使用、修改和分发,不管是私用、商用、还是学术研究用。PostgreSQL 提供了相对其他开源数据库系统 (譬如:MySQL 和 Firebird) 和专有数据库系统 (譬如:Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server) 之外的另一种选择。
PostgreSQL 不寻常的名字导致一些读者停下来尝试拼读它,特别是那些把 SQL 拼读为 "sequel" 的人。PostgreSQL 开发者把它拼读为"post-gress-Q-L"。它也经常被简略念为 "postgres"。

PostgreSQL 是以 “加州大学伯克利分校” 计算机系开发的 POSTGRES (现更名为 PostgreSQL) 版本 4.2 为基础的对象关系型数据库管理系统 (ORDBMS)。PostgreSQL 支持大部分 SQL 标准且提供了许多其他现代特性,包括:复杂查询、外键、触发器、视图、事务完整性、MVCC。同样,PostgreSQL 可用许多方法扩展;譬如:通过增加新数据类型、函数、操作符、聚集函数、索引。

PostgreSQL 标志优点
事实上, PostgreSQL 的特性覆盖了 SQL-2/SQL-92 和 SQL-3/SQL-99:
1、包括目前世界上最丰富的数据类型支持,其中有些数据类型可以说连 “商业数据库” 都不具备;譬如:IP 类型、几何类型、等;

2、PostgreSQL 是全功能自由软件数据库。很长时间以来,PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统 (MVCC)、数据完整性检查、等特性的唯一一种自由数据库管理系统。 Inprise 的 InterBase 以及 SAP 等厂商将其原专有软件开放为自由软件后,才打破了这种情况。最后,PostgreSQL 拥有一支非常活跃的开发队伍,而且在许多黑客的努力下,PostgreSQL 的质量日益提高。
从技术角度上来讲,PostgreSQL 采用的是比较经典的 C/S (client/server) 结构;也就是一个 “客户端” 对应一个 “服务器端” 守护进程的模式。这个守护进程会分析客户端来的查询请求,生成规划树,进行数据检索并把最终结果格式化输出后返回给客户端。为方便客户端的程序编写,数据库服务器提供了统一客户端 C 接口。而不同客户端接口都源自这个 C 接口,譬如:ODBC、JDBC、Python、Perl、Tcl、C/C++、ESQL、等。同时也要指出的是,PostgreSQL 对接口的支持也是非常丰富的,几乎支持所有类型的数据库客户端接口。这一点也可以说是 PostgreSQL 的一大优点。

缺点从 Postgres 开始,PostgreSQL 经历了多次改化。
1、早期 PostgreSQL 继承了几乎所有 Ingres、Postgres、Postgres 95 问题,譬如:过于学院味,首先,因为它的目的是数据库研究;因此,不论是在稳定性、性能、还是使用方面。长期以来一直没得到重视,直到 PostgreSQL 项目开始后,情况才越来越好,PostgreSQL 已经完全可以胜任任何中上规模范围内的应用范围业务。目前有报道的生产数据库的大小已经有 TB 级的数据量,已经逼近 32 位计算的极限。不过学院味也给 PostgreSQL 带来意想不到好处:由于各大学软硬件环境差异太大缘故,它是目前支持平台最多的数据库管理系统之一。所支持的平台多达十几种,包括不同的系统,不同的硬件体系。至今,它仍然保持着支持平台最多的数据库管理系统的称号。
2、PostgreSQL 的确还欠缺一些比较高端的数据库管理系统需要的特性;譬如:数据库集群、更优良的管理工具、更加自动化的系统优化功能、等提高数据库性能的机制。
版本历史
01、早期版本
被称为 PostgreSQL (发音为 Post-gress-cue-ell) 的对象-关系型数据库管理系统 (有一段时间被称为 Postgres 95) 是从伯克利写的 POSTGRES 软件包发展而来的。经过十几年的发展, PostgreSQL 是世界上可获得的最先进开放源码数据库系统, 它提供了多版本并发控制,支持几乎所有 SQL 构件 (譬如:子查询、事务、用户定义类型与函数),且可获得非常广阔范围的 (开发) 语言绑定 (譬如:C、C++、Java、perl、Tcl、Python)。

02、Postgres95在 1994 年,Andrew Yu 和 Jolly Chen 向 POSTGRES 中增加了 SQL 语言解释器。并随后将 Postgres 95 源代码发布到互联网上供大家使用, 成为一个开放源码,原伯克利 POSTGRES 代码的继承者。
Postgres 95 所有源代码是完全的 ANSI C ,且代码量减少了 25%。并有许多内部修改提高性能和代码的可维护性。 Postgres 95 版本 1.0.x 在进行 Wisconsin Benchmark 测试时大概比 POSTGRES v4.2 快 30-50%。
03、目前版本
1996 年 "Postgres 95" 改成新名字 PostgreSQL,用于反映最初 POSTGRES 和最新使用 SQL 版本之间的关系。 同时版本号也重新从 6.0 开始, 将版本号放回到最初的由伯克利 POSTGRES 项目开始的顺序中。

Postgres 95 版本的开发重点放在标明和理解现有后端代码的问题上。PostgreSQL 开发重点转到了一些有争议的特性和功能上面,当然各个方面的工作同时都在进行。
目前,PostgresSQL 稳定版到了 9.4,具有非常丰富的特性和商业级数据库管理系统的质量。
http://forum.digitser.cn/data/attachment/forum/201605/19/132155fevczeyds5e5y1wy.jpg"长按二维码" 或 "扫一扫" 关注 "德云社区" 微信公众号
版权声明:
本文为独家编译稿件,版权归 德云社区,未经许可不得转载;否则,将追究其法律责任。

页: [1]
查看完整版本: PostgreSQL - 功能强大 自由开源对象 关系型 BSD 许可数据库