Problématique des pannes et de la concurrence

Une BD[1] est un ensemble persistant de données organisées qui a en charge la préservation de la cohérence de ces données. Les données sont cohérentes si elles respectent l'ensemble des contraintes d'intégrité spécifiées pour ces données : contraintes de domaine, intégrité référentielle, dépendances fonctionnelles...

La cohérence des données peut être remise en cause par deux aspects de la vie d'une BD :

  • La défaillance

    Lorsque le système tombe en panne alors qu'un traitement est en cours, il y a un risque qu'une partie seulement des instructions prévues soit exécutée, ce qui peut conduire à des incohérences. Par exemple pendant une mise à jour en cascade de clés étrangères suite au changement d'une clé primaire.

  • La concurrence

    Lorsque deux accès concurrents se font sur les données, il y a un risque que l'un des deux accès rende l'autre incohérent. Par exemple si deux utilisateurs en réseau modifient une donnée au même moment, seule une des deux mises à jour sera effectuée.

La gestion de transactions par un SGBD[2] est à la base des mécanismes qui permettent d'assurer le maintien de la cohérence des BD. C'est à dire encore qu'il assure que toutes les contraintes de la BD seront toujours respectées, même en cas de panne et même au cours d'accès concurrents.