Pré. | Proc. |
Foreign Keys
Une Foreign Key définit une colonne (ou une collection de colonnes) qui impose une relation entre deux Tableaux . Il incombe au serveur de base de données d'imposer cette relation pour garantir l'intégrité des données. La définition de modèle d'une Foreign Key se compose d'un Tableau parent (primaire) contenant un ensemble unique de données auquel il est ensuite fait référence dans un Tableau enfant (étranger).
Dans Enterprise Architect , une Foreign Key est modélisée avec deux composants UML différents (mais liés) :
- Une contrainte Foreign Key (une opération UML avec le stéréotype <<FK>>) stockée sur le Tableau enfant et
- Un connecteur d'association (stéréotype de <<FK>>) définissant la relation entre les deux Tableaux
Créer une Foreign Key
Bien que la définition d'une Foreign Key puisse être complexe, l'écran Contrainte Foreign Key simplifie la modélisation des Foreign Keys . Cet écran est spécialement conçu pour vous aider à sélectionner la contrainte à utiliser dans le Tableau parent et fera automatiquement correspondre les colonnes Tableau enfant à celles du Tableau parent qui font partie de la contrainte. Différents aspects du processus de développement d'une Foreign Key sont décrits ici séparément à titre d'illustration, mais le processus global doit être une transition en douceur.
Un certain nombre de conditions doivent être remplies avant qu'une définition Foreign Key puisse être enregistrée :
- Les deux Tableaux doivent avoir des SGBD correspondants définis
- Le Tableau parent doit avoir au moins une colonne
- Le Tableau parent doit avoir une Primary Key , une contrainte unique ou un index unique défini
Créer une Foreign Key – à l'aide du générateur de base de données
Étape |
Action |
Voir aussi |
---|---|---|
1 |
Dans l'arborescence du générateur de base de données, cliquez-droit sur le nom Tableau enfant et cliquez sur « Ajouter une nouvelle Foreign Key sur < nom tableau > ». Une dialogue s'affiche, répertoriant tous les Tableaux parents possibles. |
|
2 |
Double-cliquez sur le nom Tableau parent requis dans la liste ou sélectionnez-le et cliquez sur le bouton OK . L'écran « Contrainte Foreign Key » s'affiche. |
Créer une Foreign Key – en utilisant une relation sur un diagramme
Étape |
Action |
Voir aussi |
---|---|---|
1 |
Dans le diagramme Modélisation des données, localisez le Tableau enfant ( Foreign Key ) requis et Tableau parent ( Primary Key ). |
|
2 |
Sélectionnez un connecteur d'association dans la page « Modélisation des données » de la boîte à outils Diagramme . |
|
3 |
Cliquez sur le Tableau enfant et dessinez le connecteur vers le Tableau parent. |
|
4 |
Si l'écran Contrainte Foreign Key a été configuré pour s'afficher automatiquement lorsque deux Tableaux sont joints, il s'affiche maintenant . Sinon, vous pouvez :
|
Nom DDL Gabarits |
L'écran de contrainte Foreign Key
À titre d'exemple, cette image montre l'écran de contrainte Foreign Key chargé avec les détails de « fk_customersaddresses_customers » (comme défini dans le modèle d'exemple).
Option |
Action |
Voir aussi |
---|---|---|
Rejoignez-nous sur Constraint |
Cette zone de liste déroulante répertorie toutes les contraintes définies dans le Tableau parent qui pourraient être utilisées comme base d'une Foreign Key . (Ces contraintes peuvent être Primary Keys , des contraintes uniques ou des index uniques.) La première contrainte de la liste est sélectionnée par défaut ; si ce n’est pas la contrainte souhaitée, sélectionnez la contrainte correcte dans la zone de liste déroulante. Lorsque vous sélectionnez la contrainte, ses colonnes sont automatiquement répertoriées dans le panneau « Colonnes impliquées », sous la colonne « Parent : <nom de la table> ». |
|
Colonnes concernées |
Cette liste est divisée en deux : les colonnes impliquées dans la contrainte sélectionnée sont répertoriées à gauche, et les colonnes enfants qui vont être associées aux colonnes parentes sont répertoriées à droite. Lorsqu'une contrainte est sélectionnée (dans le champ « Joindre sur contrainte »), le côté parent est actualisé pour afficher toutes les colonnes affectées à la contrainte sélectionnée. Du côté enfant, le système tente automatiquement de faire correspondre chaque colonne parent à une colonne du même nom dans le Tableau enfant. Si le Tableau enfant ne possède pas de colonne du même nom, une nouvelle colonne de ce nom est ajoutée à la liste, signalée par (*) pour indiquer qu'une nouvelle colonne sera créée dans le Tableau . Toutefois, si vous souhaitez forcer l'association à une colonne enfant Tableau existante ou à une nouvelle colonne avec un nom différent, cliquez sur le champ du nom de la colonne et :
|
|
Nom |
Ce champ définit le nom de la contrainte Foreign Key et utilise par défaut un nom construit par le nom Foreign Key Gabarit . Pour changer le nom en quelque chose d'autre que celui par défaut, écrasez simplement la valeur . |
Nom DDL Gabarits |
Sur la suppression |
Sélectionnez l’action à effectuer sur les données du Tableau enfant lorsque les données du tableau parent sont supprimées, afin de maintenir l’intégrité référentielle. |
|
En cours de mise à jour |
Sélectionnez l’action à effectuer sur les données du Tableau enfant lorsque les données du tableau parent sont mises à jour, afin de maintenir l’intégrité référentielle. |
|
Mère |
Cliquez sur la flèche déroulante et sélectionnez la cardinalité du Tableau parent dans la Foreign Key . |
|
Enfant |
Cliquez sur la flèche déroulante et sélectionnez la cardinalité du Tableau enfant dans la Foreign Key . |
|
Créer? |
Si vous souhaitez créer un index Foreign Key en même temps que la Foreign Key , définissez cette propriété sur True. Le nom de l'index Foreign Key est contrôlé par le gabarit de l'index Foreign Key et le nom généré est affiché dans le champ « Nom » sous le champ « Créer ? ». |
Nom DDL Gabarits |
Afficher automatiquement cet écran lorsque tableaux sont joints |
(Pour modélisation schématique) Cochez cette case pour afficher automatiquement cet écran chaque fois qu'une association est créée entre deux Tableaux . |
|
Supprimer |
Cliquez sur ce bouton pour supprimer la Foreign Key existante (enregistrée) actuellement sélectionnée. Une prompt s'affiche pour confirmer la suppression (et la suppression de l'index Foreign Key , s'il existe) - cliquez sur le bouton Oui. La suppression d'une Foreign Key laisse un connecteur d'association en place, que vous pouvez soit modifier, soit supprimer ( cliquez-droit et sélectionnez « Supprimer l'association : à < Nom Tableau > »). |
|
OK |
Cliquez sur ce bouton pour enregistrer la Foreign Key . |
Exemples
Cet exemple montre Foreign Keys simples dans un diagramme :
La même Foreign Key sera affichée dans l'arborescence du générateur de base de données en tant que nœud enfant sous le Tableau « customers.addresses ».