← Questões de Banco de Dados

Banco de Dados · CONSULPLAN · 2025

Questão comentada de Banco de Dados

Um sistema de gestão de vendas possui a relação Vendas com os atributos: venda_id; data_venda; cliente_id; e valor_total. O requisito funcional é gerar um relatório que liste o cliente_id e o total de vendas (valor_total) acumulado por cada cliente no ano de 2023. Qual das seguintes expressões de álgebra relacional NÃO atende a esse requisito?

Gabarito: B

Em álgebra relacional, quando voce quer somar vendas de um recorte específico, o caminho normal é primeiro filtrar os registros do período e depois agrupar para calcular o total por cliente. Pense assim: primeiro voce separa as vendas de 2023, depois faz a conta. Se voce inverte essa ordem, o banco pode somar tudo antes e só depois tentar filtrar, o que bagunça o resultado. A expressão correta para esse tipo de relatório combina seleção (σ) e agregação/agrupamento (γ). A seleção limita os dados ao ano de 2023, e a agregação calcula SUM(valor_total) para cada cliente_id. Isso atende exatamente ao requisito: listar cliente_id e total acumulado por cliente no ano de 2023. O item B erra porque aplica a seleção YEAR(data_venda)=2023 depois da agregação. Depois de agrupar por cliente_id e somar valor_total, a relação resultante já não tem, em regra, a coluna data_venda como atributo individual. Ou seja, voce tenta filtrar por um campo que já foi “engolido” pela soma. É o tipo de ordem de operações que a banca adora cobrar. Em provas, lembre da regra prática: filtro antes de agrupar. É a mesma lógica de cozinhar feijão: você separa os grãos ruins antes de pôr na panela, não depois.

Continue treinando

Questões relacionadas