Conceito de Transação
Transação de um banco de dados
Como já sabemos, um banco de dados é composto de tabelas que estão inter-relacionadas umas com as outras.
As ações ou movimentações que são realizadas no banco de dados, consistem basicamente em gravar novos dados, consultar dados gravados existentes, modificar dados previamente gravados existentes e remover dados previamente gravados existentes.
Então podemos definir que existem 4 tipos de operações:
- gravar dados, que vamos tratar de agora em diante como ‘inserir dados’.
- consultar dados, que vamos continuar como está.
- modificar dados, que vamos tratar de agora em diante como ‘atualizar dados’.
- remover dados, que vamos tratar de agora em diante como ‘deletar dados’.
Destas operações, podemos afirmar que:
- a operação consultar dados não provoca modificações nos dados armazenados no banco de dados.
- as operações inserir dados, atualizar dados, deletar dados provocam alterações nos dados armazenados.
Um banco de dados deve sempre manter a sua integridade e consistência nos dados armazenados, para garantir que as regras de negócio estabelecidas estejam sendo cumpridas.
Porém sempre que uma das três operações que provocam alterações nos dados armazenados (inserir dados, atualizar dados e deletar dados) são executados, dizemos que o banco de dados realizou uma transação.
Para iniciar uma transação, o banco de dados recebe um aviso de início de transação que chamaremos de ‘início de transação’ ou ‘begin transaction’.
Ao final da transação, o banco de dados recebe outro aviso, agora indicando o encerramento da transação que chamaremos de ‘fim de transação’ ou ‘end transaction’.
Quanto mais operações colocarmos dentro de uma única transação, mais demorado e crítica torna-se esta transação, porém o tamanho de uma transação dependerá muito da ‘regra de negócio a ser cumprida’.
Propriedades ACID
Todo Sistema Gerenciador de Bando de Dados (SGBD) aplica em seu funcionamento o conceito denominado ACID, que representa a inicial de quatro propriedades fundamentais.
- Atomicidade
- Consistência
- Integridade
- Durabilidade
Um SGBD não pode aplicar apenas algumas destas propriedades, todas as propriedades devem ser cumpridas, senão não podemos considerar um SGBD de verdade.
Atomicidade
Dizemos que uma transação é atômica, pois a transação não é divisível em partes, ou seja, a transação deve ser realizada por inteiro ou ela não pode ser realizada.
Lembramos que uma transação pode ter várias operações de alteração de dados, então ou cumprimos todas elas ou não realizamos nenhuma delas.
Consistência
Uma transação quando começa, os dados armazenados estão todos consistentes, ao concluir a transação os dados devem estar consistentes novamente, ou seja, as regras de negócio devem continuar sendo executadas e cumpridas.
Integridade
Uma transação deve ser íntegra, ou seja, as regras de negócio devem ser cumpridas durante a realização das operações na transação independentemente de existirem mais transações simultaneamente e ao final delas, esta integridade deve permanecer.
Durabilidade
Uma transação depois que for realizada e confirmada deve obrigatoriamente ser durável, ou seja, não pode desaparecer do banco de dados sem que outra transação realize esta operação.
Confirmação ou não de uma transação
Quando terminamos uma transação, necessitamos confirmar ou não a realização desta transação.
A confirmação desta transação é realizada com a execução de um comando de confirmação ou ‘COMMIT’.
Ou então devemos descartar a transação, através do comando ‘ROLLBACK’. Este comando desfaz as operações que estavam sendo realizadas até o início da transação, levando a um ponto onde as quatro propriedades ainda permanecem garantindo os dados do banco de dados.
DeadLock
Abraço mortal é uma situação onde duas transações T1 e T2, cada uma bloqueou inicialmente A e B respectivamente, e para concluírem suas transações agora necessitam de B e A respectivamente.
Porém nenhuma das duas transações abre mão dos seus dados previamente bloqueados.
Nenhum comentário:
Postar um comentário