Imagem de fundo

Em sistemas de banco de dados, o controle de concorrência é responsável por garantir a ...

Em sistemas de banco de dados, o controle de concorrência é responsável por garantir a consistência dos dados quando múltiplas transações são executadas simultaneamente. Considere o seguinte cenário: a transação T1 detém um bloqueio exclusivo sobre o recurso R1 e solicita bloqueio sobre R2. Simultaneamente, a transação T2 detém um bloqueio exclusivo sobre R2 e solicita bloqueio sobre R1. Ambas permanecem indefinidamente em espera. Com base nesse cenário e nos conceitos de controle de concorrência, assinale a alternativa que apresenta a correta descrição do fenômeno ilustrado e sua relação com os mecanismos de gerenciamento de transações.


A

O cenário descreve uma situação de starvation, na qual T1 e T2 são continuamente preteridas pelo escalonador em favor de outras transações de maior prioridade, impedindo seu progresso sem que haja dependência circular entre elas.


B

O cenário descreve um deadlock, caracterizado pela espera circular entre transações que detêm recursos e aguardam pela liberação de recursos bloqueados por outras transações do mesmo ciclo, exigindo intervenção do SGBD para sua resolução.


C

O cenário descreve um problema de dirty read, no qual T1 lê dados modificados por T2 antes de sua confirmação, gerando inconsistência no resultado da transação leitora em caso de rollback posterior da transação escritora.


D

O cenário descreve uma violação do protocolo de bloqueio em duas fases (2PL), na qual ambas as transações adquirem novos bloqueios após já terem liberado bloqueios anteriores, caracterizando uma falha na fase de encolhimento que compromete a serialização do escalonamento.


E

O cenário descreve uma situação de cascading rollback, na qual o abortamento de T1 força o abortamento em cascata de T2 devido à dependência de leitura estabelecida entre elas durante a fase de execução concorrente, comprometendo a durabilidade das transações confirmadas.