Questão nº 37

Questão de Análise de Sistemas · FGV TJDFT 2022 (nº 37)

FGV2022Analista Judiciário - Análise de SistemasAnálise de Sistemas
Gabarito: Aver comentário ↓

Considere um banco de dados relacional que contém uma única tabela, TURFE, cuja estrutura é exibida com sua instância a seguir.

Figura da questão de Análise de Sistemas

Para cada páreo, ou corrida, são armazenados os nomes dos cavalos participantes e os respectivos tempos. A classificação de cada cavalo numa corrida segue a ordem crescente de tempo. Não há empates.


Com relação à tabela TURFE, descrita anteriormente, o comando SQL que exibe, para cada páreo, somente o cavalo vencedor com o respectivo tempo é:

Resposta comentada

Gabarito Alternativa A

Conceito-chave: Para achar o vencedor de cada páreo, você precisa encontrar o cavalo cujo tempo é o menor entre todos os do mesmo páreo. A subconsulta correlacionada compara cada linha da tabela externa com as linhas da tabela interna, e o NOT EXISTS filtra exatamente quem não tem ninguém "melhor" (menor tempo) no mesmo páreo.

  • (A) Correta: A subconsulta procura, no mesmo páreo, um outro cavalo com tempo menor que o da linha atual. Se NOT EXISTS (não existe ninguém com tempo menor), então a linha atual é a de menor tempo — o vencedor. É o gabarito.
  • (B) Incorreta: Usa EXISTS com t.tempo > TURFE.tempo, ou seja, seleciona cavalos que têm alguém mais lento no mesmo páreo. Isso retornaria todos os cavalos, exceto o último colocado (o mais lento), não apenas o vencedor.
  • (C) Incorreta: Compara t.pareo <> TURFE.pareo (páreos diferentes) com tempos iguais. Isso não tem relação com a classificação dentro de um páreo; poderia retornar cavalos de corridas distintas, sem lógica de vencedor.
  • (D) Incorreta: Usa EXISTS com t.tempo < TURFE.tempo no mesmo páreo. Isso seleciona cavalos que têm alguém mais rápido que eles — ou seja, todos os perdedores, nunca o vencedor. É o distrator mais tentador, pois inverte a lógica do NOT EXISTS da alternativa correta, fazendo o aluno achar que "existe alguém menor" indica vitória, quando na verdade indica derrota.
  • (E) Incorreta: A condição t.tempo <> TURFE.tempo no mesmo páreo verifica se existe qualquer outro cavalo com tempo diferente. Como não há empates, sempre existirá um tempo diferente para qualquer linha, então NOT EXISTS nunca seria verdadeiro e a consulta retornaria vazio.

Fonte: FGV TJDFT 2022 Analista Judiciário - Análise de Sistemas (Caderno Tipo 1). 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