1、Download PostgreSQL
Official website:
http://www.enterprisedb.com/products-services-training/pgdownload#windows
2、Advantages and disadvantages
优点
[2] 事实上, PostgreSQL 的特性覆盖了 SQL-2/SQL-92 和 SQL-3/SQL-99,首先,它包括了可以说是目前世界上最丰富的数据类型的支持,其中有些数据类型可以说连商业数据库都不具备, 比如 IP 类型和几何类型等;其次,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 就经受了多次变化。
首先,早期的 PostgreSQL 继承了几乎所有 Ingres, Postgres, Postgres95 的问题:过于学院味,因为首先它的目的是数据库研究,因此不论在稳定性, 性能还是使用方方面面,长期以来一直没有得到重视,直到 PostgreSQL 项目开始以后,情况才越来越好,PostgreSQL 已经完全可以胜任任何中上规模范围内的应用范围的业务。目前有报道的生产数据库的大小已经有 TB 级的数据量,已经逼近 32 位计算的极限。不过学院味也给 PostgreSQL 带来一个意想不到的好处:大概因为各大学的软硬件环境差异太大的缘故,它是目前支持平台最多的数据库管理系统的一种,所支持的平台多达十几种,包括不同的系统,不同的硬件体系。至今,它仍然保持着支持平台最多的数据库管理系统的称号。
其次,PostgreSQL 的确还欠缺一些比较高端的数据库管理系统需要的特性,比如数据库集群,更优良的管理工具和更加自动化的系统优化功能 等提高数据库性能的机制等。
3、The main features
函数
通过函数,可以在数据库服务器端执行指令程序。尽管这样的指令程序可以使用基本的SQL语句写成,但是由于其缺乏流程控制等功能,所以在PostgreSQL中引入了使用其它程序语言编写函数的能力,包括:
一个内置的名为PL/pgSQL的过程语言,类似于Oracle的PL/SQL;
包括PL/Perl,plPHP,PL/Python,PL/Ruby,PL/sh,PL/Tcl与PL/Scheme在内的脚本语言;
编译语言:C,C++,或Java(通过PL/Java)。
R统计语言(PL/R)。
以上部分的语言,甚至可以在触发器内执行。PostgreSQL支持行返回函数:它们的输出是一系列行类型数据的集合,可以在查询中当作表来使用。函数也可以被定义成以创建者或者调用者的身份运行。在某些场合,或者其他的数据库产品中,函数也会被称为“存储过程”,但技术上这两者并未有太大分别。
索引
在PostgreSQL中,用户可以自定义索引方法,或使用内置的B-tree,哈希表与GiST索引。PosrgreSQL的索引功能同时也具有以下功能:
反向索引检索:无须额外的索引就能实现类似ORDER BYfieldDESC的操作。
表达式索引:可以建立基于表达式值而非数值或列的索引。
部分索引:仅索引表的部分,可以通过在CREATE INDEX语句口添加WHERE从句以创建更小的索引。
位图索引扫描:从8.1版开始支持此功能。该功能将读取多个索引,生成表示它们之间符合查询标准的多元组交集的位图。这样解决了混合索引的问题。在一个具有20列的表中,理论上能创建20! 个索引,在实际应用中已不现实。使用位图索引扫描后,在每次查询时,它将能把约束条件中所涉及列各自的索引进行任意的排列组合。
触发器
触发器是由SQL语句查询所触发的事件。如:一个INSERT语句可能触发一个检查数据完整性的触发器。触发器通常由INSERT或UPDATE语句触发。
在PostgreSQL中,可在数据表上设置触发器,但无法在视图中设置(对视图的UPDATE或者INSERT操作可以使用规则(RULE)定义)。多个触发器可依据字母顺序依次执行。此外,除了使用内嵌的PL/PgSQL语言之外,触发器的函数也可以用PL/Perl,PL/Python等语言编写。
并发控制
PostgreSQL使用多版本并发控制(MVCC,Multiversion concurrency control)系统进行并发控制,该系统向每个用户提供了一个数据库的“快照”,用户在事务内所作的每个修改,对于其他的用户都不可见,直到该事务成功提交。这从很大程度上减少了对读取锁的依赖,同时保证了数据库高效地符合ACID原则。
规则
规则(RULE)允许一个查询能被重写,通常被用作实现可更新的视图。
数据类型
PostgreSQL内置丰富的数据类型,包括:
任意精度的数值
无限制长度文本
几何图元
IP地址与IPv6地址
无类域间路由地址块,MAC地址
数组
此外,用户可以创建自定义数据类型,通常通过PostgreSQL的GiST机制,它们也能被很好得索引,比如PostGIS地理信息系统的数据类型。
定义对象
用户可以为数据库内几乎所有的对象定义新的类型,包括:
索引
操作符(可重载现有操作符。)
聚合函数
数据域
数据类型转换
会话(编码转换)
继承
数据表的结构及属性可从一个“父”表中继承,数据将在两者间共享。对子表中数据的插入或者删除也将在父表中体现,同样,对父表作出的修改,比如添加列等操作也会导致子表产生相应改动。该功能尚未完全实现,实际上,表的约束尚不能继承。比如,在一张外联参考了父表id字段的表中,插入一条具有子表中某条记录id数据的记录会导致失败,因为PostgreSQL在对父表的外键约束检查中不会检查子表的内容。
扩展
地理数据对象:PostGISGPL
全文检索:通过Tsearch2或OpenFTS, 将在8.3版本中内嵌Tsearch2。GPL
多种异步主/从复制方案,包括Slony-I(BSD授权),Mammoth Replicator
XML/XSLT支持contrib软件包中的XPath扩展GPL
分享到:
相关推荐
### PostgreSQL 简介 PostgreSQL 是一款先进的开源对象关系型数据库系统,它因其稳定性、功能强大以及遵守 SQL 标准而备受推崇。随着 MySQL 被 Oracle 收购后,PostgreSQL 成为了许多开发者和企业的首选开源数据库...
首先需要下载PostgreSQL的安装包及必要的依赖包。这里提供了一个百度网盘的下载链接: - 链接: [https://pan.baidu.com/s/1dr8qLh9h3qfHLjq_ykoYPA](https://pan.baidu.com/s/1dr8qLh9h3qfHLjq_ykoYPA) - 提取码: ...
一、PostgreSQL简介 PostgreSQL源于伯克利数据库系统(BSD),自1986年以来不断发展和完善,它支持多种编程接口,如Python、Java、Perl、C++等,并具有强大的SQL标准支持。PostgreSQL以其ACID(原子性、一致性、隔离...
### PostgreSQL简介 PostgreSQL是一个功能强大的开源对象关系型数据库系统,具有超过30年的开发历史,支持复杂的查询、事务完整性、并发控制等高级特性。它被广泛应用于各种规模的应用程序中,从小型单机应用到大型...
### 一、PostgreSQL简介 1. **起源与历史**:PostgreSQL起源于1986年的Berkeley大学的POSTGRES项目,历经多年发展,现已成为全球最活跃的开源数据库项目之一。 2. **特性**:支持SQL标准,提供事务处理、并发控制、...
- 简介:简要概述了PostgreSQL支持的一些高级特性。 - 视图:解释了视图的概念,以及如何在PostgreSQL中创建和使用视图。 - 外键:详细介绍了外键约束的使用,它用于维护多个表之间的数据完整性。 - 事务:讲解...
#### 一、PostgreSQL简介 PostgreSQL是一款强大的开源对象关系型数据库管理系统(ORDBMS),其历史可以追溯到加州大学伯克利分校计算机系开发的POSTGRES项目。随着时间的发展,该项目逐渐演变成了现在的PostgreSQL...
PostgreSQL简介 - **PostgreSQL**:是一款开源的关系型数据库管理系统(RDBMS),以其稳定性、可靠性及支持多种数据类型而著称。 - **目标读者**:本书面向的是希望从新手成长为PostgreSQL专家的学习者,覆盖了从...
1. **介绍**:这部分通常包括PostgreSQL的简介、历史、特性以及与其他数据库系统的对比,帮助新用户了解其基本概念和优势。 2. **安装与升级**:详细介绍了在不同操作系统上安装和升级PostgreSQL的步骤,包括...
1. 下载源码包:首先,你需要从官方网站下载"postgresql-11.4.tar.gz"压缩包,将其解压到一个合适的目录,例如/home/user/Downloads。 2. 配置编译:进入解压后的目录,运行"./configure --prefix=/usr/local/pgsql...
PostgreSQL简介 PostgreSQL资料简介 通过企业数据库安装程序下载postgres 10和PgAdmin 4(在主课程页面上链接)后,使用setup_instructions.pdf。在此期间,系统将要求您将intro_to_postgres_setup.sql文件复制到Pg...
5. PostgreSQL的历史简介、架构和特点。 6. 什么是开源?开源指的是源代码可以被任何人自由使用、修改和分发的软件。 7. PostgreSQL中的数据存储方式,包括扁平文件、静态数据和重复单元问题。 #### 第二章 关系...
#### 一、PostgreSQL 简介 - **定义**: PostgreSQL 是一个强大的开源对象关系数据库系统。 - **历史**: - **Berkeley POSTGRES 项目** (2.1 节): 该项目始于 1986 年,旨在开发下一代关系数据库管理系统。 - **...
阿里云专有云Enterprise版HybridDB for PostgreSQL V3.3.0 产品简介 HybridDB for PostgreSQL是阿里云专有云Enterprise版的一种高性能、可扩展、安全的数据库管理系统,基于PostgreSQL数据库技术。它能够满足企业级...
- 将下载的文件解压缩到指定文件夹内,通常为`C:\Program Files\PostgreSQL`等路径。 - 进入解压后的`pgsql`目录。 3. **初始化数据库实例** - 打开命令提示符(CMD),进入解压后的目录中的`bin`子目录。 - ...
#### 一、PostgreSQL简介 - **定义与特点**:PostgreSQL是一款开源的对象关系型数据库管理系统,以其稳定性、可扩展性和强大的功能集而闻名。它支持SQL(结构化查询语言)标准,并在此基础上进行了大量扩展。 - **...
阿里云专有云Enterprise版HybridDB for PostgreSQL V3.1.0 产品简介 阿里云专有云Enterprise版HybridDB for PostgreSQL V3.1.0 产品简介是阿里云公司推出的关系型数据库管理系统,基于开源的PostgreSQL数据库管理...
#### 二、Bireme工具简介 Bireme的设计目标在于简化从源数据库到Greenplum/HashData数据仓库的数据同步流程。其主要特点包括: 1. **采用小批量加载方式**:通过这种方式提高数据同步效率,加载延迟默认设置为10秒...
#### 一、简介 PostgreSQL被誉为世界上最为先进的开源数据库管理系统。自1996年发布以来,它以其强大的功能、稳定性以及对多种数据类型的广泛支持而闻名。作为一款关系型数据库系统,PostgreSQL不仅支持传统的SQL...