© 13_Phunkod/Shutterstock.com

Lorsque vous utilisez des systèmes de gestion de base de données (SGBD), les transactions sont effectuées régulièrement. Celles-ci sont souvent exécutées en tant que transactions ACID, qui présentent de nombreux avantages pour maintenir une base de données saine et fonctionner correctement. Si vous essayez de vous familiariser avec les propriétés ACID dans le SGBD, nous avons couvert tout ce que vous devez savoir.

Qu’est-ce qu’une transaction ACID ?

Concernant les bases de données, une transaction est une opération qui exécute une tâche unique et peut modifier le contenu de la base de données. Les transactions utilisent des opérations de lecture et d’écriture pour travailler avec des données. Autrement dit, ils lisent les données existantes et entrent, ou « écrivent », de nouvelles valeurs de données. Un exemple classique de cela est lorsque de l’argent est transféré depuis votre compte bancaire. En tant que telles, les transactions ACID sont dans un état terminé ou incomplet. Dans cet exemple, l’argent ne peut pas être simultanément retiré de votre compte et non retiré-cela s’est produit ou non.

L’objectif d’une transaction ACID est de maintenir la cohérence et l’exactitude de la base de données après l’exécution des transactions. Les propriétés ACID du SGBD permettent aux développeurs d’effectuer des opérations élaborées tout en s’assurant que leurs données sont sûres et correctes. Cela se fait via les propriétés dictées de la transaction, appelées propriétés ACID. ACID signifie Atomicité, Cohérence, Isolation et Durabilité. Ensuite, nous allons nous plonger dans la signification de ces termes.

Les transactions ACID garantissent l’exactitude et la cohérence de la base de données après l’exécution des transactions.

©dizain/Shutterstock.com

Atomicité

Cela fait référence à la manière dont les instructions d’une transaction sont traitées. Une instruction est une tâche unique, telle que la lecture, l’écriture, la mise à jour ou la suppression de données. L’atomicité signifie que chaque instruction est traitée comme une seule unité et que la tâche entière est exécutée ou qu’aucune d’elle ne l’est. Cela empêche également les transactions partielles de se produire.

En d’autres termes, l’atomicité aide à prévenir la corruption et la perte de données si vos opérations échouent en cours de route. La base de données conserve un enregistrement de chaque modification qu’elle a apportée, et si la connexion est interrompue, ces modifications sont annulées. Cela repose sur deux opérations appelées”Abort”et”Commit”. Le premier annule les modifications si la transaction est abandonnée, et le second rend les modifications visibles si la transaction est terminée.

Cohérence 

La cohérence signifie la même chose que dans la plupart des situations pratiques. En ce qui concerne les bases de données, cela signifie que les transactions ne modifient les données que de manière prévisible et prédéfinie, et que les valeurs des données sont préservées. Si la transaction enfreint les règles de la base de données, elle est alors abandonnée. Cela empêche également la corruption des données ou les erreurs comme le fait l’atomicité et préserve l’intégrité de la base de données en évitant les conséquences involontaires.

Isolation

Il est important, lorsque vous travaillez avec des bases de données, que les transactions des utilisateurs ne le fassent pas interférer les uns avec les autres. Pour ce faire, l’isolement est utilisé comme une propriété. Cela signifie que lorsque les utilisateurs opèrent simultanément sur la même base de données, chaque demande de transaction est exécutée comme s’il s’agissait de demandes individuelles. Ces transactions ne s’affectent pas les unes les autres et sont traitées comme si elles étaient sérialisées, même si elles se produisent simultanément. Parce qu’ils sont séquentiels, ils ne peuvent pas s’affecter et nuire à l’intégrité des données.

Durabilité

La dernière propriété ACID est la durabilité. Cela permet de préserver les données en cas de défaillance du système en enregistrant les modifications incrémentielles apportées en cours de route. Si la transaction réussit, les modifications ne sont pas annulées. La durabilité permet également à la base de données d’annuler ses modifications en cas d’interruption de la transaction.

Propriétés ACID dans le SGBD : exemples de transactions

Nous avons maintenant couvert les bases de ce que l’ACID propriétés, il est temps d’illustrer ces propriétés avec un simple exemple de transaction.

Atomicité

La façon la plus simple d’expliquer l’atomicité est de considérer la situation où vous souhaitez transférer de l’argent d’un compte bancaire à un autre.

Les transactions doivent être atomiques car vous ne voulez pas vous retrouver dans une situation où une opération incomplète se poursuit. Dans ce cas, cela pourrait être de l’argent retiré mais pas déposé, ou le deuxième compte étant crédité sans que l’argent ne soit retiré du compte source. En tant que telles, ces transactions doivent être annulées si elles ne sont pas terminées avec succès, l’atomicité est donc primordiale. Les données et les transactions pour cet exemple sont présentées ci-dessous.

X : 500Y : 200T1T2Read(X)
X : = X – 50
Write(X)Read(Y)
Y: Y + 50
Write(Y)X : 450Y : 250

Si nous voulons transférer 50 $ du compte X vers le compte Y, nous devons utiliser une transaction T en deux étapes : T1 et T2. C’est-à-dire retirer l’argent du compte X et déposer l’argent sur le compte Y. Si la transaction est interrompue après l’exécution de write(X) mais avant l’exécution de write(Y), alors l’opération est incohérente et la base de données est compromise. La transaction doit donc être réalisée dans son intégralité. Si ce n’est pas le cas, la transaction échoue et les opérations sont annulées.

Cohérence

En utilisant le même exemple, la cohérence garantit que la valeur du montant des fonds dans l’un ou l’autre compte est cohérente. Autrement dit, la valeur est la même au début et à la fin de chaque transaction. Cela maintient l’intégrité de la base de données, ainsi que la nature prévisible des valeurs qu’elle contient. Dans cette situation, il est important que la contrainte selon laquelle le solde bancaire doit être un nombre entier positif soit respectée. Sinon, la transaction échouera.

Pour illustrer, si le total des fonds sur le compte X s’élève à 500 $ et que nous voulons transférer 50 $ sur le compte Y, alors le total des fonds sur les deux comptes doit toujours être égal à 500 $, en supposant qu’il n’y a aucun fonds initial dans le compte Y. La cohérence peut sembler être l’une des propriétés ACID les plus simples dans le SGBD, mais elle est néanmoins très cruciale.

Isolation

Pour montrer un exemple où l’isolation n’est pas’t utilisé correctement, considérez deux transactions, T et T ». Pendant que T récupère des données et les met à jour à partir d’une ligne, T”calcule ces données. Si T”récupère les données avant que T n’ait terminé la mise à jour, la transaction terminée affichera des données incorrectes. Les données et les transactions pour cet exemple sont présentées ci-dessous, où”Poids”=X et”Taille”=Y.

NameWeight/lbHeight/inStephen17972Denise14658
TT”Read(Weight)
X :=X/2.2
Écrire(X)
Lire(Y)
Y :=Y*0.0254
Écrire(Y)Lire(X)
Lire(Y)
Z : =X/Y2
Write(Z)

Dans ce cas, T convertit les valeurs de poids et les valeurs de taille en kilogrammes et en mètres respectivement, et T”tente de calculer la l’IMC de la personne selon l’équation IMC=kg/m2. Pour illustrer, nous allons considérer le scénario où T est exécuté jusqu’à l’étape Read(Y) et T”commence. La valeur correcte pour X est récupérée par T”puisque X a déjà été calculé, mais la valeur incorrecte pour Y est récupérée car la valeur mise à jour n’a pas encore été écrite par T. Cela peut être illustré comme suit :

 T “: (X/Y2=81,36/722=0,016)

En réalité, le calcul devrait être :

(X/Y2=81,36/1.832=24.3)

Parce que T”a pris la valeur initiale pour Y, la base de données est maintenant incohérente et la valeur sortie est inexacte et essentiellement dénuée de sens. Cette situation, où des données incorrectes sont récupérées, est connue sous le nom de”lecture sale”. L’écart dans un cas de transfert d’argent pourrait être plus insidieux et plus difficile à repérer car il s’agirait potentiellement d’une différence relativement mineure entre les fonds calculés et attendus.Dans tous les cas, les transactions doivent être isolées, les modifications incrémentielles étant invisibles pour l’une ou l’autre des transactions jusqu’à ce qu’elles aient mémoire.

Durabilité

Étant donné que la durabilité est centrée sur la préservation des données, cela peut être envisagé dans le contexte d’une panne de courant. S’il y a une panne inattendue comme celle-ci après la l’argent a été transféré, ce changement d’information doit être conservé par la base de données en non-vola mémoire de tuiles. Cependant, si la panne se produit pendant la transaction, les modifications seront annulées et annulées selon l’atomicité.

La durabilité se concentre sur la préservation des données en cas de pannes inattendues.

©thinkhubstudio/Shutterstock.com

Récapitulatif

En conclusion, nous pouvons voir à quel point les quatre propriétés ACID sont importantes dans le SGBD. Ensemble, ils garantissent que seules les transactions correctes sont effectuées et que les informations mises à jour sont stockées dans une mémoire non volatile pour se protéger contre les pannes inattendues. Ils maintiennent également la nature prévisible des modifications de données et garantissent que les transactions n’interfèrent pas les unes avec les autres.

À suivre…

Les propriétés ACID dans le SGBD expliquées, avec des exemples de FAQ (Foire aux questions Questions) 

Qu’est-ce qu’une transaction dans le SGBD ?

Une transaction fait référence à un ensemble d’opérations qui exécutent un ensemble unique de travail logique. En ce sens, le travail logique signifie une modification significative des données, comme le transfert d’argent d’un compte à un autre. Les transactions peuvent être en cours d’exécution, échouer ou être abandonnées pour diverses raisons.

Que sont les propriétés ACID dans le SGBD ?

Propriétés ACID font référence à la manière dont les bases de données régissent les transactions exécutées avec leurs données. ACID signifie Atomicité, Cohérence, Isolation et Durabilité.

Pourquoi les propriétés ACID sont-elles importantes ?

Les propriétés ACID aident à maintenir les données correctes et cohérentes dans les bases de données, et à les préserver en cas d’événements inattendus tels que l’alimentation les échecs. De plus, les propriétés garantissent que les transactions n’interfèrent pas les unes avec les autres.

Quand dois-je utiliser une transaction ACID multidocument ?

Parfois, les données associées sont réparties entre plusieurs enregistrements, de sorte que la manipulation des données doit être capable de fonctionner avec cela pour le succès de la transaction. La plupart des applications ne nécessitent pas de transactions multi-documents, mais pour certaines, elles sont cruciales. De nombreux modèles de données sont flexibles, ce qui signifie qu’ils permettent de stocker des données connexes dans un seul document, mais sont également capables de travailler avec des données multi-documents. Un exemple est MongoDB.

Quels sont les inconvénients de l’utilisation des transactions ACID ?

L’inconvénient de l’utilisation des transactions ACID est que la base de données empêche les opérations simultanées, telles que que l’écriture de données, d’interférer. Bien que ce soit en grande partie un avantage, cela empêche les utilisateurs ou les clients d’exécuter des transactions s’ils attendent qu’une autre se termine. Cela peut affecter négativement l’expérience utilisateur et entraîner une latence d’application plus élevée.

Comment le modèle ACID se compare-t-il au modèle BASE ?

Le modèle ACID vise à assurer la cohérence, tandis que le modèle BASE vise à offrir une haute disponibilité. BASE le fait en diffusant et en répliquant les données sur les nœuds de la base de données, permettant aux données de changer au fil du temps et aux lectures de données d’être effectuées selon les besoins. La cohérence peut éventuellement être atteinte via le modèle BASE, mais ce n’est pas une exigence immédiate.

Qu’est-ce qu’une base de données relationnelle ?

Une base de données relationnelle est une base de données où les données sont stockées dans une ou plusieurs tables et sont liées les unes aux autres par une clé commune. Ainsi, les types de données peuvent être liés les uns aux autres par des relations un-à-un, un-à-plusieurs ou plusieurs-à-plusieurs.

Quelles bases de données prennent en charge les propriétés ACID ?

Les SGBD conformes à ACID incluent MySQL, PostgreSQL, SQLite, Oracle et Microsoft SQL Server.

Quel secteur utilise principalement les propriétés ACID ?

Le secteur financier utilise presque entièrement des SGBD conformes à ACID.

Quelles bases de données ne prennent pas en charge les propriétés ACID ?

NoSQL, ou”non-Les bases de données”SQL”ne prennent pas entièrement en charge les propriétés ACID, car elles n’ont pas de structure de table fixe. Ils fournissent une cohérence éventuelle, conformément au modèle BASE.

By Maxwell Gaven

J'ai travaillé dans l'informatique pendant 7 ans. C'est amusant d'observer le changement constant dans le secteur informatique. L'informatique est mon travail, mon passe-temps et ma vie.