Questão nº 71

Questão de Tecnologia da Informação · FGV TJ-AP 2024 (nº 71)

FGV2024Analista Judiciário - TI - Banco de DadosTecnologia da Informação
Gabarito: Cver comentário ↓

No contexto de transações em banco de dados, a transação T1 está inserindo um novo registro na tabela TB_JUIZ. Enquanto isso, a transação T2 está lendo todos os registros de TB_JUIZ para gerar uma listagem. Considere que:

  • T1 iniciou antes de T2;
  • T1 ainda não concluiu; e
  • T2 não enxerga o registro que está sendo inserido por T1.

A situação apresentada acima representa um:

Resposta comentada

Gabarito Alternativa C

Um registro fantasma (phantom record) é um tipo de anomalia em bancos de dados onde uma transação executa a mesma consulta duas vezes e, entre as execuções, outra transação insere ou exclui registros que afetam o conjunto de resultados da consulta, fazendo com que a segunda execução retorne um conjunto de dados diferente.

  • (A) Incorreta: Inanição (starvation) ocorre quando uma transação é continuamente impedida de acessar um recurso, nunca conseguindo progredir, o que não é o caso descrito.
  • (B) Incorreta: Latches são bloqueios internos de baixo nível usados pelo sistema de banco de dados para proteger estruturas de memória e não se referem à visibilidade de dados entre transações.
  • (C) Correta: A situação descrita é um cenário clássico para a ocorrência de um registro fantasma. T2 não enxerga o registro que T1 está inserindo porque T1 ainda não confirmou (commit). Se T1 confirmar e T2 refizer a mesma leitura, T2 verá um novo registro que não estava lá antes, caracterizando um "registro fantasma" que apareceu no conjunto de resultados.
  • (D) Incorreta: Embora T1 tenha um bloqueio exclusivo sobre o registro que está inserindo, o foco da questão para T2, que está lendo todos os registros, é a inconsistência no conjunto de dados que pode surgir. A armadilha é focar no bloqueio individual do item (que existe), em vez da anomalia de conjunto de dados (registro fantasma) que a situação propicia. O problema não é que T2 está bloqueado de ler, mas que sua visão do conjunto de dados está incompleta e pode mudar.
  • (E) Incorreta: Deadlock é um impasse onde transações ficam esperando umas pelas outras em um ciclo, o que não é o que o cenário descreve. O esquema wait-die é uma forma de preveni-lo.

Fonte: FGV TJ-AP 2024 Analista Judiciário - TI - Banco de Dados (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