Transactions en SQL - Étapes pour effectuer des transactions avec des exemples

Table des matières:

Anonim

Introduction aux transactions dans SQL

Une transaction en SQL généralement connue sous le nom de paiement (envoi, réception, achat, etc.) mais quand il s'agit des domaines techniques, c'est le moyen de mettre à jour l'unité logique d'information dans la base de données.

Une transaction est l'implémentation d'une ou plusieurs modifications dans la base de données. Nous pouvons regrouper plusieurs requêtes SQL et les exécuter simultanément dans une transaction. Toutes les requêtes SQL seraient exécutées en une seule fois ou toutes seraient annulées. Il n'aurait que deux résultats, soit le succès, soit l'échec.

La transaction une fois validée ne peut pas être une annulation, elle ne peut être annulée que si la transaction n'est pas validée. MYSQL valide automatiquement les modifications dans la base de données si toutes les requêtes sont exécutées avec succès. Pour valider explicitement les modifications dans la base de données, vous devez d'abord désactiver la validation automatique via la commande -

Syntaxe: SET autocommit = 0;

Propriétés de la transaction

Voici les propriétés importantes des transactions, chaque transaction doit suivre ces propriétés

1. Atomicité

Une transaction doit être atomique, ce qui signifie que la manipulation des données doit être terminée pour une certaine unité logique. Cette propriété garantit que les modifications de données ont eu lieu complètement, sinon annulez la transaction.

2. Cohérence

Une fois la transaction terminée, tous les enregistrements disponibles seront cohérents tout au long de la transaction. Cette propriété garantit que la propriété de la base de données a changé d'état après une validation réussie ou non.

3. Isolement

L'isolement fait référence aux changements de données sur une certaine unité logique qui ne devraient pas affecter une autre unité. Il permet à une transaction de s'exécuter indépendamment.

4. Durabilité

Les modifications apportées lors des transactions doivent être permanentes dans le système. En cas d'erreur système, cette propriété garantit également que les modifications de données ont lieu ou non.

La propriété de la transaction indiquée ci-dessus est également appelée propriété ACID.

Étapes de la transaction

1. Commencez

Une transaction peut se produire dans plusieurs exécutions SQL mais tout SQL doit s'exécuter en même temps. Si l'une des transactions échoue, la transaction entière sera annulée. L'instruction pour démarrer la transaction est «START TRANSACTION». Commence l'acronyme de START TRANSACTION.

Syntaxe: START TRANSACTION;

2. S'engager

Les validations reflètent en permanence les modifications apportées à la base de données. L'instruction pour démarrer la transaction est «COMMIT».

Syntaxe: COMMIT;

3. Rollback

La restauration est utilisée pour annuler les modifications, c'est-à-dire que l'enregistrement ne sera pas modifié, il serait dans l'état précédent. L'instruction pour démarrer la transaction est «ROLLBACK».

Syntaxe: ROLLBACK;

4. Savepoint

SAVEPOINT est également une déclaration de transaction. Cette instruction permet de créer un point de stockage dans le système afin que l'opération ROLLBACK puisse atteindre l'état du point de sauvegarde.

5. Relâchez Savepoint

RELEASE SAVEPOINT est une instruction pour libérer le point de sauvegarde et la mémoire consommés par le système lors de la création d'un point de sauvegarde.

Syntaxe: RELEASE SAVEPOINT SP

Remarques - SP est le nom du point d'enregistrement lorsque ce point d'enregistrement a été créé avant le début de la transaction.

6. Définir la transaction

La commande SET TRANSACTION est utilisée pour spécifier l'attribut de transaction tel que la transaction donnée est une session en lecture seule ou en lecture-écriture.

Syntaxe : SET TRANSACTION (READ-WRITE | READ ONLY);

La transaction est utilisée pour effectuer les modifications complexes dans la base de données. Son principalement utilisé dans les informations bancaires liées aux changements dans une base de données relationnelle.

La transaction est prise en charge par le moteur MYSQL InnoDB. Par défaut, la validation automatique reste activée, c'est pourquoi chaque fois qu'un SQL s'exécute après l'exécution, les validations ont lieu automatiquement.

Transactions utilisant SQL

Exemple 1

Transaction bancaire: un compte a débité le montant de 50000 du compte d'épargne de la personne A et a soumis ce montant au compte de prêt de A.

Démarrer la transaction: cette transaction de démarrage convertira toutes les requêtes SQL en une seule unité de transaction.

UPDATE `account` SET `balance` = `balance` - 50000 WHERE user_id = 7387438;

Cette requête SQL déduit le montant du solde du compte existant.

UPDATE `loan_account` SET `paid_amount` = `paid_amount` + 50000 WHERE user_id = 7387438;

Cette requête SQL ajoute le montant au compte de prêt utilisateur.

Insert into `transaction_details`(`user_id`, 'amount') values (7387438, '50000');

Cette requête SQL insère un nouvel enregistrement dans la table des détails de transaction, cette table contient les détails de toutes les transactions des utilisateurs. Si toutes les requêtes ont été exécutées avec succès, la commande COMMIT doit être exécutée car les modifications doivent être stockées en permanence dans la base de données.

Commit: cette instruction commit enregistre les modifications invoquées par une transaction dans la base de données. Si l'une des transactions échoue pendant l'exécution, la commande ROLLBACK doit être exécutée pour annuler la transaction complète

Rollback: le rollback a lieu une fois qu'une requête échoue pendant l'exécution.

Exemple # 2

Transaction d'inventaire: dans le tableau des articles donné, 6 articles sont disponibles.

Exécution de l'instruction START TRANSACTION suivante pour démarrer la transaction.

Exécutez maintenant la commande SET AUTOCOMMIT = 0 ; désactiver la validation automatique

Exécute maintenant l'instruction suivante pour supprimer l'enregistrement de la table des éléments

L'enregistrement maintenant disponible dans le tableau est 4, c'est-à-dire les enregistrements temporairement supprimés des éléments du tableau

Maintenant, exécutez la commande ROLLBACK pour annuler les modifications, l'enregistrement supprimé serait disponible dans les éléments du tableau comme précédemment avant de démarrer la transaction

Encore une fois, si vous appliquez la même opération de suppression, l'opération COMMIT après ses modifications sera enregistrée de manière permanente dans la base de données

Maintenant, nous pouvons voir qu'après la commande ROLLBACK toujours, l'enregistrement était dans un nouvel état. Cela signifie qu'une fois l'opération COMMIT effectuée, les modifications ne peuvent pas être annulées car elles apportent des modifications permanentes dans la base de données;

Avantages de l'utilisation de Transaction dans SQL

a) L'utilisation de Transaction améliore les performances , lors de l'insertion de 1000 enregistrements à l'aide de transactions dans ce cas, le temps pris serait inférieur à l'insertion normale. Comme dans une transaction normale, chaque fois que COMMIT aurait lieu après chaque exécution de requête, cela augmenterait le temps d'exécution à chaque fois pendant la transaction, pas besoin d'exécuter l'instruction COMMIT après chaque requête SQL. COMMIT à la fin refléterait toutes les modifications apportées à la base de données de façon permanente à la fois. De plus, si vous utilisez une transaction, l'annulation des modifications serait beaucoup plus facile que la transaction normale. ROLLBACK annulera toutes les modifications à la fois et gardera le système dans l'état précédent.

b) La transaction garantit l'intégrité des données dans la base de données relationnelle. La plupart de la base de données utilise plusieurs tables pour maintenir les données et lors des mises à jour, il peut y avoir des modifications dans les plusieurs tables à ce moment-là si l'une des requêtes SQL échoue, la transaction conservera les données inchangées.

Conclusion

L'utilisation des transactions est une meilleure pratique de mise à jour des informations pour une unité logique dans une base de données relationnelle. Pour la mise en œuvre des transactions, le moteur de base de données doit prendre en charge la transaction comme le moteur InnoDB. La transaction, en tant qu'unité d'instructions SQL, peut être annulée simultanément à l'aide d'une seule instruction ROLLBACK. La transaction garantit l'intégrité des données et améliore les performances de la base de données.

Articles recommandés

Ceci est un guide des transactions en SQL. Nous discutons ici de l'introduction, des propriétés, des étapes, des exemples de transactions en SQL ainsi que des avantages de l'utilisation des transactions en SQL.

  1. Qu'est-ce que SQL
  2. Outils de gestion SQL
  3. Vues SQL
  4. Types de jointures dans SQL Server
  5. 6 principaux types de jointures dans MySQL avec des exemples