Bases des bases de données
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 ?
- AEn deuxième forme normale mais pas en troisième forme normale
- BEn première forme normale mais pas en deuxième forme normale
- CEn troisième forme normale
Afficher la réponse et l'explication
Réponse : A. En deuxième forme normale mais pas en troisième forme normale
Chaque colonne contient une valeur unique, sans répétition ; la table est donc en première forme normale. Comme la clé primaire est la seule colonne NumEmploye, aucune dépendance fonctionnelle partielle envers une partie de la clé n'est possible ; la table est donc aussi en deuxième forme normale. Cependant, NomService est déterminé par l'intermédiaire de CodeService, qui n'est pas la clé primaire, selon NumEmploye → CodeService → NomService ; cette dépendance fonctionnelle transitive fait que la table n'est pas en troisième forme normale. En l'état, le nom du service est répété dans la ligne de chaque employé du même service, et renommer un service oblige à réécrire de nombreuses lignes. Séparer une table Service(CodeService, NomService) et ne garder que CodeService dans la table Employe donne la troisième forme normale. La colonne CodeService de la table Employe devient alors une clé étrangère qui fait référence à la table Service.
Continuer : 9 autres questions sur Bases des bases de données