Propriétés d’ACID

  • par

.

ACID est un concept (et un acronyme) qui fait référence aux quatre propriétés d’une transaction dans un système de base de données, qui sont : Atomicité, Cohérence, Isolation et Durabilité. Ces propriétés assurent l’exactitude et l’intégrité des données dans la base de données, en veillant à ce que les données ne soient pas corrompues à la suite d’une certaine défaillance, en garantissant la validité des données même lorsque des erreurs ou des défaillances se produisent.

Les propriétés ACID nous permettent d’écrire des applications sans tenir compte de la complexité de l’environnement dans lequel l’application est exécutée. Ceci est essentiel pour le traitement des transactions dans les bases de données. Grâce aux propriétés ACID, nous pouvons nous concentrer sur la logique de l’application plutôt que sur les défaillances, la récupération et la synchronisation des données.

Transaction

Avant d’expliquer les quatre propriétés ACID, nous devons comprendre ce qu’est une transaction. Une transaction est une séquence d’opérations qui sont exécutées comme une seule unité de travail, et une transaction peut être constituée d’une ou plusieurs étapes. Une transaction accède aux données en utilisant des opérations de lecture et d’écriture.

Chaque transaction est un groupe d’opérations qui agit comme une unité unique, produit des résultats cohérents, agit de manière isolée des autres opérations et les mises à jour qu’elle effectue sont stockées durablement.

Le but d’une transaction est de préserver l’intégrité et la cohérence des données. Si une transaction réussit, les données qui ont été modifiées pendant la transaction seront enregistrées dans la base de données. Si une erreur se produit et qu’il faut l’annuler ou revenir en arrière, les modifications qui ont été apportées aux données ne seront pas appliquées.

Lorsque nous travaillons avec une base de données, nous exécutons des déclarations SQL, et ces opérations sont généralement exécutées en blocs, et ces blocs sont les transactions. Elles permettent d’insérer, de mettre à jour, de supprimer, de rechercher des données, etc.

Par exemple, le transfert d’argent entre des comptes bancaires est une transaction, ce qui se produira dans ce cas est que la valeur doit être débitée d’un compte et créditée dans un autre compte.

Une transaction doit être une unité de travail atomique, ce qui signifie que toutes les données modifiées sont exécutées ou aucune ne le sera. La transaction doit être complètement exécutée ou échouer complètement, si une partie de la transaction échoue, toute la transaction échouera. Cela assure la fiabilité, car s’il y a une défaillance au milieu d’une transaction, aucune des modifications de cette transaction ne sera commise.

Par exemple, dans une transaction financière, l’argent sort du compte A et va sur le compte B, les deux opérations doivent être exécutées ensemble, et si l’une d’entre elles échoue, l’autre ne sera pas exécutée. La transaction est donc traitée comme une seule entité, comme une seule commande. Une transaction peut avoir plus de deux opérations, mais elle sera toujours exécutée toutes les deux ou aucune. Sur cet exemple, lorsque l’argent est transféré du compte A au compte B, si quelque chose échoue, toute la transaction sera interrompue et fera un rollback.

Consistance

Cette propriété garantit que la transaction maintient les contraintes d’intégrité des données, laissant les données cohérentes. La transaction crée un nouvel état valide des données et si un certain échec se produit, retourner toutes les données avec l’état avant la transaction en cours d’exécution.

Le but est de s’assurer que la base de données avant et après la transaction soit cohérente. Si une transaction laisse les données dans un état invalide, la transaction est interrompue et une erreur est signalée.

Les données qui sont enregistrées dans la base de données doivent toujours être valides (les données seront valides selon les règles définies, y compris les éventuelles contraintes, cascades et déclencheurs qui ont été appliqués sur la base de données), de cette façon, la corruption de la base de données qui peut être causée par une transaction illégale est évitée. Par exemple, si nous essayons d’ajouter un enregistrement dans une table de vente avec le code d’un produit qui n’existe pas dans la table des produits, la transaction échouera. Autre exemple, si vous avez une colonne qui n’autorise pas les nombres négatifs, et que vous essayez d’ajouter ou de modifier un enregistrement, en utilisant une valeur inférieure à zéro sur cette colonne, la transaction échouera.

Isolation

Cette propriété assure l’isolation de chaque transaction, garantissant que la transaction ne sera pas modifiée par une autre transaction concurrente. Cela signifie que chaque transaction en cours ne sera pas interférée par une autre transaction jusqu’à ce qu’elle soit terminée.

Par exemple, si deux clients essaient d’acheter en même temps le dernier produit disponible sur le site web, lorsque le premier utilisateur termine ses achats, il fera en sorte que la transaction de l’autre utilisateur soit interrompue.

Durabilité

Une fois qu’une transaction est terminée et validée, ses changements sont persistés de façon permanente dans la base de données. Cette propriété garantit que les informations enregistrées dans la base de données sont immuables jusqu’à ce qu’une autre transaction de mise à jour ou de suppression les affecte.

Une fois que la transaction est validée, elle restera dans cet état même si un problème grave survient, comme un crash ou une panne de courant. À cette fin, les transactions effectuées sont enregistrées sur des dispositifs de mémoire permanente (non volatile) tels que les disques durs, de sorte que les données seront toujours disponibles, même si l’instance de la BD est redémarrée.

Conclusion

Les propriétés ACID garantissent l’intégrité et la cohérence des données dans la base de données, en veillant à ce que les données ne soient pas corrompues à la suite d’une quelconque défaillance. Les bases de données qui appliquent les propriétés ACID garantissent que seules les transactions qui ont été complètement réussies seront traitées, et si une certaine défaillance se produit avant qu’une transaction soit terminée, les données ne seront pas modifiées.

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *