Pular para o conteúdo principal

Questão de Banco de Dados — Banco de Dados Transacionais (OLTP) — VUNESP 2023

Banco de DadosBanco de Dados Transacionais (OLTP)
Código
vu196887
Banca
VUNESP
Órgão
SP Regula
Ano
2023
Cargo
ARSP ( )

Um banco de dados relacional de um sistema de informação de uma loja possui as seguintes tabelas, as quais são apresentadas juntamente com seus dados na sua integralidade.

 

Cliente

Id_C (PK)

Nome_Cliente

1A
2B
3C
 

Produto

Id_P (PK)

Nome_Produto

Preco_Vitrine

1

Celular

2000,00

2

Televisor

1700,00

 

Venda

Id_V (PK)

Id_C (FK)

Data

11

01/09/2023

21

01/09/2023

32

02/09/2023

 

Item_Venda

Id_I (PK)

Id_V (FK)

Id_P (FK)

Quantidade

Preco_Venda

1121

1700,00

2111

1600,00

3221

1700,00

4311

2000,00

 

Com base nessas informações, assinale a alternativa correta.

  1. ANo dia 01/09/2023, a quantidade de produtos “Celular” vendidos é igual a 1.
  2. BO banco de dados apresenta problema de integridade referencial, já que há uma ocorrência em que o celular foi vendido a um preço diferente daquele anunciado na vitrine.
  3. CUma unidade do produto “Televisor” foi vendida com desconto ao cliente A.
  4. DO banco de dados apresenta problema de integridade referencial, uma vez que o cliente C não está envolvido em nenhuma venda.
  5. EO cliente A efetuou três compras na loja, totalizando quatro itens adquiridos.
Revelar gabarito e comentário

GabaritoA — No dia 01/09/2023, a quantidade de produtos “Celular” vendidos é igual a 1.

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”.

Banco de dados relacional: leitura de tabelas e integridade referencial

Gabarito: letra A. No dia 01/09/2023, a quantidade de produtos “Celular” vendidos é igual a 1, pois a única venda de celular nessa data consta no Item_Venda de Id_I = 2, com quantidade 1. As demais alternativas ou fazem afirmações falsas sobre os dados ou confundem o conceito de integridade referencial, que trata da validade das chaves estrangeiras, e não de coerência de preços ou de clientes sem vendas.

A questão exige, antes de tudo, saber ler um banco de dados relacional: os dados estão distribuídos em tabelas que se relacionam por chaves. A tabela Venda liga um cliente (Id_C) a uma venda (Id_V); a tabela Item_Venda liga cada venda a um produto (Id_P), com quantidade e preço praticado. Para saber quantos celulares foram vendidos em 01/09/2023, é preciso percorrer essa cadeia: identificar as vendas da data, depois os itens dessas vendas que são do produto “Celular” e, por fim, somar as quantidades.

Vamos fazer esse caminho com os dados fornecidos. As vendas do dia 01/09/2023 são as de Id_V = 1 e Id_V = 2 (ambas do cliente A). Os itens dessas vendas são:

  • Item 1: venda 1, produto 2 (Televisor), quantidade 1;

  • Item 2: venda 1, produto 1 (Celular), quantidade 1;

  • Item 3: venda 2, produto 2 (Televisor), quantidade 1.

Ou seja, no dia 01/09/2023 foram vendidos 1 celular (item 2) e 2 televisores (itens 1 e 3). A alternativa A está correta ao afirmar que a quantidade de celulares vendidos nessa data é 1.

Agora, o conceito de integridade referencial: é a regra que garante que um valor de chave estrangeira em uma tabela deve existir como chave primária na tabela referenciada (ou ser nulo, se permitido). Em outras palavras, não pode haver um Item_Venda apontando para uma Venda que não existe, nem uma Venda apontando para um Cliente inexistente. No banco da questão, todos os Id_V em Item_Venda existem na tabela Venda, e todos os Id_C em Venda existem na tabela Cliente — logo, não há violação de integridade referencial. Preço diferente do anunciado na vitrine é uma questão de consistência de dados de negócio, não de integridade referencial; e um cliente sem vendas é perfeitamente válido (não há regra que obrigue todo cliente a comprar).

Guarde essa distinção: integridade referencial = chaves estrangeiras válidas; coerência de valores entre tabelas (como preço) é outra categoria de restrição. É exatamente nessa fronteira que as alternativas B, C e D tentam confundir.

Critério

Alternativa A (correta)

Alternativa B

Alternativa C

Alternativa D

Alternativa E

Afirmação central

1 celular vendido em 01/09/2023

Problema de integridade referencial por preço diferente

Televisor vendido com desconto ao cliente A

Problema de integridade referencial por cliente sem venda

Cliente A fez 3 compras, 4 itens

Verificação nos dados

Vendas de 01/09: Id_V=1 e 2; único celular é o item Id_I=2, qtd=1

Preço de venda (R$1.600) ≠ preço de vitrine (R$2.000) — mas todas as FKs são válidas

Televisores vendidos ao cliente A (itens 1 e 3) têm preço R$1.700 = preço de vitrine

Cliente C não tem venda, mas todos os Id_C em Venda existem na tabela Cliente

Cliente A tem 2 vendas (Id_V=1 e 2) com 3 itens no total

Conceito de integridade referencial

Não se aplica (é contagem correta)

❌ Confunde com consistência de negócio

Não se aplica (é análise de preço)

❌ Confunde com regra de negócio

Não se aplica (é contagem)

Veredito

✅ Correta

❌ Incorreta

❌ Incorreta

❌ Incorreta

❌ Incorreta

Alternativa A — ✅ Correta ⟵ GABARITO

Como demonstrado, no dia 01/09/2023 as vendas foram as de Id_V = 1 e Id_V = 2. O único item com produto “Celular” (Id_P = 1) é o Item_Venda de Id_I = 2, com quantidade 1. Portanto, a quantidade de celulares vendidos nessa data é exatamente 1.

Alternativa B — ❌ Incorreta

Afirma que há problema de integridade referencial porque o celular foi vendido a preço diferente do anunciado na vitrine. Isso é um equívoco conceitual: a integridade referencial diz respeito à validade das chaves estrangeiras — todo Id_V e Id_P em Item_Venda existem nas tabelas Venda e Produto, respectivamente. A diferença entre Preco_Vitrine (R$ 2.000,00) e Preco_Venda (R$ 1.600,00) é uma questão de consistência semântica ou de regra de negócio (um desconto, por exemplo), não uma violação de integridade referencial.

Alternativa C — ❌ Incorreta

Diz que uma unidade do produto “Televisor” foi vendida com desconto ao cliente A. Vejamos: o cliente A fez as vendas 1 e 2. Os itens dessas vendas são os de Id_I = 1 (Televisor, preço 1.700,00), Id_I = 2 (Celular, preço 1.600,00) e Id_I = 3 (Televisor, preço 1.700,00). O preço de vitrine do Televisor é R$ 1.700,00 — ou seja, os dois televisores vendidos ao cliente A foram vendidos pelo preço cheio, sem desconto. O desconto ocorreu apenas no Celular (R$ 1.600,00 contra R$ 2.000,00 de vitrine).

Alternativa D — ❌ Incorreta

Afirma que há problema de integridade referencial porque o cliente C não está envolvido em nenhuma venda. Isso não é violação de integridade referencial: a regra exige que toda venda aponte para um cliente existente, mas não exige que todo cliente tenha venda. O cliente C simplesmente não comprou nada — situação perfeitamente válida. A integridade referencial está preservada, pois todos os Id_C em Venda (1 e 2) existem na tabela Cliente.

Alternativa E — ❌ Incorreta

Diz que o cliente A efetuou três compras, totalizando quatro itens. Na verdade, o cliente A fez duas vendas (Id_V = 1 e Id_V = 2), e o total de itens dessas vendas é três (itens 1, 2 e 3). A alternativa erra tanto no número de compras quanto no total de itens. O cliente B, por sua vez, fez uma venda (Id_V = 3) com um item (Id_I = 4).

NÃO CAIA NESSA!

A banca explora a confusão entre integridade referencial (validade das chaves estrangeiras) e consistência de dados de negócio (como preço coerente ou cliente com venda). Nas alternativas B e D, o enunciado apresenta situações que parecem "erros" no banco, mas não violam a integridade referencial — são apenas fatos do domínio. Fique atento: integridade referencial só se viola quando uma chave estrangeira aponta para um registro inexistente.

PEGA ESSA DICA!

Para resolver questões com tabelas, monte o caminho das chaves: comece pela tabela que tem o dado que você procura (ex.: data na Venda), suba para a tabela que liga (Item_Venda) e chegue ao dado desejado (Produto). Anote cada passo — isso evita contar itens de vendas erradas ou somar quantidades de produtos diferentes.

Gabarito: letra A

Link permanente: /questoes/vu196887