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

Alguém pode fornecer uma explicação simples (mas não mais simples do que possível) de uma transacção como aplicada à computação (mesmo que copiada da Wikipédia)?

Author: Vlad Gudim, 2009-06-10

12 answers

Uma transação é uma unidade de trabalho que você quer tratar como "um todo."Tem de acontecer na totalidade ou não. Um exemplo clássico é a transferência de dinheiro de uma conta bancária para outra. Para fazer isso você tem primeiro que retirar o valor da conta de origem, e depois depositá-lo na conta de destino. A operação tem de ter êxito total. Se parares a meio caminho, o dinheiro será perdido, e isso é Muito mau.

Em bases de dados modernas, as transacções também fazem algumas outras coisas - como garantir que você não pode acessar dados que outra pessoa escreveu a meio caminho. Mas a idéia básica é a mesma-as transações existem para garantir, que não importa o que aconteça, os dados com os quais você trabalha estarão em um estado sensível. Eles garantem que não haverá uma situação em que o dinheiro seja retirado de uma conta, mas não depositado em outra.

 182
Author: Vilx-, 2017-08-05 15:55:57

Uma transacção é uma forma de representar uma mudança de Estado. As transacções têm idealmente quatro propriedades, vulgarmente conhecidas como ACID:

  • Atómico (se a mudança é cometida, acontece de uma só vez; nunca se pode ver "meia mudança")
  • consistente (a alteração só pode acontecer se o novo estado do sistema for válido; qualquer tentativa de cometer uma alteração inválida irá falhar, deixando o sistema no seu estado válido anterior)
  • isolado (ninguém mais vê nenhuma parte da transacção até ser comprometida)
  • durável (uma vez que a mudança aconteceu-se o sistema diz que a transacção foi comprometida, o cliente não precisa de se preocupar com "descarga" o sistema para fazer a mudança "stick")

Veja o item do Wikipedia ACID para mais detalhes.

Embora isto seja normalmente aplicado a bases de dados, não tem de ser. (Em particular, ver memória transacional de Software .)

 63
Author: Jon Skeet, 2017-08-05 16:04:51
Eis uma explicação simples. Você precisa transferir 100 dólares da conta A para a conta B. Você pode fazer:
accountA -= 100;
accountB += 100;

Ou

accountB += 100;
accountA -= 100;
Se algo correr mal entre a primeira e a segunda operação no par, você tem um problema-ou 100 dólares desapareceram, ou apareceram do nada.

Uma transacção é um mecanismo que lhe permite marcar um grupo de operações e executá-las de tal forma que todas elas executam (commit), ou a o estado do sistema será como se eles não tivessem começado a executar (rollback).

beginTransaction;
accountB += 100;
accountA -= 100;
commitTransaction;
Ou transferes 100 dólares ou deixas ambas as contas no estado inicial.
 31
Author: sharptooth, 2017-08-05 15:58:12

"uma série de declarações de manipulação de dados que devem estar completamente completas ou completamente falhadas, deixando a base de dados num estado consistente"

 30
Author: Rad, 2009-06-10 09:43:32

Uma transacção é uma sequência de uma ou mais operações SQL que são tratadas como uma unidade.

Especificamente, cada transacção parece funcionar isoladamente e, além disso, se o sistema falhar, cada transacção é executada na sua totalidade ou não na totalidade.

O conceito de transacções é motivado por duas preocupações completamente independentes. Um tem a ver com o acesso simultâneo à base de dados por vários clientes, e o outro tem que fazer com um sistema que é resiliente a falhas do sistema.

A transacção suporta o que é conhecido como propriedades ácidas:

  • A: Atomicidade;
  • C: Consistência;
  • I: Isolamento;
  • D: Durabilidade.
 10
Author: Mourad BENKDOUR, 2017-08-05 15:54:29

Propriedades das transacções:

As transacções têm as seguintes quatro propriedades-padrão, normalmente referidas pelo acrónimo ACID:

Atomicity: ensures that all operations within the work unit are completed 
          successfully; otherwise, the transaction is aborted at the point of 
          failure, and previous operations are rolled back to their former state.

Consistency: ensures that the database properly changes states upon a successfully 
          committed transaction.

Isolation: enables transactions to operate independently of and transparent to 
          each other.

Durability: ensures that the result or effect of a committed transaction persists 
          in case of a system failure.

Controlo Das Transacções:

Existem os seguintes comandos usados para controlar as transacções:

COMMIT: to save the changes.

ROLLBACK: to rollback the changes.

SAVEPOINT: creates points within groups of transactions in which to ROLLBACK

SET TRANSACTION: Places a name on a transaction.
 8
Author: 2 revs, 2 users 84%user2715019, 2017-08-05 15:52:32

Http://en.wikipedia.org/wiki/Database_transaction
http://en.wikipedia.org/wiki/ACID
ÁCIDO = UMtomicity, Consistency, Isolation, Durability

Quando desejar que vários recursos transacionais estejam envolvidos numa única transacção, terá de usar algo como uma solução de commit de duas fases. o XA {[3] } é bastante apoiado.

 3
Author: Stephen Denne, 2009-06-10 09:53:55
[[1] eu sugeriria que uma definição de "processamento de transações" seria mais útil, uma vez que abrange as transações como um conceito em Ciência da computação.

Da Wikipédia:

Em Ciência da computação, processamento de transações é Processamento de informação que é dividido em operações individuais e indivisíveis, chamadas transações. Cada transação deve ter sucesso ou falhar como uma unidade completa; não pode permanecer em um intermediário estado.

Http://en.wikipedia.org/wiki/Transaction_processing#Implementations

 1
Author: Adam Cooper, 2009-06-10 09:47:25
Além das respostas acima, deve-se notar que não existe, pelo menos em teoria, qualquer restrição quanto ao tipo de recursos envolvidos em uma transação. Na maioria das vezes, é apenas uma base de dados, ou várias bases de dados distintas, mas também é concebível que uma impressora participe de uma transação, e pode fazer com que essa transação falhe, por exemplo, em caso de interferência de papel.
 1
Author: Erwin Smout, 2009-06-10 13:52:29
Acho que uma transacção é uma acção atómica em termos de SGBD. Isso significa que não pode ser separada. sim, numa transcrição, pode haver várias instruções para o sistema executar. mas eles estão unidos para terminar uma única tarefa básica.

Por exemplo. você precisa andar através de uma ponte (vamos tratar isso como uma transcrição), e para fazer isso, digamos, você precisa de 100 passos. no geral, estes passos não podem ser separados. quando tiveres feito metade deles, só há duas opções. para você: continue a terminá-los todos, e volte ao ponto de partida. é como o resultado de uma transação: sucesso (comprometido ) e fracasso (rollback)

 0
Author: fwoncn, 2009-06-10 10:06:21

A transacção é uma unidade indivisível de processamento de dados - Todas as transacções devem ter as propriedades ácidas:

Ou seja: atomicidade, consistência, isolamento e durabilidade A transacção é tudo ou nada, mas não intermidiata (significa que, se transferir o seu dinheiro de uma conta para outra conta,uma conta terá de perder tanto e outra terá de ganhar esse montante,mas se transferir dinheiro de uma conta e outra ainda estiver vazia, isso não será uma transacção)

 0
Author: Mohamed Seif, 2014-03-21 11:32:10

A transacção pode ser definida como uma colecção de tarefas que são consideradas como unidade de processamento mínima. Cada unidade de processamento mínima não pode ser dividida mais.

A principal operação de uma transacção é ler e escrever.

Todas as transacções devem conter quatro propriedades conhecidas como propriedades ácidas, com o objectivo de garantir a exactidão , a integralidade e a integridade dos dados.
 0
Author: rashedcs, 2017-09-14 10:17:01