Maison >base de données >tutoriel mysql >Transactions SQL : garantir l'intégrité et la cohérence des données

Transactions SQL : garantir l'intégrité et la cohérence des données

Patricia Arquette
Patricia Arquetteoriginal
2024-12-28 00:41:09503parcourir

SQL Transactions: Ensuring Data Integrity and Consistency

Expliquer les transactions en SQL

Une transaction en SQL est une séquence d'une ou plusieurs opérations SQL exécutées comme une unité de travail unique et logique. Les transactions garantissent la cohérence, l'intégrité et la fiabilité des données au sein d'une base de données, même en cas de pannes ou d'erreurs du système. Ils suivent les Propriétés ACID pour maintenir la stabilité de la base de données.


Caractéristiques clés des transactions

  1. Atomicité :

    Garantit que toutes les opérations au sein d’une transaction sont terminées avec succès. Si une opération échoue, l'intégralité de la transaction est restaurée à son état initial.

  2. Cohérence :

    Garantit que la base de données passe d’un état valide à un autre. Les transactions doivent respecter toutes les règles définies, telles que les contraintes et les déclencheurs.

  3. Isolement :

    Garantit que plusieurs transactions se produisant simultanément n’interfèrent pas les unes avec les autres. Chaque transaction fonctionne comme si elle était la seule du système.

  4. Durabilité :

    Garantit qu'une fois qu'une transaction est validée, ses modifications sont permanentes, même en cas de panne du système.


Déclarations de contrôle des transactions

  1. COMMENCER LA TRANSACTION  : Commence une nouvelle transaction.
   BEGIN TRANSACTION;
  1. COMMITTER : Enregistre définitivement toutes les modifications apportées au cours de la transaction dans la base de données.
   COMMIT;
  1. RETOUR : Annule toutes les modifications apportées au cours de la transaction, ramenant la base de données à son état précédent.
   ROLLBACK;
  1. POINT DE SAUVEGARDE : Crée un point de sauvegarde dans une transaction pour revenir à un point spécifique sans affecter l'intégralité de la transaction.
   SAVEPOINT SavePointName;
  1. RETOUR AU POINT DE SAUVEGARDE : Rétablit la transaction au point de sauvegarde spécifié.
   ROLLBACK TO SavePointName;

Exemple de transaction

Scénario : Transférer des fonds entre deux comptes bancaires.

BEGIN TRANSACTION;

-- Deduct from Account A
UPDATE Accounts
SET Balance = Balance - 100
WHERE AccountID = 1;

-- Add to Account B
UPDATE Accounts
SET Balance = Balance + 100
WHERE AccountID = 2;

-- Check for errors and commit the transaction
IF @@ERROR = 0
    COMMIT;
ELSE
    ROLLBACK;

Explication :

  1. La transaction commence en utilisant BEGIN TRANSACTION.
  2. Le solde du compte A est réduit et le compte B est augmenté.
  3. Si aucune erreur ne se produit, COMMIT enregistre les modifications. Sinon, ROLLBACK annule toutes les modifications.

Transactions imbriquées

Les transactions peuvent être imbriquées, mais seul le COMMIT le plus externe finalisera les modifications. Cependant, chaque ROLLBACK affecte toute la hiérarchie des transactions.

   BEGIN TRANSACTION;

Propriétés ACIDE en détail

  1. Atomicité : Si une étape d’une transaction échoue, la transaction entière échoue. Par exemple:
   COMMIT;
  1. Cohérence : Garantit que la base de données respecte toutes les règles, telles que les contraintes de clé étrangère. Par exemple:
   ROLLBACK;
  1. Isolement :

    Les transactions n’interfèrent pas les unes avec les autres. Les niveaux d'isolement comprennent :

    • Lire non validé : les transactions peuvent lire les modifications non validées.
    • Lecture validée : les transactions ne voient que les modifications validées.
    • Lecture répétable : garantit que les mêmes données sont lues au sein de la transaction.
    • Sérialisable : empêche les autres transactions d'accéder aux lignes concernées.
  2. Durabilité :

    Une fois validés, les changements sont permanents. Un COMMIT garantit que les données sont enregistrées, même en cas de crash.


Cas d'utilisation pour les transactions

  • Systèmes bancaires : Assurer les transferts de fonds atomiques.
  • E-commerce : garantir qu'une commande est créée uniquement lorsque l'inventaire est mis à jour.
  • Gestion des stocks : Empêcher les mises à jour partielles lors des ajustements de stock.

Avantages des transactions

  • Garantit la cohérence et l’intégrité des données.
  • Fournit des mécanismes de récupération d'erreur.
  • Prend en charge les opérations de base de données simultanées via des niveaux d'isolement.

Inconvénients des transactions

  • Peut ralentir les performances en raison des mécanismes de verrouillage.
  • Une mauvaise gestion peut conduire à des blocages ou à des conflits de ressources.

Les transactions sont la pierre angulaire des systèmes de bases de données, garantissant la fiabilité, la cohérence et l'exactitude des données dans les opérations critiques.

Bonjour, je m'appelle Abhay Singh Kathayat !
Je suis un développeur full-stack avec une expertise dans les technologies front-end et back-end. Je travaille avec une variété de langages et de frameworks de programmation pour créer des applications efficaces, évolutives et conviviales.
N'hésitez pas à me contacter à mon e-mail professionnel : kaashshorts28@gmail.com.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn