8.3. PostgreSQLシステムカタログについて

基本的な拡張の概念を紹介しましたので、実際にカタログがどのように設計されているか見てみたいと思います。今はこのセクションを飛ばしても構いませんが、ここで与えられる情報なしで後のセクションを理解するのは難しくなるため、後の参照用にこのセクションはマークしておいてください。すべてのシステムカタログはpg_で始まる名前を持っています。 次のテーブルはエンドユーザーに役立つかもしれない情報を持っています(ほかにもたくさんのシステムカタログがありますが、それらに直接問い合わせることはほとんど無いはずです)。

Table 8-1. PostgreSQLシステムカタログ

カタログ名説明
pg_database データベース
pg_class テーブル
pg_attribute テーブルカラム
pg_index インデックス
pg_proc プロシージャ/関数
pg_type 型(基本と複合の両方)
pg_operator 演算子
pg_aggregate 集約関数
pg_am アクセスメソッド
pg_amop アクセスメソッド演算子
pg_amproc アクセスメソッドサポート関数
pg_opclass アクセスメソッド演算子クラス

Figure 8-1. 主要なPostgreSQLシステムカタログ

Developer's Guide にはこれらのカタログとそのカラムの詳しい説明がありますが、Figure 8-1がシステムカタログの主要な実体とそれらの関係を表しています(他の実体を参照しない実体は主キーの一部でない限り表されていません)。この表は、実際にカタログの中身を見てそれらがお互いどう関係しているかを見るまでは理解しづらいものです。今は、この表で以下の項目を理解してください