web-dev-qa-db-fra.com

Quelle est la différence entre une clé candidate et une clé composite?

Je lis au sujet des clés de candidat et des clés composites. J'ai appris que

  • une clé candidate peut être qualifiée de clé primaire et peut être une colonne unique ou une combinaison de colonnes
  • et une clé composite est également une combinaison de colonnes. 

Pour la clé composite, j'ai référé ce lien

comment créer une clé composite avec SQL Server Management Studio?

Ainsi, lorsque la clé candidate et la clé composite sont une combinaison de colonnes, elles peuvent être qualifiées de clé primaire. Alors quelle est la différence exacte? Pouvez-vous s'il vous plaît expliquer avec des exemples? 

17
Shailesh Jaiswal

Comme je le sais, la clé candidate est une clé unique qui peut être utilisée comme clé primaire. mais pas nécessairement utilisé comme un seul.

La clé composite est une clé de deux attributs ou plus qui identifie de manière unique la ligne.

14
Headshota

Une clé est un ensemble de colonnes qui peuvent être utilisées pour identifier de manière unique chaque ligne dans une table.

Chaque table a au moins une clé. Disons que nous avons identifié chaque clé possible pour la table. Chacune de ces clés est une clé candidate.

Lorsque nous examinons chacune de ces clés, celle-ci peut ne comporter aucune colonne (!), Une colonne ou plus d'une colonne, lesquelles, lorsqu'elles sont considérées ensemble, identifient de manière unique chaque ligne. Le terme clé composite fait spécifiquement référence à une clé composée de plusieurs colonnes.

En SQL, il a été décidé qu'une clé devrait être sélectionnée et traitée "plus égale" que les autres clés de la table. Cette clé s'appelle la clé primaire. D'autres clés peuvent également être déclarées sur la table. Celles-ci sont généralement désignées sous le nom de contraintes uniques.

(!) En SQL, vous n'êtes pas autorisé à déclarer une clé sans colonnes - bien que cela puisse parfois être utile (imaginez une table qui ne devrait contenir qu'une seule ligne, chaque colonne représentant des informations de configuration).


Par exemple, une table comportant plusieurs clés, qui sont toutes composites. Imaginez un système de rendez-vous dans lequel un client et un conseiller se rencontrent dans une salle à une heure donnée:

CREATE TABLE Appointments (
    ClientID int not null,
    CounsellorID int not null,
    RoomID int not null,
    AppointmentTime datetime not null
)

Les clés candidates pour cette table sont {ClientID, AppointmentTime}, {CounsellorID, AppointmentTime} et {RoomID, AppointmentTime}. N'importe laquelle de ces combinaisons de colonnes peut être utilisée pour identifier de manière unique une ligne de la table, et toutes sont des clés composites.

La clé que nous choisirons de déclarer comme clé primaire dépendra (probablement) de notre propre interprétation de la "focalisation" principale du système. Sommes-nous principalement concernés par l'utilisation de la salle, ou les clients, ou les conseillers? Dans tous les cas, nous en sélectionnerons un et le déclarerons comme clé primaire. Nous espérons également déclarer les autres clés comme des contraintes uniques.

Ou bien, nous pourrions décider d'utiliser un substitut et de déclarer une colonne AppointmentID, en utilisant les fonctions de numérotation automatique disponibles dans la base de données. Cela pourrait alors être la clé primaire (non composite). Mais nous devrions quand même déclarer les autres clés de la table.

15

Clé candidate: Un candidat pour un champ de clé primaire est appelé clé candidate.

Clé composite: La création de plusieurs clés primaires est conjointement appelée clé composite.

Mise à jour: Une clé candidate est une clé unique pouvant être utilisée comme clé primaire. La clé composite est une clé d'au moins deux attributs qui identifient de manière unique la ligne. Une clé est un ensemble de colonnes qui peuvent être utilisées pour identifier de manière unique chaque ligne dans une table.

6
Ali Ben Messaoud

Une clé candidate est juste ce qui suit: une colonne ou une combinaison de colonnes qui pourrait être utilisée comme clé primaire, c’est-à-dire une clé primaire potentielle ou potentielle, une clé composite est par définition deux ou plusieurs colonnes qui pourraient être utilisées pour identifier une rangée. Le plus souvent, lorsque vous parlez de clés composites, la question est de savoir si elle doit être utilisée comme clé principale pour avoir une clé de substitution. À l'occasion, vous entendrez peut-être des personnes faire référence à une clé composite qui n'est pas une clé primaire (c'est-à-dire non unique pour toutes les lignes), auquel cas c'est (espérons-le) juste un moyen de faire référence à une jointure multi-colonne sur une clé non primaire champs (au lieu de faire une jointure croisée et filtrer les lignes dans la clause where).

2
jmoreno