1、服务
PostgreSQL是作为一种服务安装在操作系统下。多个PostgreSQL服务可以运行于同一台问你服务器上,但是他们侦听端口不能重复,也不能共享同一个数据存储目录。
2、Database
每个PostgreSQL服务可以包含多个独立的database。
3、schema
database的下一层逻辑结构就是schema。
PostgreSQL在新建数据库是,会自动创建一个public的schema。如果没有设置search_path变量,那么PostgreSQL会将你创建的所有对象默认放入public schema中。如果表的数量少,这没有问题。如果有几千张表,那么建议你将表分门别类放入不同的schema中
4、catalog
catelog是系统级别的schema,用于存储系统函数和系统元数据。每个database创建好了以后会默认含有二个satelog。
- pg_catelog : 用于存储系统自带的函数、表、系统视图、数据类型转换器以及数据类型定义等元数据;
- infomation_schema:用于存储ANSI标准格式向外界提供PostgreSQL元数据信息
5、变量
变量是PostgreSQL通与配置的一部分是可以在多个级别进行设置的各种选项。包括服务级、database级、等
6、扩展包
相关函数、数据类型、数据类型转换器、自定义索引、表以及变量配置等打包成一个功能扩展包。
7、表
三级存储:database->schema->table。
注意PostgreSQL一个强大功能:
第一种:表继承。有父表和子表的层次化结构;
第二种:创建一张表的同时,系统会自动为此表创建一种对应的自定义数据类型。也就是可以定义一个数据结构成一个表,这个表是另一个标准的一个字段。
8、外部表和外部数据封装器(这个功能也很厉害)
通过FDW可以如同使用数据库数据使用外部sql server、cvs、PostgreSQL、Orale等数据库数据。
9、表空间、视图、函数(通常的存储过程)
10、内置的编程语言(SQL、PL/pgSQL、C)
11、运算符
12、数据类型
13、数据类型转换器:既然数据类型可以定义很复杂,那么就需要转换成另一个数据类型
14、序列(自动递增)
15、行和记录
16、触发器
17、规则
目前非常有用的功能:
- 增加对JSON类型的二进制存储并且支持索引。
- 支持对外部表建立触发器。只要对方表一修改数据,你立即可以得到通知。