Y a-t-il une différence entre deux clés primaires et une clé composite?


Réponse 1:

Oui, il y a une différence. Avant de faire la différence, vous devez comprendre qu'une «clé» est un champ dont la valeur identifiera de façon unique une ligne. C'est ce qu'on appelle la propriété «d'unicité» d'une clé. Il existe une deuxième propriété d'une clé (c'est là que réside la différence entre une clé composite et plusieurs clés), à savoir la propriété de «minimalité». Cela stipule qu'il ne doit pas être possible de supprimer un champ de la clé de telle sorte que l'unicité est détruite.

Considérons un tableau avec les résultats des examens des élèves comme suit:

  • ScoreId (un numéro courant unique) StudentId (l'ID d'enregistrement des étudiants est garanti unique pour tout étudiant quelle que soit l'année académique; FK sur la table Student) SubjectNameSubjectTestIdentifier (un identifiant de test unique pour chaque test jamais effectué par l'institution; FK sur le TestMaster tableau indiquant l'année académique, le sujet, la date du test et les autres attributs du test) SubjectScore

Dans le cas ci-dessus, {ScoreId}, {StudentId, SubjectName, SubjectTestIdentifer, SubjectScore} et {StudentId, SubjectTestIdentifier} sont toutes des clés - chacun de ces ensembles de champs identifiera de manière unique la ligne dont vous parlez.

Mais considérons maintenant {StudentId, SubjectName, SubjectTestIdentifier, SubjectScore} et {StudentId, SubjectTestIdentifier} - alors que ces deux éléments satisfont à la propriété d'unicité, le premier échoue au test de "minimalité" - désactivez "SubjectName" et "SubjectScore" et vous pouvez identifier toujours de manière unique la ligne.

Venons-en maintenant à votre question: dans ce cas, {ScoreId} est une clé mais pas une clé composite, tandis que {StudentId, SubjectTestIdentifier} est une clé composite. Toutes les clés composites sont des clés uniques, mais toutes les clés uniques ne sont pas des clés composites.


Réponse 2:

Si vous déclarez plusieurs attributs en tant que clés primaires, ils forment ensemble une clé composite. Les clés composites sont généralement créées en l'absence d'une telle clé à travers laquelle vous pouvez identifier de manière unique chaque ligne. Vous créez donc une combinaison de champs qui, ensemble, peuvent identifier de manière unique les lignes.

Lorsque vous disposez de plusieurs clés pouvant devenir clé primaire, ces champs sont appelés clé candidate ou clé secondaire.

Ainsi, plusieurs clés primaires définies et clé composite sont fondamentalement les mêmes.