2009-06-10 6 views

Répondre

27

« Une série d'instructions de manipulation de données qui doivent soit entièrement complète ou totalement échouer, laissant la base de données dans un état cohérent »

+2

Non seulement la base de données. Nous pouvons étendre ce concept à d'autres composants, tels que le service de mise en file d'attente ou l'état des systèmes externes. "Une série d'instructions de manipulation de données qui doivent être complètement terminées ou échouer complètement, laissant le système dans un état cohérent" –

+0

En effet. Bien dit. – Rad

23

Voici une explication simple. Vous devez transférer 100 dollars du compte A au compte B. Vous pouvez faire:

accountA -= 100; 
accountB += 100; 

ou

accountB += 100; 
accountA -= 100; 

Si quelque chose va mal entre la première et la deuxième opération de la paire que vous avez problème - soit 100 dollars ont disparu, ou ils sont apparus de nulle part. Une transaction est un mécanisme qui vous permet de marquer un groupe d'opérations et de les exécuter de telle sorte qu'elles s'exécutent toutes (commit), ou que l'état du système soit comme si elles n'avaient pas commencé à s'exécuter du tout. (rollback).

beginTransaction; 
accountB += 100; 
accountA -= 100; 
commitTransaction; 

transférera 100 dollars ou laissera les deux comptes dans l'état initial.

58

Une transaction est une manière de représenter un changement d'état. Les transactions ont idéalement quatre propriétés, communément appelées ACID:

  • atomique (si le changement est commis, il arrive d'un seul coup, on ne peut jamais voir « un demi-changement »)
  • Conformément (le changement peut ne se produira que si le nouvel état du système est valide, toute tentative de validation invalide échouera, laissant le système dans son état antérieur)
  • Isolé (personne d'autre ne voit une partie de la transaction jusqu'à ce qu'elle soit validée Durable (une fois le changement effectué - si le système indique que la transaction a été validée, le client n'a pas besoin de s'inquiéter t "rinçage" du système pour faire le changement "coller")

Voir l'entrée Wikipedia ACID pour plus de détails.

Bien que cela soit généralement appliqué aux bases de données, ce n'est pas forcément le cas. (En particulier, voir Software Transactional Memory.)

169

Une transaction est une unité de travail que vous voulez traiter comme «un tout». Cela doit se faire dans son intégralité ou pas du tout.

Un exemple classique consiste à transférer de l'argent d'un compte bancaire à un autre. Pour ce faire, vous devez d'abord retirer le montant du compte source, puis le déposer sur le compte de destination. L'opération doit réussir pleinement. Si vous arrêtez à mi-chemin, l'argent sera perdu, et c'est très mauvais. Dans les bases de données modernes, les transactions font également d'autres choses - comme s'assurer que vous ne pouvez pas accéder aux données écrites par une autre personne à mi-chemin. Mais l'idée de base est la même - les transactions sont là pour assurer que, quoi qu'il arrive, les données que vous travaillez seront dans un état raisonnable . Ils garantissent qu'il n'y aura pas de situation où l'argent est retiré d'un compte, mais pas déposé à un autre.

+9

+1 pour l'exemple !! –

+1

Cette réponse devrait être acceptée. – user1205577

+0

Merci pour l'exemple très simple – Nomadme

1

Je suggère qu'une définition du «traitement des transactions» serait plus utile, car elle couvre les transactions en tant que concept en informatique.

De wikipedia:

Dans l'informatique, le traitement des transactions est le traitement de l'information qui est divisé en opérations individuelles, indivisibles, les opérations dites. Chaque transaction doit réussir ou échouer en tant qu'unité complète; il ne peut pas rester dans un état intermédiaire.

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

0

Je pense qu'une transaction est une action atomique en termes de SGBD.

cela signifie qu'il ne peut pas être séparé. oui, dans une transction, il peut y avoir plusieurs instructions à exécuter par le système. mais ils sont liés ensemble pour terminer une seule tâche de base.

par exemple. vous devez traverser un pont (traitons cela comme une transction), et pour ce faire, disons, vous avez besoin de 100 étapes. Dans l'ensemble, ces étapes ne peuvent pas être séparées. quand vous en avez fait la moitié, il n'y a que deux choix pour vous: continuer à les finir tous, et revenir au point de départ. c'est juste comme le résultat d'une transaction: succès (commis) et échec (annulation)

1

En plus des réponses ci-dessus, il convient de noter qu'il n'y a, du moins en théorie, aucune restriction quant à quel genre des ressources sont impliquées dans une transaction.

La plupart du temps, il s'agit simplement d'une base de données ou de plusieurs bases de données distinctes, mais il est également concevable qu'une imprimante participe à une transaction et peut faire échouer cette transaction, par exemple en cas de bourrage papier .

8

Une transaction est une séquence d'une ou de plusieurs opérations SQL traitées comme une unité. Plus précisément, chaque transaction semble fonctionner de manière isolée, et en outre, si le système tombe en panne, chaque transaction est exécutée dans sa totalité ou pas.

Le concept de transactions est motivé par deux préoccupations totalement indépendantes. L'un concerne l'accès simultané à la base de données par plusieurs clients, et l'autre doit faire avec un système qui résiste aux défaillances du système.

Transaction soutient ce qui est connu comme les propriétés ACID:

  • A: atomicité;
  • C: Cohérence;
  • I: Isolement;
  • D: Durabilité.
0

transaction est une unité indivisible de traitement des données transactions -Tous doivent avoir les propriétés ACID:

-à-dire: atomicité, cohérence, isolation et durable transaction est tout ou rien, mais pas intermidiate (cela signifie que si vous transférez votre argent d'un compte à un autre compte, un compte doit perdre autant et un autre doit gagner ce montant, mais si vous transférez de l'argent d'un compte et un autre compte est encore vide, ce ne sera pas une transaction)

7

Propriétés des transactions:

Les transactions ont les quatre propriétés standard suivantes, habituellement désigné par l'acronyme 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. 

Contrôle de la transaction:

Il existe des commandes suivantes utilisées pour contrôler les transactions:

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. 
0

Transaction peut être défini comme une collection de tâches considérées comme une unité de traitement minimale. Chaque unité de traitement minimale ne peut pas être divisée davantage.

L'opération principale d'une transaction est en lecture et en écriture.

Toute transaction doit contenir quatre propriétés communément appelées propriétés ACID afin d'assurer la précision, l'exhaustivité et l'intégrité des données.