目录
PostgreSQL简介
什么是数据库?
ORDBMS术语
SQL语言分类
PostgreSQL功能简介
数据类型
数据完整性
并发性,性能
可靠性、容灾
安全性
可拓展性
国际化、文本搜索
PostgreSQL是一个免费的对象-关系型数据库服务器(ORDBMS),遵循灵活的开源协议BSD。
PostgreSQL开发者将其念作post-gres-Q-L。
PostgreSQL目前是世界上最先进的开源关系型数据库,支持丰富的数据类型(如JSON、JSONB、数组类型及二进制大对象)和自定义类型。提供了丰富的接口。很容易拓展它的功能,如可以在GIST框架下实现自己的索引类型等。
PostgreSQL是完全的事务安全性数据库,完整地支持外键、视图、触发器和存储过程(函数),并支持多种语言开发存储过程,如PL/PGSQL、Perl、Python等。
PostgreSQL对很多高级开发语言有原生的编程接口,如C/C++、Java、.Net、Perl、Python、Ruby、Tcl 和ODBC以及其他语言等。
在中国,瀚高数据库是唯一的PostgreSQL商业发行版公司。
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。
我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。
所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
RDBMS 是关系数据库管理系统,是建立实体之间的联系,最后得到的是关系表。
ORDBMS(对象关系数据库系统)是面向对象技术与传统的关系数据库相结合的产物,查询处理是 ORDBMS 的重要组成部分,它的性能优劣将直接影响到DBMS 的性能。ORDBMS在原来关系数据库的基础上,增加了一些新的特性。
OODBMS 面向对象数据库管理系统,将所有实体都看着对象,并将这些对象类进行封装,对象之间的通信通过消息 OODBMS 对象关系数据库在实质上还是关系数据库 。
数据:描述事物的符号记录。数据是数据库中存储的基本对象,除基本的数字之外,像图书的名称、价格、作者都可以称之为数据。
行:一条记录是一组相关的数据。例如一个用户的姓名、年龄等信息数据。
列:一列数据元素包含相同类型的数据,如用户姓名的数据。
数据表:表是数据的矩阵。可以看做是简单的电子表格,有行列之分。
数据库:数据库是一些关联表的集合,存放数据的仓库。保证数据按照一定的格式进行存储。
主键:主键是唯一的。一个数据表中只能包含一个主键。主键可以用来规避重复数据且快速定位某一条数据。
外键:外键用来关联两张表。可以保证数据的一致性。
约束:数据应满足的规则,保证数据的有效性。
复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
参照完整性:参照完整性要求关系中不允许引用不存在的实体,与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据库的一致性。
DML(Data Manipulation Language):数据操作语言,用于修改数据(INSERT、UPDATE、DELETE、TRUNCATE)。
DDL(Data Definition Language):数据定义语言,用户定义数据的结构,创建、修改或删除数据库对象 (CREATE、DROP)。
DQL(Data Query Language):数据查询语言,用于查询数据(SELECT)
DCL(Data Control Language):数据控制语言,用于定义数据库用户权限(GRANT)、控制事务及对数据库实行监视等(ROLLBACK、COMMINT)。
由于PostgreSQL是在太强大,鄙人才疏学浅,只能粗略的介绍一下
基本类型:smallint、int、bigint、double precision、numeric、char、varchar、text、boolean等。
结构类型:time、timestamp、array、range、uuid、bit等
文档类型:json、jsonb、xml等
几何类型:point、line、circle等
网络类型:inet、cidr、macaddr等
自定义类型:composite、custom types等
唯一性、不为空
主键
外键
排出约束
锁
索引
高级索引
复杂的查询计划器/优化器
交互
多版本并发控制(MVCC)
读取查询的并行化和构建B树索引
表分区
SQL标准中定义的所有事物隔离级别。
即时表达式汇编(JIT)
预写日志(WAL)
复制:异步、同步、逻辑
时间点恢复(pitr),主动备用
表空间
身份认证
强大的访问控制系统
列和行级安全性
存储的功能和程序
程序语言(PL/PGSQL、Perl、Python等)
外部数据包装器:使用标准SQL接口连接到其他数据库或流
提供附加功能的拓展,如PostGIS
支持国际化字符集,例如通过ICU校对
全文检索