pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
介绍了基本的可扩展性概念之后, 我们现在可以看看目录实际上是如何 组织的。现在可以跳过本节,但后面 的某些章节如果没有这里给出的 信息将无法理解,所以请 给这一页做个标记以便以后 参考。 所有系统目录的名称都以 pg_ 开头。下面的类包含可能 对最终用户有用的信息。(还有很多其他 系统目录,但很少 需要直接查询它们。)
表 30.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 | 访问方法操作符类 |
图 30.1. Postgres 的主要系统目录

参考手册对这些 目录及其属性给出了更详细的 解释。不过, Postgres 的主要系统目录 展示了系统目录中的主要 实体及其关系。(不引用其他 实体的属性没有显示,除非它们是 主键的一部分。) 在你真正开始查看目录的内容 并了解它们如何相互关联之前,这张 图或多或少难以理解。就目前而言, 从这张图中要了解的要点如下:
在后面的几节中,我们将给出 系统目录上的各种连接查询, 它们显示我们扩展系统 所需的信息。看这张图应该会让 其中一些连接查询(它们通常是 三路或四路连接)更容易理解, 因为你将能看到查询 中使用的属性在其他 类中构成外键。
许多不同的特性(类、属性、 函数、类型、访问 方法等)在这个模式中紧密 集成。一条简单的 create 命令就可能修改其中许多 目录。
类型和过程 是这个模式的核心。
我们或多或少可以互换地使用 过程和函数这两个词。
几乎每个目录都包含对 这两个类之一或两者的实例的 引用。例如, Postgres 经常使用类型 签名(例如函数和 操作符的签名)来 标识其他目录的唯一实例。
有许多属性和关系的 含义是显而易见的,但也有许多 (特别是那些与访问 方法有关的)并非如此。 pg_am、pg_amop、pg_amproc、pg_operator 和 pg_opclass 之间的关系特别难以理解, 我们将在讨论了基本扩展之后(在把类型和操作符 接口到索引的一节 中)深入描述它们。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。