Os catálogos do sistema são os locais onde os sistemas gerenciadores de banco de dados relacionais armazenam os metadados do esquema, tais como informações sobre tabelas e colunas, e informações de controle internas. Os catálogos do sistema do PostgreSQL são tabelas comuns. Estas tabelas podem ser removidas e recriadas, podem ser adicionadas colunas, podem ser inseridos e atualizados valores, e desta forma arruinar inteiramente o sistema. Normalmente, os catálogos do sistema não devem ser modificados manualmente, sempre existe um comando SQL para fazê-lo (Por exemplo, CREATE DATABASE insere uma linha no catálogo pg_database — e cria realmente o banco de dados no disco). Existem exceções para algumas operações obscuras muito particulares, como adicionar método de acesso de índice. [1]
A Tabela 42-1 lista os catálogos do sistema. A documentação mais detalhada sobre cada catálogo é mostrada a seguir.
Os catálogos do sistema são, em sua maioria, copiados do banco de dados modelo durante a criação do banco de dados e, portanto, estes catálogos são específicos do banco de dados. Alguns poucos catálogos são compartilhados fisicamente entre todos os bancos de dados do agrupamento; isto está indicado na descrição individual do catálogo.
Tabela 42-1. Catálogos do sistema
| Nome do catálogo | Finalidade |
|---|---|
| pg_aggregate | funções de agregação |
| pg_am | métodos de acesso de índice |
| pg_amop | operadores de método de acesso |
| pg_amproc | procedimentos de suporte de método de acesso |
| pg_attrdef | valor padrão das colunas |
| pg_attribute | colunas de tabela ("atributos") |
| pg_cast | casts (conversões de tipos de dado) |
| pg_class | tabelas, índices, seqüências, visões ("relações") |
| pg_constraint | restrições de verificação, restrições de unicidade, restrições de chave primária, restrições de chave estrangeira |
| pg_conversion | informações sobre conversão de codificação |
| pg_database | bancos de dados que fazem parte deste agrupamento de bancos de dados |
| pg_depend | dependências entre objetos do banco de dados |
| pg_description | descrições ou comentários sobre os objetos do banco de dados |
| pg_group | grupos de usuários do banco de dados |
| pg_index | informações adicionais sobre índices |
| pg_inherits | hierarquia de herança de tabela |
| pg_language | linguagens para escrever funções |
| pg_largeobject | objetos grandes |
| pg_listener | suporte a notificação assíncrona |
| pg_namespace | esquemas |
| pg_opclass | classes de operador de método de acesso de índice |
| pg_operator | operadores |
| pg_proc | funções e procedimentos |
| pg_rewrite | regras de reescrita dos comandos |
| pg_shadow | usuários do banco de dados |
| pg_statistic | estatísticas do planejador |
| pg_tablespace | espaços de tabelas do agrupamento de bancos de dados |
| pg_trigger | gatilhos |
| pg_type | tipos de dado |
| [1] |
No diretório do tutorial existe o arquivo syscat.sql contendo várias consultas interessantes aos catálogos do sistema. (N. do T.) |