Préserver l'intégrité référentielle dans des diagrammes de modèle de base de données

S’applique à
Visio Premium 2010 Visio 2010 Visio 2007

Remarque

Le diagramme de modèle de base de données est uniquement disponible dans certaines versions de Visio. Voir Vous ne trouvez pas les fonctionnalités de modèle de base de données? pour plus d’informations.

Comprendre les règles d’intégrité référentielle

Les règles d’intégrité référentielle empêchent les utilisateurs de base de données de rompre accidentellement le mappage entre les colonnes associées.

Supposons que vous ayez une base de données appelée Livres avec deux tables nommées Titles et Authors. Pour les besoins de cet exemple, chaque titre n’a qu’un seul auteur, mais chaque auteur peut avoir plusieurs titres, créant ce que l’on appelle une relation un-à-plusieurs. La table du côté « un » de la relation est appelée table parente. La table du côté « plusieurs » est appelée table enfant.

Pour rassembler des informations sur chaque livre et son auteur, une requête utilise des clés pour faire correspondre chaque livre de la table Titres à son auteur dans la table Auteurs. La table parente (auteurs) doit avoir une clé primaire qui identifie chaque ligne de manière unique. La table Titles doit avoir une colonne qui contient l’AuthorID pour chaque titre. Cette colonne est appelée clé étrangère. La clé primaire identifie chaque auteur, et la clé étrangère identifie les livres qui ont été écrits par chaque auteur.

Si un utilisateur modifie l’AuthorID de l’auteur dans la table parente, sans mettre à jour l’AuthorID dans la table Titles, les livres de la table Titles n’ont plus d’auteur valide.

Au lieu d’avoir à modifier l’AuthorID dans les deux tables, vous pouvez définir des règles d’intégrité référentielle pour effectuer l’action souhaitée. Vous pouvez choisir que le modèle de base de données effectue des actions spécifiques lorsqu’une clé est modifiée ou supprimée dans la table parente.

Remarque

Les termes parent et enfant sont utilisés pour signifier quelque chose de très différent dans les catégories, qui sont créées avec les formes Parent à catégorie, Catégorie et Catégorie pour enfants . Pour plus d’informations sur les catégories, consultez Définir des catégories dans un diagramme de modèle de base de données.

Définir des actions pour l’intégrité référentielle

  1. Double-cliquez sur la relation pour laquelle vous souhaitez définir une action référentielle.

  2. Dans le Fenêtre Propriétés de base de données, sous Catégories, cliquez sur Action référentielle.

  3. Cliquez sur l’action que vous souhaitez que la base de données effectue sur la valeur correspondante dans la table enfant. Vous pouvez choisir parmi les actions suivantes :

    • Aucune action Lorsqu’une valeur de la clé primaire d’une table parente est modifiée ou supprimée, la valeur correspondante dans la clé étrangère de la table enfant reste inchangée.
    • Cascade Lorsqu’une valeur de la clé primaire d’une table parente est modifiée ou supprimée, la valeur correspondante dans la clé étrangère de la table enfant est modifiée ou supprimée pour correspondre à la clé primaire.
    • Définir LA VALEUR NULL Lorsqu’une valeur de la clé primaire d’une table parente est modifiée ou supprimée, la valeur correspondante dans la clé étrangère de la table enfant est définie sur NULL.
    • Définir la valeur par défaut Lorsqu’une valeur de la clé primaire d’une table parente est modifiée ou supprimée, la valeur correspondante dans la clé étrangère de la table enfant est définie sur une valeur par défaut que vous choisissez.
    • Ne pas appliquer Cette action désactive les règles d’intégrité référentielle pour cette relation.

Remarque

Si les options Définir NULL et Définir par défaut sont désactivées, il est probable que la relation soit définie sur Facultatif sous l’onglet Divers de la base de données Fenêtre Propriétés pour la relation.

Définir une valeur par défaut pour une colonne

Pour utiliser l’action Définir par défaut , vous devez fournir une valeur par défaut pour la colonne.

  1. Double-cliquez sur la table dans le diagramme pour ouvrir le Fenêtre Propriétés de base de données.
  2. Sous Catégories, cliquez sur Colonnes, cliquez sur la colonne pour laquelle vous souhaitez créer une valeur par défaut, puis cliquez sur Modifier.
  3. Sous l’onglet Définition de la boîte de dialogue Propriétés de colonne, entrez une valeur pour la valeur par défaut.

Afficher l’intégrité référentielle à l’aide de la notation

Vous pouvez définir vos options de document pour masquer ou afficher la notation d’intégrité référentielle en regard des lignes de relation dans votre modèle.

Que signifient les lettres en notation d’intégrité référentielle ?

La notation d’intégrité référentielle montre les relations avec deux lettres séparées par un signe deux-points, sous la forme [action effectuée dans la table parente] :[résultat dans la table enfant]. Par exemple, d :C signifie que lorsqu’un élément est supprimé dans la table parente, la modification est mise en cascade dans la table enfant.

Les actions de la table parente sont indiquées par une lettre minuscule :

  • u Les données de la table parente sont mises à jour.
  • d Les données de la table parente sont supprimées.

Les résultats de la table enfant sont indiqués par une lettre majuscule :

  • R Aucune action Ne modifiez pas la table enfant.
  • C Cascade Répliquez la modification dans la table enfant.
  • D Définir la valeur par défaut Insérez la valeur par défaut que vous avez définie précédemment pour cette colonne dans la table enfant.
  • N Définir la valeur Null Définissez la table enfant sur NULL.
  • (Vide) N’appliquez pas l’intégrité référentielle à cette relation.

Remarque

Ces paramètres affectent ce qui se passe dans une base de données réelle plutôt que dans un modèle. Dans un modèle que vous concevez à l’inverse à partir d’une base de données existante, vous pouvez voir comment la base de données est conçue en ce qui concerne l’intégrité référentielle. Dans un modèle que vous créez à partir de zéro, vous pouvez utiliser ces paramètres pour documenter le comportement de la base de données que vous modélisez.

Afficher l’intégrité référentielle dans Visio 2010

  1. Sous l’onglet Base de données, accédez au groupe Gérer et cliquez sur Options d’affichage.
  2. Sous l’onglet Relations, sous Afficher, sélectionnez la zone Actions référentielles case activée.

Vous ne trouvez pas les fonctionnalités de modèle de base de données?

Certaines versions de Visio n’ont pas le modèle Diagramme de modèle de base de données.

Visio Standard n’inclut pas le modèle Diagramme de modèle de base de données.

Les éditions Visio Professionnel et Premium prennent en charge les fonctionnalités de rétroconception du modèle Diagramme de modèle de base de données (à savoir l’utilisation d’une base de données existante pour créer un modèle dans Visio), mais pas l'ingénierie en amont (à savoir l’utilisation d’un modèle de base de données Visio pour générer du code SQL).

Remarque

Vous trouverez la suite complète des fonctionnalités de modélisation de base de données, avec la rétroconception et l'ingénierie en amont, dans Visio pour Enterprise Architects. Visio pour Enterprise Architects est inclus dans l’abonnement MSDN Premium, qui est disponible avec Visual Studio Professional et les éditions basées sur les rôles de Visual Studio Team System.

Si vous utilisez Visio (plan 2) et que vous souhaitez en savoir plus sur l’ingénierie d’une base de données existante dans un modèle de base de données, consultez la rubrique Ingénierie inverse d’une base de données existante.