Questão nº 39

Questão de Tecnologia da Informação · FGV STN 2024 (nº 39)

FGV2024Auditor Federal de Finanças e Controle - Tecnologia da Informação (Operação e Infraestrutura)Tecnologia da Informação
Gabarito: Ever comentário ↓

Figura da questão de Tecnologia da Informação


Considere que um erro de programa na manipulação da tabela IPCA apresentada produziu a inserção de registros duplicados, de modo que algumas linhas da tabela ficaram com valores idênticos em suas colunas.
Analise as alternativas SQL que foram consideradas para a remoção das linhas redundantes.
I. Utilizar o comando delete com a cláusula except one.
II. Utilizar o comando delete incluindo a cláusula exists, o que faria com que a última linha de cada grupo de repetições não seria removida uma vez que não mais existiria uma outra linha idêntica.
III. Introduzir, temporariamente, uma nova coluna na tabela, com valores gerados por meio de um mecanismo de auto increment, ou sequence, e utilizar o uso do comando delete incluindo a cláusula exists.
Em relação a essas alternativas, é correto afirmar que

Resposta comentada

Gabarito Alternativa E

Remover linhas duplicadas em um banco de dados significa apagar cópias idênticas de registros em uma tabela, mantendo apenas uma única ocorrência de cada um. O desafio é identificar qual cópia manter quando todas as colunas são iguais.

  • (A) Incorreta: A alternativa III apresenta uma solução viável.
  • (B) Incorreta: As alternativas I e II não são soluções válidas ou confiáveis para o problema.
  • (C) Incorreta: A cláusula except one não é um comando SQL padrão para DELETE.
  • (D) Incorreta: Embora DELETE com EXISTS possa ser usado em alguns cenários, sem uma coluna de identificação única (como um ID auto-incremento) para diferenciar as linhas duplicadas, não há um critério confiável para determinar qual "última linha" manter. Se todas as colunas são idênticas, o SGBD não tem como distinguir uma cópia da outra para decidir qual remover ou qual manter, tornando a operação imprevisível ou ineficaz. Armadilha da banca: A tentação é pensar que EXISTS é sempre a resposta para duplicatas, mas sem um critério de desempate (como um ID), ele não funciona de forma consistente para manter "uma" cópia.
  • (E) Correta: Esta é uma técnica padrão e eficaz. Ao adicionar temporariamente uma coluna com valores únicos (como um AUTO_INCREMENT ou SEQUENCE), cada linha, mesmo que seu conteúdo original seja duplicado, ganha um identificador exclusivo. Com esse identificador, é possível usar o comando DELETE em conjunto com EXISTS (ou outras técnicas como GROUP BY e MIN/MAX do novo ID) para remover todas as cópias, exceto aquela com o menor (ou maior) temp_id, garantindo que apenas uma ocorrência de cada conjunto de valores duplicados seja mantida. Após a remoção, a coluna temporária pode ser descartada.

Fonte: FGV STN 2024 Auditor Federal de Finanças e Controle - Tecnologia da Informação (Operação e Infraestrutura) (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