Clé primaire vs clé unique
Une colonne ou un ensemble de colonnes, qui peuvent être utilisés pour identifier ou accéder à une ligne ou à un ensemble de lignes dans une base de données est appelé une clé. Une clé unique est une clé qui peut identifier de manière unique une ligne dans une table dans le contexte de bases de données relationnelles. Une clé unique est constituée d'une seule colonne ou d'un ensemble de colonnes. Une clé primaire est également une combinaison de colonnes dans une table qui identifie de manière unique une ligne. Mais il est considéré comme un cas particulier de la clé unique.
Qu'est-ce qu'une clé unique?
Comme mentionné précédemment, la clé unique est une seule colonne ou un ensemble de colonnes qui peuvent identifier de manière unique une ligne dans une table. Ainsi, une clé unique est contrainte de telle sorte qu'aucune valeur ne soit égale. Une propriété importante est que les clés uniques n'appliquent pas la contrainte NOT NULL. Puisque NULL représente l'absence de valeur, si deux lignes ont NULL dans une colonne, cela ne signifie pas que les valeurs sont égales. La colonne définie comme clé unique n'autorise qu'une seule valeur NULL dans cette colonne. Ensuite, cela peut être utilisé pour identifier cette ligne particulière de manière unique. Par exemple, dans une table contenant des informations sur les étudiants, l'ID étudiant peut être défini comme une clé unique. Étant donné que deux étudiants ne peuvent pas avoir le même ID, il identifie de manière unique un seul étudiant. Ainsi, la colonne ID étudiant satisfait toutes les propriétés d'une clé unique. En fonction de la conception d'une base de données,une table peut avoir plus d'une clé unique.
Qu'est-ce que la clé primaire?
La clé primaire est également une colonne ou une combinaison de colonnes qui définit de manière unique une ligne dans une table d'une base de données relationnelle. Une table peut avoir au plus une clé primaire. La clé primaire applique la contrainte implicite NOT NULL. Ainsi, une colonne définie comme clé primaire ne peut pas contenir de valeurs NULL. La clé primaire peut être un attribut normal de la table qui est garanti unique, tel que le numéro de sécurité sociale, ou il peut s'agir d'une valeur unique générée par le système de gestion de base de données, telle qu'un identificateur global unique (GUID) dans Microsoft SQL Server. Les clés primaires sont définies via la contrainte PRIMARY KEY dans ANSI SQL Standard. La clé primaire peut également être définie lors de la création de la table. SQL permet à la clé primaire d'être constituée d'une ou de plusieurs colonnes et chaque colonne incluse dans la clé primaire est implicitement définie comme NOT NULL. Mais certains systèmes de gestion de base de données nécessitent de rendre les colonnes de clé primaire explicitement NON NULL.
Différence entre la clé primaire et la clé unique
Même si la clé primaire et la clé unique sont une ou plusieurs colonnes qui peuvent identifier de manière unique une ligne dans une table, elles présentent des différences importantes. Plus important encore, une table ne peut avoir qu'une seule clé primaire alors qu'elle peut avoir plusieurs clés uniques. La clé primaire peut être considérée comme un cas particulier de la clé unique. Une autre différence est que les clés primaires ont une contrainte NOT NULL implicite alors que la clé unique n'a pas cette contrainte. Par conséquent, les colonnes de clé unique peuvent contenir ou non des valeurs NULL, mais les colonnes de clé primaire ne peuvent pas contenir de valeurs NULL.