Différence entre la clé primaire et la clé étrangère dans le SGBD

Auteur: Laura McKinney
Date De Création: 1 Avril 2021
Date De Mise À Jour: 12 Peut 2024
Anonim
Différence entre la clé primaire et la clé étrangère dans le SGBD - La Technologie
Différence entre la clé primaire et la clé étrangère dans le SGBD - La Technologie

Contenu


Les clés sont la partie cruciale du SGBD. Elles sont utilisées pour identifier et établir une relation entre les tables d’un schéma. Aujourd'hui, nous allons discuter de deux clés très importantes du SGBD, à savoir la clé primaire et la clé étrangère, et nous discuterons également de la différence entre clé primaire et clé étrangère. En cours de route, permettez-moi de vous expliquer la différence fondamentale entre la clé primaire et la clé étrangère, qui est la clé primaire choisie par le concepteur de la base de données, tandis qu'une clé étrangère est une clé qui fait référence à la clé primaire d'une autre relation.

Il existe de nombreuses autres différences entre les deux. Identifions-nous à l’aide du tableau comparatif présenté ci-dessous.

  1. Tableau de comparaison
  2. Définition
  3. Différences Clés
  4. Conclusion

Tableau de comparaison

Base de comparaisonClé primaireClé étrangère
De baseLa clé primaire est une clé candidate choisie qui définit de manière unique un tuple dans une relation.La clé étrangère dans une table fait référence à la clé primaire de l'autre table.
NULLa valeur de la clé primaire ne peut jamais être NULL.La clé étrangère accepte la valeur NULL.
DupliquerDeux nuplets dans une relation ne portent pas de valeurs en double pour un attribut de clé primaire.Les tuples peuvent porter une valeur en double pour un attribut de clé étrangère.
GammeIl ne peut y avoir qu'une seule clé primaire d'une relation.Il peut y avoir plusieurs clés étrangères dans une relation.
Table temporaireLa contrainte de clé primaire peut être définie sur les tables temporaires.La contrainte de clé étrangère ne peut pas être définie sur les tables temporaires.
Index clusteriséPar défaut, une clé primaire est indexée en cluster.La clé étrangère n'est pas indexée automatiquement par cluster; cela doit être fait manuellement.
InsertionNous pouvons insérer une valeur dans un attribut de clé primaire, même si la clé étrangère référençante n'a pas cette valeur dans sa colonne.Nous ne pouvons pas insérer de valeur dans une clé étrangère si cette valeur n'est pas présente dans la colonne de clé primaire référencée.
EffacementAvant de supprimer une valeur de clé primaire, assurez-vous qu'elle n'est toujours pas présente dans la colonne de clé étrangère de référence de la table de référence.Vous pouvez supprimer une valeur d'une colonne de clé étrangère sans vous soucier de savoir si cette valeur est présente dans la colonne de clé primaire référencée de la relation référencée.


Définition de clé primaire

Une clé primaire uniquement définit les n-uplets dans une relation. Il peut s'agir d'un attribut unique dans une relation ou d'un ensemble d'attributs dans une relation. La valeur de l'attribut de clé primaire devrait jamais ou rarement changé. Parce que c’est un principe, on entend identifier tout enregistrement dans une base de données. Toute modification de toute valeur d'attribut de clé primaire créerait de la confusion.

Le concepteur de base de données choisit l’un des clés du candidat comme clé primaire, en prenant en considération certains points. La première considération est qu'une valeur d'attribut de clé primaire ne peut jamais contenir NUL valeur. En effet, si une valeur d'attribut de clé primaire contient NULL, cela signifie que nous ne pouvons pas identifier cet enregistrement dans la table. Il enfreint également la contrainte d'intégrité d'entité. Deuxième considération est, pas deux tuples dans un tableau peut contenir le même valeur pour un attribut de clé primaire, car cela violerait l'unicité des n-uplets.


Il ne peut y avoir que une clé primaire pour toute relation. La clé primaire est par défaut indexé par cluster, ce qui signifie que tous les nuplets d’une table sont triés en fonction des valeurs des attributs des clés primaires. La contrainte de clé primaire peut être définie sur un table temporaire. Les tables intermédiaires créées lors de l'exécution d'une requête sont appelées tables temporaires.

Tandis que effacer un tuple d’une relation, vous devez vous assurer que la valeur de la clé primaire du tuple supprimé n’est pas encore présente dans la colonne de clé étrangère de la relation de référencement. Tandis que le insertion n'a aucune contrainte sur une clé primaire.

La clé primaire d'une table utilisée dans une autre table devient la clé étrangère de cette table. Les contraintes de clé étrangère sont discutées ci-dessous.

Définition de clé étrangère

Quand une relation R1, parmi ses attributs, a primaire clé d'une autre relation R2, alors cet attribut s'appelle Clé étrangère pour relation R1. La relation R1 contenant la clé étrangère s'appelle relation de référencement comme il se réfère clé primaire de la relation R2 et la relation R2 est appelé relation référencée.
Contrairement à la clé primaire, la clé étrangère peut accepter NUL valeurs parce qu’il n’a pas pour tâche d’identifier un enregistrement distinctement dans une relation, car nous avons la clé primaire pour cela. De la même manière, la clé étrangère accepte également doublons de valeurs.

Une relation peut avoir plusieurs clés étrangères, car il peut avoir différents attributs qui sont des clés primaires dans différentes relations. La contrainte de clé étrangère peut ne pas être défini sur le tables temporaires, ni une clé étrangère est un indexé par cluster attribut.

Tandis que insertion une valeur dans une colonne de clé étrangère de la relation de référencement, assurez-vous que la valeur d'insertion doit être présente dans la colonne de clé primaire de la relation référencée. Considérant qu’il n’existe aucune contrainte effacer une valeur de la colonne de clé étrangère.

  1. Un primaire est un ensemble d'attributs / une clé candidate qui identifie distinctement un enregistrement dans une relation. Cependant, une clé étrangère dans une table fait référence à la clé primaire d'une autre table.
  2. Aucun attribut de clé primaire ne peut contenir de valeur NULL alors qu'un attribut de clé étrangère peut accepter une valeur NULL.
  3. Une clé primaire doit avoir des valeurs d'attribut uniques, tandis qu'une clé étrangère peut avoir des valeurs d'attribut en double.
  4. Il peut y avoir plusieurs clés étrangères dans une relation, mais une relation n'a qu'une seule clé primaire.
  5. La contrainte de clé primaire peut être appliquée aux tables temporaires. Cependant, la contrainte de clé étrangère ne peut pas être appliquée aux tables temporaires.
  6. Une clé primaire est par défaut indexée en cluster alors qu'une clé étrangère n'est pas indexée automatiquement par cluster, mais cela peut être fait manuellement.
  7. Lors de l'insertion d'une valeur dans une colonne de clé étrangère, assurez-vous que la valeur d'attribut d'insertion est présente dans la colonne de clé primaire référencée. Cependant, il n'y a aucune restriction sur l'insertion dans la colonne de clé primaire.
  8. Lors de la suppression d'une valeur de la colonne de clé primaire, assurez-vous que la valeur de l'attribut supprimé n'est pas présente dans la colonne de clé étrangère référençante. Cependant, il n'y a aucune contrainte sur la suppression d'une valeur d'une colonne de clé étrangère.

Conclusion:

La clé primaire et la clé étrangère sont essentielles pour un schéma. Une clé primaire définit chaque tuple dans une relation de manière unique, tandis qu'une clé étrangère est utilisée pour créer un lien entre deux relations.