Sistemas Gerenciadores de Banco de Dados são concorrentes qu...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: B - dependência sem commit
Para compreender a alternativa correta, é necessário ter conhecimento sobre os problemas de concorrência em ambientes de banco de dados. Estes problemas surgem quando múltiplas transações operam sobre os mesmos dados simultaneamente. Um dos principais objetivos do controle de concorrência é assegurar a consistência e a integridade dos dados.
A situação apresentada descreve um cenário onde ocorre o que é chamado de dependência sem commit. Isso acontece quando uma transação lê dados que foram alterados por outra transação que ainda não foi confirmada, ou seja, não realizou o commit. Se a transação que realizou as mudanças é posteriormente cancelada (executa um ROLLBACK), as alterações são desfeitas. Isso pode levar a transação que leu os dados a trabalhar com informações que efetivamente nunca existiram no banco de dados.
A alternativa está correta porque descreve precisamente o problema mencionado: a transação A leu dados que foram atualizados pela transação B no tempo t1. Quando a transação B é cancelada em t3, as informações lidas por A podem já não ser válidas, já que dependiam do commit da transação B, que não ocorreu.
É importante destacar que o gerenciamento eficaz de transações em um SGBD é crucial para manter a confiabilidade e a integridade dos dados, e o conhecimento desses problemas de concorrência é fundamental para profissionais da área de banco de dados que se preparam para concursos públicos.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Dependência sem Commit é o mesmo que “Leituras Sujas”;
Análise Inconsistente é o mesmo que “Leituras não repetidas”.
Colega ROBERTO SILVA ESTÁ ERRADO, Análise Inconsistente é diferente de LEITURA NÃO REPETIDA.
D e E = Vazam, não são problemas de CONCORRÊNCIA
A = Apenas a TRANSAÇÃO B está mexendo na TUPLA, TRANSAÇÃO A está apenas ACESSANDO.
C = Possui um COMMIT
GABARITO B
A transação B atualizou uma tupla no tempo t1.
No instante seguinte, t2, a transação A leu essa mesma tupla.
No instante t3, a transação B foi cancelada, e ocorreu um ROLLBACK.
OBSERVEM ACONTECEU UM ERRO, TEVE UM ROLLBACK
- Atualização Perdida (LOST UPDATE) = Duas Transações ATUALIZAM o mesmo dado, Duas transações ACESSAM os mesmos dados do BD têm suas operações INTERCALADAS tornando o valor de alguns itens incorretos.
- SOBRESCRITA de DADOS ALTERADOS sem COMMIT.
- Leitura Suja/Leitura Inválida/Atualização Temporária/Dependência sem COMMIT (DIRTY-READ) = Esse problema ocorre quando UMA TRANSAÇÃO ATUALIZA um item do banco de dados e depois a TRANSAÇÃO FALHA (SEM COMMIT) por algum motivo. Nesse meio-tempo, o ITEM ATUALIZADO É ACESSADO (LIDO) POR OUTRA TRANSAÇÃO, ANTES DE SER ALTERADO PARA SEU VALOR ORIGINAL.
- DADOS MODIFICADOS QUE NÃO TIVERAM COMMIT
- Leitura Não Repetida (NONREPETEABLE READ) = Duas LEITURAS DE DADOS na mesma transação NÃO SE REPETEM. Na segunda leitura, DADOS NÃO EXISTEM OU FORAM MODIFICADOS.
- Uma transação T lê O MESMO ITEM DUAS VEZES e o item é ALTERADO POR OUTRA TRANSAÇÃO T’ ENTRE AS DUAS LEITURAS. Logo, T RECEBE VALORES DIFERENTES PARA SUAS DUAS LEITURAS NO MESMO ITEM.
- Leitura Fantasma/Resumo Incorreto/Sumário Incorreto (PHANTOM READ) = Se uma transação está calculando uma função de resumo de agregação em uma série de itens de banco de dados, enquanto outras transações estão atualizando alguns desses itens, a função de agregação pode calcular alguns valores antes que eles sejam atualizados e outros, depois que eles forem atualizados.
- Análise Inconsistente = Não tem falha, É semelhante à leitura suja, já que resulta na leitura inconsistente de valores por uma transação. A diferença é que a leitura ocorre sem que tenham ocorrido problemas com a transação concorrente, ou seja, as operações da transação são finalizadas usando o comando COMMIT.
- Leitura Suja com COMMIT.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo