Pular para o conteudo

Resumo TI Banco de Dados: Metadados e Catálogo de Sistema

Todo SGBD precisa saber descrever a si mesmo: quais tabelas existem, quais colunas cada uma tem, quem pode acessar o quê. Essa autodescrição é feita por metadados, armazenados no catálogo do sistema — um tema que já apareceu de relance nos resumos anteriores e que agora merece um mergulho próprio, porque é cobrado tanto na teoria quanto na prática de SQL.

Neste resumo, você vai entender o que são metadados, o que é o catálogo do sistema, como ele se relaciona com o esquema e a instância, e como consultá-lo na prática via INFORMATION_SCHEMA.

📲 Canal Oficial do Dicionário do Concurseiro no WhatsApp

Receba resumos, questões comentadas e novidades diretamente no seu celular!

👉 Acessar Canal no WhatsApp

💡 Conteúdo exclusivo para concurseiros. Totalmente gratuito!

🏷️ O que são metadados?

Metadados são “dados sobre dados”: informações que descrevem a estrutura, as regras e as propriedades dos dados armazenados, em vez dos dados de negócio propriamente ditos. Se uma tabela clientes guarda nomes e endereços (dados), a informação de que a coluna nome é do tipo VARCHAR(100) e não aceita NULL é metadado.

  • Metadados estruturais: tabelas, colunas, tipos, chaves, constraints — corresponde ao esquema conceitual;
  • Metadados de acesso: índices existentes, estatísticas de distribuição de valores — usados pelo otimizador de consultas;
  • Metadados de segurança: usuários, papéis (roles) e privilégios concedidos sobre cada objeto;
  • Metadados de objetos derivados: definições de views, procedures, functions e triggers.

📖 Catálogo do sistema: onde os metadados moram

O catálogo do sistema (também chamado de dicionário de dados ou metabase) é o repositório onde o SGBD armazena todos os seus metadados. Na prática, o catálogo é ele próprio um conjunto de tabelas — geridas automaticamente pelo SGBD, não diretamente pelo usuário final.

  • Autorreferência: o catálogo descreve inclusive a si mesmo — suas próprias tabelas de metadados têm um esquema, que também está registrado no catálogo;
  • Consultado internamente pelo SGBD: o verificador semântico usa o catálogo para validar se tabelas e colunas existem; o otimizador usa as estatísticas do catálogo para escolher planos de execução (ver resumo sobre componentes de um SGBD);
  • Também consultável pelo usuário: através de views e comandos específicos, sem acesso direto às estruturas internas do SGBD.

🔍 Consultando o catálogo na prática

O padrão SQL define o INFORMATION_SCHEMA — um conjunto de views padronizadas que expõem os metadados de forma portável entre diferentes SGBDs relacionais:

  • INFORMATION_SCHEMA.TABLES: lista as tabelas existentes no banco;
  • INFORMATION_SCHEMA.COLUMNS: lista colunas, tipos de dados e se aceitam NULL;
  • INFORMATION_SCHEMA.TABLE_CONSTRAINTS: lista chaves primárias, estrangeiras e outras constraints.

Além do INFORMATION_SCHEMA padronizado, cada SGBD também expõe catálogos próprios com informações adicionais e específicas de implementação: o PostgreSQL tem o esquema pg_catalog, o SQL Server expõe sys.tables/sys.columns, e o Oracle usa visões como ALL_TABLES, USER_TABLES e DBA_TABLES.

🔗 Catálogo, esquema e instância: como se relacionam

Retomando os conceitos do resumo anterior: o esquema é a estrutura do banco, e a instância é o conteúdo variável dessa estrutura num dado momento. O catálogo do sistema é onde o esquema fica registrado — é a representação persistente e consultável do esquema dentro do próprio SGBD. Sem o catálogo, o SGBD não teria como saber, em tempo de execução, que estrutura o banco possui.

⚠️ Pegadinhas comuns

  • Catálogo não é o mesmo que banco de dados do usuário: ele guarda metadados (dados sobre estrutura), não os dados de negócio da aplicação;
  • O catálogo é gerido pelo próprio SGBD, não editado manualmente: alterar diretamente as tabelas internas do catálogo (quando isso é sequer permitido) pode corromper o banco — a forma correta de alterar metadados é via DDL;
  • INFORMATION_SCHEMA é padronizado; pg_catalog/sys.*/ALL_TABLES não são: uma consulta usando INFORMATION_SCHEMA tende a ser portável entre SGBDs; usar o catálogo proprietário amarra o código a um produto específico;
  • Catálogo desatualizado prejudica o otimizador: se as estatísticas guardadas no catálogo não refletirem o estado real da tabela (por falta de execução de comandos como ANALYZE/UPDATE STATISTICS), o otimizador pode escolher planos de execução ruins mesmo com índices corretos.

🎯 Dica Final para a Prova

Toda vez que a questão mencionar “onde o SGBD guarda a definição das tabelas” ou “como o SGBD sabe validar uma consulta”, a resposta é o catálogo do sistema (ou dicionário de dados). Lembre-se do vínculo direto: metadados são o conteúdo, catálogo é o local de armazenamento, INFORMATION_SCHEMA é a forma padronizada de consultar esse conteúdo via SQL.

✓ Agora que você sabe onde e como o SGBD guarda os metadados sobre sua própria estrutura, o próximo passo é entender quem pode acessar esses dados — os diferentes usuários e papéis de um banco de dados, e como o controle de acesso se organiza em torno deles.


📍Gostou do conteúdo? Deixe um comentário, compartilhe e continue acompanhando o Dicionário do Concurseiro para mais Resumos de TI – Banco de Dados. Aqui você encontra explicações claras, atualizadas e com foco total no que cai em prova!

👉 Leia também no Dicionário do Concurseiro: Resumo TI Banco de Dados: Usuários de banco de dados e papéis


📚 O catálogo do sistema é a memória que o SGBD tem de si mesmo — sem ele, nenhuma consulta poderia ser validada nem otimizada. Entender essa autodescrição é entender como o banco de dados consegue ser, ao mesmo tempo, guardião e conhecedor da própria estrutura. Continue estudando!

Gostou deste conteúdo?

Favoritar

Comentários

Seja o primeiro a comentar.