Um analista de dados precisa consultar o sistema acadêmico de uma universidade. O banco de dados possui as seguintes relações: ALUNO(id_aluno, nome, idade, id_curso) CURSO(id_curso, nome_curso, modalidade) MATRICULA(id_aluno, id_disciplina, nota) O analista deseja obter exclusivamente os nomes dos alunos maiores de 20 anos que estão matriculados em alguma disciplina e pertencem a cursos na modalidade presencial, sem que colunas adicionais apareçam no resultado final. Com base nos operadores da álgebra relacional, assinale a alternativa que indica a expressão que atende ao objetivo descrito.
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”.
Álgebra Relacional: Seleção, Projeção e Junção
Gabarito: letra E. A expressão correta projeta apenas o atributo nome após aplicar a seleção sobre a junção das três relações, filtrando simultaneamente idade > 20 e modalidade = 'presencial'. Isso garante que o resultado contenha exclusivamente os nomes dos alunos que atendem a todos os critérios, sem colunas adicionais.
A álgebra relacional é uma linguagem formal de consulta que opera sobre relações (tabelas) e produz novas relações como resultado. Seus operadores fundamentais são a seleção (σ), que filtra linhas com base em uma condição; a projeção (π), que escolhe colunas específicas; e a junção (⋈), que combina tuplas de duas relações com base em uma condição de igualdade entre atributos. Compreender a ordem e a composição desses operadores é essencial para construir consultas corretas.
O objetivo do analista é obter exclusivamente os nomes dos alunos que satisfazem três condições: (1) ter idade maior que 20 anos, (2) estar matriculado em alguma disciplina e (3) pertencer a um curso na modalidade presencial. Para isso, é necessário combinar as três relações — ALUNO, MATRICULA e CURSO — por meio de junções naturais, pois a relação ALUNO se conecta a MATRICULA pela chave id_aluno, e ALUNO se conecta a CURSO pela chave id_curso. A junção natural (⋈) combina automaticamente as tuplas com valores iguais nos atributos de mesmo nome, eliminando colunas duplicadas.
A ordem dos operadores é crucial. Primeiro, devemos realizar a junção das três relações para obter uma relação que contenha todas as informações relevantes (nome, idade, modalidade, etc.). Em seguida, aplicamos a seleção para filtrar as linhas que atendem às condições idade > 20 e modalidade = 'presencial'. Por fim, aplicamos a projeção para selecionar apenas a coluna nome, eliminando qualquer outra coluna do resultado final. Essa sequência — junção, depois seleção, depois projeção — é a que atende exatamente ao que o analista deseja.
Um erro comum é aplicar a seleção antes da junção, o que pode ser válido em alguns casos, mas exige cuidado com a disponibilidade dos atributos. Por exemplo, a condição modalidade = 'presencial' só pode ser avaliada após a junção com a relação CURSO, pois o atributo modalidade não existe em ALUNO nem em MATRICULA. Portanto, qualquer expressão que tente filtrar por modalidade antes de unir com CURSO estará incorreta. Da mesma forma, a projeção deve ser a última operação, pois se aplicada antes da seleção, os atributos necessários para o filtro podem ser removidos.
A pegadinha desta questão está na ordem dos operadores e na necessidade de incluir todas as junções. A alternativa correta é a única que realiza a junção completa das três relações, aplica a seleção com ambas as condições e projeta apenas o atributo nome. As demais alternativas ou omitem uma junção necessária, ou aplicam a projeção antes da seleção, ou incluem colunas adicionais no resultado.
1Junção (⋈) das 3 relações
2Seleção (σ) — filtros
3Projeção (π) — só nome
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Esta alternativa projeta nome e nota, mas o analista deseja exclusivamente os nomes. A inclusão da coluna nota viola o requisito de que nenhuma coluna adicional apareça no resultado final. Além disso, a seleção é aplicada sobre a junção, o que está correto, mas a projeção inclui um atributo indevido.
Alternativa B — ❌ Incorreta
Esta alternativa projeta nome e id_aluno, novamente incluindo uma coluna adicional (id_aluno) que não deveria aparecer. Além disso, a seleção idade > 20 é aplicada apenas sobre ALUNO antes da junção, o que é válido, mas a condição modalidade = 'presencial' é aplicada sobre CURSO antes da junção, o que também é válido. No entanto, a projeção final inclui id_aluno, violando o requisito de exclusividade do nome.
Alternativa C — ❌ Incorreta
Esta alternativa aplica a projeção nomeantes da seleção. Isso significa que a seleção idade > 20 será aplicada sobre uma relação que já não contém o atributo idade, pois a projeção removeu todas as colunas exceto nome. Portanto, a seleção não pode ser avaliada corretamente, resultando em erro ou em um resultado vazio. A ordem correta exige que a seleção seja aplicada antes da projeção.
Alternativa D — ❌ Incorreta
Esta alternativa realiza a junção apenas entre ALUNO e CURSO, omitindo a relação MATRICULA. O analista exige que os alunos estejam matriculados em alguma disciplina, o que só pode ser verificado por meio da relação MATRICULA. Sem essa junção, a consulta retornaria alunos que não estão matriculados em nenhuma disciplina, violando o requisito.
Alternativa E — ✅ Correta ⟵ GABARITO
Esta alternativa realiza a junção natural das três relações (ALUNO ⋈ MATRICULA ⋈ CURSO), aplica a seleção com as condições idade > 20 e modalidade = 'presencial', e projeta apenas o atributo nome. A ordem é correta: primeiro a junção, depois a seleção, e por fim a projeção. O resultado contém exclusivamente os nomes dos alunos que atendem a todos os critérios, sem colunas adicionais.
NÃO CAIA NESSA!
A banca explora a ordem dos operadores e a necessidade de todas as junções. A alternativa C inverte a ordem de projeção e seleção, tornando a seleção impossível de ser avaliada. A alternativa D omite a junção com MATRICULA, ignorando o requisito de matrícula. A alternativa A e B incluem colunas adicionais (nota e id_aluno), violando a exclusividade do nome. A alternativa E é a única que atende a todos os requisitos na ordem correta.
PEGA ESSA DICA!
Para questões de álgebra relacional, identifique primeiro quais relações precisam ser unidas para obter todos os atributos necessários. Em seguida, determine se a seleção pode ser aplicada antes ou depois da junção, verificando se os atributos da condição estão disponíveis. Por fim, aplique a projeção como última operação para garantir que apenas as colunas desejadas apareçam no resultado. Lembre-se: a projeção remove colunas, então qualquer filtro que dependa de uma coluna deve ser feito antes dela.