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!
💡 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 aceitamNULL;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_TABLESnão são: uma consulta usandoINFORMATION_SCHEMAtende 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!
Comentários
Seja o primeiro a comentar.
Você precisa fazer o login para publicar um comentário.