Upload
abdelhakim-adouis
View
30
Download
1
Embed Size (px)
Citation preview
Normalisation – Exercice « Agence immobilière » 1. Base de données initiale
Num_Client Nom_Client Num_App Adr_App DateD_Loc DateF_Loc Montant Num_Prop Nom_Prop
CR76 Jean DUPONT PG4 12, rue de la Gare 01.07.93 31.08.95 3500 CX40 Jeanne MOULIN
PG16 7, av. de la République 01.09.95 01.09.96 4500 CX93 Alain MULLER
CR56 Claire SERRON PG4 12, rue de la Gare 01.09.92 10.06.93 3500 CX40 Jeanne MOULIN
PG36 3, Grande Rue 10.10.93 01.12.94 3800 CX93 Alain MULLER
PG16 7, av. République 01.01.95 10.08.95 4500 CX93 Alain MULLER
2. Base de données en 1ère forme normale (FN1)
Num_Client Nom_Client Num_App Adr_App DateD_Loc DateF_Loc Montant Num_Prop Nom_Prop
CR76 Jean DUPONT PG4 12, rue de la Gare 01.07.93 31.08.95 3500 CX40 Jeanne MOULIN
CR76 Jean DUPONT PG16 7, av. de la République 01.09.95 01.09.96 4500 CX93 Alain MULLER
CR56 Claire SERRON PG4 12, rue de la Gare 01.09.92 10.06.93 3500 CX40 Jeanne MOULIN
CR56 Claire SERRON PG36 3, Grande Rue 10.10.93 01.12.94 3800 CX93 Alain MULLER
CR56 Claire SERRON PG16 7, av. République 01.01.95 10.08.95 4500 CX93 Alain MULLER
3. Dépendances fonctionnelles et clé Dépendances fonctionnelles
Num_Client -> Nom_Client ; Num_Client Num_App -> DateD_Loc DateF_Loc
Num_App -> Adr_App Montant Num_Prop Nom_Prop ; Num_Prop -> Nom_Prop
Clé :
(Num_Client Num_App) détermine tous les attributs de la relation
CLE
Num_Loc
Adr_App Montant
DateD_Loc
DateF_Loc
Nom_Prop
4. Mise en 2ème forme normale (FN2)
Supposons qu’on veuille modifier ou corriger l’adresse d’un appartement apparaissant plusieurs fois dans la table (différents locataires à différentes périodes) => il faut modifier plusieurs n-uplets !
Ceci est du au fait que certains attributs ne dépendent pas pleinement de la clé, et qu’il existe donc des dépendances partielles (cf. schéma ci-dessous).
Il faut donc décomposer R pour obtenir un schéma en 2ème forme normale :
R1 (Clients)
Num_Client Nom_Client
CR76 Jean DUPONT
CR56 Claire SERRON
R2 (Appartements)
Num_App Adr_App Montant Num_Prop Nom_Prop
PG4 12, rue de la Gare 3500 CX40 Jeanne MOULIN
PG16 7, av. République 4500 CX93 Alain MULLER
PG36 3, Grande Rue 3800 CX93 Alain MULLER
R3 (Locations)
Num_Client Num_App DateD_Loc DateF_Loc
CR76 PG4 01.07.93 31.08.95
CR76 PG16 01.09.95 01.09.96
CR56 PG4 01.09.92 10.06.93
CR56 PG36 10.10.93 01.12.94
CR56 PG16 01.01.95 10.08.95
5. Mise en 3ème forme normale (FN3)
Supposons qu’on veuille modifier ou corriger le nom d’un propriétaire apparaissant plusieurs fois dans la table (propriétaire de plusieurs appartements) => il faut modifier plusieurs n-uplets !
Ceci est du au fait qu’il existe une dépendance transitive entre Num_App, Num_Prop et Nom_Prop (cf. schéma précédent).
Il faut donc décomposer R2 pour obtenir un schéma en 3ème forme normale : R'2 (Appartements)
Num_App Adr_App Montant Num_Prop
PG4 12, rue de la Gare 3500 CX40
PG16 7, av. de la République 4500 CX93
PG36 3, Grande Rue 3800 CX93
R4 (Propriétaires)
Num_Prop Nom_Prop
CX40 Jeanne MOULIN
CX93 Alain MULLER
6. Mise en forme normale de Boyce-Codd (FNBC)
Pour que le schéma de décomposition obtenu soit FNBC, il faut vérifier que, s'il existe des clés secondaires, le schéma de décomposition soit encore valable avec ces clés.
S'il n'existe pas de clé secondaire et que le schéma obtenu est FN3, alors il est aussi FNBC. 7. Exercice complémentaire RV Locations
Num_Client Date_RV Heure_RV Num_Emp Salle
CR76 13.05.95 10.30 SG5 101
CR56 13.05.95 12.00 SG5 101
CR74 13.05.95 12.00 SG37 102
CR56 01.07.95 10.30 SG5 102
Contraintes
Un client n'est reçu qu'une seule fois dans une journée par un employé.
Un employé occupe la même salle de RV toute la journée.
Dépendances fonctionnelles
Num_Client Date_RV -> Heure_RV Num_Emp
Num_Emp Date_RV -> Salle
Num_Emp Date_RV Heure_RV -> Num_Client
Date_RV Salle -> Num_Emp
Date_RV Salle Heure_RV -> Num_Client
Attention : il faut considérer les couvertures minimales !
Clés candidates :
Num_Client Date_RV
Num_Emp Date_RV Heure_RV
Date_RV Salle Heure_RV
R1
Num_Client Date_RV Heure_RV Num_Emp
CR76 13.05.95 10.30 SG5
CR56 13.05.95 12.00 SG5
CR74 13.05.95 12.00 SG37
CR56 01.07.95 10.30 SG5
R2
Num_Emp Date_RV Salle
SG5 13.05.95 101
SG37 13.05.95 102
SG5 01.07.95 102