PostgreSQL关系型数据库

来源:互联网 发布:windows nt 4.0补丁包 编辑:程序博客网 时间:2024/06/10 22:42

介绍

PostgreSQL是一个自由的对象-关系数据库服务器(数据库管理系统)。开发者把它读为“post-gress-Q-L”,简略念为postgres。


什么是关系型数据库?什么是关系型数据库管理系统?

见上篇。


PostgreSQL支持大部分SQL标准并且提供了许多现代特性:复杂查询、外键、触发器、视图、事务完整性、MVCC。也可以用许多方法扩展,比如,通过增加新的数据类型、函数、操作符、集函数、索引。

特点

优点

1 多种数据类型支持 

世界上最丰富的数据类型支持,其中很多数据类型连商业数据库都不具备,例如IP类型和集合类型等;

2 全功能

PostgreSQL是全功能自动软件数据库,很长时间以来其是唯一支持事物、子查询、多版本并行控制系统(MVCC)、数据完成性检查等特性的自由软件数据库管理系统。

3 C/S架构

PostgreSQL采用比较经典的C/S(client/server)架构,也就是一个客户端对应一个服务器端守护进程的模式,这个守护进程分析客户端的查询请求,生成规划树,进行数据检索并最终把结果格式化输出后返回给客户端。

4 数据客户端接口 

为了方便客户端的程序编写,由数据库服务器提供了统一的客户端C接口,不同的客户端接口都是源自这个C接口,比如ODBC、JDBC、Python、Perl、Tcl、C/C++等。且其对接口的支持非常丰富,几乎支持所有类型的数据库客户端接口。

5 支持平台最多

缺点

1 学院味

早期的PostgreSQL继承了所有Ingres、Postgres、Postgres95的问题:过于学院味。首先它的目的是数据库研究,因此不论在稳定性、性能还是使用方面都没得到重视。

架构

PostgreSQL强壮的一个原因源于它的架构,和商业数据库一样,可以用于C/S(客户/服务器)环境。这对于用户和开发人员有很多好处。
PostgreSQL安装核心是数据库服务端进程,允许在一个独立服务器上。需要访问存储在数据库中的数据的应用程序必须通过数据库进程。这些客户端程序无法直接访问数据,即使他们和服务程序在同一台机器上。

软件特征

(1)函数:

通过函数,可以再数据库服务器端执行指令程序。尽管指令程序可以使用基本的SQL语句写成,但由于其缺乏流程控制等功能,所以postgreSQL中引入了使用其他语言编写函数的能力(内置PL/pgSQL、PL/Perl等脚本语言、编译语言C/C++、R统计语言PL/R)。
PostgreSQL支持行返回函数:它们的输出是一系列行类型数据的集合,可以在查询中当做表来使用。

(2)索引:

在PostgreSQL中,用户可以自定义索引方法,或使用内置B-tree,hash table等索引。有反向索引检索、表达式索引、部分索引、位图索引扫描几个索引功能。

(3)触发器:

触发器是由SQL语句查询所触发的事件。触发器通常由INSERT或UPDATE语句触发。

在PostgreSQL中,可在数据表上设置触发器,但无法在视图中设置。

(4)并发控制:

PostgreSQL使用锁版本并发控制(MVCC)系统进行并发控制,该系统向每个用户提供了一个数据库快照,用户在事务内所做的每个修改,对其他用户都不可见,直到该事务成功提交。很大程度上减少了对读取锁的依赖,同时保证了数据库高效的ACID原则。

(5)规则:

允许一个查询能被重写,通常被用作实现可更新的视图。

(6)数据类型:

PostgreSQL内置丰富的数据类型,包括:任意精度的数值、无限制长度文本、几何图元、IP地址、MAC地址、数组。
此外,用户还可以自定义数据类型。

(7)定义对象:

用户可以为数据库内所有对象定义新的类型,包括:索引、操作符(可重载现有操作符)、聚合函数、数据域、数据类型转换、会话(编码转换)。

(8)继承:

数据表的结构及属性可从一个父表中继承,数据在两者间共享。对子表/父表中数据的插入或者删除也将在父表/子表中体现(至今还未实现)。

(9)扩展


0 0
原创粉丝点击