Maison >base de données >tutoriel mysql >Différence entre clé primaire et clé étrangère dans un SGBD

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

青灯夜游
青灯夜游original
2019-01-24 16:31:004856parcourir

Les clés sont un élément essentiel d'un SGBD, elles sont utilisées pour identifier et établir des relations entre les tables du schéma. L'article suivant vous présentera les deux clés très importantes du SGBD, à savoir les clés primaires et les clés étrangères ; vous présentera la différence entre les clés primaires et les clés étrangères, j'espère qu'il vous sera utile.

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

Clé primaire dans un SGBD

La clé primaire définit de manière unique un tuple 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 d'un attribut de clé primaire ne doit pas changer ou rarement changer. Puisqu'il s'agit du principal, il est destiné à identifier n'importe quel enregistrement dans la base de données ; les modifications apportées à la valeur de n'importe quel attribut de la clé primaire entraîneront une confusion. [Tutoriel vidéo recommandé : Tutoriel MySQL]

Toute relation ne peut avoir qu'une seule clé primaire. Les clés primaires sont indexées par cluster par défaut, ce qui signifie que tous les tuples de la table sont classés en fonction de la valeur de l'attribut de clé primaire. Les contraintes de clé primaire peuvent être définies sur des tables temporaires. Les tables intermédiaires créées lors de l'exécution d'une requête sont appelées tables temporaires.

Clé étrangère dans le SGBD

La clé étrangère est une clé qui fait référence à la clé primaire d'une autre relation lorsque la relation R1 dans ses attributs a ; autre Lorsque l'attribut est la clé primaire de la relation R2, l'attribut est appelé clé étrangère de la relation R1. La relation R1 contenant la clé étrangère est appelée relation de référence car elle fait référence à la clé primaire de la relation R2, et la relation R2 est appelée relation de référence.

Contrairement à la clé primaire, la clé étrangère peut accepter les valeurs NULL car elle n'identifie pas explicitement la tâche de l'enregistrement dans la relation ; de même, la clé étrangère accepte également les valeurs en double.

Une relation peut avoir plusieurs clés étrangères car elle peut avoir différents attributs qui sont des clés primaires dans différentes relations. Les contraintes de clé étrangère ne peuvent pas être définies sur les tables temporaires et les clés étrangères ne sont pas des propriétés d'index clusterisé.

La principale différence entre la clé primaire et la clé étrangère

Essentiellement différent

A. la clé primaire est une clé candidate choisie qui définit de manière unique un tuple dans une relation ; une clé étrangère dans une table fait référence à la clé primaire d'une autre table.

2. Valeur NULL

La valeur de la clé primaire ne peut jamais être NULL ; les clés étrangères acceptent les valeurs NULL.

3. Valeurs en double

Il n'y a pas deux tuples dans la relation de clé primaire qui portent des valeurs en double pour l'attribut de clé primaire. Les tuples dans les clés étrangères peuvent contenir des valeurs en double pour les attributs de clé étrangère.

4. La relation Range

ne peut avoir qu'une seule clé primaire. Il peut y avoir plusieurs clés étrangères dans une relation.

5. Table temporaire

Clé primaire Vous pouvez définir des contraintes de clé primaire sur la table temporaire. Clés étrangères Les contraintes de clé étrangère ne peuvent pas être définies sur les tables temporaires.

6. Index clusterisé

Par défaut, la clé primaire est un index clusterisé. Les clés étrangères ne peuvent pas regrouper automatiquement les index, cela doit être fait manuellement.

7. Insérer

Dans la clé primaire, nous pouvons insérer une valeur dans l'attribut de clé primaire, même si la clé étrangère référente n'a pas la valeur dans son colonne.

Dans une clé étrangère, une valeur ne peut pas être insérée dans la clé étrangère si la valeur n'existe pas dans la colonne de clé primaire référencée.

8. Supprimer

Avant de supprimer la valeur de la clé primaire, veuillez vous assurer que la valeur n'existe toujours pas dans la colonne de clé étrangère référencée de la table de référence. Nous pouvons supprimer une valeur d'une colonne de clé étrangère sans nous soucier de savoir si la valeur existe dans la colonne de clé primaire de référence de la relation de référence.

Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun. Pour un contenu plus passionnant, vous pouvez prêter attention aux colonnes de didacticiels pertinentes du site Web PHP chinois ! ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:qu'est-ce que l'atelier MySQLArticle suivant:qu'est-ce que l'atelier MySQL