O controle de concorrência em bancos de dados conta com uma...

Próximas questões
Com base no mesmo assunto
Q1836581 Banco de Dados
O controle de concorrência em bancos de dados conta com uma técnica conhecida como validação ou técnica de certificação. Tal técnica utiliza um protocolo que conta com três fases cuja ordem de execução sequencial é:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Resposta Correta: D - Leitura, Validação e Escrita.

A concorrência em bancos de dados é uma área que aborda os problemas e as soluções associados à execução simultânea de transações em um sistema de banco de dados. Em um ambiente concorrente, várias transações podem tentar acessar e modificar os mesmos dados ao mesmo tempo, o que pode levar a inconsistências e erros se não for devidamente gerenciado. O controle de concorrência procura garantir que as transações ocorram de uma forma que preserve a integridade dos dados e a isolamento entre as transações.

A técnica de validação, também conhecida como técnica de certificação, é uma das abordagens utilizadas para controlar a concorrência. Ela é caracterizada por dividir o processo de execução de uma transação em três fases principais:

  • Leitura: Nesta fase, a transação apenas lê os dados do banco de dados, sem efetuar qualquer modificação.
  • Validação: Nesta fase, o sistema de banco de dados verifica se a transação pode ser comitada sem violar a consistência do banco de dados. Ou seja, verifica se as operações que a transação pretende realizar não entram em conflito com as operações de outras transações que estão sendo executadas em paralelo.
  • Escrita: Após passar pela fase de validação, e caso seja considerada válida, a transação efetivamente grava as alterações no banco de dados.

Essas fases asseguram que o banco de dados mantenha a sua consistência mesmo quando múltiplas transações estão tentando modificar os mesmos dados. É uma técnica otimista de controle de concorrência, pois presume que os conflitos serão raros, e portanto, realiza a verificação de conflitos apenas na fase de validação.

A alternativa "D - Leitura, Validação e Escrita" está correta porque descreve corretamente as três fases sequenciais pelo qual passa uma transação na técnica de validação. As outras alternativas não descrevem apropriadamente as fases de uma transação no contexto do controle de concorrência em bancos de dados.

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

Ao final da execução da transação, uma fase de validação verifica se qualquer uma das atualizações da transação viola a serialização. Algumas informações necessárias à fase de validação precisam ser mantidas pelo sistema.

Existem três fases para esse protocolo de controle de concorrência:

1. Fase de leitura. Uma transação pode ler valores dos itens de dados confirmados com base no banco de dados. Porém, as atualizações são aplicadas apenas a cópias locais (versões) dos itens de dados mantidos no espaço de trabalho da transação.

2. Fase de validação. A verificação é realizada para garantir que a serialização não será violada se as atualizações da transação forem aplicadas ao banco de dados.

3. Fase de gravação. Se a fase de validação for bem-sucedida, as atualizações da transação são aplicadas ao banco de dados; caso contrário, as atualizações são descartadas e a transação é reiniciada. 

Navathe.

GAB D.

A técnica de validação de três fases, também chamada de controle de concorrência por validação de tempo (timestamp ordering) ou otimista, é um dos métodos usados para garantir a integridade dos dados em ambientes de transações concorrentes.

Essa técnica assume que conflitos entre transações são raros e, por isso, não utiliza bloqueios (locks). Em vez disso, ela verifica se a execução de uma transação compromete a consistência do banco antes de aplicar as mudanças.

Esse método é dividido em três fases principais:

Fase de leitura (read phase):

* A transação executa suas operações de leitura e processamento sem modificar os dados no BD.

* Os valores lidos e os resultados intermediários são armazenados em uma área temporária.

Fase de validação (validation phase):

* Quando a transação tenta ser confirmada (commit), o sistema verifica se sua execução é compatível com outras transações concorrentes.

* A verificação se baseia em timestamps (marcadores de tempo) para garantir que nenhuma transação em execução tenha interferido nos dados lidos.

Fase de escrita (write phase):

* Se a transação passar na validação, os dados temporários são gravados no banco de dados permanentemente.

* Caso contrário, a transação é abortada e deve ser reiniciada.

O controle de concorrência otimista é eficiente em ambientes com poucas transações concorrentes, pois evita o custo de bloqueios. No entanto, se houver muitos conflitos, pode haver um alto número de abortos, reduzindo o desempenho.

Essa abordagem é ideal para sistemas de processamento analítico (OLAP), onde a maioria das transações apenas lê dados e poucas operações de escrita ocorrem simultaneamente. Já em sistemas de transações intensivas (OLTP), o modelo pessimista com bloqueios pode ser mais eficiente.

Clique para visualizar este comentário

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