postgresql 是一个强大开源的对象-关系数据库系统。经过多年的维护和升级,在可靠性、数据完整性和正确性方面赢得了良好的声誉。
本教程将为您提供 postgresql 的快速入门,并使您熟悉 postgresql 编程。
什么是postgresql?
postgresql(发音为post-gress-ql)是一个由全球志愿者团队开发的开源关系数据库管理系统 (dbms)。postgresql 不受任何公司或其他私人实体的控制,并且源代码是免费提供的。
postgresql,最初称为 postgres,是由一位名叫 michael stonebraker 的计算机科学教授在 ucb 创建的。stonebraker 于 1986 年启动了 postgres,作为其前身 ingres 的后续项目,ingres 现在归 computer associates 所有。
postgresql 特征
- 函数:通过函数,可以在数据库服务器端执行指令程序。
- 索引:用户可以自定义索引方法,或使用内置的 b 树,哈希表与 gist 索引。
- 触发器:触发器是由sql语句查询所触发的事件。如:一个insert语句可能触发一个检查数据完整性的触发器。触发器通常由insert或update语句触发。 多版本并发控制:postgresql使用多版本并发控制(mvcc,multiversion concurrency control)系统进行并发控制,该系统向每个用户提供了一个数据库的"快照",用户在事务内所作的每个修改,对于其他的用户都不可见,直到该事务成功提交。
- 规则:规则(rule)允许一个查询能被重写,通常用来实现对视图(view)的操作,如插入(insert)、更新(update)、删除(delete)。
- 数据类型:包括文本、任意精度的数值数组、json 数据、枚举类型、xml 数据等。
- 全文检索:通过 tsearch2 或 openfts,8.3版本中内嵌 tsearch2。
- nosql:json,jsonb,xml,hstore 原生支持,至 nosql 数据库的外部数据包装器。
- 数据仓库:能平滑迁移至同属 postgresql 生态的 greenplum,deepgreen,hawk 等,使用 fdw 进行 etl。
程序语言支持
postgresql 支持四种标准的编程语言,允许用户用任何一种语言编写自己的代码,并且可以由 postgresql 数据库服务器执行。这编程语言是 - pl/pgsql、pl/tcl、pl/perl 和 pl/python。此外,还支持其他非标准编程语言,如 pl/php、pl/v8、pl/ruby、pl/java 等。