Normalisation – Exercice « Agence immobilière »

Transcription

Normalisation – Exercice « Agence immobilière »
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
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
CR56
Claire SERRON
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
DateD_Loc
DateF_Loc
Adr_App
Montant
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)
R2 (Appartements)
Num_Client
Nom_Client
Num_App
Adr_App
Montant
Num_Prop
Nom_Prop
CR76
Jean DUPONT
PG4
12, rue de la Gare
3500
CX40
Jeanne MOULIN
CR56
Claire SERRON
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)
R4 (Propriétaires)
Num_App
Adr_App
Montant
Num_Prop
Num_Prop
Nom_Prop
PG4
12, rue de la Gare
3500
CX40
CX40
Jeanne MOULIN
PG16
7, av. de la République
4500
CX93
CX93
Alain MULLER
PG36
3, Grande Rue
3800
CX93
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
R2
Num_Client
Date_RV
Heure_RV
Num_Emp
Num_Emp
Date_RV
Salle
CR76
13.05.95
10.30
SG5
SG5
13.05.95
101
CR56
13.05.95
12.00
SG5
SG37
13.05.95
102
CR74
13.05.95
12.00
SG37
SG5
01.07.95
102
CR56
01.07.95
10.30
SG5