Questão nº 48

Questão de Tecnologia da Informação · CESGRANRIO BASA 01/2018 (nº 48)

CESGRANRIO2018Técnico Científico - Área de Formação: Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Ever comentário ↓

Considere que, em um modelo relacional, há três tabelas bem formadas denominadas Cliente, Compra (que representa os produtos comprados por um cliente) e Produto. A PK dos clientes é o CPF, e a PK dos produtos é um código. Há atributos nome e UF de nascimento para os clientes, e atributos fabricante e categoria para os produtos. Ou seja, Cliente (cpf, nome, UF), Produto (cod, fabricante, categoria) e Compra (cpf, cod). Observe-se o seguinte comando SQL:

SELECT DISTINCT P.fabricante
FROM Produto P, Compra C
WHERE P.cod = C.cod
AND P.categoria = 'celular'
AND C.cpf IN (SELECT cpf FROM Cliente WHERE UF = 'RS')

Esse comando retorna dados que respondem à seguinte pergunta:

Resposta comentada

Gabarito Alternativa E

O comando junta as tabelas Produto e Compra pela chave cod, filtra os produtos da categoria 'celular' e, com o IN, seleciona apenas compras feitas por clientes cujo UF (estado de nascimento) é 'RS'. O DISTINCT só evita repetir fabricantes. Ou seja, a consulta devolve fabricantes de celulares comprados por clientes nascidos no RS — não “comprados no RS” (a tabela Compra não tem local de compra).

  • (A) Incorreta: A consulta não usa nenhum atributo de local de compra (não existe esse campo nas tabelas); o UF é de nascimento do cliente, não do local da compra.
  • (B) Incorreta: O IN filtra apenas clientes do RS, não os exclui; portanto, não retorna fabricantes de celulares “não comprados” por esses clientes.
  • (C) Incorreta: A consulta não menciona produção nem local de fabricação; UF é do cliente, e fabricante é um nome de empresa, não um estado.
  • (D) Incorreta: A pegadinha clássica: “comprados no Rio Grande do Sul” sugere local da compra, mas a tabela Compra só tem cpf e cod — não há cidade/UF da compra. O UF se refere ao nascimento do cliente.
  • (E) Correta: O WHERE exige P.categoria = 'celular', o IN exige clientes com UF = 'RS', e o JOIN (P.cod = C.cod) liga produtos a compras desses clientes — resultando exatamente em “fabricante dos celulares comprados por clientes nascidos no RS”.

Fonte: CESGRANRIO BASA 01/2018 Técnico Científico - Área de Formação: Tecnologia da Informação. Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho