Anhang E. Systemkataloge

Inhaltsverzeichnis
E.1. Überblick
E.2. pg_aggregate
E.3. pg_am
E.4. pg_amop
E.5. pg_amproc
E.6. pg_attrdef
E.7. pg_attribute
E.8. pg_cast
E.9. pg_class
E.10. pg_constraint
E.11. pg_conversion
E.12. pg_database
E.13. pg_depend
E.14. pg_description
E.15. pg_group
E.16. pg_index
E.17. pg_inherits
E.18. pg_language
E.19. pg_largeobject
E.20. pg_listener
E.21. pg_namespace
E.22. pg_opclass
E.23. pg_operator
E.24. pg_proc
E.25. pg_rewrite
E.26. pg_shadow
E.27. pg_statistic
E.28. pg_trigger
E.29. pg_type

In den Systemkatalogen speichern relationale Datenbanksysteme ihre Schemadaten, wie Informationen über Tabellen und Spalten, sowie interne Verwaltungsinformationen. In PostgreSQL sind die Systemkataloge normale Tabellen. Sie können die Tabellen löschen und neu erzeugen, Werte einfügen und ändern, und auf diese Weise ziemlich einfach das Datenbanksystem komplett durcheinander bringen. Normalerweise sollte man die Systemkataloge nicht von Hand ändern, denn dafür gibt es immer SQL-Befehle. (Zum Beispiel fügt CREATE DATABASE eine Spalte in den Katalog pg_database ein -- und erzeugt die Datenbank auch tatsächlich auf der Festplatte.) Es gibt einige Ausnahmen für besonders esoterische Operationen, wie das Erzeugen einer neuen Indexmethode.

E.1. Überblick

Tabelle E-1 listet die Systemkataloge. Einzelheiten zu jedem Systemkatalog folgen weiter unten.

Die meisten Systemkataloge werden bei der Erzeugung einer Datenbank aus der Template-Datenbank kopiert und sind danach nur für diese eine Datenbank zuständig. Ein paar Kataloge werden aber von allen Datenbanken in einem Cluster gemeinsam verwendet; das ist in der Beschreibung des Katalogs angegeben.

Tabelle E-1. Systemkataloge

KatalognameZweck
pg_aggregateAggregatfunktionen
pg_amIndexmethoden
pg_amopOperatoren für Operatorklassen
pg_amprocUnterstützungsprozeduren für Operatorklassen
pg_attrdefSpaltenvorgabewerte
pg_attributeTabellenspalten („Attribute“)
pg_castDatentypumwandlungen
pg_classTabellen, Sichten, Indexe, Sequenzen („Relationen“)
pg_constraintCheck-Constraints, Unique-Constraints, Primärschlüssel-Constraints, Fremdschlüssel-Constraints
pg_conversionZeichensatzkonversionsinformationen
pg_databaseDatenbanken in diesem Cluster
pg_dependAbhängigkeiten zwischen Datenbankobjekten
pg_descriptionBeschreibungen oder Kommentare über Datenbankobjekte
pg_groupGruppen von Datenbankbenutzern
pg_indexzusätzliche Indexinformationen
pg_inheritsTabellenvererbungshierarchie
pg_languageSprachen für Funktionen
pg_largeobjectLarge Objects
pg_listenerUnterstützung für asynchrone Benachrichtigungen
pg_namespaceSchemas
pg_opclassOperatorklassen für Indexzugriffsmethoden
pg_operatorOperatoren
pg_procFunktionen und Prozeduren
pg_rewriteAnfrageumschreiberegeln
pg_shadowDatenbankbenutzer
pg_statisticPlanerstatistiken
pg_triggerTrigger
pg_typeDatentypen