Bases des bases de données

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.

S'entraîner sur ce thème Retour au thème

Autres questions sur Bases des bases de données

  1. 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 ?
  2. Les instructions SQL se répartissent en langage de définition de données (DDL), langage de manipulation de données (DML) et langage de contrôle de données (DCL). Laquelle relève du DDL ?
  3. Une table Produit contient 5 lignes (Nom, Prix) : (Stylo, 120), (Cahier, 250), (Gomme, 80), (Classeur, 300), (Règle, 150). Quelle proposition donne, dans l'ordre, les lignes renvoyées par SELECT Nom FROM Produit WHERE Prix >= 150 ORDER BY Prix DESC ?
  4. La colonne Service d'une table Employe contient, de la première ligne à la dernière, Commercial, Développement, Commercial, Administration, Développement, Commercial (6 lignes au total). Combien de lignes renvoie SELECT DISTINCT Service FROM Employe ?
  5. Quel est le résultat de l'exécution en SQL de DELETE FROM Employe sans clause WHERE ?