Os catálogos do sistema (system catalogs) do servidor PostgreSQL, versão 16.2, servem para gerenciar e acessar informações sobre o banco de dados e seus objetos. Eles desempenham um papel fundamental nas operações internas do PostgreSQL, contribuindo para tarefas como otimização de consultas, controle de acesso e gerenciamento de transações. Considerando os system catalogs do PostgreSQL, versão 16.2, o catálogo
- A)pg_attrdef, que armazena valores padrão da coluna, com as principais informações sobre colunas armazenadas em pg_attribute.
Correta: pg_attrdef armazena definicoes de valores padrao das colunas, enquanto os dados principais das colunas ficam em pg_attribute.
- B)pg_database, que armazena informações sobre os bancos de dados disponíveis, uma cópia por banco de dados.
Errada: pg_database realmente guarda informacoes sobre os bancos de dados do cluster, mas a descricao do enunciado nao corresponde a esse catalogo.
- C)pg_sequence, que armazena informações sobre transformações, mecanismo de adaptação de tipos de dados a linguagens procedurais.
Errada: pg_sequence trata de sequencias, e nao de transformacoes ou adaptacao de tipos para linguagens procedurais.
- D)pg_shseclabel, que armazena informações sobre funções de suporte associadas a famílias de operadores de métodos de acesso.
Errada: pg_shseclabel relaciona-se a etiquetas de seguranca compartilhadas, nao a funcoes de suporte de familias de operadores.
- E)pg_statistic_ext, que armazena definições de wrapper de dados externos.
Errada: pg_statistic_ext armazena estatisticas estendidas para o otimizador, nao definicoes de wrapper de dados externos.
Gabarito: A
Os system catalogs do PostgreSQL sao as tabelas internas que guardam metadados sobre tudo o que existe no banco: tabelas, colunas, tipos, indices, funcoes, bancos e por ai vai. Pense neles como a "memoria oficial" do servidor, usada pelo proprio PostgreSQL para planejar consultas, verificar privilegios e administrar objetos. Nesta questao, o ponto central e saber a funcao de cada catalogo. O pg_attrdef guarda definicoes de valor padrao de colunas, enquanto os detalhes principais das colunas ficam no pg_attribute. Isso bate exatamente com o enunciado da alternativa A. As demais opcoes misturam catalogos de assuntos diferentes. O pg_database realmente registra informacoes sobre os bancos de dados existentes, o pg_sequence trata de sequencias, e os outros dois catalogos citados pertencem a areas bem distintas. A banca gosta desse jogo de troca de nomes parecidos, entao o segredo e associar cada catalogo ao seu papel especifico. Em resumo: quando o PostgreSQL precisa saber o que existe no banco e como cada objeto se comporta, ele consulta os system catalogs. E, neste caso, a definicao de valores padrao de colunas e coisa do pg_attrdef, com apoio das informacoes estruturais que ficam no pg_attribute.