logo

Propriétés ACID dans le SGBD

Les transactions sont des opérations fondamentales qui nous permettent de modifier et de récupérer des données. Cependant, pour garantir l'intégrité d'une base de données, il est important que ces transactions soient exécutées de manière à maintenir la cohérence, l'exactitude et la fiabilité même en cas de pannes/erreurs. C'est là que les propriétés ACID entrent en jeu.

ACID signifie Atomicity Consistency Isolation and Durability.



Propriétés de l'ACIDE :

acid_propriétés' title=

Il y a quatre propriétés de l'ACIDE

1. Atomicité

L'atomicité signifie qu'une transaction est tout ou rien, soit toutes ses opérations réussissent, soit aucune n'est appliquée. Si une partie échoue, la totalité de la transaction est annulée pour maintenir la cohérence de la base de données.

  • Commettre : Si la transaction réussit, les modifications sont appliquées définitivement.
  • Abandonner/Annuler : Si la transaction échoue, toutes les modifications apportées au cours de la transaction sont ignorées.

Exemple : Considérons la transaction suivante T composé de T1 et T2 : Transfert de 0 du compte X rendre compte ET .

atomicité' loading='lazy' title=Atomicité

Si la transaction échoue après la fin de T1 mais avant la fin de T2, la base de données restera dans un état incohérent. Avec Atomicity, si une partie de la transaction échoue, l'ensemble du processus est ramené à son état d'origine et aucune modification partielle n'est apportée.



La cohérence des transactions signifie que la base de données doit rester dans un état valide avant et après une transaction.

surcharge de méthode
  • Un état valide suit toutes les règles, contraintes et relations définies (comme les clés primaires, les clés étrangères, etc.).
  • Si une transaction viole l'une de ces règles, elle est annulée pour empêcher les données corrompues ou invalides.
  • Si une transaction déduit de l'argent d'un compte mais ne l'ajoute pas à un autre (dans un transfert), cela viole la cohérence.

Exemple : Supposons que la somme de tous les soldes d’un système bancaire soit toujours constante. Avant un transfert, le solde total est de 0. Après la transaction, le solde total doit rester 0. Si la transaction échoue au milieu (comme la mise à jour d'un compte mais pas de l'autre), le système doit maintenir sa cohérence en annulant la transaction.

Total avant que T ne se produise = 500 + 200 = 700 .
Total après l'apparition de T  = 400 + 300 = 700 .



isolement' loading='lazy' title=Cohérence

3. Isolement

L'isolement garantit que les transactions s'exécutent indépendamment sans s'affecter les unes les autres. Les modifications apportées par une transaction ne sont pas visibles par les autres jusqu'à ce qu'elles soient validées.

Il garantit que le résultat des transactions simultanées est le même que si elles étaient exécutées l'une après l'autre, évitant ainsi des problèmes tels que :

  • Lectures sales : lecture de données non validées
  • Lectures non répétables : les données changent entre deux lectures
  • Fantôme lit : de nouvelles lignes apparaissent lors d'une transaction

Exemple : Considérons deux transactions T et T''.

  • X = 500 Y = 500
isolement' loading='lazy' title=Isolement

Explication:

1. Transaction T :

  • T veut passer de X à Y.
  • T lit ET (valeur : 500) déduit de X (nouveau X = 450) et ajoute à Y (nouveau Y = 550).

2. Transaction T'' :

  • T' ' démarre et lit X (500) et Y (500).
  • Il calcule la somme : 500 + 500 = 1000.
  • Pendant ce temps, les valeurs de X et Y passent respectivement à 450 et 550.
  • La somme correcte devrait donc être 450 + 550 = 1 000.
  • L'isolement garantit que T'' ne lit pas de valeurs obsolètes alors qu'une autre transaction (T) est toujours en cours.
  • Les transactions doivent être indépendantes et T'' ne doit accéder aux valeurs finales qu'après la validation de T.
  • Cela évite des résultats incohérents comme la somme incorrecte calculée par T''.

4. Durabilité :

La durabilité garantit qu'une fois qu'une transaction est validée, ses modifications sont enregistrées de manière permanente même en cas de panne du système. Les données sont stockées dans une mémoire non volatile afin que la base de données puisse revenir à son dernier état validé sans perdre de données.

Exemple : Après avoir transféré avec succès de l'argent du compte A vers le compte B, les modifications sont stockées sur le disque. Même en cas de crash immédiatement après la validation, les détails du transfert resteront intacts lors de la récupération du système, garantissant ainsi la durabilité.

Comment les propriétés ACID impactent la conception et le fonctionnement du SGBD

Le Les propriétés ACID dans leur totalité fournissent un mécanisme pour garantir l'exactitude et la cohérence d'une base de données de telle sorte que chaque transaction est un groupe d'opérations qui agit comme une seule unité, produit des résultats cohérents, agit indépendamment des autres opérations et les mises à jour qu'elle effectue sont stockées de manière durable.

Les propriétés ACID protègent l'intégrité des données d'un SGBD en garantissant que les transactions se terminent avec succès ou ne laissent aucune trace en cas d'interruption. Ils empêchent les mises à jour partielles de corrompre les données et garantissent que la base de données passe uniquement entre des états valides.

tableaux Java

2. Contrôle de concurrence

Les propriétés ACID fournissent un cadre solide pour gérer les transactions simultanées. L'isolation garantit que les transactions n'interfèrent pas les unes avec les autres, évitant ainsi les anomalies de données telles que la perte de mises à jour, l'incohérence temporaire et les données non validées.

3. Récupération et tolérance aux pannes

La durabilité garantit que même en cas de panne du système, la base de données peut retrouver un état cohérent. Grâce aux propriétés Atomicité et Durabilité, si une transaction échoue à mi-chemin, la base de données reste dans un état cohérent.

Propriété Responsabilité de l'entretien des propriétés
AtomicitéGestionnaire de transactions
CohérenceProgrammeur d'applications
IsolementGestionnaire de contrôle de concurrence
DurabilitéRécupération

Cas d'utilisation critiques d'ACID dans les bases de données

Dans les applications modernes, il est crucial de garantir la fiabilité et la cohérence des données. Les propriétés ACIDES sont fondamentales dans des secteurs tels que :

  • Bancaire : Les transactions impliquant des transferts d'argent, des dépôts ou des retraits doivent maintenir une stricte cohérence et durabilité pour éviter les erreurs et la fraude.
  • Commerce électronique : Garantir que l'inventaire compte les commandes et les détails des clients sont traités correctement et de manière cohérente, même en cas de trafic élevé, nécessite la conformité ACID.
  • Soins de santé : Les résultats des tests des dossiers des patients et les prescriptions doivent respecter des normes strictes d’intégrité et de sécurité.