Transação Flashcards
O que é?
Conjunto de operações lógicas que são executadas sobre os dados do BD
É uma unidade lógica de trabalho que atua sobre o banco de dados.
Deve ser vista pelo usuário como uma única unidade de processamento (uma única etapa)
Conceitos - DTL
Linguagem utilizada para implementar a lógica das transações (Begin, End, Commit, Abort, Read, Write, Savepoint)
Conceitos - Begin
Marca o início de uma transação
Conceitos - End
Marca o final de uma transação
Conceitos - Commit
Sinal de término com sucesso de uma transação (as alterações podem ser permanentemente gravadas no BD).
Conceitos - Abort
Sinal de que a transação não terminou com sucesso (não devem ser feitas as alterações no BD pelas transações que já tenham ocorrido e essas devem ser desfeitas).
Rollback, I.E, Reversão
Conceitos - Savepoint
Marca um ponto dentro da transação atual, sendo utilizado para dividir uma transação em partes menores (utilizado para evitar começar uma transação do começo caso haja abort, nesse caso, começaria pelo savepoint)
Conceitos - Rollback to save point
Retorna a transação para um savepoint específico e é seguimento a essa transação a partir desse ponto.
Conceitos - Undo
Desfaz uma operacão
Conceitos - Redo
Refaz uma operação
Conceitos - Read
Transfere o item de um dado de um BD para um buffer local (espaço de memória local) alocado para que seja manipulado.
Conceitos - Write
Transfere o ítem que estava em um buffer local (espaço de memória local) de volta para o BD
Não necessariamente a informação vai ser gravada de volta no BD logo após o White, ele pode ser gravada em algum momento no futuro).
Rollback e commit diferencas e semelhanças
Finalizam uma transação.
Commit finaliza com sucesso.
Rollback finaliza com falha.
Problemas de transações concorrentes
Perda de atualização
Atualização temporária (leitura suja)
Leitura não repetitiva
Problemas de transações concorrentes - Perda de atualização
Ocorre quando uma transação 1 está manipulando um dado X que ainda não foi comitado e outra transação 2 também começa a manipular o dado X que está sendo manipulado pela transação 1
Problemas de transações concorrentes - atualização temporária (leitura suja)
Ocorre quando duas os mais manipulações estão acontecendo e manipulando o mesmo dado, porém em momentos diferentes e por causa de um abort em alguma transação futura, ocorre a perda de toda aquela transação abortada, que alterava o valor de um dado lido por outras transações.
Problemas de transações concorrentes - leitura não repetitiva
Ocorre quando a transação 1 lê um dado e manipula esse dado, nesse momento, antes da escrita dessa transação, a transação 2 lê esse mesmo dado, manipula o dado, escreve o dado e após isso, a transação 1 lê novamente o mesmo dado (ela está lendo o dado original (o que a transação 1 leu e nao escreveu) ou está lendo o dado escrito após a transação 2 ?)
Controle de concorrência - bloqueio binário
Ocorre por exclusão mútua
Um dado é bloqueado por uma transação e ninguém poderá mais acessar esse dado até o fim da transação
Lista de espera
Controle de concorrência - bloqueio múltiplos
Pode ser compartilhado = a transação que bloqueou só pode ler, bem como só podem ler também as outras transações… nenhuma pode escrever
Bloqueio exclusivo = a transação que bloqueou pode ler e escrever, mas as outras transações não podem nem ler nem escrever.
Controle de concorrência - bloqueio em duas fases
Fase de expansão = ocorre quando a transação está aumentando os bloqueios e não pode liberar nenhum
Fase de encolhimento = ocorre quando a transação já liberou o primeiro bloqueio e não pode solicitar mais nenhum bloqueio.
Propriedades das transações (ACID)
Fases da transação
1) ativa
2) em efetivação parcial
3) efetivada
4) em falha
5) encerrada