FC ConcursosFC Concursos

Questão FC374503

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 cli

Projeto e Modelagem de Dados

Instituto Consulplan · 2025

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?

  1. γ_cliente_id, SUM(valor_total) (σ_YEAR(data_venda)=2023 (Vendas))
  2. σ_YEAR(data_venda)=2023 (γ_cliente_id, SUM(valor_total) (Vendas))
  3. γ_cliente_id, SUM(valor_total) (σ_data_venda BETWEEN '2023-01-01' AND '2023-12-31' (Vendas))
  4. γ_cliente_id, SUM(valor_total) (σ_data_venda≥ '2023-01-01' ∧ data_venda≤ '2023-12-31' (Vendas))
Mostrar resposta e comentário

Gabarito

D

Comentário do professor

A expressão dada é
\( \gamma_{cliente\_id,\,SUM(valor\_total)}\big(\sigma_{data\_venda \ge '2023-01-01' \land data\_venda \le '2023-12-31'}(Vendas)\big)\).

O problema principal está no filtro de datas. Ao comparar literalmente com '2023-01-01' e '2023-12-31' assume‑se que data_venda tem formato puramente date e que todos os timestamps de 2023 caem nesse intervalo. Se data_venda for datetime, vendas ocorridas em '2023-12-31' com horário > '00:00:00' poderão ser excluídas. A forma correta e robusta seria usar uma condição que extraia o ano, por exemplo \(YEAR(data\_venda)=2023\), ou definir o limite superior inclusivo como '2023-12-31 23:59:59'.

O operador de agrupamento e a soma estão adequados, mas o critério de seleção falho faz com que a expressão não garanta o requisito de acumular todas as vendas de 2023 por cliente.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo