Clé primaire et clé étrangère
Les clés sont essentielles dans un relationnel base de données pour garder les tables connectées ou identifier de manière unique les données des tables. Une clé primaire identifie les données de manière unique, donc deux lignes ne partagent pas la même clé primaire et ne peuvent pas être nulles. Alors qu’une clé étrangère relie deux tables entre elles.
Une clé primaire d'une table servant de clé étrangère dans une autre est un moyen courant de garantir l'intégrité des données. Il garantit que les données de la table de référencement (celle avec la clé étrangère) ont un lien valide vers la table référencée (celle avec la clé primaire). Cette empêche les enregistrements orphelins et maintient la cohérence dans la base de données.
Clé primaire
Une clé primaire identifie chaque ligne d'une table. Il est contenu dans une table parent. Une clé primaire peut être une colonne individuelle ou un groupe de colonnes. Pour insérer, mettre à jour, restaurer ou supprimer des opérations dans une table de base de données, la table doit avoir une clé primaire.
Avoir une clé primaire est significative pour:
- Identifier de manière unique les lignes d'une table ou d'enregistrements pour les récupérer, les mettre à jour ou les supprimer facilement.
- La clé primaire dans les SGBD comme MySQL et Oracle est d'habitude un entier auto-incrémenté. Cette signifie que la base de données attribue automatiquement à chaque nouvel enregistrement un nouveau numéro, en s'assurant que chaque ligne a son identifiant unique.
Clé étrangère
Une clé étrangère est un point de référence dans une base de données relationnelle qui établit des relations entre deux tables, garantissant ainsi la cohérence et l'intégrité des données. Contrairement à la clé primaire, elle est présente dans une table enfant.
Lorsque vous appliquez une contrainte de clé étrangère à la colonne d'une table, elle doit faire référence à la clé primaire de la colonne d'une autre table. Cette liaison maintient une structure relationnelle, connectant les données entre différentes tables. Vous pouvez spécifier ces relations à l'aide du mot-clé « references » pour signaler à la base de données qu'une colonne spécifique (la clé étrangère) doit correspondre à une valeur existante dans la clé primaire d'une autre table. Cela renforce l'intégrité référentielle et garantit que les références de données sont valides d'une table à l'autre.
Les clés étrangères répondent à plusieurs besoins dans un modèle de base de données :
- Les clés étrangères garantissent intégrité des données en maintenant la cohérence, l'exhaustivité et l'exactitude des tableaux associés.
- Ils optimisent les performances des requêtes en facilitant des plans de requête efficaces, en accélérant la récupération des données et en améliorant les relations entre les tables.
- Les clés étrangères sont essentielles pour établir des relations entre les tables, permettant le stockage et la récupération de données liées sur plusieurs tables.
Comparaison des clés primaires et des clés étrangères
Les clés primaires et étrangères jouent des rôles importants mais distincts dans le maintien de l'intégrité des données et l'établissement de connexions significatives dans les bases de données. Bien que les deux impliquent l’identification de points de données, ils répondent à des objectifs différents et possèdent des caractéristiques uniques. Voici comment les clés primaires et étrangères se comparent selon plusieurs facteurs clés :
-
Objectif :
Le seul objectif de la clé primaire est d'identifier de manière unique chaque enregistrement de table. En revanche, la clé étrangère fait référence à la clé primaire d'une autre table, établissant une relation et permettant la récupération de données sur différentes tables. Cela vous permet de connecter les informations associées et de voir l’aperçu unifié au sein de votre base de données.
-
Unicité:
La clé primaire doit contenir une valeur unique pour chaque enregistrement de la table. Il ne peut y avoir de doublons – chaque enregistrement a besoin de son identifiant distinct.
L'unicité au sein de sa table est facultative pour une clé étrangère. Mais il doit faire référence à une valeur unique dans la clé primaire de la table vers laquelle il pointe. Il ne peut se connecter qu’à un seul point bien défini de l’autre côté.
-
Nullabilité :
Les valeurs nulles ne sont généralement pas autorisées dans la clé primaire. Chaque enregistrement a besoin d'une valeur de clé primaire définie pour garantir l'absence d'identifiants manquants et éviter toute confusion lors du référencement de points de données spécifiques.
En fonction de la relation entre les tables, une clé étrangère autorise les valeurs nulles. Par exemple, une commande client peut avoir une clé étrangère faisant référence à une « adresse de livraison », mais le champ d'adresse sera nul si la commande n'a pas encore été expédiée.
-
Application de l’intégrité des données :
De par sa nature même, la clé primaire garantit l'intégrité des données dans les son tableau. L'unicité garantit qu'il n'existe aucun enregistrement en double et l'absence de valeurs nulles empêche les identifiants manquants.
Les clés étrangères sont essentielles au maintien de l'intégrité des données à travers les tables. La référence à une clé primaire valide dans une autre table permet d'éviter les enregistrements orphelins (enregistrements avec des valeurs fondamentales étrangères qui ne correspondent à aucune donnée existante dans la table référencée). Cette crée de la cohérence et évite les relations rompues au sein de votre base de données.
-
Possibilité de mise à jour et de suppression :
En raison de son rôle d’identifiant unique, la clé primaire est généralement conçue pour être mise à jour avec parcimonie. La modification de la valeur de la clé primaire pourrait perturber les relations avec d'autres tables.
Les utilisateurs peuvent mettre à jour les valeurs des clés étrangères si la nouvelle valeur reste une clé primaire valide dans la table référencée. Cependant, la suppression d'un enregistrement dans la table référencée peut avoir un impact sur les valeurs de clé étrangère correspondantes d'autres tables, en fonction des contraintes d'intégrité référentielle choisies.
Clé primaire et clé étrangère avec un exemple
Prenons l'exemple d'une boutique en ligne pour mieux comprendre la différence entre les clés primaires et étrangères. Vous avez besoin d'une clé primaire pour identifier chaque produit de manière unique, comme un « ID de produit » qui garantira que deux produits n'ont pas le même code.
Par exemple, la « Tableau Produits' a des détails sur les articles, tels qu'un identifiant de produit unique (par exemple, D972), le nom du produit (par exemple, un jean) et sa description (par exemple, un jean en coton). Il comprend un ID de catégorie, qui renvoie au tableau Catégories.
Le tableau Catégories catégorise les produits. Il utilise un ID de catégorie comme clé primaire (par exemple, Q204101) et possède un champ Nom, par exemple « Vêtements ». La clé étrangère de la table Produits (ID de catégorie) fait référence à l'ID de catégorie (clé primaire) dans la table Catégories. Cette connexion garantit la cohérence des données.
Si le nom de la catégorie passe de « Vêtements » à « Vêtements » dans le tableau Catégories, il sera automatiquement mis à jour dans le tableau Produits pour tous les produits associés (Jeans dans ce cas).
Clé primaire et clé étrangère : 9 différences importantes
Clé primaire | Clé étrangère |
Colonne ou ensemble de colonnes qui identifie chaque ligne d'un tableau. | Une ou plusieurs colonnes dans une table qui font référence à la clé primaire dans une autre table. |
Doit contenir des valeurs uniques ; aucun doublon n'est autorisé. | Peut contenir des valeurs en double ; fait généralement référence aux valeurs de clé primaire dans une autre table. |
Il n'y a qu'une seule clé primaire par table. | Plusieurs clés étrangères peuvent exister dans une table, en fonction des relations. |
Garantit l’intégrité des données et l’intégrité de l’entité (chaque ligne est identifiable de manière unique). | Établit et maintient l’intégrité référentielle entre les tables liées. |
Ils sont automatiquement indexés par défaut (dans la plupart des SGBD). | Il peut ou non être indexé automatiquement ; l'indice est recommandé pour les performances. |
Généralement, un identifiant numérique ou unique. | Correspond au type de données de clé primaire auquel il fait référence. |
La contrainte de clé primaire garantit l'unicité et n'est pas nulle. | La contrainte de clé étrangère garantit l'intégrité référentielle (les valeurs doivent exister dans la table référencée). |
Ils sont utilisés pour identifier les lignes lors de la jointure de tables de manière unique. | Ils sont utilisés pour établir des relations et appliquer des contraintes lors des jointures. |
Les modifications sont limitées si la clé primaire est référencée comme clé étrangère ailleurs (en fonction des options de cascade). | Les valeurs peuvent être mises à jour ou supprimées, généralement avec des options en cascade pour maintenir l'intégrité référentielle. |
Types Des clés dans un Modèle de base de données relationnelle (SGBD)
En parlant de clés primaires et étrangères, il existe plusieurs autres types de clés dans un système de gestion de base de données. L'implémentation correcte de ces clés dans SQL pour la base de données appropriée permet d'éliminer la redondance et facilite l'analyse des données. Une identification correcte de ces clés améliore la précision de la base de données, améliorant ainsi les résultats. Passons rapidement en revue ceux-ci :
1. Clé primaire
Une clé primaire dans un SGBD est une seule colonne ou une combinaison de colonnes dans une table qui identifie de manière unique chaque enregistrement de cette table. Une table ne peut avoir qu'une seule clé primaire, qui doit avoir des valeurs uniques sans répétitions sur toutes les lignes.
2. Super clé
Une super clé est une clé ou un groupe de clés qui peuvent identifier de manière unique chaque ligne d'un tableau. Cela signifie que toute combinaison de colonnes qui détermine de manière unique toutes les autres colonnes du tableau est considérée comme une super clé. La super clé inclut toutes les clés possibles qui peuvent identifier de manière unique les lignes. Une clé primaire est choisie parmi ces super clés pour identifier chaque ligne du tableau de manière unique.
3. Clé du candidat
Les clés candidates identifient de manière unique les lignes du tableau, agissant un peu comme des clés primaires avec toutes les mêmes propriétés. Une table sélectionne sa clé primaire parmi ses clés candidates. Bien qu'il puisse y avoir plusieurs clés candidates, aucune ne peut être vide, garantissant que chacune contient des informations et une valeur uniques. Un groupe d’attributs peut également fonctionner collectivement comme clés candidates.
4. Clé alternative
Une table peut avoir plusieurs candidats de clé primaire mais n’en sélectionne qu’un seul. Les clés non choisies comme clé primaire sont appelées clés alternatives.
5. Clé étrangère
Les clés étrangères lient deux tables en exigeant que chaque valeur d'une colonne ou d'une colonne corresponde à la clé primaire d'une autre table référentielle. Ils assurent des relations entre des informations liées mais non identiques.
6. Clé composite
Une clé composite combine deux attributs ou plus pour identifier chaque ligne d'une table de manière unique. Bien que ces attributs ne soient pas uniques, leur combinaison garantit l’unicité. Cette clé est également appelée clé concaténée.
7. Clé unique
Une clé unique, composée d'une ou plusieurs colonnes, identifie de manière unique chaque ligne d'une table, exigeant que toutes les valeurs de la clé soient uniques. Contrairement à une clé primaire, une clé unique peut inclure une valeur nulle, tandis qu'une clé primaire n'autorise aucune valeur nulle.
Dans le SGBD, en plus des sept types de clés standard, il existe également un type appelé clés artificielles. Une clé artificielle, ou une clé de substitution, n’a aucune pertinence ni signification commerciale. Néanmoins, il gère les problèmes de gestion des données, par exemple lorsqu'aucun attribut ne répond pleinement aux critères critiques primaires ou lorsque les clés primaires deviennent trop complexes.
Pour aller plus loin
UComprendre les rôles des clés primaires et des clés étrangères est essentiel pour maintenir une base de données relationnelle bien organisée et efficace. La mise en œuvre efficace de ces clés permet à la base de données de fonctionner avec une efficacité, une précision et une cohérence accrues. Ils améliorent également les processus de gestion des données et de développement d’applications.
Astera est une unifiée plate-forme de gestion de données qui simplifie la conception de bases de données en établissant des relations entre les entités à l'aide des clés primaires et étrangères appropriées. Cela garantit que les tables sont jointes correctement et que les types de relations d'entité comme plusieurs à plusieurs ou parent-enfant sont définis avec précision.
Astera propose des commandes intuitives de l'éditeur de requêtes pour gérer les clés étrangères et primaires. It identifie automatiquement ces clés et permet aux utilisateurs de les définir manuellement à l'aide d'un générateur de mise en page convivial, facilitant ainsi une gestion efficace de la base de données et améliorant l'intégrité et la convivialité globales des données.
Pour en savoir plus sur la façon Astera rationalise la gestion des clés primaires et étrangères, contactez-nous ou planifier une démo dès aujourd’hui.
Modifiez vos relations de base de données avec Astera
Plongez dans la gestion efficace des bases de données avec Astera! Garantissez l’intégrité et les relations transparentes des données à l’aide d’outils intuitifs qui permettent à votre équipe de créer des bases de données optimisées sans effort. Améliorez les performances de votre base de données dès aujourd'hui – planifiez une démo dès maintenant !
Demander une démo Auteurs:
- Zoha Shakoor