Conception
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.
Question
Proposer un MCD[1] en UML puis un MLD[2] relationnel complet normalisé en 3NF correspondant au problème de l'association Objectifs.
Pour le MLD précisez les domaines, les clés artificielles éventuelles (en les justifiant), les contraintes de non nullité...
Solution
Projet (#Num:int, Nom:string, Debut:date, Fin:date, Specialite=>Specialite, ChefDeProjet=>Membre) avec Nom NOT NULL, Debut NOT NULL, Fin NOT NULL, Specialite NOT NULL, ChefDeProjet NOT NULL
Tache (#NumProjet=>Projet, #NumTache, Nom:string, Participant=>Membre) avec Nom NOT NULL
Membre (#Num:int, Prenom:string, Nom:string, Specialite=>Specialite) avec (Prenom, Nom) KEY
Partenaire (#Nom:string, Description:string)
Partenariat (#Partenaire=>Partenaire, #Projet=>Projet, role:string)
Specialite (#Intitule:string)
On a ajouté la clé artificielle Num
à la relation Membre
pour simplifier les références aux membres, et dans l'éventualité future où (Prenom, Nom)
ne serait plus admis comme clé (si deux personnes ont le même nom et le même prénom).
On a créé une table Specialite
afin de modéliser la liste des spécialités comme une classe à part entière et non simplement comme un attribut des projets.
Ce modèle est en BCNF, toutes les DFE sont de type K→A :
Projet : Num→Nom, Debut, Fin, Specialite, ChefDeProjet
Tache : NumProjet, NumTache→Nom, Participant
Membre : Num→Prenom, Nom, Specialite et Nom, Prenom→Num, Specialite
Partenaire : Nom→Description
Partenariat : Partenaire, Projet→Role
Specialite : un seul attribut, pas de DFE