Bancos de Dados - Aula 24 - Transações

Bancos de Dados - Aula 24 - Transações

Introdução ao Sistema Gerenciador de Banco de Dados (SGBD)

O que são transações?

  • As transações são um conjunto de operações executadas sobre o banco de dados, consideradas uma única unidade do ponto de vista do usuário.
  • Um exemplo prático é a transferência entre contas bancárias, onde todas as operações devem ser bem-sucedidas para garantir a consistência dos dados.
  • Se alguma operação falhar durante a transferência, o sistema deve garantir que nenhuma alteração seja feita no banco de dados.

Importância da Consistência

  • O SGBD deve assegurar que todas as operações dentro de uma transação sejam concluídas ou revertidas em caso de falha.
  • Isso envolve procedimentos específicos e módulos dentro do SGBD que garantem a integridade dos dados durante o processamento das transações.

Execução Concorrente

  • É fundamental que várias transações possam ser executadas simultaneamente sem gerar inconsistências nos dados.
  • Por exemplo, duas transferências para o mesmo destinatário não podem interferir uma na outra, exigindo um controle rigoroso por parte do SGBD.

Arquitetura Interna do SGBD

  • A arquitetura interna inclui módulos responsáveis por gerenciar as operações das transações e garantir a consistência dos dados.
  • Um exemplo genérico é apresentado com uma implementação da transferência de valores, envolvendo leitura e verificação do saldo da conta.

Mecanismos Necessários para Transações

  • Para executar transações consistentemente, são necessárias marcações específicas como "begin transaction" e "end transaction".
  • Essas marcações ajudam o SGBD a identificar quando uma transação começa e termina, garantindo sua execução completa.

Resultados das Transações

  • O comando "commit" indica que todas as operações foram realizadas com sucesso e podem ser gravadas permanentemente no banco de dados.

Transações em Sistemas de Gerenciamento de Banco de Dados

Princípios das Transações

  • As transações devem ser revertidas se não forem executadas completamente, garantindo o princípio "ou tudo ou nada".
  • Existem duas operações principais: a operação de execução e a operação de reversão, que são coordenadas pelos módulos do SGB.

Ciclo de Vida da Transação

  • O ciclo começa com o estado ativo, onde ocorrem operações de leitura e escrita.
  • O SGB controla as operações para garantir a consistência dos dados durante a execução da transação.
  • Após a execução, uma transação pode entrar em um estado de efetivação parcial antes da finalização.

Falhas e Recuperação

  • Se ocorrer uma falha durante a execução, a transação deve ser encerrada e os dados restaurados ao seu estado anterior.
  • A passagem do estado de efetivação parcial para efetivada é crucial para garantir que os dados possam ser recuperados em caso de falha.

Operações Fundamentais

  • A operação de leitura transfere dados do banco para um buffer local específico da transação.
  • A operação de escrita grava os dados alterados no banco após serem processados na memória local da transação.

Propriedades das Transações

  • As propriedades das transações garantem que todas as operações sejam refletidas corretamente no banco ou nenhuma delas será considerada executada.
  • Um exemplo prático ilustra como uma falha pode afetar uma transferência bancária, destacando a importância da atomicidade nas transações.

Atomicidade e Consistência

  • A atomicidade assegura que se uma parte da transação falhar, todo o processo deve ser revertido para manter a integridade dos dados.

Propriedades das Transações em Sistemas de Banco de Dados

Propriedade de Consistência

  • A propriedade de consistência assegura que o código executado durante uma transação deve ser correto e seguir a especificação definida, garantindo que as alterações no banco de dados sejam válidas.
  • É responsabilidade do programador garantir que o código comece e termine em um estado consistente do banco de dados, refletindo mudanças que são coerentes com o mundo real.

Propriedade de Isolamento

  • O isolamento é garantido pelo sistema gerenciador de banco de dados (SGBD), permitindo que múltiplas transações ocorram simultaneamente sem interferir umas nas outras.
  • Durante a execução, os programadores não precisam se preocupar com ações concorrentes; cada transação deve operar como se fosse isolada, evitando problemas nos dados.

Propriedade de Durabilidade

  • A durabilidade garante que após uma transação ser concluída com sucesso, suas alterações persistem mesmo diante de falhas no sistema.
  • Após o commit da transação, qualquer problema subsequente deve ser tratado para assegurar que as modificações feitas estejam presentes no banco.

Execução Concorrente

  • Exemplos gráficos ilustram como duas transações podem operar sobre os mesmos dados simultaneamente e os riscos associados à intercalá-las incorretamente.
  • Uma execução serial ocorre quando uma transação completa sua operação antes da outra iniciar, resultando em estados consistentes do banco.

Problemas na Concorrência

  • Quando duas transações são executadas ao mesmo tempo e suas operações se entrelaçam inadequadamente, pode resultar em um estado inconsistente dos dados.

Problemas de Concorrência em SGBD

Problemas Causados por Execuções Simultâneas

  • Durante a execução simultânea de transações em um Sistema de Gerenciamento de Banco de Dados (SGBD), podem ocorrer problemas como alterações temporárias, alterações perdidas e resumos incorretos.
  • Esses problemas surgem devido ao nível de segurança do SGBD que permite intercalar operações, resultando em situações não ideais.

Teoria da Serialização

  • A teoria da serialização afirma que toda execução concorrente deve gerar resultados equivalentes a uma execução serial das mesmas transações.
  • Exemplos mostram que com duas transações, existem duas possíveis reduções seriais: a primeira transação seguida pela segunda ou vice-versa.
  • Qualquer execução concorrente deve intercalar as operações para garantir que o resultado final seja equivalente a uma dessas execuções seriais.

Conclusão e Estudo Futuro

Video description

Engenharia de Computação – Bancos de Dados Disciplina EID - 002 - Bancos de Dados Professora responsável: Sarajane Marques Peres Playlist da disciplina: https://www.youtube.com/playlist?list=PLxI8Can9yAHeHQr2McJ01e-ANyh3K0Lfq