Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Chapitre4 BDD

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 25

Dépendances Fonctionnelles et

Normalisation
Introduction
 Une mauvaise conception des entités et associations
représentant le monde réel modélisé conduit à des relations
problématiques
 Une redondance des données conduit à des risques
d'incohérences lors des mise à jour
 Il s'agit d'éliminer toute anomalie afin de faciliter la
manipulation des relations
⇒ Normalisation des relations
= Eclatement d'une relation donnée en plusieurs relations
normalisées.
Normalisation
Définition d’un schéma relationnel afin d’éviter:
 La redondance des données

 Les incohérences lors des mises à jour

 Les anomalies lors des suppressions et/ou des insertions

 La normalisation repose sur :

 L’analyse des dépendances entre attributs

 Décomposition des relations sujettes à redondance


Exemple:
La relation COMMANDE (NOPIECE, QUANTITE, NOMFOUR, ADRESSE).
NOPIECE QUANTITE NOMFOUR ADRESSE

101 10 KADER 5, RUE TAZOULT, BATNA


102 20 ABED AIN MLILA
101 30 BENMOHAMED CONSTANTINE
103 10 KADER 5, RUE TAZOULT, BATNA

Anomalies de modification : si l’on souhaite mettre à jour l'adresse d'un


fournisseur, il faut le faire pour tous les tuples concernés.
Anomalies d'insertion : pour introduire le nom et l'adresse d'un fournisseur, il
faut également fournir une valeur pour chacun des attributs NOPIECE et
QUANTITE, ou introduire des valeurs nulles, ce qui pose d’autres problèmes.
Anomalies de suppression : par exemple, la suppression de la commande de la
pièce n° 102 fait perdre toute information concernant le fournisseur ABED
Dépendance Fonctionnelle
Un attribut ou groupe d’attributs Y d’une relation dépend fonctionnellement
de X si à toute valeur de X correspond une valeur unique de Y (on
dit queY est déterminé par X)
NOTATION : X →Y (X détermineY ouY dépend fonctionnellement de X)
Dans une relation, tout attribut est en DF avec la clé primaire
Exemple1:
PRODUIT (Ref_prod, Libelle_Prod, PU)
Ref_prod → Libellé_prod
Ref_prod → PU
Exemple2:
Evaluation (Matricule, nom, prénom, niveau, module, note_module)
Contient les DFs suivantes :
Matricule → nom, prénom, niveau
Matricule, module → note_module
Dépendance Fonctionnelle Élémentaire:
Une Dépendance fonctionnelle X → Y est élémentaire si pour
tout C ⊂X la dépendance fonctionnelle C → Y n’est pas vraie.
En d’autres termes, Y ne dépend pas fonctionnellement d’une
partie de X (X est la plus petite quantité d’information donnant
Y).
Exemple:
Ref_Prod, Libelle_Prod→PU n’est pas élémentaire car
Ref_prod →PU
Dépendance Fonctionnelle Directe
Soient X, Y deux attributs. X→Y est une dépendance
fonctionnelle directe s’il n’existe pas un attribut Z qui
engendrerait une DF transitive X→Z et Z→Y.
Exemple1:
Num_client → Nom_Client ; est directe
Num_commande → Num_Client ; est directe
Num_commande → Nom_client; n’est pas Directe car
Num_commande → Num_Client → Nom_client
Les dépendances fonctionnelles:
Exemple:
Soit la relation R( Etudiant, Module, Prof, Institut) modélisant
la réalité suivante:
 Un étudiant suit un seul module donné dans un seul institut.
 Un étudiant suit un module donné avec un seul professeur.
 Un professeur n’enseigne qu’un seul module.
Exprimer cette réalité à l’aide de dépendances fonctionnelles?
Propriétés Des Dépendances
Fonctionnelles « Axiomes d’Armstrong »:
 Réflexivité : U ⊆ X ⇒ X → U

 Augmentation : X →Y ⇒ XZ →YZ

 Transitivité : X →Y, Y → Z ⇒ X → Z

 Décomposition : X →Y, Z ⊆Y ⇒ X → Z

 Union : X →Y, X’ →Y’ ⇒ XX’ →YY’


Exemple :
Démontrer que AD → BE en ayant les dépendances
fonctionnelles suivantes :
A→B
B, C → D
A,C → E
D→E
Démonstration:
A → B par augmentation avec D => AD → BD(1)
D → E par augmentation avec B => BD → BE (2)
par transitivité = > AD → BE
Les Formes Normales
Les formes normales ont été définies pour permettre la
décomposition des relations sans perte d’informations en
utilisant la notion de dépendance fonctionnelle. Dans ce
cours nous présenterons les trois premières formes
normales.
1. Première Forme Normale (1FN)
Une relation R est en première forme normale si:
 Elle possède une clé
 Tous ses attributs sont atomiques: c'est à dire n'ayant à un
instant donné qu'une seule valeur ou ne regroupant pas un
ensemble de valeurs.
Exemple1:
Patient (Num_patient, Nom_patient, date_Naissance, sexe) est 1FN
Patient((Num_patient, Nom_patient, date de Naissance, sexe,
dates_consultations) n’est pas 1FN
Dates_consultations est un ensemble de valeurs
Exemple2:
Pilote(ID, Nom, Avions)
456, Ali, [A330, A380]
Pilote n’est pas en 1FN, l'attribut avions n'est pas
atomique.
Comment normaliser en 1FN
 S’assurer que la relation R possède une clé primaire sinon la définir
 Si R possède un attribut décomposable éclater cet attribut en un
ensemble d’attributs atomiques
Exemple: Adresse → Num, RUE,VILLE
 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(Num_patient, Nom_patient, Date_Naissance, sexe,
dates_consultations) n’est pas en 1FN
Décomposition :
Patient(Num_patient,Nom_ patient, date_Naissance, sexe)
Consultation (Num_Patient, dates_consultations)
Comment normaliser en 1FN
Exemple: Livre (code, titre, année, auteurs) n’est pas en 1FN
code titre année auteurs
100 Principe des SE 2000 CROCUS
KRACOVIAC
Décomposition:
Livre (code ,titre, année)
Auteur (code, auteur)
Livre code titre année Auteur code auteurs
100 Principe des SE 2000 100 CROCUS
100 KRACOVIAC
2. Deuxième Forme Normale (2FN)
Une relation R est en deuxième forme normale (2FN) si et
seulement si
 Elle est en 1FN,
 Et que tout attribut n’appartenant pas à une clé dépend de la clé
par une dépendance fonctionnelle élémentaire (ne dépend pas
d’une partie d’une clé)
A,B
DF partielle
C D
Exemple: enseignement(num-ens,code-mod,nom-ens, Vol-horaire)
Cette relation n’est pas en 2FN: Num-ens → nom-ens DF partielle
Normaliser en 2FN
 Soit A → C la DF qui pose problème (A est une partie de la clé )
 Isoler la DF partielle dans une nouvelle relation R’ (A,C) ;
 Eliminer la cible (C) dans la relation initiale
Exemple1:
Enseignement (num-ens,code-mod, Vol-horaire)
Enseignant (num-ens, nom-ens)

Exemple2:
Article_cmde (num-cmde, num-article, designation, qté) est-elle 2FN?

Une relation en 1 FN dont la clé est simple (mono-attribut)


est forcément en 2FN
3. Troisième Forme Normale (3FN)
Une relation R est en troisième forme normale (3FN) si et
seulement si
 Elle est en deuxième forme normale,
 Et que tout attribut n’appartenant pas à une clé ne dépendra pas
d’un attribut non clé (dépend de la clé par une dépendance
élémentaire directe )
A
DF transitive
B C D

Exemple:
Commande (num-cmde, date, num-cl, nom-cl) n’est pas en 3FN
num-cmde → nom-cl DF transitive
Normaliser en 3FN
 Soit x → y la DF transitive (x et y sont des attributs hors clé );
 Isoler la DF x→ y dans une nouvelle relation R’ (X,Y) ;
 Eliminer la cible de la DF (y) dans la relation initiale
Exemple:
Commande (num-cmde, date, num-cl)
Client(num-cl, nom-cl)
4. Forme normale de Boyce Codd: FNBC
Une relation est en forme normale de Boyce-Codd si et seulement si:
• Elle est en 3ème forme normale
• Tous les attributs non-clé ne sont pas source de dépendance vers une
partie de la clé (aucun attribut membre de la clé ne dépend
fonctionnellement d’un attribut non membre de la clé).
Normaliser en FNBC
• Isoler la DF qui pose problème dans une nouvelle relation
• Eliminer la cible de DF problématique et la remplacer par sa
source dans la relation initiale
Résumé normalisation
 Relation avec une clé, qui permet de distinguer chaque
occurrence
 Des attributs atomiques (1FN)
 En dépendance de TOUTE la clé (2FN),
 Et RIEN QUE de la clé (3FN)

Il existe d’autres formes normales :


 La 4 et 5ème forme normale.
Exercice:
Chaque année universitaire, un étudiant est placé dans un groupe qui
pour une matière donnée, a un professeur unique. Les professeurs
n'interviennent que dans une seule matière tout au long de leur
carrière.
Soit la relation Cours (Année, Etudiant, Groupe, Professeur, Matière)
et ses DFs:
Année, Etudiant→ Groupe qui indique que chaque année, un étudiant
appartient à un seul groupe.
Groupe, Matière → Professeur qui indique qu'un seul professeur est
affecté à un groupe pour une matière donnée.
Professeur →Matière qui indique qu'un professeur n'enseigne qu'une
seule matière
 Donnez toutes les clés candidates de la relation Cours.
 Quelle est la forme normale de R.
 Les clés sont:
Les dépendances fonctionnelles donnent : C1 = {Etudiant,
Année, Professeur} et C2 = {Etudiant, Année, Matière}
 Non 2NF : La clef {Etudiant, Année, Professeur} contient
Professeur → Matière
 Décomposition:
Etudiant, Année → Groupe donne Inscrits (Etudiant, Année,
Groupe) 3NF
Groupe, Matière → Professeur donne Répartition (Groupe,
Matière, Professeur) 3NF

Vous aimerez peut-être aussi