Que signifie le fait qu'une base de données soit conforme à la norme ACID ?
What does it mean if a database is ACID compliant?
ACID is an acronym that stands for Atomicity, Consistency, Isolation, and Durability.
Atomicity means that actions occur either entirely or not at all; there is no partial write or situation where only part of an action was completed. For a database, this means that if data was written in a single transaction, that transaction either completes entirely or fails completely with no data left behind in a partial or corrupt state.
Consistency means that transactions take the state from one valid state to another valid state, with no way to enter an invalid state.
Isolation means that multiple readers/writers to the same database do not interfere with each other and can proceed without worrying about the effects of another action occurring.
Durability means that state is preserved across failures and shutdowns, e.g. that state is persisted to permanent storage.
ACID est un acronyme qui signifie Atomicité, Cohérence, Isolation et Durabilité.
L'atomicité signifie que les actions se produisent soit entièrement, soit pas du tout ; il n'y a pas d'écriture partielle ou de situation où seule une partie d'une action a été effectuée. Pour une base de données, cela signifie que si des données ont été écrites dans une seule transaction, cette transaction se termine entièrement ou échoue complètement sans laisser de données dans un état partiel ou corrompu.
La cohérence signifie que les transactions font passer l'état d'un état valide à un autre état valide, sans qu'il soit possible d'entrer dans un état invalide.
L'isolation signifie que plusieurs lecteurs/écrivains de la même base de données n'interfèrent pas les uns avec les autres et peuvent procéder sans se soucier des effets d'une autre action.
La durabilité signifie que l'état est préservé malgré les pannes et les arrêts, c'est-à-dire que l'état est persisté dans un stockage permanent.
summarization
En informatique, ACID (atomicité, cohérence, isolation, durabilité) est un ensemble de propriétés des transactions de base de données visant à garantir la validité des données malgré les erreurs, les pannes de courant et autres incidents. Dans le contexte des bases de données, une séquence d'opérations de base de données qui satisfait aux propriétés ACID (qui peut être perçue comme une opération logique unique sur les données) est appelée une transaction. Par exemple, un transfert de fonds d'un compte bancaire à un autre, même s'il implique des changements multiples tels que le débit d'un compte et le crédit d'un autre, est une transaction unique.

En 1983, Andreas Reuter et Theo Härder ont inventé l'acronyme ACID, en s'appuyant sur des travaux antérieurs de Jim Gray qui avait nommé l'atomicité, la cohérence et la durabilité, mais pas l'isolation, pour caractériser le concept de transaction. Ces quatre propriétés sont les principales garanties du paradigme transactionnel, qui a influencé de nombreux aspects du développement des systèmes de bases de données.

Selon Gray et Reuter, le système de gestion de l'information d'IBM prenait en charge les transactions ACID dès 1973 (bien que l'acronyme ait été créé plus tard).

Atomicité
Article principal : Atomicité (systèmes de base de données)
Les transactions sont souvent composées de plusieurs déclarations. L'atomicité garantit que chaque transaction est traitée comme une "unité" unique, qui réussit complètement ou échoue complètement : si l'une des déclarations constituant une transaction échoue, la transaction entière échoue et la base de données reste inchangée. Un système atomique doit garantir l'atomicité dans toutes les situations, y compris les pannes de courant, les erreurs et les plantages. Une garantie d'atomicité empêche les mises à jour de la base de données de n'être que partielles, ce qui peut poser des problèmes plus graves que le rejet pur et simple de toute la série. Par conséquent, un autre client de la base de données ne peut pas observer que la transaction est en cours. À un moment donné, elle n'a pas encore eu lieu, et à l'instant suivant, elle a déjà eu lieu en totalité (ou il ne s'est rien passé si la transaction a été annulée en cours de route).

Cohérence
Article principal : Cohérence (systèmes de base de données)
La cohérence garantit qu'une transaction ne peut amener la base de données que d'un état cohérent à un autre, en préservant les invariants de la base de données : toute donnée écrite dans la base de données doit être valide conformément à toutes les règles définies, y compris les contraintes, les cascades, les déclencheurs et toute combinaison de ceux-ci. Cela permet d'éviter la corruption de la base de données par une transaction illégale. L'intégrité référentielle garantit la relation clé primaire-clé étrangère.

Isolation
Article principal : Isolation (systèmes de base de données)
Les transactions sont souvent exécutées simultanément (par exemple, plusieurs transactions lisent et écrivent dans une table en même temps). L'isolation garantit que l'exécution simultanée des transactions laisse la base de données dans le même état que celui qui aurait été obtenu si les transactions avaient été exécutées de manière séquentielle. L'isolation est l'objectif principal du contrôle de la concurrence ; selon le niveau d'isolation utilisé, les effets d'une transaction incomplète peuvent ne pas être visibles pour les autres transactions.

Durabilité
Article principal : Durabilité (systèmes de base de données)
La durabilité garantit qu'une fois qu'une transaction a été validée, elle le restera même en cas de défaillance du système (par exemple, panne de courant ou crash). Cela signifie généralement que les transactions terminées (ou leurs effets) sont enregistrées dans une mémoire non volatile.
fr