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.

Exemple de fichier de gestion des projets de l'association Objectifs

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

Modèle UML de la base de données de gestion de projets
1
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
2
Tache (#NumProjet=>Projet, #NumTache, Nom:string, Participant=>Membre) avec Nom NOT NULL
3
Membre (#Num:int, Prenom:string, Nom:string, Specialite=>Specialite) avec (Prenom, Nom) KEY
4
Partenaire (#Nom:string, Description:string)
5
Partenariat (#Partenaire=>Partenaire, #Projet=>Projet, role:string)
6
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