Normalisation
Normalisation
Normalisation
• Objectifs
• Dépendance fonctionnelle
Redondances et erreurs
Normalisation : pourquoi ?
Pour éliminer les redondances
Exemple
COURS (NOMPROF, VILLE, DEPARTEMENT, NOMETUD,
AGE, NOMCOURS, NOTE)
COURS(NOMETUD,NOMCOURS,NOTE)
R1 ( NOMCOURS,NOMPROF,VILLE,DEPARTEMENT) 2 FN
R2(NOMETUD,AGE)
Troisième forme normale 3FN
Une relation est en troisième forme normale (3FN) si :
Elle est en 2 FN
Aucune DF entre deux attributs non clé
Exemple :
COURS (NOMETUD NOMCOURS NOTE)
R1 (NOMCOURS NOMPROF VILLE DEPARTEMENT)
R2 (NOMETUD AGE)
R1 (NOMCOURS NOMPROF)
• R3 (NOMPROF VILLE DEPARTEMENT)
R3 n'est pas en 3 FN car VILLE →DEPARTEMENT
R3 (NOMPROF VILLE)
R4 (VILLE DEPARTEMENT)
avec les DF :
VILLE, DEPARTEMENT → CODE
CODE → DEPARTEMENT
et la clé : VILLE, DEPARTEMENT
les redondances : pour toutes les villes ayant le
Même code postal, répétition du département.
Exemple :
PSL est en 3 FN
Cette relation pose quelques problèmes !!
•Adjonction nouvelle spécialité (ou langue) pour Ali
Quel(s) tuple(s)s insérer?
• Problème inverse pour la suppression.
• Croissance multiplicative
• Redondances
Solution:
Pas de redondance. Croissance additive.
Remarque Importante:
Soit R (X, Y, Z) un schéma de relation
Si X −> Y Alors X −>> Y
Autrement dit, une relation 3FN qui n'est pas 4FN peut
toujours être remplacée par des relations 4FN.
Dépendance de jointure
etc…
ACP = AC * AP * CP
Exemple: ACP = AC * AP * CP
Remarque Importante: Soit R (X, A1, A2, ..., An)
Processus de Normalisation:
Réduire par décompositions une relation R à d'autres
relations «plus simples», équivalentes à R et ayant de
meilleures propriétés.
1. Projeter 1FN:
«éliminer DFs non totales/clé» pour avoir 2FN
2. Projeter 2FN:
«éliminer DFs non directe/clé» pour avoir 3FN
2'. Projeter 3FN:
«éliminer DFs où le déterminant ne contient pas
une clé» pour avoir FNBC
3. Projeter 3FN:
«éliminer DMVs qui ne sont pas des DFs
(conséquences d'une clé)» pour avoir 4FN
4. Projeter 4FN: