PostgreSQL是自由的对象-关系型数据库服务器(数据库管理系统),在灵活的BSD风格许可证下发行。它在其他开放源代码数据库系统(比如MySQL和Firebird),和专有系统(比如Oracle、Sybase、IBM的DB2和Microsoft SQL Server)之外,为用户又提供了一种选择。
PostgreSQL起源
PostgreSQL经历了长时间的演变。开始,PostgreSQL是以加州大学伯克利分校计算机系的Ingres计划,这个计划的领导者迈克尔·斯通布雷克在1982年离开Berkeley去商业化Ingres,但是最后还是返回了学术界。在1985年返回Berkeley之后,Stonebraker开始了post-Ingres计划来致力于在1980年代早期变得日益清楚的、当代数据库系统的问题。Postgres和Ingres的代码库开始(并保持)完全分离了。
PostgreSQL的存储类型
PostgreSQL内置丰富的数据类型,包括:
- 任意精度的数值
- 无限制长度文本
- 几何图元
- IPv4地址与IPv6地址
- 无类域间路由地址块,MAC地址
- 数组
- JSON数据
- 枚举类型
- XML数据 (需要在PostgreSQL源码编译时指定 "--with-libxml"选项)
此外,用户可以创建自定义数据类型,通常通过PostgreSQL的GiST机制,它们也能被很好得索引,比如PostGIS地理信息系统的数据类型。
PostgreSQL用户定义对象
用户可以为数据库内几乎所有的对象定义新的类型,包括:
- 索引
- 操作符(可重载现有操作符。)
- 聚合函数
- 数据域
- 数据类型转换
- 会话(编码转换)
继承
数据表的结构及属性可从一个“父”表中继承,数据将在两者间共享。对子表中数据的插入或者删除也将在父表中体现,同样,对父表作出的修改,比如添加列等操作也会导致子表产生相应的改动。
其他功能
- 关系完整性约束:包括外键,列约束与行检查
- 视图
- 内、外(全、左、右)连接
- 子查询
- 事务处理
- 支持大部分SQL:2003标准的主要特征,以及不支持部分未来版本的支持情况,可至已有版本手册中查询。
- SSL加密连接
- 二进制/文本大对象的存储
- 在线备份
- 数据域
- 表分区
- 表空间
- 保存点
- 时刻点恢复
- 二阶段提交
- TOAST(The Oversized-Attribute Storage Technique,超大属性存储技术)用以透明地将超大表属性(如大MIME附件或XML消息)压缩后存储至独立的区域
- 正则表达式
文章评论