Vous êtes sur la page 1sur 10

Cours de MERISE

Chapitre 4 : Retour sur la notion de dépendance fonctionnelle et la Normalisation d’une


relation

Un bon schéma entités-associations doit répondre à un certain nombre de règles de


normalisation, que le concepteur doit connaître par cœur. Mais avant, abordons la notion de
dépendance fonctionnelle.

Dépendances fonctionnelles
Définitions :
1- Dépendance fonctionnelle
Un attribut Y dépend fonctionnellement d’un attribut X si et seulement si une valeur de X induit
une unique valeur de Y. On note une dépendance fonctionnelle par une flèche simple : X Y.
En d’autres termes ; On dit qu'il existe une dépendance fonctionnelle entre un attribut A1 et un
attribut A2, si connaissant une valeur de A1 on ne peut lui associer qu'une seule valeur de A2.
On dit aussi qu’A1 détermine A2. A1 est la source de la dépendance fonctionnelle et A2 le but.
Exemple : Si X est le numéro de client et Y le nom de client, alors on a bien X  Y. Par
contre, on n’a pas YX, car plusieurs clients de numéros différents peuvent porter le même
nom.
NB : Dans une relation, tout attribut est en dépendance fonctionnel avec la clé primaire.

2- Notion de clé possible ou clé candidate :


Soit R(U) une relation et X un sous-ensemble de U (U est l’ensemble des attributs de la relation
R). X est une clé possible ou candidate si et seulement si on a XY (Y est le complémentaire
de X dans U)
NB : La clé primaire d’une relation doit être choisie dans l’ensemble des clefs possibles de la
relation. S’il n’y en a aucune, tous les attributs de la relation constituent sa clef. On parle alors
de relation « toute clef »
Propriétés
 Réflexivité : Si Y sous-ensemble de X alors XY (et donc XX)
 Augmentation : Si XY et W sous-ensemble de Z alors X, ZY, W
 Transitivité : Si XY et YZ alors XZ
 Pseudo-transitivité : Si XY et Y, ZW alors X, ZW
 Union : Si XY et XZ alors XY, Z
 Décomposition : Si XY, Z alors XY et XZ

1
Enseignant : Ing. AGOSSOU Carlos, Docteur en Informatique et Télécommunications
Cours de MERISE

3- Dépendance Fonctionnelle Totale (DFT) ou dépendance fonctionnelle élémentaire


Soit R(U) une relation, (X, Y) des sous-ensembles de U et XY.
On a une DFT entre X et Y (XY), si et seulement si pour tout X’ sous-ensemble de X, X’Y n’est
pas vérifiée.

4- Clef minimale
Soit R(U) une relation, X des sous-ensembles de U et X est une clef de R.
On dit que X est une clef minimale de R si et seulement si quel que soit X’ sous-ensemble de X, X’
n’est pas une clef de R.

Normalisation des relations :


Le but essentiel de la normalisation est d'éviter les anomalies transactionnelles pouvant
découler d'une mauvaise modélisation des données et ainsi éviter un certain nombre de
problèmes potentiels tels que les anomalies de lecture, les anomalies d'écriture, la redondance
des données et la contre-performance.
Les formes normales sont en quelque sorte des niveaux de qualité d'un modèle relationnel qui
définissent les règles que celui-ci doit respecter. Elles permettent de vérifier la robustesse de la
conception du modèle en évitant la redondance des données et les problèmes de mise à jour et
de cohérence qui en découlent.
Il y a 6 niveaux de formes normales, et 2 niveaux complémentaires. Nous allons nous concentrer
sur les 3 premiers niveaux qui, s'ils sont respectés, apportent déjà une bonne cohérence
d'ensemble.
La normalisation des modèles de bases de données relationnelles, popularisée par la méthode
Merise, est un processus qui intervient généralement au cours de la phase de conception du
modèle entités-associations, mais qui peut intervenir plus tard afin de vérifier la robustesse du
modèle relationnel et le corriger si nécessaire. Il s'agit d'un processus réversible, et sans perte
d'information.

Première forme normale :


On dit qu'une relation est en 1FN si tous les attributs qui la composent sont atomiques, c'est-à-
dire non décomposables.
En d’autres termes ; à un instant donné dans une entité, pour une occurrence, un attribut ne peut
prendre qu’une valeur et non pas, un ensemble ou une liste de valeurs.
Exemple : la relation Vol (No_Vol, Av_Nom, capa) avec capa (capa1, capa2) n'est pas en 1FN.
Pour être en 1FN, on doit avoir la relation suivante: Vol (No_Vol, Av_Nom, capa1, capa2).
2
Enseignant : Ing. AGOSSOU Carlos, Docteur en Informatique et Télécommunications
Cours de MERISE

Voici un exemple de table personne ne respectant pas la 1FN :

Dans cette table :

• si une personne a plusieurs adresses email, alors elles sont notées dans l'attribut email,
séparées par des virgules.
• l'attribut nom contient le nom mais aussi le prénom et la civilité de la personne.

Nous pourrions passer en 1FN en modifiant la table ainsi :

Cependant, que fait-on si une personne a 3, 10... 50 adresses email ?

On ne va pas créer 50 colonnes email au cas où ! Et si un jour une personne en a 51 on va être


obligé de modifier le schéma de la base de données.

Nous allons donc transformer les attributs multivalués en une table séparée, liée à la table
d'origine par une relation de type un à plusieurs

3
Enseignant : Ing. AGOSSOU Carlos, Docteur en Informatique et Télécommunications
Cours de MERISE

Deuxième forme normale :


L’identifiant peut être composé de plusieurs attributs mais les autres attributs de l’entité doivent
dépendre de l’identifiant en entier (et non pas une partie de cet identifiant).
En d’autres termes, on dit qu'une relation est en 2FN si:

• Elle est en 1FN

• Tout attribut non clé primaire est dépendant de la clé primaire entière.

Prenez la table resultat donnant une note artistique à des skaters dans leur réalisation de figures :

Vous ajoutez une information donnant la difficulté de la figure :

La difficulté d'une figure ne dépend que de la figure et non du skater. L'attribut difficulte ne
dépend que d'une partie de la clé primaire (figure) et non de la clé primaire complète (skater,
figure) : vous ne respectez donc pas la 2FN.

La solution consiste donc à isoler les attributs concernés dans des tables dédiées. Je vais créer
ici une table figure et déplacer la colonne difficulte dans cette nouvelle table :

4
Enseignant : Ing. AGOSSOU Carlos, Docteur en Informatique et Télécommunications
Cours de MERISE

Dans la table resultat, la colonne figure devient clé étrangère :

Ne pas respecter la 2FN entraîne des redondances. Cela gaspille de l'espace de stockage, et pose
aussi le problème de la mise à jour des données.

Troisième forme normale (3FN)

On dit qu'une relation est en 3FN si:

• elle est en 2FN


• tout attribut non clé ne dépend pas d'un attribut non clé.

Exemple: Voiture (Nv, marque, type, puissance, couleur) n'est pas en 3FN.

DF: type --> marque, puissance

La décomposition en isolant la DF non conforme en 2FN donne les deux relations suivantes:

• Voiture (Nv, type, couleur)


• Modèle (type, marque, puissance)

5
Enseignant : Ing. AGOSSOU Carlos, Docteur en Informatique et Télécommunications
Cours de MERISE

Regardez la table personne ci-dessous :

Cette table ne respecte pas la 3FN car l'attribut sexe peut être déduit de l'attribut non clé primaire
civilite.

Afin de résoudre ce problème, comme pour la 2FN, il convient de créer une nouvelle table
civilite et d'y déplacer l'attribut sexe :

Et voici le nouveau contenu des tables personne et civilite :

6
Enseignant : Ing. AGOSSOU Carlos, Docteur en Informatique et Télécommunications
Cours de MERISE

Dans cet exemple, j’ai utilisé le raccourci “la civilité donne le sexe” pour simplifier.

Cependant, lorsque vous créez une base de données destinée à contenir des personnes, gardez
en tête que certaines personnes se considèrent comme n'étant ni homme, ni femme, ou encore
d’un autre genre que le sexe qui leur a été attribué à la naissance (donc présent sur leur état
civil). Suivant les cas, vous devrez alors conserver les deux colonnes "civilite" et "sexe" dans
la table personne, utiliser un autre terme que "sexe", etc.

Un autre exemple de non-respect de la 3FN est illustré par la table ligne_facture ci-dessous :

Nous avons la colonne total qui peut être calculée avec une opération mathématique simple à
partir des colonnes quantite et prix_unitaire (total = quantite x prix_unitaire). Sa valeur ne
dépend pas de la clé primaire.

La solution consiste à simplement supprimer la colonne total.

Forme normale de Boyce et Codd (BCNF)

Une relation est en BCNF si et seulement si :

 Elle est en 3FN

7
Enseignant : Ing. AGOSSOU Carlos, Docteur en Informatique et Télécommunications
Cours de MERISE

 Il n’existe pas de dépendance fonctionnelle dont un attribut non-clé est source et un


attribut clé est but.

Application 1 :

Soit R1 (A, B, C, D, E, F) une relation avec l'ensemble de dépendances suivant :

1. Quelles est la clé minimale de R1 ?


2. Quelle est la forme normale de R1 ?
3. On décompose la relation R1 en R11 et R12 : R11 (A, B, D, E, F) et R12 (B, C).
a- Quelle est la clé de R11 et de R12 ?
b-Quelles sont les formes normales des relations R11 et R12 ?

Application 2 :

On a les données suivantes sur des élèves avec le DFs:


Matricule, Nom, Age, Club, Salle
• Matricule → Nom, AGE
• Matricule → Club
• Club → Salle
1- Que signifie chaque DFs?
2- Mettre ces informations dans un ensemble de schémas de relations en 3FN

Application 3 :

Soit la relation suivante (auto-explicative), qui concerne les employés d’une société implantée
sur plusieurs bâtiments :
EMPLOYES (NumE, Nom, Salaire, Département, Bâtiment)
Sachant qu’un employé travaille dans un département donné, et qu’aucun département ne
possède des locaux dans plusieurs bâtiments.
1- Déterminer les DFs
2- En quelle forme normale est la relation
3- Mettre en 3FN le cas échéant.

8
Enseignant : Ing. AGOSSOU Carlos, Docteur en Informatique et Télécommunications
Cours de MERISE

Application 4 :

Une base de données pour une petite clinique privée ales données suivantes:
• NIP : désigne n° d'inscription pharmacie associé à un patient. Chaque patient à un numéro
inscription à la pharmacie de la clinique pour ses médicaments
• Patient : le nom de famille d’un patient admis à la clinique (supposés tous distincts)
• Docteur : le nom de docteur travaillant à la clinique
• Médicament : le nom de marque d’un médicament
• Qte : la quantité d’un médicament prescrite à un patient
et les 4 DFs :
1. NIP → Patient1
2. Patient → Docteur
3. NIP, Médicament → Docteur
4. Patient, Médicament → Qté
a. Montrer que la DF (3) est redondante (déductible des autres DFs )
b. En déduire un schéma de base de données en 3FN pour cette clinique.

Application 5 :

La relation suivante décrit des commandes faites par des clients, avec les produits et quantités
commandées par client.
Commandes (NumCom, DateCom, NumCli, AdrCli, NumProd, Prix, Qte)
a. Quelle est la clé de cette relation?
b. En quelle forme normale elle est?
c. La mettre en 3FN le cas échéant.

Application 6 :

La relation :
Projection (NoFilm, TitreFilm, DuréeFilm, NoSalle, CapacitéSalle,TypePlace, PrixPlace,
DateProjection, HeureDeb)
exprime que le film NoFilm intitulé TitreFilm dure DuréeFilm heures et est projeté dans la salle
NoSalle ayant une capacité CapacitéSalle places. Le film est projeté à la date DateProjection à
HeureDeb heures. Deux films peuvent avoir le même titre. Le prix de la place est fonction de
son type.

9
Enseignant : Ing. AGOSSOU Carlos, Docteur en Informatique et Télécommunications
Cours de MERISE

1- Dresser la liste des dépendances fonctionnelles


2- En déduire un schéma de relations en 3FN.

10
Enseignant : Ing. AGOSSOU Carlos, Docteur en Informatique et Télécommunications

Vous aimerez peut-être aussi