Pular para o conteúdo principal

Questão de Banco de Dados — Modelo relacional — FCC 2025

Banco de DadosModelo relacional
Código
fc073418
Banca
FCC
Órgão
Prefeitura de São Paulo - SP
Ano
2025
Nível
Superior
Cargo
Auditor Municipal de Controle Interno - AMCI Área de Especialização: Geral - Prova 3 Conhecimentos Especializados
Um Auditor de uma Prefeitura está analisando o banco de dados do sistema responsável por gerenciar pagamentos realizados aos fornecedores. O sistema utiliza o modelo de dados relacional e apresenta a seguinte estrutura:Q41.png 484×273O Auditor deseja listar todos os pagamentos realizados, exibindo o NomeFornecedor, O CNPJ e o ValorPagamento. É necessário relacionar as tabelas Pagamentos e Fornecedores, com base no modelo de dados relacional, para obter as informações corretamente.A consulta SQL correta para essa auditoria é
  1. ASELECT p.NomeFornecedor, f.CNPJ, p.ValorPagamento FROM Pagamentos p JOIN Fornecedores f ON p.lDFornecedor = f. IDPagamento;
  2. BSELECT f.NomeFornecedor, f.CNPJ, p.ValorPagamento FROM Pagamentos p FULL JOIN Fornecedores f;
  3. CSELECT f.NomeFornecedor, f.CNPJ, p.ValorPagamento FROM Pagamentos p INNER JOIN Fornecedores f ON p.IDFornecedor = f. IDFornecedor:
  4. DSELECT NomeFornecedor, CNPJ, ValorPagamento FROM Pagamentos, Fornecedores;
  5. ESELECT f.NomeFornecedor, f.CNPJ, p.ValorPagamento FROM Pagamentos p LEFT JOIN Fornecedores f ON p.IDPagamento = f . IDFornecedor;
Revelar gabarito e comentário

GabaritoC — SELECT f.NomeFornecedor, f.CNPJ, p.ValorPagamento FROM Pagamentos p INNER JOIN Fornecedores f ON p.IDFornecedor = f. IDFornecedor:

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Linguagem SQL: Junção de Tabelas (JOIN)

Gabarito: letra C. A consulta correta utiliza o operador INNER JOIN para combinar as tabelas Pagamentos e Fornecedores com base na igualdade entre a chave estrangeira IDFornecedor da tabela Pagamentos e a chave primária IDFornecedor da tabela Fornecedores, permitindo recuperar os dados solicitados de forma consistente.

Para realizar a auditoria, é necessário cruzar as informações das duas tabelas. A estrutura relacional apresentada mostra que a tabela Pagamentos possui o atributo IDFornecedor (chave estrangeira), que referencia a tabela Fornecedores (onde IDFornecedor é a chave primária). O INNER JOIN é o operador adequado para retornar apenas os registros que possuem correspondência em ambas as tabelas, garantindo que cada pagamento seja associado ao seu respectivo fornecedor.

Alternativa A — ❌ Incorreta

O erro está na condição de junção (ON p.lDFornecedor = f. IDPagamento). A consulta tenta relacionar a chave estrangeira de fornecedor com a chave primária de pagamento, o que é logicamente incorreto e não produzirá o resultado esperado.

Alternativa B — ❌ Incorreta

O uso de FULL JOIN sem uma cláusula ON ou USING é sintaticamente inválido na maioria dos SGBDs relacionais. Além disso, o FULL JOIN retornaria todos os registros de ambas as tabelas, mesmo sem correspondência, o que não atende ao objetivo de listar pagamentos realizados.

Alternativa C — ✅ Correta ⟵ GABARITO

Esta alternativa utiliza a sintaxe correta: seleciona os campos desejados (f.NomeFornecedor, f.CNPJ, p.ValorPagamento) e realiza a junção correta entre as tabelas Pagamentos (p) e Fornecedores (f) através da coluna comum IDFornecedor, que estabelece a integridade referencial entre elas.

Alternativa D — ❌ Incorreta

Esta consulta realiza um produto cartesiano (cross join implícito), combinando cada linha de Pagamentos com todas as linhas de Fornecedores. Isso resultaria em um conjunto de dados massivo e incorreto, sem filtrar apenas as associações válidas entre pagamento e fornecedor.

Alternativa E — ❌ Incorreta

O erro está na condição de junção (ON p.IDPagamento = f . IDFornecedor). A consulta tenta relacionar a chave primária da tabela Pagamentos com a chave primária da tabela Fornecedores, o que não faz sentido relacional e não recupera os dados corretamente.

PEGA ESSA DICA!

Ao analisar questões de SQL, sempre identifique primeiro as chaves primárias e estrangeiras no modelo. A condição do JOIN deve sempre comparar a chave estrangeira de uma tabela com a chave primária correspondente da outra tabela relacionada.

Link permanente: /questoes/fc073418