Cours 4
NORMALISATION DE LA STRUCTURE DE DONNÉE


Gestion de projets ... suite



Nous avons déjà modélisé l'application "Gestion de projets" dans un cours précédent.

Pour illustrer la modélisation, notons qu'on aurait pû aussi décrire le problème de la façon suivante:

PROJETS
   Titre
   Date-début
   Date-fin
   Pays
   Budget
   Chef
   Employés-assignés *
      Nom-employé
      Adresse
      Bureau
      Tel-bureau
      Date-embauche
      Nom-Dépt
      Directeur
      Code-budget
      Date-du-travail
      Feuilles-de-temps *
           Nombre-heures-travaillé
   Heures-totales



Afin de construire un système relationnel selon les règles, il faut d'abord normaliser cette structure.

En 1NF:
Projet (Num-projet, Titre, Date-début, Date-fin, Pays, Budget, Chef, Heures-totales)

Employés-assignés (Num-employé, Date-du-travail, Nom_employé, Adresse, Bureau, Tel-bureau,
          Date-embauche, Salaire, Nom-Dept, Directeur, Code-budget)

Feuile-de-temps (Num-feuille, Num-employé, Num-projet, Nombre-heures-travaillé)





En 2NF:
Projet (Num-projet, Titre, Date-début, Date-fin, Pays, Budget, Chef, Heures-totales)

Employé (Num-employé, Nom_employé, Adresse, Bureau, Tel-bureau,
          Date-embauche, Salaire, Dept)

Departement (Num-dept, Nom-Dept, Directeur, Code-budget)

Employés-assignés (Num-feuille, Num-employé, Date-du-travail)

Feuille-de-temps (Num-feuille, Num-projet, Nombre-heures-travaillé)





En 3NF:
Projet (Num-projet, Titre, Date-début, Date-fin, Pays, Budget, Chef)

Employé (Num-employé, Nom_employé, Adresse, Bureau, Tel-bureau,
          Date-embauche, Salaire, Dept)

Departement (Num-dept, Nom-Dept, Directeur, Code-budget)

Feuille-maitre (Num-feuille, Num-employé, Date-du-travail)

Feuille-détails (Num-feuille, Num-projet, Nombre-heures-travaillé





et nous en sommes arrivé à ceci:




Maintenant, on nous demande de garder un profil des compétences de chaque employé. Le profil liste le niveau d'expertise de chaque employé dans les langages de programmation, les outils de développement et les environnements techniques.

Il faut modéliser cette nouvelle application et l'inclure dans le modèle déjà créé.











EXEMPLES DE BASES DE DONNÉES NORMALES




Voici une application de distribution normale. On produit une facture pour un client qui achète un certain nombre de produits. Notez que le prix de vente doit être dans la table "Détail".






Pour la base de données du Magasin Vidéo, le client emprunte plusieurs films lors d'une transaction:






Lorsqu'un étudiant s'inscrit à plusieurs cours on utilise aussi la structure "Maître/détail":






Dans l'application "Services financiers", la structure répétitive est celle des vendeurs: une transaction représente seulement un produit mais peut être faite par plusieurs vendeurs. C'est pour cela que la table "Détail" contient les vendeurs et non les produits. C'est une adaptation de la structure "Maître/détail" normale:











Haut de la page