Álgebra Relacional em Banco de Dados
Gabarito: letra E. A expressão que projeta apenas o nome (π_nome) após realizar as junções naturais entre as três tabelas (ALUNO ⋈ MATRICULA ⋈ CURSO) e aplicar a seleção (σ) com as condições idade > 20 e modalidade = 'presencial' atende exatamente ao objetivo: obter exclusivamente os nomes dos alunos maiores de 20 anos, matriculados em alguma disciplina e pertencentes a cursos presenciais, sem colunas adicionais.
A banca testa o conhecimento da ordem dos operadores e da necessidade de incluir a tabela MATRICULA para garantir que o aluno esteja matriculado em alguma disciplina.
Alternativa A — ❌ Incorreta
A projeção inclui nota (π_nome, nota), o que viola a exigência de "sem que colunas adicionais apareçam no resultado final". Além disso, a seleção é aplicada antes da junção? Na verdade, a expressão é π_nome, nota ( σ ... (ALUNO ⋈ MATRICULA ⋈ CURSO)); a seleção está correta, mas a projeção traz coluna extra.
Alternativa B — ❌ Incorreta
A projeção inclui id_aluno (π_nome, id_aluno), também adicionando coluna extra. Apesar de as seleções parciais estarem corretas, o resultado final tem coluna indesejada.
Alternativa C — ❌ Incorreta
A seleção é aplicada após a projeção: σ_idade>20 (π_nome ( ... )). Após projetar apenas nome, a coluna idade não está mais disponível para a condição idade > 20. A expressão é inválida.
Alternativa D — ❌ Incorreta
Falta a junção com MATRICULA. A condição "matriculados em alguma disciplina" exige que o aluno esteja na tabela MATRICULA; sem essa junção, podem ser retornados alunos não matriculados em nenhuma disciplina.
Alternativa E — ✅ Correta ⟵ GABARITO
A expressão primeiro junta as três tabelas (garantindo alunos matriculados), aplica a seleção com as duas condições sobre idade e modalidade, e por fim projeta apenas nome. Isso produz exatamente o conjunto desejado, sem colunas extras.
Gabarito: letra E