Questão de Banco de Dados — Álgebra Relacional — VUNESP 2023
Banco de Dados›Álgebra Relacional
Código
vu195609
Banca
VUNESP
Órgão
TJ RS
Ano
2023
Cargo
ATI ( )
Considere a seguinte tabela de um banco de dados relacional:
Veículo (RENAVAM, Modelo, Marca, Ano)
O comando da álgebra relacional que proporciona a exibição do modelo e ano de veículos, com ano maior do que 2018 é:
A\piModelo, Ano σ(Veıˊculo.Ano>2018)
B\piModelo, Ano σ(Veículo) (Ano>2018))
C\piModelo and Ano>2018 (Veículo))
D\piModelo, Ano (\sigmaAno > 2018 (Veículo))
E\piModelo, Ano, Ano > 2018 (Veículo))
Revelar gabarito e comentário▾
GabaritoD — \piModelo, Ano (\sigmaAno > 2018 (Veículo))
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 e Projeção
Gabarito: letra D. A consulta que exibe apenas os atributos Modelo e Ano dos veículos com Ano maior que 2018 é πModelo, Ano (σAno > 2018 (Veículo)), pois a seleção (σ) filtra as linhas (tuplas) que satisfazem a condição e a projeção (π) seleciona as colunas (atributos) desejadas — exatamente a ordem e a sintaxe da alternativa D.
A álgebra relacional é uma linguagem formal de consulta baseada em operações sobre relações (tabelas). Cada operação recebe uma ou mais relações como entrada e produz uma nova relação como saída — propriedade conhecida como fechamento. As duas operações fundamentais para esta questão são:
Seleção (σ): filtra linhas (tuplas) que satisfazem um predicado. Ex.: σAno > 2018 (Veículo) retorna todas as tuplas cujo atributo Ano seja maior que 2018.
Projeção (π): filtra colunas (atributos), eliminando tuplas duplicadas. Ex.: πModelo, Ano (Veículo) retorna apenas as colunas Modelo e Ano.
A ordem correta das operações é crucial: primeiro aplica-se a seleção para restringir as linhas e, em seguida, a projeção para escolher as colunas. Isso porque, se a projeção fosse aplicada antes, o atributo Ano (necessário para a condição) poderia ser descartado, impossibilitando a seleção. A sintaxe canônica é πatributos (σcondição (Relação)).
Exemplo prático: Considere a tabela Veículo com as tuplas (RENAVAM=1, Modelo='Gol', Marca='VW', Ano=2019) e (RENAVAM=2, Modelo='Civic', Marca='Honda', Ano=2017). Aplicando σAno > 2018 (Veículo), obtemos apenas a primeira tupla. Em seguida, πModelo, Ano sobre esse resultado retorna a linha ('Gol', 2019).
A pegadinha da banca está na sintaxe e na ordem das operações. Muitas alternativas misturam os operadores ou colocam a condição no lugar errado, como se a projeção pudesse conter um predicado ou a seleção fosse aplicada após a projeção sem o atributo necessário. A alternativa correta é a única que segue a notação padrão: projeção externa, seleção interna com a condição sobre o atributo Ano.
Guarde a distinção: seleção = linhas (tuplas), projeção = colunas (atributos). É nessa fronteira que as alternativas se dividem.
1Seleção (σ) filtra linhas
2Projeção (π) escolhe colunas
3Resultado final
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
A expressão πModelo, Ano (σ (Veículo.Ano>2018)) está incorreta porque a condição da seleção está escrita de forma incompleta: σ (Veículo.Ano>2018) não especifica o operador relacional (como >) de forma adequada — falta o nome do atributo antes do operador, e a sintaxe Veículo.Ano>2018 dentro dos parênteses da seleção não é a forma canônica. A forma correta seria σAno > 2018 (Veículo). Além disso, a notação com o nome da tabela prefixado (Veículo.Ano) não é usada na álgebra relacional pura; usa-se apenas o nome do atributo.
Alternativa B — ❌ Incorreta
A expressão πModelo, Ano σ(Veículo) (Ano>2018)) está incorreta por dois motivos: (1) a seleção σ(Veículo) não possui condição — o predicado Ano>2018 está fora dos parênteses da seleção, o que é sintaticamente inválido; (2) a ordem está invertida: a projeção é aplicada antes da seleção, o que descartaria o atributo Ano antes de poder filtrar por ele. A forma correta exige a seleção primeiro, com a condição dentro dos parênteses.
Alternativa C — ❌ Incorreta
A expressão πModelo and Ano>2018 (Veículo)) está incorreta porque mistura a sintaxe da álgebra relacional com a da SQL: o uso de and dentro da projeção não é válido — a projeção deve listar apenas os atributos separados por vírgula, e a condição deve estar na seleção. Além disso, a condição Ano>2018 está dentro da projeção, o que não faz sentido, pois a projeção não filtra linhas.
Alternativa D — ✅ Correta ⟵ GABARITO
A expressão πModelo, Ano (σAno > 2018 (Veículo)) está correta porque segue exatamente a sintaxe da álgebra relacional: primeiro a seleçãoσAno > 2018 (Veículo) filtra as tuplas com Ano maior que 2018, e depois a projeçãoπModelo, Ano seleciona apenas os atributos Modelo e Ano. A ordem é a correta: seleção (linhas) antes da projeção (colunas), garantindo que o atributo Ano esteja disponível para a condição.
Alternativa E — ❌ Incorreta
A expressão πModelo, Ano, Ano > 2018 (Veículo)) está incorreta porque inclui a condição Ano > 2018 como se fosse um atributo na projeção. A projeção deve listar apenas nomes de atributos; a condição de filtro deve estar na seleção. Além disso, não há operador de seleção na expressão, então nenhuma linha seria filtrada.
Gabarito: letra D — a única que aplica corretamente a seleção (σ) para filtrar linhas e a projeção (π) para escolher colunas, na ordem e com a sintaxe adequadas.