Clé primaire vs clé étrangère: quelle est la différence?

Table des matières:

Anonim

Avant d'apprendre la différence entre la clé primaire et la clé étrangère, apprenons:

Que sont les clés?

Les clés sont un attribut qui vous aide à identifier une ligne (tuple) dans une relation (table). Ils vous permettent de trouver la relation entre deux tables. Les clés vous aident à identifier de manière unique une ligne dans une table par une combinaison d'une ou plusieurs colonnes dans cette table. La clé de base de données est également utile pour rechercher un enregistrement ou une ligne unique dans la table.

Qu'est-ce que la relation avec la base de données?

La relation de base de données est constituée d'associations entre une ou plusieurs tables créées à l'aide d'instructions de jointure. Il est utilisé pour récupérer efficacement les données de la base de données. Il existe principalement trois types de relations 1) un-à-un, 2) un-à-plusieurs, 3) plusieurs-à-plusieurs.

Qu'est-ce que la clé primaire?

Une contrainte de clé primaire est une colonne ou un groupe de colonnes qui identifie de manière unique chaque ligne de la table du système de gestion de base de données relationnelle. Il ne peut pas s'agir d'un doublon, ce qui signifie que la même valeur ne doit pas apparaître plus d'une fois dans le tableau.

Une table peut avoir plusieurs clés primaires. La clé primaire peut être définie au niveau de la colonne ou de la table. Si vous créez une clé primaire composite, elle doit être définie au niveau de la table.

Qu'est-ce que la clé étrangère?

La clé étrangère est une colonne qui crée une relation entre deux tables. Le but de la clé étrangère est de maintenir l'intégrité des données et de permettre la navigation entre deux instances différentes d'une entité. Il agit comme une référence croisée entre deux tables car il fait référence à la clé primaire d'une autre table. Chaque relation dans la base de données doit être prise en charge par une clé étrangère.

DIFFÉRENCES CLÉS:

  • Une contrainte de clé primaire est une colonne qui identifie de manière unique chaque ligne de la table du système de gestion de base de données relationnelle, tandis que la clé étrangère est une colonne qui crée une relation entre deux tables.
  • La clé primaire n'accepte jamais les valeurs nulles alors que la clé étrangère peut accepter plusieurs valeurs nulles.
  • Vous ne pouvez avoir qu'une seule clé primaire dans une table tandis que vous pouvez avoir plusieurs clés étrangères dans une table.
  • La valeur de la clé primaire ne peut pas être supprimée de la table parente, tandis que la valeur de la clé étrangère peut être supprimée de la table enfant.
  • Aucune ligne ne peut avoir de valeurs identiques pour une clé primaire, tandis qu'une clé étrangère peut contenir des valeurs en double.
  • Il n'y a aucune limitation à insérer les valeurs dans la colonne de table lors de l'insertion d'une valeur dans la table de clé étrangère, assurez-vous que la valeur est présente dans une colonne d'une clé primaire.

Pourquoi utiliser la clé primaire?

Voici les inconvénients / avantages de l'utilisation de la clé primaire:

  • L'objectif principal de la clé primaire est d'identifier chaque enregistrement dans la table de base de données.
  • Vous pouvez utiliser une clé primaire lorsque vous n'autorisez personne à entrer des valeurs nulles.
  • Si vous supprimez ou mettez à jour des enregistrements, l'action que vous avez spécifiée sera entreprise pour garantir l'intégrité des données.
  • Exécutez l'opération de restriction pour rejeter l'opération de suppression ou de mise à jour de la table parent.
  • Les données sont organisées dans une séquence d'index clusterisé chaque fois que vous organisez physiquement la table du SGBD.

Pourquoi utiliser une clé étrangère?

Voici les raisons importantes de l'utilisation de la clé étrangère:

  • Les clés étrangères vous aident à migrer des entités à l'aide d'une clé primaire de la table parent.
  • Une clé étrangère vous permet de lier deux ou plusieurs tables ensemble.
  • Cela rend les données de votre base de données cohérentes.
  • Une clé étrangère peut être utilisée pour faire correspondre une colonne ou une combinaison de colonnes avec une clé primaire dans une table parent.
  • La contrainte de clé étrangère SQL est utilisée pour s'assurer que l'intégrité référentielle du parent de données correspond aux valeurs de la table enfant.

Exemple de clé primaire

Syntaxe:

Voici la syntaxe de la clé primaire:

CREATE TABLE (Column1 datatype,Column2 datatype, PRIMARY KEY (Column-Name).);

Ici,

  • Table_Name est le nom de la table que vous devez créer.
  • Column_Name est le nom de la colonne ayant la clé primaire.

Exemple:

StudID Rouler non Prénom Nom de famille E-mail
1 11 À M Prix Cette adresse e-mail est protégée du spam. Vous devez activer JavaScript pour le visualiser.
2 12 pseudo Wright Cette adresse e-mail est protégée du spam. Vous devez activer JavaScript pour le visualiser.
3 13 Dana Natan Cette adresse e-mail est protégée du spam. Vous devez activer JavaScript pour le visualiser.

Dans l'exemple ci-dessus, nous avons créé une table d'étudiants avec des colonnes telles que StudID, Roll No, First Name, Last Name et Email. StudID est choisi comme clé primaire car il peut identifier de manière unique les autres lignes de la table.

Exemple de clé étrangère

Syntaxe:

Voici la syntaxe de la clé étrangère:

CREATE TABLE 
(column1 datatype,column2 datatype,constraint (name of constraint)FOREIGN KEY [column1, column2… ]REFERENCES [primary key table name] (List of primary key table column)… );

Ici,

  • Le paramètre Table Name indique le nom de la table que vous allez créer.
  • Les paramètres colonne1, colonne2… représentent les colonnes qui doivent être ajoutées au tableau.
  • La contrainte désigne le nom de la contrainte que vous créez.
  • Les références indiquent une table avec la clé primaire.

Exemple:

DeptCode DeptName
001 Science
002 Anglais
005 L'ordinateur
ID de l'enseignant Fnom Lnom
B002 David Warner
B017 Sara Joseph
B009 Mike Brunton

Dans l'exemple ci-dessus, nous avons deux tables, un enseignant et un département dans une école. Cependant, il n'existe aucun moyen de voir quelle recherche fonctionne dans quel département.

Dans cette table, en ajoutant la clé étrangère dans Deptcode au nom du professeur, nous pouvons créer une relation entre les deux tables.

ID de l'enseignant DeptCode Fnom Lnom
B002 002 David Warner
B017 002 Sara Joseph
B009 001 Mike Brunton

Ce concept est également connu sous le nom d'intégrité référentielle.

Différence entre la clé primaire et la clé étrangère

Voici la différence importante entre la clé primaire et la clé étrangère:

Clé primaire Clé étrangère
Une contrainte de clé primaire est une colonne ou un groupe de colonnes qui identifie de manière unique chaque ligne de la table du système de gestion de base de données relationnelle. La clé étrangère est une colonne qui crée une relation entre deux tables.
Il vous aide à identifier de manière unique un enregistrement dans la table. C'est un champ de la table qui est une clé primaire d'une autre table.
La clé primaire n'accepte jamais les valeurs nulles. Une clé étrangère peut accepter plusieurs valeurs nulles.
La clé primaire est un index clusterisé et les données de la table SGBD sont physiquement organisées dans l'ordre de l'index clusterisé. Une clé étrangère ne peut pas créer automatiquement un index, en cluster ou non en cluster.
Vous pouvez avoir la clé primaire unique dans une table. Vous pouvez avoir plusieurs clés étrangères dans une table.
La valeur de la clé primaire ne peut pas être supprimée de la table parent. La valeur de la valeur de clé étrangère peut être supprimée de la table enfant.
Vous pouvez définir la clé primaire implicitement sur les tables temporaires. Vous ne pouvez pas définir de clés étrangères sur les tables temporaires locales ou globales.
La clé primaire est un index cluster. Par défaut, il ne s'agit pas d'un index clusterisé.
Aucune ligne ne peut avoir de valeurs identiques pour une clé primaire. Une clé étrangère peut contenir des valeurs en double.
Il n'y a aucune limitation à insérer les valeurs dans la colonne du tableau. Lors de l'insertion d'une valeur dans la table de clé étrangère, assurez-vous que la valeur est présente dans une colonne d'une clé primaire.