La gestion des transactions fait partie intégrante des systèmes de gestion de bases de données (SGBD) pendant lesquels le logiciel de gestion des transactions supervise, coordonne et exécute toute tentative de transaction donnée.
Le logiciel de gestion des transactions pour l'automatisation des workflows est un élément critique de tout secteur d'activité impliquant le traitement des transactions, y compris le commerce électronique, la finance, l'hôtellerie et toute entreprise nécessitant une gestion précise des bases de données.
Il est essentiel que le logiciel de gestion des transactions s'appuie sur le concept d'atomicité pour définir une transaction singulière comme une série d'opérations qui doivent toutes être achevées, faute de quoi aucune n'est considérée comme terminée. En d'autres termes, pour maintenir la cohérence des données, un système de gestion des transactions garantit qu'une transaction ne peut jamais être partiellement terminée.
Par exemple, lorsqu'une personne tente de retirer de l'argent à un distributeur automatique de billets, le logiciel de gestion des transactions traite les requêtes et les modifications nécessaires dans la base de données afin de vérifier le solde du compte, de déduire le montant demandé, de mettre à jour les données de la banque et de distribuer les billets. Toutes ces étapes sont considérées comme une nouvelle transaction, et le système de gestion des transactions veille à ce que l'ensemble du processus soit mené à bien afin d'éviter toute incohérence dans la base de données de la banque et de préserver l'exactitude du grand livre.
Au cours d'une transaction, l'état de la base de données correspondante fluctue et est considéré comme incohérent. Durant cette période, une transaction peut effectuer un certain nombre d'opérations de lecture et/ou d'écriture, soit en lisant la base de données pour fournir des informations (comme la vérification du solde d'un compte bancaire), soit en écrivant de nouvelles informations dans la base de données (comme la mise à jour d'un solde de compte après un retrait). Ce n'est qu'une fois la transaction terminée que la base de données peut revenir à un nouvel état cohérent.
Le principe d'atomicité permet au logiciel de gestion des transactions de traiter des séries distinctes d'opérations comme des transactions singulières tout en protégeant l'intégrité de la base de données.
L'atomicité permet d'éviter les erreurs qui pourraient résulter de transactions incomplètes ou interrompues. Pour en revenir à l'exemple du distributeur automatique de billets, l'atomicité empêche une transaction de débiter de l'argent du compte bancaire d'un utilisateur avant de distribuer les billets. Si un incident tel qu'une panne du système empêche le distributeur automatique de billets de distribuer l'argent, la transaction entière est interrompue et aucune modification n'est apportée à la base de données ou au compte de l'utilisateur.
Pendant que la transaction est en cours et que la base de données est mise à jour, la transaction peut être décomposée en plusieurs états séquentiels.
Une fois qu'une transaction commence, elle entre dans un état actif pendant lequel des opérations de lecture et d'écriture de base de données peuvent se produire.
Une fois que toutes les étapes nécessaires d'une transaction sont terminées, la transaction est considérée comme partiellement engagée jusqu'à ce que la base de données principale soit mise à jour.
Lorsqu'une transaction a été menée à bien, elle est engagée dans la base de données, et son état est engagé, c'est-à-dire validé.
Lorsqu'une transaction ne parvient pas à exécuter une ou plusieurs de ses opérations ou est abandonnée, elle est considérée comme étant dans un état d'échec. L'échec d'une transaction déclenche une annulation de toutes les modifications associées dans la base de données.
État final de toutes les transactions. Une transaction dont l'état est terminé est retirée du système et ne peut plus effectuer aucune opération de base de données.
Toutes les transactions commencent à l'état actif et, en l'absence de problèmes, passent par les états partiellement engagée, engagée puis terminée. Si un problème survient pendant le traitement de la transaction, celle-ci passe à l'état d'échec et toutes les modifications associées sont annulées. La transaction peut alors être rééxécutée ou annulée. Qu'elle soit abandonnée ou engagée, toute transaction finit par entrer dans l'état terminé, libérant ainsi des ressources pour que le SGBD puisse traiter de nouvelles transactions.
Dans le domaine de la gestion de bases de données, l'atomicité n'est que l'une des quatre propriétés cruciales nécessaires au maintien de l'intégrité de la base de données. Désignées par l'acronyme ACID, ces quatre propriétés sont l'atomicité, la cohérence, l'isolation et la durabilité :
En tant que facette des SGBD, les systèmes de gestion des transactions s'appuient sur un certain nombre de technologies et de logiciels de base de données offrant divers degrés d'optimisation, tels que des automatismes, des modèles et des listes de contrôle. Des fournisseurs comme IBM, Microsoft et Oracle proposent une gamme de solutions de gestion des transactions à des prix compétitifs. Les technologies de gestion des transactions les plus répandues sont les suivantes :
SQL est le langage de programmation standard pour le stockage et le traitement des informations dans une base de données relationnelle. Les commandes SQL typiques incluent BEGIN TRANSACTION (commencer la transaction), COMMIT (valider) et ROLLBACK (annuler).
JTA est l'interface de programmation d'application (API) standard pour les applications d'entreprise. Elle permet aux applications de gestion des transactions de communiquer avec d'autres types d'applications, y compris les bases de données et les systèmes de messagerie, tout en garantissant l'atomicité et la cohérence.
De nombreux secteurs d'activité dépendent de la gestion des transactions pour gérer efficacement les bases de données relationnelles et les importantes ressources opérationnelles qu'elles représentent, qu'elles soient physiques (stock) ou éphémères (informations).
Voici une brève liste des cas d'utilisation courants de la gestion des transactions :
Les services financiers, y compris les sociétés de courtage et les institutions bancaires, dépendent de la gestion des transactions non seulement pour leurs opérations quotidiennes, mais aussi pour leurs activités commerciales se déroulant à la microseconde près. Sans la gestion des transactions, des produits classiques comme les comptes courants modernes et les plateformes de négociation d'actions ne pourraient pas fonctionner.
Pour les plateformes de vente en ligne, la gestion des transactions facilite le traitement des commandes, les paiements et la gestion des stocks afin d'honorer efficacement les commandes de commerce électronique.
Dans le monde complexe de l’immobilier, les coordinateurs de transactions immobilières s’appuient sur des logiciels de gestion des transactions pour rationaliser l’achat, la vente et la location de biens.
Les systèmes CRM tels que Salesforce sont essentiels pour les grandes organisations afin de suivre et de gérer les prospects, les interactions avec les clients, les commandes et un large éventail d'autres points de contact rendus accessibles par les SGBD et la gestion des transactions.
La gestion des transactions est indispensable à de nombreuses opérations commerciales modernes. Cependant, une gestion fiable des transactions doit être capable de relever certains défis critiques :