Skip to main content

Le modèle ACID pour les systèmes de gestion de base de données

241st Knowledge Seekers Workshop - September 13, 2018 (Mai 2024)

241st Knowledge Seekers Workshop - September 13, 2018 (Mai 2024)
Anonim

Le modèle ACID de conception des bases de données est l’un des concepts les plus anciens et les plus importants de la théorie des bases de données. Il définit quatre objectifs que chaque système de gestion de base de données doit s'efforcer d'atteindre: l'atomicité, la cohérence, l'isolation et la durabilité. Une base de données relationnelle qui n'atteint aucun de ces quatre objectifs ne peut pas être considérée comme fiable. Une base de données possédant ces caractéristiques est considérée comme conforme à ACID.

ACID défini

Prenons un moment pour examiner chacune de ces caractéristiques en détail:

  • L'atomicité indique que les modifications de la base de données doivent suivre la règle du «tout ou rien». Chaque transaction est dite "atomique". Si une partie de la transaction échoue, toute la transaction échoue. Il est essentiel que le système de gestion de base de données conserve la nature atomique des transactions en dépit de toute défaillance du SGBD, du système d'exploitation ou du matériel.
  • Cohérence indique que seules les données valides seront écrites dans la base de données. Si, pour une raison quelconque, une transaction qui enfreint les règles de cohérence de la base de données est exécutée, l’ensemble de la transaction est annulée et la base de données est restaurée dans un état conforme à ces règles. D'un autre côté, si une transaction est exécutée avec succès, la base de données passe d'un état compatible avec les règles à un autre également.
  • Isolement exige que plusieurs transactions se produisant en même temps n’ont pas d’impact sur leur exécution mutuelle. Par exemple, si Joe émet une transaction sur une base de données en même temps que Mary émet une transaction différente, les deux transactions doivent opérer sur la base de données de manière isolée. La base de données doit soit exécuter l’ensemble de la transaction de Joe avant d’exécuter celle de Mary, soit inversement. Cela empêche la transaction de Joe de lire des données intermédiaires générées en tant qu'effet secondaire d'une partie de la transaction de Mary qui ne sera finalement pas validée dans la base de données. Notez que la propriété d'isolation n'assure pas quelle transaction sera exécutée en premier, mais simplement que les transactions n'interféreront pas les unes avec les autres.
  • Durabilité garantit que toute transaction validée dans la base de données ne sera pas perdue. La durabilité est assurée par l'utilisation de sauvegardes de base de données et de journaux de transactions qui facilitent la restauration des transactions validées en dépit d'éventuelles défaillances logicielles ou matérielles.

Comment fonctionne ACID en pratique

Les administrateurs de base de données utilisent plusieurs stratégies pour appliquer ACID.

Un utilisé pour imposer l'atomicité et la durabilité est enregistrement à l'avance (WAL), dans lequel tout détail de transaction est d'abord écrit dans un journal qui inclut à la fois des informations de restauration et d'annulation. Cela garantit que, en cas de défaillance de la base de données, la base de données peut consulter le journal et comparer son contenu à l'état de la base de données.

Une autre méthode utilisée pour aborder l'atomicité et la durabilité est pagination d'ombre, dans lequel une page fantôme est créée lorsque des données doivent être modifiées. Les mises à jour de la requête sont écrites dans la page masquée plutôt que dans les données réelles de la base de données. La base de données elle-même n'est modifiée que lorsque la modification est terminée.

Une autre stratégie s'appelle le validation en deux phases protocole, particulièrement utile dans les systèmes de bases de données distribuées. Ce protocole sépare une demande de modification de données en deux phases: une phase de demande de validation et une phase de validation. Lors de la phase de demande, tous les SGBD d'un réseau affectés par la transaction doivent confirmer qu'ils l'ont bien reçu et qu'ils ont la capacité d'effectuer la transaction. Une fois la confirmation reçue de tous les SGBD pertinents, la phase de validation s'achève au cours de laquelle les données sont réellement modifiées.