Agrupar várias operações numa transação

Concluído

Se uma alteração em uma parte de dados deve resultar em uma alteração para outra parte de dados, um aplicativo precisa agrupar uma série de atualizações de dados. Você pode usar transações para agrupar essas atualizações. Em uma transação, se um evento em uma série de atualizações falhar, toda a série poderá ser revertida ou desfeita.

Um exemplo é um varejista online que usa uma transação para fazer um pedido, verificar o pagamento e atualizar o estoque de produtos. Agrupar os eventos relacionados garante que você não reduza seus níveis de estoque até receber uma forma de pagamento aprovada.

Em seguida, saiba mais sobre transações e se elas são necessárias para seus dados.

O que é uma transação?

Uma transação é um grupo lógico de operações de banco de dados que são executadas juntas.

Aqui está a pergunta a se fazer sobre se você precisa usar transações em seu aplicativo: Uma alteração em um dado em seu conjunto de dados afetará outro pedaço de dados? Se a resposta for sim, você precisará de suporte para transações em seu serviço de banco de dados.

As garantias ACID definem as transações, assegurando que um conjunto de quatro requisitos são cumpridos. ACID é um acrônimo para atomicidade, consistência, isolamento e durabilidade.

  • Atomicidade significa que uma transação deve ser executada exatamente uma vez e deve ser atômica. Ou todo o trabalho está feito ou nada está. As operações numa transação normalmente partilham uma intenção comum e são interdependentes.
  • A Consistência garante que os dados são consistentes antes e depois da transação.
  • O isolamento garante que cada transação não seja afetada por outras transações.
  • Durabilidade significa que as alterações feitas como resultado de uma transação são salvas permanentemente no sistema. O sistema salva os dados comprometidos, portanto, mesmo em caso de falha e reinicialização do sistema, os dados estão disponíveis em seu estado correto.

Quando um banco de dados oferece garantias ACID, esses princípios são aplicados de forma consistente a cada transação.

OLTP vs. OLAP

Os bancos de dados transacionais são frequentemente chamados de sistemas OLTP (processamento de transações online). Os sistemas OLTP geralmente suportam muitos usuários, têm tempos de resposta rápidos e lidam com grandes volumes de dados. Eles também são altamente disponíveis, o que significa que têm tempo de inatividade mínimo. Os sistemas OLTP normalmente lidam com pequenas transações ou transações relativamente simples.

Um exemplo de um serviço do Azure que dá suporte ao OLTP é o Banco de Dados SQL do Azure.

Os sistemas de processamento analítico on-line (OLAP) geralmente suportam menos usuários, têm tempos de resposta mais longos, podem estar menos disponíveis e normalmente lidam com grandes transações ou transações complexas.

Um exemplo de um serviço do Azure que dá suporte ao OLAP é o Azure Analysis Services.

Os termos OLTP e OLAP não são usados com tanta frequência como no passado, mas a sua compreensão facilita a categorização das necessidades da sua aplicação.

Transações: avalie seus tipos de dados

Garantir que seus dados estejam no estado correto nem sempre é uma tarefa fácil. As transações podem ajudar ao impor requisitos de integridade de dados sobre os seus dados. Se seus dados se beneficiarem dos princípios ACID, escolha uma solução de armazenamento que ofereça suporte a transações.

Vamos percorrer cada um dos conjuntos de dados no cenário de varejo online e determinar a necessidade de transações.

Dados de catálogo de produtos

Os dados de catálogo de produtos devem ser armazenados numa base de dados transacional. Quando um usuário faz um pedido e o pagamento é verificado, o estoque de itens deve ser atualizado. Da mesma forma, se o cartão de crédito do cliente for recusado, o pedido deve ser revertido e o estoque não deve ser atualizado. Essas relações exigem transações.

Fotografias e vídeos

As fotografias e os vídeos num catálogo de produtos não requerem suporte transacional. Estes ficheiros só são alterados quando é feita uma atualização ou quando são adicionados novos ficheiros. Embora haja uma relação entre a imagem e os dados reais do produto, ela não é transacional por natureza.

Dados comerciais

Como os dados corporativos são históricos e imutáveis, o suporte transacional não é necessário. Os analistas de negócios que trabalham com os dados também têm necessidades de consulta exclusivas. Eles geralmente trabalham com agregados em suas consultas, para que possam trabalhar com os totais de outros pontos de dados menores.

Verifique o seu conhecimento

1.

Que tipo de sistema de base de dados transacionais funciona melhor para dados de produto?

2.

Suponha que as operações de um varejista para atualizar o estoque e processar pagamentos estejam na mesma transação. Um usuário está tentando aplicar um crédito de loja de US $ 30 em um pedido de seu laptop e está enviando exatamente o mesmo pedido usando o crédito da loja (para o valor total) de seu telefone. Duas encomendas idênticas são recebidas. O banco de dados nos bastidores é um banco de dados compatível com ACID. O que vai acontecer?