第 43章システムカタログ

目次
43.1. 概要
43.2. pg_aggregate
43.3. pg_am
43.4. pg_amop
43.5. pg_amproc
43.6. pg_attrdef
43.7. pg_attribute
43.8. pg_cast
43.9. pg_class
43.10. pg_constraint
43.11. pg_conversion
43.12. pg_database
43.13. pg_depend
43.14. pg_description
43.15. pg_group
43.16. pg_index
43.17. pg_inherits
43.18. pg_language
43.19. pg_largeobject
43.20. pg_listener
43.21. pg_namespace
43.22. pg_opclass
43.23. pg_operator
43.24. pg_proc
43.25. pg_rewrite
43.26. pg_shadow
43.27. pg_statistic
43.28. pg_trigger
43.29. pg_type
43.30. システムビュー
43.31. pg_indexes
43.32. pg_locks
43.33. pg_rules
43.34. pg_settings
43.35. pg_stats
43.36. pg_tables
43.37. pg_user
43.38. pg_views

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

43.1. 概要

表43-1 でシステムカタログをリストしています。以下にシステムカタログのより詳細な説明をします。

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

表 43-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データ型