Objectifs II
[15 min]
Vous êtes le président de l'association "Objectifs", dont l'objet est d'aider ses étudiants membres à mener des projets dans le cadre de leurs études. Pour le moment cette association gère tous ces projets avec un logiciel de type tableur.
La concision et la clarté de la rédaction, ainsi que la bonne mobilisation des concepts et de la terminologie du domaine des bases de données seront intégrées à l'évaluation.
Question
On considérera ce tableau comme une relation, et on admettra que cette extension est suffisante pour l'interprétation des données :
Solution
La colonne "Numéro" peut être une clé et c'est la seule possible :
La colonne "Projet / Tâche" ne peut pas être une clé car elle contient deux valeurs identiques.
Toutes les autres colonnes admettent au moins une valeur nulle et ne peuvent donc faire partie d'une clé.
Il n'est pas possible de définir une clé composée car elle contiendrait soit "Numéro" (qui est déjà une clé, elle ne serait alors pas minimale) soit une colonne avec des valeurs nulles (ce qui est interdit).
Les colonnes suivantes ne sont pas atomiques :
"Numéro" contient le numéro de projet et de tâche
"Chef de projet" et "Participants tâches" contiennent des noms, prénoms et spécialités de membres
Dates contient un début et une fin de période
Partenaire contient un nom et une description de partenaire
Partenaire contient plusieurs partenaires
Question
On propose une première décomposition pour que le modèle soit en 1NF.
Projet (#Num, Nom, Debut, Fin, Specialite, CDP-Prenom, CDP-Nom, CDP-Specialite)
Tache (#NumProjet=>Projet, #NumTache, Nom, Participant-Prenom, Participant-Nom, Participant-Specialite)
Partenaire (#Nom, Description)
Partenariat (#Partenaire=>Partenaire, #Projet=>Projet, role)
Montrer que ce modèle n'est pas en 3NF et lister l'ensemble des DFE responsables.
Proposer une décomposition en 3NF.
Solution
DFE responsables
Projet : CDP-Prenom, CDP-Nom → CDP-Specialite
Tâche : Participant-Prenom, Participant-Nom → Participant-Specialite
Décomposition
Projet (#Num, Nom, Debut, Fin, Specialite, CDP-Prenom=>Membre, CDP-Nom=>Membre)
Tache (#NumProjet=>Projet, #NumTache, Nom, Participant-Prenom=>Membre, Participant-Nom=>Membre)
Membre (#Nom, #Prenom, Specialite)
Partenaire (#Nom, Description)
Partenariat (#Partenaire=>Partenaire, #Projet=>Projet, role)
On observe que CDP
et Participant
renvoient à une même entité que l'on nomme Membre
.