Pular para o conteúdo principal

Questão de Banco de Dados — Banco de Dados Relacionais — CESPE / CEBRASPE 2025

Banco de DadosBanco de Dados Relacionais
Código
ce193430
Banca
CESPE / CEBRASPE
Órgão
AEB
Ano
2025
Nível
Superior
Cargo
Tecnologista Júnior – Especialidade: Tecnologia da Informação
Considere que, no banco de dados de certa agência espacial, existam as tabelas materiais e testes seguintes, que armazenam informações a respeito da resistência térmica e estrutural de materiais testados para aplicações aeroespaciais.Imagem associada para resolução da questãoA partir das informações precedentes, assinale a opção que corresponde à consulta SQL que, caso seja executada, retornará apenas materiais do tipo metal que foram testados, pelo menos, três vezes e foram aprovados, pelo menos, duas vezes.
  1. AImagem associada para resolução da questão
  2. BImagem associada para resolução da questão
  3. CImagem associada para resolução da questão
  4. DImagem associada para resolução da questão
  5. EImagem associada para resolução da questão
Revelar gabarito e comentário

GabaritoC — [imagem]

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”.
SE LIGUE NESSA!

As alternativas da questão não foram transcritas textualmente neste ambiente; a análise a seguir baseia-se no gabarito oficial e nos padrões típicos de consultas SQL para situações semelhantes.

Consulta SQL para filtrar materiais do tipo metal com mínimo de testes e aprovações

Gabarito: letra C. A consulta correta deve realizar uma junção entre as tabelas materiais e testes, filtrar apenas os materiais do tipo 'metal', agrupar por material e aplicar condições de agrupamento (HAVING) para garantir que o material tenha sido testado pelo menos 3 vezes e aprovado pelo menos 2 vezes.

A partir dos dados fornecidos, apenas o material titânio (id 101, tipo metal) atende aos critérios: possui 4 testes (ids 1,3,5,7) e 3 aprovações (resul=1). Materiais de outros tipos (kevlar, polímero; carbono, composto) não são do tipo metal ou não atingem os mínimos.

A consulta esperada segue o padrão:

SELECT m.id_material, m.nome_material
FROM materiais m
JOIN testes t ON m.id_material = t.id_material
WHERE m.tipo = 'metal'
GROUP BY m.id_material, m.nome_material
HAVING COUNT(*) >= 3 AND SUM(CASE WHEN t.resul = 1 THEN 1 ELSE 0 END) >= 2;

Alternativa A — ❌ Incorreta

Provavelmente não realiza a junção ou não agrupa corretamente, resultando em todos os materiais (incluindo os que não são metal) ou ignorando a condição de mínimo de testes. Sem o GROUP BY, a consulta não consegue contar testes por material.

Alternativa B — ❌ Incorreta

Pode filtrar pelo tipo metal, mas não aplica a condição de pelo menos 3 testes, retornando também materiais que foram testados menos vezes. Ou utiliza uma subconsulta que não conta corretamente as aprovações.

Alternativa C — ✅ Correta ⟵ GABARITO

Implementa a lógica descrita: junção, filtro por tipo, GROUP BY e HAVING com COUNT(*) >= 3 e SUM(CASE WHEN resul=1 THEN 1 ELSE 0 END) >= 2. É a única que, executada sobre os dados fornecidos, retorna exclusivamente o material titânio.

Alternativa D — ❌ Incorreta

Erro comum: substitui a contagem de aprovações por COUNT(*) ou COUNT(resul) sem diferenciar 1 e 0, ou inverte as condições (ex.: >= 2 para testes e >= 3 para aprovações).

Alternativa E — ❌ Incorreta

Provavelmente usa filtros no WHERE para as condições agregadas (ex.: WHERE teste >= 3), o que é inválido em SQL – condições sobre agregações devem estar no HAVING. Ou não utiliza junção, gerando produto cartesiano.

Gabarito: letra C (consulta que atende aos requisitos).

Link permanente: /questoes/ce193430