La Normalisation
Réalisé par Mahassen KHEMIRI
But et Principe
Les SGBD-R sont plus efficaces lorsque la base utilisée est normalisée.
Normaliser une base consiste à appliquer des règles regroupées sous le nom
« Formes normales ».
la normalisation apporte :
des requêtes plus simples à écrire,
des données plus facilement accessibles ;
une meilleure intégrité des données ;
la diminution des erreurs lors de l’insertion ou de la suppression de nouvelles
données et une utilisation optimale des ressources
2
Dépendances fonctionnelles
Une forme normale est une méthode de classification de table qui repose sur
les dépendances fonctionnelles (DF)
Une dépendance fonctionnelle signifie que si l’on connaît la valeur d’un
attribut on peut toujours déterminer la valeur d’un autre attribut.
La notation utilisée est une flèche entre les deux attributs, par exemple
A B s’énonce « A détermine B ».
Si on connaît le numéro de salarié d’un employé dans l’entreprise on peut
trouver son nom.
3
Dépendances de plusieurs valeurs
La dépendance de plusieurs valeurs (DPV) signifie que si l’on connaît la valeur
d’un attribut on peut toujours déterminer les valeurs d’un ensemble d’autres
attributs.
La notation retenue dans la théorie relationnelle est une flèche à double
pointe entre les deux attributs, par exemple
A B s’énonce « A détermine plusieurs B »
Si on connaît le nom d’un professeur on peut déterminer la liste de ses
étudiants.
La compréhension des DF et les DPV joue un rôle essentiel dans celle des formes
normales.
4
Les Formes Normales
Normaliser une base consiste à appliquer des règles regroupées sous la dénomination de
« Formes normales ».
Ces règles sont aussi utilisées, dans l’autre sens, pour valider l’état de normalisation
d’une base.
Chaque forme Porte un numéro d’ordre
1FN
2FN
3FN
4FN
…
5
Première forme normale (1NF)
Définition
Il s’agit de la première règle qu’on pourrait dire fondatrice.
Elle fait partie de la définition formelle des bases de données relationnelles.
Cette règle consiste à :
chaque table possède une clé primaire
les champs de chaque table doivent être atomiques et qu’il ne peut exister de
champs répétitifs.
chaque champ doit avoir une signification précise constante dans le temps.
6
Première forme normale (1NF)
Exemple 1 faux
Nom Adresse age
Abidi Arfawi 14 rue Habib Bourguiba , 20
Beja ,9000
Souha Abidi 65 rue des roses, Tunis, 1001 40
Sami Alimi 77 rues des jardins, 60
Hammamet ,8050
7
Première forme normale (1NF)
Exemple 1: Anomalies
Cette table n’est pas conforme à la première forme normale
Pas de clé primaire
les champs ne sont pas tous atomiques.
Par exemple le champ « Nom » contient à la fois nom et prénom,
il est possible de découper ce champ sans faire perdre de sens à
l’information, ce qui en faciliterait même l’accès et le tri.
De la même façon, le champ « adresse » intègre le code postale, ce qui n’est
pas très pratique si on désire sortir, par exemple, la liste de toutes les
personnes du Beja.
En fait, pour faire que cette table réponde à la 1ère forme normale, il faudra
la restructurer pour qu’elle ressemble à celle-ci :
8
Première forme normale (1NF)
Exemple 1: Solution
Prénom Nom Adresse ville Code postal Date de naissance
Mohamed Arfawi 14 rue Habib Bourguiba Beja 9000 2002
Souha Abidi 65 rue de sousse Tunis 1001 1982
Sami Alimi 77 rues des jardins Hammamet 8050 1962
9
Première forme normale (1NF)
Exemple 2 : faux
Numéro Emprunteur Livre1 Livre2 Livre3
00014 Informatique pour tous
09871 Larousse
00356 Histoire de la tunisie Larousse Kalila et Demna
10
Première forme normale (1NF)
Exemple 2 : Anomalies
la 1ère forme normale suppose que les champs ne peuvent pas être répétitifs.
De fait, on comprend que chercher qui a emprunté «Kalila et Demna»
obligera à balayer chaque enregistrement puis à rechercher la présence de ce
titre dans chacune des trois colonnes.
Plus loin, si demain il faut gérer 4 livres au lieu de trois cela impliquera à la
fois une modification de la table
Afin de rendre la table conforme à la 1ère forme normale il nous faudra la
diviser au minimum en deux autres tables.
11
Première forme normale (1NF)
Exemple 1: Solution
Numéro_Emprunteur
00014
09871
00356
Livre Emprunté_Par
Informatique pour tous 00014
Larousse 09871
Histoire de la tunisie 00356
Kalila et Demna 00356
12
Seconde forme normale (2NF)
Définition
Une relation respecte la seconde forme normale si elle en première forme
normale
et tout attribut non clé primaire est dépendant de la clé primaire entière.
13
Seconde forme normale (2NF)
Exemple faux
NumSalarié Nom NumProjet Heures
20036 Beji 1 18,5
20036 Beji 2 6,7
36900 Hmissi 2 8,5
45002 Rzigui 3 23,5
45002 Rzigui 1 4,8
14
2FN « 1fn + tout attribut non clé primaire est
dépendant de la clé primaire entière »
Dans un premier temps nous devons déterminer où se
trouve la clé primaire. NumSalarié Nom NumProjet Heures
Selon les critères même d’une clé primaire, repérer de 20036 Beji 1 18,5
façon unique chaque ligne tout en ayant une signification :
Numéro du salarié + Numéro de projet
20036 Beji 2 6,7
Regardons les champs non-clé : Nom et Heures.
Les heures sont en totale dépendance fonctionnelle avec 36900 Hmissi 2 8,5
la totalité de la clé puisque cette propriété concerne à la
fois un individu et un projet et que seule cette 45002 Rzigui 3 23,5
combinaison permet d’isoler un compte d’heures unique.
45002 Rzigui 1 4,8
Le nom du salarié, d’un autre côté, ne dépend pas de la
totalité de la clé primaire.
En fait il ne dépend que d’un morceau de celle-ci, le
numéro de salarié.
15
Seconde forme normale (2NF)
Solution
NumSalarié NumProjet Heures
Chacune de ces tables répond maintenant aux
exigences de la première et de la seconde forme 20036 1 18,5
normale. 20036 2 6,7
le réel gain a été ici d’éviter la répétition d’une 36900 2 8,5
45002 3 23,5
information qui peut n’être stockée qu’une seule fois.
45002 1 4,8
Eviter les répétitions homogénéise la base et NumSalarié Nom
simplifie les recherches faites sur celle-ci. 20036 Beji
36900 Hmissi
16
45002 Rzigui
Troisième forme normale (3NF)
Une relation est dite dans la troisième forme normale si :
elle en deuxième forme normale
et qu’il n’existe aucune dépendance fonctionnelle entre deux attributs non
clé primaire
17
Troisième forme normale (3NF)
Exemple 1 : faux
NumSalarié Nom Date Naiss. Service NomService NumChef
5001 Beji 15/01/1970 5 Vente 4580
5002 Amri 12/04/1980 6 Informatique 4120
18
Troisième forme normale (3NF)
Exemple 1 : Anomalies
Cette table est dans la première forme normale (champs atomiques, non
répétitifs, ayant une signification unique constante dans le temps, présence
d’une clé primaire).
Elle répond aussi aux exigences de la seconde forme normale (tous les champs
non-clé sont en dépendance fonctionnelle avec la totalité de la clé primaire).
Toutefois, elle n’est pas dans la troisième forme normale.( 2fn + qu’il
n’existe aucune dépendance fonctionnelle entre deux attributs non clé
primaire )
NumSalarié Nom Date Naiss. Service NomService NumChef
5001 Beji 15/01/1970 5 Vente 4580
5002 Amri 12/04/1980 6 Informatique 4120
19
Troisième forme normale (3NF)
Exemple 1 : Anomalies
elle n’est pas dans la troisième forme normale car
Il est possible de déterminer le nom du service et le code son chef
uniquement à partir du code service.
Si nous supprimons tous les employés d’une service donné, lors de la
suppression du dernier enregistrement nous perdrons irrémédiablement dans
le même temps les informations concernant le service lui-même (son nom et
son chef). Cela est connu sous l’appellation d’anomalie de suppression.
NumSalarié Nom Date Naiss. Service NomService NumChef
5001 Beji 15/01/1970 5 Vente 4580
5002 Amri 12/04/1980 6 Informatique 4120
20
Troisième forme normale (3NF)
Exemple 1 : Solution
NumSalarié Nom Date Naiss. Service NomService NumChef
5001 Beji 15/01/1970 5 Vente 4580
5002 Amri 12/04/1980 6 Informatique 4120
Solution
Service Nom NumSalarié_Ch
NumSalarié Nom Datenaissance Service
ef
5001 Beji 01/15/1970 5 5 Vente 4580
5002 Amri 12/04/1980 6 6 Informatique 4120
21
Dénormalisation
La dénormalisation , c’est à dire la suppression d’une normalisation existante
est une opération parfois nécessaire,
Il est donc toujours préférable, au niveau conceptuel, de commencer par
concevoir une base de données normalisée.
Ensuite, on peut dénormaliser en justifiant et en assumant chaque opération
ponctuelle de ce type.
22
Conclusion
Les gens qui n’utilisent pas de SGBD-R ont tous l’habitude de concevoir des
tables de grande taille qui contiennent de nombreuses colonnes.
Cela n’est plus raisonnable du tout dès qu’on adopte un SGBD-R.
Toutefois la normalisation entraîne la multiplication des tables ne contenant
que peu de colonnes.
Accéder aux données utilisera de nombreuses jointures ce qui peut ralentir
les applications.
De même, la saisie peut s’avérer plus complexe à mettre en oeuvre avec un
schéma normalisé.
23