PostgreSQLポータルサイト <Let's Postgres> http://lets.postgresql.jp/
入門から運用、チューニングノウハウ、新機能の解説など、幅広い内容の技術解説記事をお読みいただけます。

Chapter 3. システムカタログ

3.1. 概要

システムカタログとは、リレーショナルデータベースの管理システムがテーブルや列の情報などのメタデータの概要と内部的な情報を格納する場所です。PostgreSQL のシステムカタログは通常のテーブルで作成されています。テーブルを削除したり再作成したり、列の追加および値の挿入や更新をすることは可能ですが、これらの行為によりデータベースシステムを著しく破壊してしまう可能性があります。通常は手作業でシステムカタログを変更してはならず、その代わりとして SQL コマンドを使用します。(たとえば CREATE DATABASEpg_database カタログに行を挿入し、ディスク上に実際のデータベースを作成します。) しかし、アクセスメソッドにインデックスを追加するときのような特に難易度の高い操作のときなどは例外があります。

ほとんどのシステムカタログはデータベースを作成するときにテンプレートデータベースからコピーされるため、データベースに固有のものとなります。 ごく一部のシステムカタログが、インストレーション内のすべてのデータベースにわたって物理的に共有されます。これらについては、個々のカタログの説明に記録されています。

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

カタログ名用途
pg_aggregate集約関数
pg_amインデックスアクセスメソッド
pg_amopアクセスメソッド演算子
pg_amprocアクセスメソッドサポートプロシージャ
pg_attrdef列のデフォルト値
pg_attributeテーブルの列("属性", "フィールド"
pg_castキャスト(データ型変換)
pg_classテーブル、インデックス、シーケンス("リレーション"
pg_constraintチェック制約、一意性/主キー制約、外部キー制約
pg_conversion変換情報のコード化
pg_databaseこのデータベースクラスタにあるデータベース
pg_dependデータベースオブジェクト間の依存関係
pg_descriptionデータベースオブジェクトの説明やコメント
pg_groupデータベースユーザーのグループ
pg_index追加インデックス情報
pg_inheritsテーブル継承階層
pg_language関数記述言語
pg_largeobjectラージオブジェクト
pg_listener非同期通知
pg_namespace名前空間 (スキーマ)
pg_opclassインデックスアクセスメソッド演算子クラス
pg_operator演算子
pg_proc関数とプロシージャ
pg_rewrite問い合わせ書き換えルール
pg_shadowデータベースユーザ
pg_statisticオプティマイザ統計値
pg_triggerトリガ
pg_typeデータ型

各カタログのより詳細な解説を以下に示します。