Um SGBD que não possui um controle de concorrência efetivo ...

Próximas questões
Com base no mesmo assunto
Q1622520 Banco de Dados
Um SGBD que não possui um controle de concorrência efetivo pode apresentar problemas na integridade de seus dados. Suponha que uma transação T1 atualiza determinado registro de uma tabela e, nesse meio tempo, outra transação T2 utiliza esse mesmo registro para suas operações. Contudo a transação T1 falha e é desfeita pelo SGBD. Esse problema é conhecido como
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: E - Leitura Suja.

O tema da questão aborda um tópico muito importante em Bancos de Dados relacionado à concorrência, que é o processo de gerenciamento de vários acessos simultâneos ao mesmo banco de dados. Quando falamos em concorrência, estamos preocupados com o controle de interações entre transações concorrentes, garantindo a integridade e a consistência dos dados.

No cenário apresentado, temos duas transações, T1 e T2, atuando sobre o mesmo registro. T1 atualiza o registro, mas antes que possa ser confirmada (commit), ocorre uma falha e a transação é desfeita (rollback). Se T2 leu o valor atualizado por T1 e prosseguiu com suas operações baseando-se nesse valor que não é mais válido, temos o que é chamado de Leitura Suja (Dirty Read). Isso ocorre porque T2 leu dados que não foram confirmados e que, posteriormente, foram descartados devido ao fracasso da transação T1.

A Leitura Suja é problemática porque uma transação acaba usando dados que podem não existir mais, o que pode levar a decisões equivocadas ou a uma cadeia de erros e inconsistências nos dados do banco. Para evitar esse tipo de problema, os SGBDs implementam mecanismos de controle de concorrência como bloqueios (locks) e timestamps, que ajudam a garantir a consistência dos dados mesmo em ambientes com muitas transações ocorrendo simultaneamente.

Para entender e resolver essa questão, é necessário conhecer os fenômenos que podem ocorrer na ausência de um controle de concorrência adequado e saber como cada um desses fenômenos afeta a integridade dos dados. Esse conhecimento é fundamental tanto para o uso quanto para a administração de SGBDs em ambientes que exigem alta confiabilidade e consistência.

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

GABARITO: LETRA E

Problema da atualização temporária (ou leitura suja): ocorre quando uma transação atualiza um item no banco de dados e depois a transação falha por algum motivo. Nesse meio tempo, o item atualizado é acessado por outra transação, antes de ser alterado de volta para o seu valor original.

Problema de resumo incorreto: 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 foram atualizados.

Problema de atualização perdida: ocorre quando duas transações que acessam os mesmos itens do banco de dados tem suas operações intercaladas de modo que isso torna o valor de alguns itens do banco de dados incorreto.

Alternativa: E

Leitura fantasma:

A transação executa uma segunda vez uma consulta que retorna um conjunto de linhas que satisfazem uma determinada condição de procura, e descobre que o conjunto de linhas que satisfazem a condição é diferente por causa de uma outra transação efetivada recentemente.

Leitura Suja:

A transação lê dados escritos por uma transação simultânea não efetivada (uncommitted)

fonte:

http://pgdocptbr.sourceforge.net/pg80/transaction-iso.html

A e B SÃO LEITURA FANTASMA = 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.

C é Impasse

D = Quando 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.

T1 ATUALIZOU e FALHOU ou SEJA COMMIT FALHO, e nesse meio tempo T2 utilizou esse mesmo registro.

GABARITO E

- Leitura Suja/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.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo