Gerenciamento de transações em DBMS: o que são propriedades ACID?
O que é uma transação de banco de dados?
A Transação de banco de dados é uma unidade lógica de processamento em um SGBD que envolve uma ou mais operações de acesso ao banco de dados. Resumindo, 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 que são 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 é inconsistente. Somente depois que o banco de dados for confirmado, o estado será alterado de um estado consistente para outro.

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 SGBD é executado como uma unidade única.
- Se as operações do banco de dados não atualizarem o banco de dados, mas apenas recuperarem dados, esse tipo de transação será chamada de transação somente leitura.
- Uma transação bem-sucedida pode alterar o banco de dados de um CONSISTENT STATE para outro
- As transações do DBMS devem ser atômicas, consistentes, isoladas e duráveis
- Se o banco de dados estivesse em um estado inconsistente antes de uma transação, ele permaneceria nesse estado inconsistente após a transação.
Por que você precisa de simultaneidade em transações?
Um banco de dados é um recurso compartilhado acessado. É usado por muitos usuários e processos simultaneamente. Por exemplo, o sistema bancário, os sistemas de reservas ferroviárias e aéreas, o monitoramento do mercado de ações, o estoque dos supermercados e os caixas, etc.
Não gerenciar o acesso simultâneo pode criar problemas como:
- Falha de hardware e falhas no sistema
- Execução simultânea da mesma transação, impasseou desempenho lento
Estados de transações
Os vários estados de um conceito de transação no SGBD estão listados abaixo:
Estado | Tipos de transação |
---|---|
Estado ativo | Uma transação entra em estado ativo quando o processo de execução começa. Durante este estado, operações de leitura ou gravação podem ser executadas. |
Parcialmente Comprometido | Uma transação entra no estado parcialmente confirmado após o término de uma transação. |
Estado Comprometido | Quando a transação é confirmada no estado, ela já concluiu sua execução com sucesso. Além disso, todas as suas alterações são registradas permanentemente no banco de dados. |
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 encerrado | O estado da transação atinge o estado encerrado quando certas transações que estão saindo do sistema não podem ser reiniciadas. |
Vamos estudar um diagrama de transição de estado que destaca como uma transação se move entre esses vários estados.
- Depois que uma transação declara execução, ela se torna ativa. Pode emitir operação READ ou WRITE.
- Assim que as operações READ e WRITE forem concluídas, as transações tornam-se parcialmente comprometidas.
- Em seguida, alguns protocolos de recuperação precisam garantir que uma falha do sistema não resultará na incapacidade de registrar permanentemente alterações na transação. Se esta verificação for bem-sucedida, a transação é confirmada e entra no estado confirmado.
- Se a verificação falhar, a transação irá para o estado Failed.
- 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.
- O estado finalizado refere-se à transação que sai do sistema.
O que são propriedades ÁCIDA?
Propriedades do ácido são usados para manter a integridade do banco de dados durante o processamento da transação. ACID em DBMS significa Atomicidade, Cpersistência, Isolao, e Dusabilidade.
- Atomgelo: Uma transação é uma única unidade de operação. Você o executa inteiramente ou simplesmente não o executa. Não pode haver execução parcial.
- Consistência: Depois que a transação for executada, ela deverá 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 entre si. (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 deverão persistir. Mesmo no caso de falhas do sistema.
Propriedade ACID em DBMS com exemplo
Abaixo está um exemplo de propriedade ACID em DBMS:
Transaction 1: Begin X=X+50, Y = Y-50 END Transaction 2: Begin X=1.1*X, Y=1.1*Y END
A transação 1 está transferindo US$ 50 da conta X para a conta Y.
A transação 2 está creditando em cada conta um pagamento de juros de 10%.
Se ambas as 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 x lote
Baseado 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 operações de início e fim.
- 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 múltiplas 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 poderá afetar o resultado de outra.
Exemplo
Initial Product Quantity is 10 Transaction 1: Update Product Quantity to 50 Transaction 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, cronogramas 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 executadas simultaneamente. Esta equivalência é de 3 tipos.
EQUIVALÊNCIA DE RESULTADOS:
Se duas programações exibem o mesmo resultado após a execução, isso é chamado de programação equivalente de resultado. 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
A equivalência de visualização ocorre quando a transação em ambos os agendamentos executa uma ação semelhante. 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
Neste caso, duas transações atualizam/visualizam o mesmo conjunto de dados. Há um conflito entre as transações, pois a ordem de execução afetará a saída.
O que é serialização?
Serializabilidade é o processo de busca por um escalonamento simultâneo cuja saída seja igual a um escalonamento serial onde as transações são executadas uma após a outra. Dependendo do tipo de programações, existem dois tipos de serialização:
- conflito
- Ver
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 falhas de hardware e travamentos do sistema.
- Ativo, Parcialmente Comprometido, Comprometido, Com Falha e Encerramento são estados de transação importantes.
- A forma completa de propriedades ACID em DBMS is AtomGelidade, 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 múltiplas transações paralelas e as executa uma por uma.
- Serializabilidade é o processo de busca por um escalonamento simultâneo cuja saída seja igual a um escalonamento serial onde as transações são executadas uma após a outra.