Qu'est-ce que Clé primaire ?

Colonne, ou ensemble de colonnes, qui sert à identifier de façon unique une ligne d'une table. Elle est soumise aux contraintes selon lesquelles ses valeurs ne doivent pas comporter de doublons ni contenir de NULL. La clé primaire est choisie parmi les ensembles minimaux de colonnes capables d'identifier une ligne de façon unique (clés candidates).

Nom japonais: 主キー

« Clé primaire » apparaît dans 8 questions d'entraînement réparties sur 1 thèmes, dont Bases des bases de données.

Domaine: Bases des bases de données

S'entraîner : questions sur Clé primaire

Dans une table d'une base de données relationnelle, quelle condition la colonne (ou l'ensemble de colonnes) désignée comme clé primaire doit-elle remplir ?

  1. ASes valeurs doivent être des nombres
  2. BElle doit être la première colonne de la table
  3. CSes valeurs ne doivent pas comporter de doublons dans la table ni contenir de NULL
Afficher la réponse et l'explication

Réponse : C. Ses valeurs ne doivent pas comporter de doublons dans la table ni contenir de NULL

Une clé primaire est une colonne, ou un ensemble de colonnes, qui sert à identifier de façon unique une ligne d'une table. Ses valeurs ne doivent donc pas répéter celles d'une autre ligne (unicité), et NULL, qui représente une valeur inconnue, n'est pas non plus admis (NOT NULL). Lorsqu'on spécifie PRIMARY KEY dans une instruction SQL CREATE TABLE, le SGBD (système de gestion de base de données) impose ces deux contraintes, et toute opération qui tente d'insérer une valeur en double ou NULL échoue avec une erreur. Une clé primaire peut contenir des nombres, comme des numéros d'employé, ou des chaînes de caractères, et sa position parmi les colonnes n'est soumise à aucune règle. Un ensemble minimal de colonnes capable d'identifier une ligne de façon unique s'appelle une clé candidate, et la clé primaire est celle que l'on choisit parmi les clés candidates.

Une table d'inscriptions Inscription(NumEtudiant, NumCours, Note) enregistre quel étudiant a suivi quel cours et avec quelle note. Un étudiant suit plusieurs cours, et un cours est suivi par plusieurs étudiants. Si un même étudiant ne s'inscrit jamais 2 fois au même cours, quelle clé primaire convient à cette table ?

  1. ANumEtudiant
  2. BNumCours
  3. CLa combinaison de NumEtudiant et NumCours
Afficher la réponse et l'explication

Réponse : C. La combinaison de NumEtudiant et NumCours

Comme un étudiant suit plusieurs cours, NumEtudiant seul apparaît dans plusieurs lignes et ne permet pas d'identifier une ligne de façon unique. De même, comme un cours est suivi par plusieurs étudiants, NumCours seul n'est pas unique non plus. La combinaison de NumEtudiant et NumCours détermine une seule ligne, puisqu'un même étudiant ne s'inscrit jamais 2 fois au même cours. Une clé primaire composée ainsi de plusieurs colonnes s'appelle une clé composite, et en SQL on la spécifie en énumérant les colonnes, comme dans PRIMARY KEY (NumEtudiant, NumCours). Les colonnes NumEtudiant et NumCours de la table Inscription sont aussi des clés étrangères qui font référence aux clés primaires des tables Etudiant et Cours, et cette table représente la relation plusieurs-à-plusieurs entre étudiants et cours.

« Clé primaire » dans les explications

Questions mentionnant « Clé primaire » (8)

  1. Dans une table d'une base de données relationnelle, quelle condition la colonne (ou l'ensemble de colonnes) désignée comme clé primaire doit-elle remplir ?
  2. Une table d'inscriptions Inscription(NumEtudiant, NumCours, Note) enregistre quel étudiant a suivi quel cours et avec quelle note. Un étudiant suit plusieurs cours, et un cours est suivi par plusieurs étudiants. Si un même étudiant ne s'inscrit jamais 2 fois au même cours, quelle clé primaire convient à cette table ?
  3. La clé primaire d'une table des clients Client(IdClient, Nom) est IdClient, et la colonne IdClient d'une table des commandes Commande(IdCommande, IdClient) est définie comme clé étrangère faisant référence à IdClient de la table Client. La table Client ne contient que les lignes dont IdClient vaut 'C1' et 'C2'. Que se passe-t-il si l'on exécute INSERT INTO Commande VALUES ('O9', 'C5') dans cet état ?
  4. La clé primaire d'une table Commande(NumCommande, NumArticle, Quantite, NumClient, NomClient) est {NumCommande, NumArticle}, et ses dépendances fonctionnelles sont {NumCommande, NumArticle} → Quantite, NumCommande → NumClient et NumClient → NomClient. Quel est le résultat correct de la normalisation de cette table jusqu'à la troisième forme normale (3NF) ?
  5. La clé primaire d'une table Employe(NumEmploye, Nom, CodeService, NomService) est NumEmploye, et chaque colonne contient une seule valeur. Les dépendances fonctionnelles sont NumEmploye → Nom, NumEmploye → CodeService et CodeService → NomService. Quelle proposition indique correctement la forme normale de cette table ?
  6. Dans la terminologie des bases de données relationnelles, quel terme correspond à une ligne d'une table (relation) ?
  7. Dans une table des employés Employe(NumEmploye, Email, Nom, Service), NumEmploye et Email sont tous deux différents pour chaque employé et jamais NULL. Nom et Service peuvent être identiques à ceux d'autres employés. Quelle proposition énumère toutes les clés candidates de cette table ?
  8. Dans un diagramme E-R, il existe une relation plusieurs-à-plusieurs entre étudiants et cours : un étudiant suit plusieurs cours, et un cours est suivi par plusieurs étudiants. Quelle est la manière appropriée de mettre en œuvre cette relation avec des tables d'une base de données relationnelle ?

Termes associés

Clé étrangère (foreign key) Base de données relationnelle SQL Troisième forme normale (3NF) Normalisation Diagramme E-R (entité-association) Index (index de base de données) Niveau d'isolation NoSQL Propriétés ACID

Retour au glossaire