Bases des bases de données

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 ?

  1. ANumEmploye uniquement
  2. BNumEmploye, et Email (chacune étant une clé candidate à elle seule)
  3. CNumEmploye, et la combinaison de NumEmploye et Nom
Afficher la réponse et l'explication

Réponse : B. NumEmploye, et Email (chacune étant une clé candidate à elle seule)

Une clé candidate est un ensemble minimal de colonnes capable d'identifier une ligne de façon unique : retirer ne serait-ce qu'une colonne rendrait l'identification unique impossible. Dans cette table, NumEmploye comme Email permettent chacun à eux seuls d'identifier un employé de façon unique ; ce sont donc tous deux des clés candidates. On choisit l'une des clés candidates comme clé primaire (ici, NumEmploye est le choix naturel), et celle qui n'est pas choisie, Email, s'appelle une clé alternative. Doter la clé alternative de contraintes UNIQUE et NOT NULL empêche les doublons. La combinaison de NumEmploye et Nom permet aussi d'identifier une ligne de façon unique, mais l'unicité est conservée même sans Nom ; elle n'est donc pas minimale et n'est pas une clé candidate. Un ensemble de colonnes qui identifie les lignes de façon unique sans être forcément minimal s'appelle une super-clé.

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

Autres questions sur Bases des bases de données

  1. 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 ?
  2. 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 ?
  3. 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 ?
  4. 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 ?
  5. 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 ?