关于 Postgres
系统表
在介绍了扩展性的基本概念后,我们现在看看系统表实际上是个什么布局.你目前可以忽略这章,但是如果没有这一章的信息,后面的一些章节的内容会变得很难懂,所以你最好把这一章打上标记,以备查询.所有系统表都具有以
pg_
开头的名称.下面的表格包含可能对最终用户有用的信息.(还有许多其他系统表,但是很难得有机会直接对它们进行查询.)
 
表 37-1. Postgres 系统表
 
| 表名称 | 
描述 | 
| pg_database | 
数据库 | 
| pg_class | 
表 | 
| pg_attribute | 
表属性 | 
| pg_index | 
从索引 | 
| pg_proc | 
过程 ( C 和 SQL) | 
| pg_type | 
类型 (包括基本类型和复合类型) | 
| pg_operator | 
操作符 | 
| pg_aggregate | 
聚集和聚集函数 | 
| pg_am | 
访问方法 | 
| pg_amop | 
访问方法操作符 | 
| pg_amproc | 
访问方法支持函数 | 
| pg_opclass | 
访问方法操作符表 | 
 
参考手册给出了关于这些表和它们的字段的更多的详细信息.不过,
主要的
Postgres 系统表 显示了系统表的主要成员和它们的字段.(与其他表无关的字段在这里没有显示出来,除非它们是主键的一部分.)这个表看起来或多或少有些难懂,除非你真正看了这些表的内容而且看了它们之间是如何相关的.从现在开始,我们要从这个图里面挖出下面这些东西:
在后面的几章里,我们将提供一些在系统表上的联合查询--这些查询展示了我们在扩展系统时所需要的信息.仔细研究这张图会让我们对这些联合查询(通常是三或四路联合)更容易理解,因为这样你就能看到在查询里用到的字段是其他表的外部键字.
许多不同的特性(表,属性,函数,类型,访问模式等.)是按照这个结构紧密集成在一起的.因而一个简单的
create 命令就有可能更改许多这些表.
类型和过程是这个图表的核心.
 
- 
注意:我们在这里多多少少把 过程 和 函数 混起来用.
 
几乎每个表都包含其他一个或多个表的字段的引用.例如, Postgres
经常使用类型签名(例如,函数或操作符的)来标识其他表的唯一记录.
有许多字段和关系有明显的含义,但是还有许多(尤其是那些与访问模式打交道的字段)没有(明显含义).表
pg_am,pg_amop,pg_amproc,pg_operator 和 pg_opclass 之间的关系尤其难以理解,所以我们将在讨论完基本扩展后更深入地讨论之(在类型接口和用于索引的操作符章节之后).