Resumo
Neste módulo, aprendemos que:
- Um SGBD controla uma transação de modo a garantir que operações no banco de dados que sejam formadas duas ou mais ações SQL sejam coordenadas como uma só operação. Caso uma das operações falhe, o SGBD é capaz de desfazer instruções SQL já realizadas.
- O termo operação serializada refere-se ao controle em série de operações, em que a CPU tem o poder de fracionar o processamento de uma operação em várias partes, e assim atender a várias solicitações de processamento, sem precisar que uma se encerre completamente para o início de outra.
- O processo paralelo real só ocorre quando há duas ou mais CPUs em um computador.
- Uma transação pode conter uma ou mais operações de acesso a dados.
- Somente os comandos de manipulação de dados, DML, podem ser controlados por transação.
- A instrução begin transaction (ou start transaction) inicia uma transação. A instrução commit transaction (ou end transaction) encerra uma transação. A instrução rollback cancela uma transação desfazendo as operações realizadas.
- Os buffers de banco de dados controlam os dados (em blocos) a serem armazenados no disco. Portanto, operações DML geralmente permanecem um tempo no buffer antes de ser armazenadas em disco. Somente após a execução do comando commit é que há a garantia de que o dado foi realmente armazenado no disco.
- Há vários problemas relacionados à concorrência de dados. A atualização perdida refere-se a duas operações alterando o mesmo dado ao mesmo tempo. A atualização temporária (ou leitura suja) refere-se a uma operação que está lendo um dado que está sendo modificado por outra transação ao mesmo tempo, sendo que a segunda transação é cancelada. O problema do resumo incorreto diz respeito às funcionalidades de agregação (como funções MAX, MIN e AVG), que durante o cálculo de agregação tem os dados alterados por outra operação. O problema da leitura não repetitiva ocorre quando uma transação que precisa ler o mesmo item duas vezes, e antes de ler a segunda vez ocorre uma mudança no valor do dado.
- Há diversos tipos de falhas que podem ocasionar a necessidade de recuperação (desfazimento) de uma transação. Entre elas: falhas de hardware (algum problema no computador), falhas de software (algum problema no software que gerencia a solução de TI como um todo) e falhas de rede. No processamento de uma transação pode ocorrer um erro lógico, como uma divisão por zero. Podem ocorrer ainda erros de acesso ou até mesmo problemas advindos de agentes externos, como incêndios, enchentes ou sabotagens.
- Ao se invocar o comando COMMIT, os blocos de dados alterados, que estão no buffer, são descarregados para os discos. Somente após a conclusão da gravação de todos os blocos é que o comando COMMIT se encerra.
- O log é um arquivo sequencial, apenas para inserção, que é mantido no disco.
- O log também é usado pelo subsistema de recuperação para voltar o sistema a um momento anterior, desfazendo operações no banco de dados.
- As quatro propriedades de uma transação são: Atomicidade (ser realizada totalmente), Consistência (não pode ser interferida e deve deixar o banco de dados consistente), Isolamento (não deve interferir em outras transações) e Durabilidade (seu resultado deve persistir).
Copyright © 2016 AIEC.