Vous êtes sur la page 1sur 20

Modèle relationnel (Partie II)

Dr. Meriem Amina Zingla

Université Mustapha STAMBOULI de Mascara


Faculté des Sciences Exactes
Département Informatique
2019/2020

1/20 Meriem Amina Zingla


Les dépendances fonctionnelles

DF redondante
Soit F un ensemble de DFs
une DF f : X −→ Y est redondante dans F SSI :
Y ∈ X + sous F − {f }

Exemple :
F = {A −→ B, B −→ C, A −→ BC}
A −→ BC n’est pas élémentaire : on la décompose en : A −→ B,
déjà présente, et A −→ C.
A −→ C est redondante car C ⊆ A+ sous F − (A −→ C)
A+ {A −→ B, B −→ C} = {A, B, C}

2/20 Meriem Amina Zingla


Les dépendances fonctionnelles

Couverture minimale
Soit un ensemble de dépendances fonctionnelles élémentaires F
pour un ensemble d’attributs A.
CM(F) est une couverture minimale de F si Toute DF f de F n’est pas
redondante (F − f n’est pas équivalant à F) Toute DF élémentaire de
A est dans la fermeture transitive F +

C’est le sous ensemble minimale de DFs permettant de générer


toutes les autres DFs.
Tout ensemble de DFs élémentaires a une couverture minimale.
Cette couverture peut ne pas être unique.

3/20 Meriem Amina Zingla


Les dépendances fonctionnelles

Exemple de couverture minimale :


F = {NV −→ Type; Type −→ Marque; NV −→ Couleur; NV −→
Marque; NV −→ Puiss; Type, Marque −→ Rabais; NV −→ Rabais}
CM(F) = {NV −→ Type; Type −→ Marque; NV −→ Couleur; NV −→
Marque; NV −→ Puiss; Type −→ Rabais; NV −→ Rabais}
.
La couverture minimale est un élément essentiel pour
décomposer les relations sans pertes d’informations.

4/20 Meriem Amina Zingla


Les dépendances fonctionnelles

Algorithme de couverture minimale


Soit F un ensemble de DFs élémentaires sur un ensemble d’attribut
A

5/20 Meriem Amina Zingla


Les dépendances fonctionnelles

Les DFs et la notion de clé


Soit R(A1 , A2 , . . . , An ) une relation, X un ensemble d’attributs
inclus dans A = {A1 , A2 , . . . , An } est une clé de R si
X −→ A1 A2 . . . An
Il n’existe pas Y inclus dans X, tel que Y −→ A1 A2 . . . An

X est une clé alors :


(X)+ = {A1 , A2 , . . . , An }
@X 0 ⊆ X/(X 0 )+ = {A1 , A2 , . . . , An }

Algorithme de calcule de clé de R


Début
X := A ; l’ensemble de tout les attributs
Tant que ∃ un attribut Ai ∈ X tel que X − Ai −→ A faire
X := X − Ai
Fin tant que
Fin

6/20 Meriem Amina Zingla


Décomposition d’une relation
Objectif
étant donné une relation non satisfaisante, en ce sens qu’elle
implique des répétitions au niveau de sa population et qu’elle pose
des problèmes lors des insertions/modifications/suppressions de
tuples , trouver un ensemble de relations satisfaisantes et qui décrive
les mêmes informations.

Décomposition
Consiste à remplacer une relation R(A1 , . . . , An ) par une collection de
relations R1, . . . , Rm obtenues par des projections de R tel que la
relation résultat des jointures R1R2. . . Rm ait le même schéma que R.

Décomposition sans perte d’information


Une décomposition d’une relation R(X,Y,Z) en deux relations
R1 = πX,Y (R) et R2 = πX,Z (R) (obtenues par projection de la relation R
respectivement sur les attributs X, Y et X, Z ) est dite "sans perte
d’information" si R = R1 ./ R2.
7/20 Meriem Amina Zingla
Normalisation d’une relation
L’intérêt de la normalisation
Soit la base de l’extension suivante de la relation Enseignant

Numéro Nom Catégorie Classe Salaire


1 Khadidja maitre de conférence B 60000
2 Smail maitre de conférence B 60000
3 Shahad Professeur B 100000
4 Zakaria maitre de conférence A 80000
5 Mohamed maitre assistant A 50000

Exemples de problèmes rencontrés :


S’il y a une modification du salaire de Maître de conférence
CLASSE A, on doit reporter cette modification sur toutes les
lignes correspondants à des Maître de conférence A
Pour pouvoir insérer le salaire d’un Maître assistant B par
exemple, il faut qu’il y est au moins un enseignant de ce grade.
Si on supprime l’unique enseignant professeur B de la base on
perd l’information sur le salaire de ce grade.
8/20 Meriem Amina Zingla
Normalisation d’une relation

Normalisation
Le processus de transformation d’une relation posant des problèmes
lors des mises à jour en relations n’ayant pas ces problèmes, est
appelé processus de normalisation.

Objectif
Définir un bon schéma relationnel qui décrit bien l’entreprise.

L’intérêt de la normalisation
Éliminer la redondance
Limiter les incohérence de données
Améliorer les performance des traitement

9/20 Meriem Amina Zingla


Normalisation d’une relation

Les formes normales


On mesure la qualité d’une relation (ou sa capacité à représenter le
monde réel sans générer les problèmes aperçus ci-dessus) par son
degré de normalisation. Une relation peut être (de la moins bonne à
la meilleure) en 1ère forme normale, en 2ème forme normale, en
3ème forme normale, en forme normale de Boyce Codd, en 4ème
forme normale ... (chaque forme normale implique les précédentes).

10/20 Meriem Amina Zingla


Normalisation d’une relation

1 ère forme normale


Une relation est en première forme normale si chaque valeur de
chaque attribut de chaque tuple est une valeur simple (tous les
attributs sont simples et monovalués). Ce qui exclut les attributs dont
les valeurs seraient de types structure, liste, ensemble et tableau.

Exemple :
Patient (Npatient,Nom de famille, date de Naissance, sexe) est
en 1FN
Patient(Npatient,Nom de famille, date de Naissance, sexe, dates
de consultations) n’est pas en 1FN car dates de consultations
est une ensemble de valeurs

11/20 Meriem Amina Zingla


Normalisation d’une relation

Normaliser en 1FN
Si R possède un attribut décomposable ⇒ Éclater cet attribut en
un ensemble d’attributs atomiques
Exemple :
Personne (id, nom , Adresse) Adresse est un attribut
décomposable
Solution : Adresse −→ N, Rue, Ville, Code postal
Si R possède un attribut multivalué ⇒ Créer une relation nouvelle
comportant la clé primaire de la relation initiale et l’attribut
multivalué, puis éliminer l’attribut multivalué de la relation initiale.
Exemple :
Patient(Npatient,Nom de famille, date de Naissance, sexe, dates
de consultations) dates de consultations est un attribut multivalué
Solution :
Patient(Npatient,Nom de famille, date de Naissance, sexe)
Consultation (NPatient, dates de consultations)

12/20 Meriem Amina Zingla


Normalisation d’une relation

2 ème forme normale


Une relation est en deuxième forme normale si elle est en première
forme normale et si chaque attribut qui ne fait partie d’aucun
identifiant dépend de tout identifiant entier (et non pas d’un morceau
d’identifiant).

Exemple :
Fournisseur (NF, NomProduit, NomF, Tel, Prix) elle est en 1ère
FN, mais elle n’est pas en 2ème forme normale car
NF −→ NomF, Tel (NomF, Tel dépendent uniquement d’une partie
(NF) de l’identifiant NF, NomProduit)
NF,NomProduit −→ Prix

13/20 Meriem Amina Zingla


Normalisation d’une relation

Exemple :
Fournisseur (NF, NomProduit, NomF, Tel, Prix) elle est en 1ère
FN, mais elle n’est pas en 2ème forme normale
Une telle relation pose des problèmes :
Redondances : s’il existe 100 produits pour un fournisseur on va
répéter 100 fois le nom, le téléphone du fournisseur.
Problème de mise à jour pour les insertions : quand on veut
rajouter un produit, il faut rentrer à nouveau le nom et le
téléphone du fournisseur.
Problème pour les suppressions : si on supprime
(momentanément) la liste des produits d’un fournisseur, alors on
supprime aussi le fournisseur.
Problème de mise à jour des tuples : si un fournisseur change de
téléphone, il faut faire cette mise à jour sur tous les 100 tuples

14/20 Meriem Amina Zingla


Normalisation d’une relation

Exemple :
Fournisseur (NF, NomProduit, NomF, Tel, Prix) elle est en 1ère
FN, mais elle n’est pas en 2ème forme normale
Solution :
Fournisseur (NF, NomF, Tel)
Catalogue (NF, NomProduit, Prix)
qui sont en 2ème forme normale (et même plus).
Cette décomposition est :
sans perte d’information (NF est l’identifiant de la relation
Fournisseur)
sans perte de dépendance fonctionnelle (les DF sont soit dans
l’une, soit dans l’autre des deux relations décomposées).

15/20 Meriem Amina Zingla


Normalisation d’une relation

Normaliser en 2FN
Soit A est une partie de la clé et A −→ C une DF non élémentaire
Isoler la DF non élémentaire dans une nouvelle relation R0 (A, C) ;
Éliminer la cible (C) dans la relation initiale

Exemple
Patient (Npatient, Date consultation, Nom) Avec : Nom dépend
d’une partie de la clé Npatient −→ Nom
Solution :
Patient (Npatient, Nom)
Patient (Npatient, Date consultation)

16/20 Meriem Amina Zingla


Normalisation d’une relation
3 ème Forme Normale
une relation est en troisième forme normale si elle est en deuxième
forme normale et tous les attributs n’appartenant pas à aucune clé ne
dépendant pas d’un autre attribut non clé. (c-à-d dépendent
directement des clés et non transitivement)

Exemple
Fournisseur (NF, Pays, Ville) elle est en 2FN mais elle n’est pas
en 3FN
on suppose qu’il n’y a pas de homonymie dans la base de
données, on a alors les DFs suivantes :
NF −→ Ville et Ville −→ Pays
NF −→ Pays est une DF déduite.
Solution : On décompose donc en :
Fourn (NF, Ville)
Géo (Ville, Pays)
Cette décomposition est sans perte d’information (Ville est
identifiant pour Géo), et sans perte de DF (les DFs non déduites
sont soit dans Fourn, soit dans Géo).
17/20 Meriem Amina Zingla
Normalisation d’une relation

Normaliser en 3FN
Soit A −→ C la DF qui pose problème (A est c sont des attributs
hors clé )
isoler la DF A −→ C dans une nouvelle relation R0 (A, C) ;
Eliminer la cible de la DF (C) dans la relation initiale.

18/20 Meriem Amina Zingla


Normalisation d’une relation
Forme normale de Boyce-Codd (FNBC)
une relation est en FNBC si elle est en 3NF et si les seules DFs
existantes sont celles pour lesquelles une clé candidate détermine un
attribut.
Exemple :
Soit une relation qui est en 3FN (on suppose qu’il n’y a pas
d’homonyme chez les fournisseurs) :
Catalogue (NF, NomF, NomProduit, Prix)
Identifiants : (NF + NomProduit) , (NomF + NomProduit)
Dans la relation Catalogue, il y a redondance entre NF et NomF,
ce qui génère des problèmes lors des mises à jour. Par exemple
si un fournisseur change de nom, il faut mettre à jour son nom
dans tous les tuples correspondants à ses produits.
On décompose donc Catalogue en deux relations de forme
normale de Boyce-Codd, par exemple en :
Fournisseur (NF , NomF) d’identifiants : NF et NomF
Catalogue (NF , NomProduit , Prix) d’identifiant : (NF et
NomProduit)
19/20 Meriem Amina Zingla
Normalisation d’une relation

Formaliser en FNBC
Isoler la DF qui pose problème dans une nouvelle relation
Éliminer la cible de DF problématique et la remplacer par sa
source dans la relation initiale

20/20 Meriem Amina Zingla

Vous aimerez peut-être aussi