システムカタログとは、リレーショナルデータベースの管理システムがテーブルや列の情報などのメタデータの概要と内部的な情報を格納する場所です。 PostgreSQL のシステムカタログは通常のテーブルで作成されています。テーブルを削除したり再作成したり、列の追加および値の挿入や更新をすることは可能ですが、これらの行為によりデータベースシステムを著しく破壊してしまう可能性があります。通常は手作業でシステムカタログを変更してはならず、その代わりとして SQL コマンドを使用します。(たとえば CREATE DATABASE で pg_database カタログに行を挿入し、ディスク上に実際のデータベースを作成します。)しかし、アクセスメソッドにインデックスを追加するときのような難易度の高い操作のときなどは例外があります。
Table 3-1. システムカタログ
| カタログ名 | 用途 |
|---|---|
| pg_aggregate | 集約関数 |
| pg_am | インデックスアクセスメソッド |
| pg_amop | アクセスメソッド演算子 |
| pg_amproc | アクセスメソッドサポートプロシージャ |
| pg_attrdef | 列のデフォルト値 |
| pg_attribute | テーブルの列("属性", "フィールド") |
| pg_class | テーブル、インデックス、シーケンス("リレーション") |
| pg_database | このデータベースクラスタにあるデータベース |
| pg_description | データベースオブジェクトの説明やコメント |
| pg_group | データベースユーザーのグループ |
| pg_index | 追加インデックス情報 |
| pg_inherits | テーブル継承階層 |
| pg_language | 関数記述言語 |
| pg_largeobject | ラージオブジェクト |
| pg_listener | 非同期通知 |
| pg_opclass | インデックスアクセスメソッド演算子クラス |
| pg_operator | 演算子 |
| pg_proc | 関数とプロシージャ |
| pg_relcheck | チェック制約 |
| pg_rewrite | 問い合わせ書き換えルール |
| pg_shadow | データベースユーザ |
| pg_statistic | オプティマイザ統計値 |
| pg_trigger | トリガー |
| pg_type | データ型 |
カタログのより詳細な解説を以下に示します。インデックスアクセスメソッドに関連のあるカタログは プログラマガイドに説明が記されています。