Recommandé, 2024

Choix De L'Éditeur

Différence entre la clé primaire et la clé unique

Nous avons déjà étudié différents types de clés utilisées dans les bases de données et les schémas dans les articles précédents, à savoir Différence entre clé primaire et clé étrangère. Dans cet article, nous distinguons clé primaire et clé unique. La clé primaire et la clé unique servent à identifier un tuple de manière unique et à appliquer l'unicité dans une colonne ou une combinaison de colonnes.

La différence essentielle entre la clé primaire et la clé unique réside dans le fait que la clé primaire n'accepte pas les valeurs NULL, alors que les valeurs NULL sont autorisées dans les contraintes de clé unique.

Tableau de comparaison

Base de comparaisonClé primaireClé unique
De baseIl est utilisé comme identifiant unique pour chaque ligne d'une table.Il détermine également de manière unique une ligne qui n'est pas définie en tant que clé primaire.
Acceptation de la valeur NULLLa clé primaire n'acceptera pas les valeurs NULL.Unique acceptera une valeur NULL.
Nombre de clés pouvant être définies dans la tableUne seule clé primairePlus d'un
IndiceCrée un index clusteriséCrée un index non-cluster

Définition de clé primaire

Une colonne peut être appelée clé primaire de sa table si elle identifie de manière unique chaque tuple (ligne) de cette table. Il applique des contraintes d'intégrité à la table. Une seule clé primaire est autorisée dans une table. La clé primaire n'accepte pas les valeurs dupliquées et NULL. La clé primaire est choisie avec soin, car les changements peuvent survenir rarement, ce qui signifie qu'une clé primaire dans une table change très rarement.

Comprenons la notion de clé primaire à l'aide d'une table. Nous créons ici une table nommée table Student, qui possède des attributs tels que Roll_number, Nom, Batch, Phone_number, Citizen_ID.

Dans l'exemple donné, le numéro de rôle de l'attribut ne peut jamais avoir une valeur identique et NULL, car chaque étudiant inscrit dans une université possède un numéro de rouleau unique. Deux étudiants ne peuvent pas avoir le même numéro de rouleau, et chaque ligne d'un tableau est identifiée de manière unique avec le numéro de rôle des étudiants. Nous pouvons donc créer un attribut Roll_number en tant que clé primaire dans ce cas particulier.

Une clé primaire peut être référencée par une clé étrangère. Il crée un index cluster unique sur la table. Dans un index clusterisé, les lignes de données sont triées et stockées dans une table ou des vues sur la base de ses valeurs de clé. Il ne peut y avoir qu’un seul index clusterisé dans une table. La raison en est qu’une ligne de données d’une table ne peut être triée que dans un seul ordre.

Définition de clé unique

Semblables à une clé primaire, les contraintes de clé unique identifient également un tuple individuel de manière unique dans une relation. Mais, il y a certaines différences entre eux. Une table peut avoir plus d'une clé unique. Les contraintes de clé uniques ne peuvent accepter qu'une seule valeur NULL pour une colonne.

Comprenons cela avec l'exemple similaire, où nous avions une table Student avec les attributs Roll_number, Name, Batch, Phone_number et Citizen_ID. L'attribut du numéro de rôle est attribué à la clé primaire.

Ici, Citizen_ID peut être affecté avec des contraintes uniques, chaque entrée d'une colonne Citizen_ID devant être unique et non dupliquée, car chaque citoyen d'un pays doit avoir son numéro d'identification unique. Toutefois, si un étudiant émigre d'un autre pays, dans ce cas, il n'aura pas le Citizen_ID et l'entrée pourrait avoir une valeur NULL, car un seul NULL est autorisé dans la contrainte unique.

Les contraintes uniques sont également référencées par la clé étrangère. Il peut être utilisé lorsque quelqu'un souhaite appliquer des contraintes à une colonne et à un groupe de colonnes qui n'est pas une clé primaire. Contrairement à la clé primaire, il génère l' index non clusterisé . Les index non clusterisés ont une structure distincte des lignes de données. Chaque entrée de valeur-clé qu'il contient pointe sur la ligne de données qui contient la valeur de clé et utilise donc des pointeurs.

Différences de clé entre la clé primaire et la clé unique

  1. Lorsqu'un attribut déclaré comme clé primaire, il n'acceptera pas les valeurs NULL. D'autre part, lorsqu'un attribut déclaré Unique, il peut accepter une valeur NULL.
  2. Une table ne peut avoir qu'une clé primaire alors qu'il peut y avoir plusieurs contraintes uniques sur une table.
  3. Un index clusterisé créé automatiquement lorsqu'une clé primaire est définie. En revanche, Unique key génère l'index non clusterisé.

Conclusion

La clé primaire et la clé unique servent à la fois d'identifiant unique pour les lignes d'une table avec les valeurs uniques dans une colonne ou un groupe de colonnes. Ces contraintes de clé sont différenciées de manière significative, chaque table pouvant avoir au plus une clé primaire, tandis qu'une table peut avoir plusieurs clés uniques non primaires.

Top