Gerenciamento de transações de DBMS: o que são propriedades ACID?

Índice:

Anonim

O que é uma transação de banco de dados?

Uma transação de banco de dados é uma unidade lógica de processamento em um DBMS que envolve uma ou mais operações de acesso ao banco de dados. Em suma, as transações de banco de dados representam eventos do mundo real de qualquer empresa.

Todos os tipos de operação de acesso ao banco de dados mantidos entre as instruções de transação inicial e final são considerados como uma única transação lógica no SGBD. Durante a transação, o banco de dados fica inconsistente. Somente depois que o banco de dados é confirmado, o estado é alterado de um estado consistente para outro.

Neste tutorial, você aprenderá:

  • Fatos sobre transações de banco de dados
  • Por que você precisa de simultaneidade em transações?
  • Estados de transações
  • O que são propriedades ACID?
  • Tipos de transações
  • O que é um cronograma?

Fatos sobre transações de banco de dados

  • Uma transação é uma unidade de programa cuja execução pode ou não alterar o conteúdo de um banco de dados.
  • O conceito de transação no DBMS é executado como uma unidade única.
  • Se as operações do banco de dados não atualizam o banco de dados, mas apenas recuperam dados, esse tipo de transação é chamado de transação somente leitura.
  • Uma transação bem-sucedida pode alterar o banco de dados de um ESTADO CONSISTENTE para outro
  • As transações de DBMS devem ser atômicas, consistentes, isoladas e duráveis
  • Se o banco de dados estava em um estado inconsistente antes de uma transação, ele permaneceria no estado inconsistente após a transação.

Por que você precisa de simultaneidade em transações?

Um banco de dados é um recurso compartilhado acessado. Ele é usado por muitos usuários e processos simultaneamente. Por exemplo, o sistema bancário, ferroviário e sistemas de reservas aéreas, monitoramento do mercado de ações, estoque de supermercados e checkouts, etc.

Não gerenciar o acesso simultâneo pode criar problemas como:

  • Falha de hardware e travamento do sistema
  • Execução simultânea da mesma transação, conflito ou desempenho lento

Estados de transações

Os vários estados de um conceito de transação no DBMS estão listados abaixo:

Estado Tipos de transação
Estado ativo Uma transação entra em um estado ativo quando o processo de execução começa. Durante esse estado, as operações de leitura ou gravação podem ser realizadas.
Parcialmente Comprometido Uma transação entra no estado parcialmente confirmado após o final de uma transação.
Estado Comprometido Quando a transação é confirmada para o estado, ela já concluiu sua execução com sucesso. Além disso, todas as suas alterações são registradas no banco de dados de forma permanente.
Estado falido Uma transação é considerada falha quando qualquer uma das verificações falha ou se a transação é abortada enquanto está no estado ativo.
Estado Terminado O estado da transação atinge o estado finalizado quando certas transações que estão deixando o sistema não podem ser reiniciadas.
Diagrama de transição de estado para uma transação de banco de dados

Vamos estudar um diagrama de transição de estado que destaca como uma transação se move entre esses vários estados.

  1. Depois que uma transação começa a ser executada, ela se torna ativa. Pode emitir operação READ ou WRITE.
  2. Depois que as operações READ e WRITE são concluídas, as transações tornam-se parcialmente confirmadas.
  3. Em seguida, alguns protocolos de recuperação precisam garantir que uma falha do sistema não resulte na incapacidade de registrar as alterações na transação permanentemente. Se essa verificação for bem-sucedida, a transação é confirmada e entra no estado de confirmação.
  4. Se a verificação for uma falha, a transação vai para o estado Falha.
  5. Se a transação for abortada enquanto estiver no estado ativo, ela irá para o estado de falha. A transação deve ser revertida para desfazer o efeito de suas operações de gravação no banco de dados.
  6. O estado finalizado refere-se à transação que sai do sistema.

O que são propriedades ACID?

As propriedades ACID são usadas para manter a integridade do banco de dados durante o processamento da transação. ACID em DBMS significa A tomicidade, C onsistência, I solação e D urabilidade.

  • Atomicidade: uma transação é uma única unidade de operação. Você pode executá-lo inteiramente ou simplesmente não executá-lo. Não pode haver execução parcial.
  • Consistência: uma vez que a transação é executada, ela deve passar de um estado consistente para outro.
  • Isolamento: a transação deve ser executada isoladamente de outras transações (sem bloqueios). Durante a execução de transações simultâneas, os resultados de transações intermediárias de transações executadas simultaneamente não devem ser disponibilizados uns aos outros. (Nível 0,1,2,3)
  • Durabilidade: · Após a conclusão bem-sucedida de uma transação, as alterações no banco de dados devem persistir. Mesmo no caso de falhas do sistema.

Propriedade ACID no DBMS com exemplo:

Abaixo está um exemplo de propriedade ACID em DBMS:

Transaction 1: Begin X=X+50, Y = Y-50 ENDTransaction 2: Begin X=1.1*X, Y=1.1*Y END

A transação 1 está transferindo $ 50 da conta X para a conta Y.

A transação 2 está creditando cada conta com um pagamento de juros de 10%.

Se as duas transações forem enviadas juntas, não há garantia de que a Transação 1 será executada antes da Transação 2 ou vice-versa. Independentemente da ordem, o resultado deve ser como se as transações ocorressem em série uma após a outra.

Tipos de transações

Com base nas áreas de aplicação

  • Não distribuído vs. distribuído
  • Transações de compensação
  • Tempo de transações
  • On-line vs. lote

Com base em ações

  • Dois passos
  • Restrito
  • Modelo de ação

Baseado na Estrutura

  • Transações planas ou simples: consiste em uma sequência de operações primitivas executadas entre uma operação inicial e final.
  • Transações aninhadas: uma transação que contém outras transações.
  • Fluxo de Trabalho

O que é um cronograma?

Um cronograma é um processo que cria um único grupo de várias transações paralelas e as executa uma por uma. Deve preservar a ordem em que as instruções aparecem em cada transação. Se duas transações forem executadas ao mesmo tempo, o resultado de uma transação pode afetar a saída de outra.

Exemplo

Initial Product Quantity is 10Transaction 1: Update Product Quantity to 50Transaction 2: Read Product Quantity

Se a Transação 2 for executada antes da Transação 1, serão lidas informações desatualizadas sobre a quantidade do produto. Portanto, horários são necessários.

A execução paralela em um banco de dados é inevitável. Porém, a execução paralela é permitida quando existe uma relação de equivalência entre as transações em execução simultânea. Esta equivalência é de 3 tipos.

EQUIVALÊNCIA DE RESULTADO:

Se dois agendamentos exibem o mesmo resultado após a execução, é chamado de agendamento de resultado equivalente. Eles podem oferecer o mesmo resultado para algum valor e resultados diferentes para outro conjunto de valores. Por exemplo, uma transação atualiza a quantidade do produto, enquanto outra atualiza os detalhes do cliente.

Ver Equivalência

Ver Equivalência ocorre quando a transação em ambas as agendas executa uma ação semelhante. Por exemplo, uma transação insere detalhes do produto na tabela de produtos, enquanto outra transação insere detalhes do produto na tabela de arquivo. A transação é a mesma, mas as tabelas são diferentes.

Equivalência de CONFLITO

Nesse caso, duas transações atualizam / exibem o mesmo conjunto de dados. Há um conflito entre as transações, pois a ordem de execução afetará a saída.

O que é serializabilidade?

Serializabilidade é o processo de busca de uma programação simultânea cuja saída seja igual a uma programação serial em que as transações são executadas uma após a outra. Dependendo do tipo de programação, existem dois tipos de serializabilidade:

  • Conflito
  • Visualizar

Resumo:

  • O gerenciamento de transações é uma unidade lógica de processamento em um SGBD que envolve uma ou mais operações de acesso ao banco de dados
  • É uma transação é uma unidade de programa cuja execução pode ou não alterar o conteúdo de um banco de dados.
  • Não gerenciar o acesso simultâneo pode criar problemas como falha de hardware e travamentos do sistema.
  • Ativo, parcialmente confirmado, confirmado, falhou e encerrar são estados de transação importantes.
  • A forma completa das propriedades ACID no DBMS é atomicidade, consistência, isolamento e durabilidade
  • Três tipos de transações DBMS são baseados em áreas de aplicação, ação e estrutura.
  • Um cronograma é um processo que cria um único grupo de várias transações paralelas e as executa uma por uma.
  • Serializabilidade é o processo de busca de uma programação simultânea cuja saída é igual a uma programação serial onde as transações são executadas uma após a outra.