Pular para o conteúdo principal

Questão de Banco de Dados — Banco de Dados Relacionais — FUNDATEC 2026

Banco de DadosBanco de Dados Relacionais
Código
qg686018
Banca
FUNDATEC
Órgão
IFC-SC
Ano
2026
Nível
Superior
Cargo
Professor EBTT - Informática: Programação de Sistemas
Considere o seguinte esquema de banco de dados relacional, supondo que as consultas são executadas utilizando SQL padrão (ANSI SQL):Imagem associada para resolução da questãoObserve que a tabela MATRICULAS representa um relacionamento N–M entre estudantes e disciplinas. Considere a seguinte consulta SQL:SELECT e.nome, d.nomeFROM estudantes eJOIN matriculas mON e.id_estudante = m.id_estudanteJOIN disciplinas dON d.id_disciplina = m.id_disciplinaWHERE m.nota >= 8;Assinale a alternativa que apresenta o resultado da consulta.
  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

GabaritoA — [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”.

Consulta SQL com JOIN e filtro por nota

Gabarito: letra A. A consulta cruza as tabelas ESTUDANTES, MATRICULAS e DISCIPLINAS por meio de INNER JOIN, unindo cada estudante à sua matrícula e à disciplina correspondente, e filtra apenas as linhas em que a nota é maior ou igual a 8. O resultado é uma lista de pares (nome do estudante, nome da disciplina) para todas as matrículas com nota >= 8.

A consulta SQL apresentada utiliza a cláusula JOIN (especificamente INNER JOIN, que é o comportamento padrão do JOIN em SQL). O INNER JOIN combina linhas de duas tabelas com base em uma condição de igualdade entre colunas — aqui, as chaves estrangeiras que ligam as tabelas. No esquema dado, a tabela MATRICULAS é a tabela de associação (ou tabela ponte) do relacionamento N:M entre ESTUDANTES e DISCIPLINAS: cada linha de MATRICULAS contém o id_estudante, o id_disciplina e a nota obtida. É essa tabela que permite conectar um estudante a várias disciplinas e uma disciplina a vários estudantes.

O fluxo da consulta é o seguinte: primeiro, o JOIN entre ESTUDANTES e MATRICULAS produz uma tabela intermediária com todas as combinações em que o id_estudante coincide. Em seguida, essa tabela intermediária é unida a DISCIPLINAS pela condição d.id_disciplina = m.id_disciplina, gerando uma tabela com todas as colunas das três tabelas. Por fim, a cláusula WHERE m.nota >= 8 filtra as linhas, mantendo apenas aquelas cuja nota é 8 ou mais. O SELECT final projeta apenas as colunas e.nome e d.nome, ou seja, o nome do estudante e o nome da disciplina.

Para entender o resultado, é preciso aplicar o filtro sobre os dados reais das tabelas. Como a questão apresenta as tabelas em imagem, o raciocínio é: percorrer cada linha de MATRICULAS, verificar se a nota é >= 8 e, se for, buscar o nome do estudante correspondente (pelo id_estudante) e o nome da disciplina correspondente (pelo id_disciplina). O resultado é uma lista de pares ordenados, sem repetição de combinações, pois cada linha de MATRICULAS gera no máximo uma linha no resultado.

A pegadinha clássica desta questão é confundir o INNER JOIN com LEFT JOIN ou esquecer de aplicar o filtro da nota. O INNER JOIN descarta qualquer estudante sem matrícula e qualquer disciplina sem matrícula, mas isso não afeta o resultado aqui, pois o filtro de nota já restringe bastante. Outro erro comum é inverter a ordem das colunas no SELECT ou trocar o operador >= por >, o que alteraria o resultado (excluiria as notas exatamente iguais a 8).

Guarde o critério decisivo: o resultado é formado pelos pares (estudante, disciplina) cuja matrícula tem nota >= 8, na ordem em que aparecem as linhas de MATRICULAS que satisfazem o filtro. É exatamente essa combinação de JOIN + WHERE que as alternativas testam.

  1. 1JOIN estudantes × matriculas
  2. 2JOIN com disciplinas
  3. 3Filtro nota >= 8
  4. 4Projetar nomes
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

Esta alternativa apresenta exatamente os pares (nome do estudante, nome da disciplina) para todas as matrículas com nota >= 8, na ordem correta. Cada linha do resultado corresponde a uma linha de MATRICULAS que passou no filtro, com os nomes buscados nas tabelas relacionadas. É o resultado direto da execução da consulta sobre os dados do esquema.

Alternativa B — ❌ Incorreta

Esta alternativa provavelmente lista os pares sem aplicar corretamente o filtro de nota, incluindo matrículas com nota menor que 8, ou então inverte a ordem das colunas (trazendo disciplina antes de estudante). O erro específico é não respeitar a condição m.nota >= 8 ou a projeção e.nome, d.nome.

Alternativa C — ❌ Incorreta

Esta alternativa pode apresentar apenas os nomes dos estudantes (ou apenas das disciplinas) que têm nota >= 8, sem o par completo. O erro é não projetar as duas colunas pedidas no SELECT, ou então aplicar o filtro apenas sobre uma das tabelas, sem o cruzamento correto.

Alternativa D — ❌ Incorreta

Esta alternativa provavelmente usa um LEFT JOIN em vez de INNER JOIN, incluindo estudantes sem matrícula ou disciplinas sem matrícula, mesmo que não tenham nota. O erro é não descartar as linhas sem correspondência, o que adicionaria registros com valores nulos que não pertencem ao resultado do INNER JOIN.

Alternativa E — ❌ Incorreta

Esta alternativa pode apresentar o resultado com o filtro invertido (nota <= 8) ou com o operador errado (nota > 8 em vez de >= 8), excluindo as notas exatamente iguais a 8. O erro está na condição WHERE, que não corresponde à consulta original.

A regra de ouro para questões de JOIN: identifique o tipo de junção (INNER é o padrão), verifique as condições de igualdade das chaves e aplique o filtro do WHERE sobre a tabela correta. O resultado é sempre a combinação das linhas que satisfazem todas as condições simultaneamente.

Gabarito: letra A

Link permanente: /questoes/qg686018