Différence entre clé primaire et clé étrangère
La clé primaire et la clé étrangère sont toutes deux utilisées dans les systèmes de gestion de bases de données relationnelles (SGBDR), où la clé primaire est un champ identifié de manière unique qui peut être utilisé comme référence pour relier les tables dans le système de base de données. D’autre part, la clé étrangère n’est pas un champ unique, et elle est utilisée pour se connecter à la clé primaire d’une autre table dans la même base de données. Contrairement à une clé primaire, un champ de clé étrangère peut contenir des valeurs NULL.
Comparaison tête à tête entre clé primaire et clé étrangère (Infographie)
Vous trouverez ci-dessous les 6 principales différences entre clé primaire et clé étrangère :
Démarrez votre cours gratuit de développement logiciel
Développement web, langages de programmation, Tests logiciels & autres
Différences entre clé primaire et clé étrangère
Discutons de certaines des principales différences entre clé primaire et clé étrangère :
- La clé primaire identifie les enregistrements d’une table de manière unique, tandis que la clé étrangère est utilisée pour relier les tables, c’est-à-dire.e., la Clé primaire d’une autre table.
- La colonne Clé primaire d’une table ne peut pas avoir de valeurs Null et doit toujours avoir des valeurs uniques. Mais la Clé étrangère dans la table peut contenir des valeurs Null et peut aussi avoir des valeurs dupliquées.
- Une table ne peut avoir qu’une seule Clé primaire, alors qu’il peut y avoir plus d’une Clé étrangère pour une table.
- L’index est créé pour la Clé primaire automatiquement, alors que, pour la Clé étrangère, les index ne sont pas créés automatiquement.
- Il est facile de supprimer la contrainte de la Clé étrangère bien qu’elle se réfère à la Clé primaire. Mais la suppression de la contrainte de la clé primaire peut créer des enregistrements avec des enregistrements enfants n’ayant pas d’enregistrement parent.
Tableau de comparaison entre clé primaire et clé étrangère
Le tableau ci-dessous résume les comparaisons entre clé primaire et clé étrangère :
Primary Key | Foreign Key |
La clé primaire d’une table dans un SGBDR peut être une seule colonne ou peut comprendre plus d’une colonne, qui est utilisée pour identifier chaque ligne d’une table de manière unique. Dans le cas d’une clé primaire composée de plus d’une colonne, les données de chaque colonne sont utilisées pour décider de l’unicité d’une ligne. Une table dans RDMBS ne peut avoir qu’une seule Clé primaire. | La Clé étrangère peut être une seule colonne ou peut être constituée de plus d’une colonne dans une table qui est utilisée pour faire référence à la Clé primaire d’une autre table. La clé étrangère peut être utilisée pour relier les tables dans le SGBDR. Contrairement à l’attribut Primary Key, une table dans le SGBDR peut avoir plus d’une Foreign Key. |
Il existe quelques conditions qui doivent être satisfaites pour qu’une colonne soit une Primary Key dans une table. L’une de ces conditions est que la clé primaire doit contenir une valeur unique pour chaque enregistrement. Ainsi, une table dans le SGBDR ne peut pas être autorisée à avoir des valeurs dupliquées pour deux lignes pour l’attribut Primary Key. | Contrairement à la Primary Key d’une table dans le SGBDR, la Foreign Key peut contenir des valeurs dupliquées. Cela permet d’avoir des valeurs dupliquées pour les lignes d’une table pour l’attribut foreign key. |
L’autre condition pour qu’une colonne satisfasse à la condition de Primary Key est qu’elle ne doit pas contenir de valeurs Null. | Mais la Foreign Key d’une table dans RDBMS peut contenir des valeurs Null. |
Une Clé Primaire est spécifiée lors de la définition de la table, et il est obligatoire de définir la Clé Primaire. | Contrairement à la Clé Primaire, il n’existe pas de définition spécifique de la table pour désigner une Clé comme Clé Etrangère. |
Il n’est pas possible de supprimer la contrainte de Clé Primaire d’une Table Parent avec la Clé Etrangère de la Table Enfant qui y fait référence. Il faut donc d’abord supprimer la table enfant avant de supprimer la table parent. | Mais si nous devons supprimer la contrainte de clé étrangère d’une table, elle peut être supprimée de la table enfant même si elle fait référence à la clé primaire de la table parent. |
La clé primaire est indexée automatiquement, c’est-à-dire que la clé primaire est stockée dans un index pour une table, et cet index aide à administrer l’exigence d’unicité, et à cause de cela, les valeurs de clé étrangère sont facilement référencées aux valeurs de clé primaire correspondantes. | Dans un cas de clé étrangère, les index ne sont pas créés automatiquement et généralement ; l’administrateur de la base de données les définit. |
Conclusion
Les clés primaires et étrangères ne mettent pas seulement en œuvre différents types d’intégrité mais créent également des relations entre les tables. Les clés primaires et étrangères garantissent également que les colonnes de la relation doivent contenir des valeurs correspondantes, et que des enregistrements uniques sont maintenus dans la table. Le système de gestion des bases de données relationnelles fonctionne efficacement en raison de la présence de la clé primaire et de la clé étrangère.
La contrainte de clé primaire aide à appliquer l’intégrité des données automatiquement car elle empêche d’insérer ou de mettre à jour une ligne de données en double. L’utilisation des contraintes de clé empêche la suppression de la rangée de la table de clé primaire de la table parent afin qu’aucun enregistrement enfant de ce type ne soit créé pour lequel il n’existe pas d’enregistrement parent. De même, lorsqu’une ligne faisant référence à la clé primaire est supprimée ou mise à jour dans la table parente, l’intégrité référentielle est maintenue par la clé étrangère. Les Clés ont un rôle essentiel dans l’établissement de liens entre les tables de la base de données et également au sein de la table.
Articles recommandés
Ce guide est consacré à la Clé primaire vs Clé étrangère. Ici, nous discutons des différences clés Primary Key vs Foreign Key avec des infographies et un tableau de comparaison. Vous pouvez également parcourir nos autres articles suggérés pour en savoir plus –
- WebLogic vs WebSphere
- ROLAP vs MOLAP vs HOLAP
- Clés SQL
- Travis vs Jenkins
.