DF & Normalisation
Pr SAAD Elmadani
Les dépendances fonctionnelles
On dit qu’un attribut (champs) B est en dépendance fonctionnelle
(DF) par rapport à un champs A si, à chaque valeur de A est
toujours associée la même valeur(une seule valeur) de B (une
valeur de B peut correspondre à plusieurs valeurs de A).
Schématisation
A détermine B B dépend de A
A B
A : source de la DF B : cible de la DF
Propriétés des DFs
Transitivité: si XY et YZ alors XZ (DF déduite)
Augmentation: si XY alors (A, X)Y quelque soit A
(DF non élémentaire)
23/03/2025
Les dépendances multivaluées
On dit qu’un champs B est en dépendance multivaluée (DM)
par rapport à un champs A si, à une valeur donnée de A peut
être associée un ensemble de valeurs de B et qu’à une valeur
de B peut correspondre à un ensemble (plusieurs) de valeurs
de A.
Schématisation
A B
23/03/2025
Le Graphe de dépendances fonctionnelles
A partir de l’ensemble des dépendances, on établit un graphe sous forme
d’arborescence appelé graphe des DFs.
Exemple Numéro Année
Code-aut Titre
Code-edit
Nom_prénom Adresse_aut
nom Adresse_edit
Un graphe minimum des DFs est un graphe qui ne comporte aucun DF
non élémentaire et aucune DF déduite.
23/03/2025
Concept de clé d’une relation
Une clé de table nommé primaire est un champs (ou ensemble
de champs) dont la valeur permet de désigner un et un seul
enregistrement de la table. Dans une table tous les champs
dépendent fonctionnellement de la clé primaire de cette table
Exemple
nompr
dtnaissance téléphone
adresse
Étudiant( nompr, dtnaissance, adresse , téléphone)
23/03/2025
Concept de clé étrangère
On appelle clé étrangère le champ d’une table qui fait
référence à la clé primaire d’une autre table.
Exemple
Auteurs ( Code-aut , Nom_prénom, Adresse_aut )
Livres ( Numéro , Titre, Code-aut)
Editions (Numéro, Code-edit, Année )
Éditeurs ( Code-edit , Nom, Adresse_edit )
23/03/2025
Contraintes d'intégrité
Règles qui doivent être fixées lors de la conception de la BD
et qui ensuite ne peuvent pas être enfreintes par les
utilisateurs de la base(gestion et vérification automatique par
le SGBD).
Les contraintes de domaine
Les contraintes sur les valeurs requises
La contrainte d’unicité
La contrainte de clé
La contrainte d’intégrité référentielle
23/03/2025
Normalisation d’un schéma relationnel
Le but de la normalisation d’un schéma relationnel est d’éliminer les
redondances des données et faciliter les opérations de mise à jour.
la normalisation repose sur l'analyse des dépendances entre les
champs qui sont à l'origine des phénomènes de redondances, et
propose des méthodes systématiques visant à décomposer les relations
incriminées.
23/03/2025
Exemple : parc de machines
Parc ( NS, Type, CT, LI, ...)
Avec NS: numéro série, CT: caractéristiques
techniques et LI: lieu
d'installation
Et type caractéristiques techniques
Problème de redondance, modification,
ajout et suppression (couple Type et CT)
23/03/2025
Première Forme normale
Une relation (table) est dite en Première forme normale (1NF) si
tous ses champs sont élémentaire; c’est-à-dire qu’ils ne peuvent
pas être décomposés du point de vue du contexte dans lequel est
envisagée la relation.
Exemple
23/03/2025
Deuxième Forme normale
Une relation est dite en deuxième forme normale (2NF)
lorsqu'elle est en 1NF et à la condition qu'un attribut(champ)
n'appartenant pas à la clé primaire soit en dépendance totale
avec tous les attributs de cette clé (pas de dépendance
partielle).
R1 (A1, A2, A3, A4, … An) R2 (A1, A2, A3, A4, … An)
23/03/2025
Exemple : prêts de cassettes vidéo
PrêtK7(NumCli, NomCli, AdrCli, NumK7, TitK7, DatePrêt )
Les dépendances fonctionnelles :
NumK7TitK7; NumCli NomCli,
AdrCli; NumCli, NumK7DatePrêt
NumK7 NumCli
AdrCli
TitK7 DatePrêt NomCli
Clé de la table PrêtK7: NumCli, NumK7
Les champs NomCli et AdrCli ne dépendent que de NumCli, de
même TitK7 ne dépend que de NumK7; la table PrêtK7 n'est pas en
2NF.
23/03/2025
La troisième Formes normales
Une relation est dite en troisième forme normale (3NF)
lorsqu'elle est en 2NF et à la condition que tout attributs
n'appartenant pas à la clé primaire ne dépend pas d'un champ
non clé. En d'autres termes, dés qu'il existe une dépendance
entre deux champs n'appartenant pas à la clé(dépendance
transitives), la relation n'est pas en 3NF.
R1 (A1, A2, A3, A4, … An)
23/03/2025
Exemple:Agence immobilière
Dépendances fonctionnelles:
Num_Client Nom_Client ;
Num_Client, Num_App DateD_Loc DateF_Loc;
Num_App Adr_App, Montant, Num_Prop;
Num_Prop Nom_Prop
23/03/2025
Agence immobilière: Décomposition en 2 FN
Table Clients Table locations
Table appartements
23/03/2025
Agence immobilière: Décomposition en 3 FN
Table appartements
Table appartements Table propriétaires
23/03/2025
Processus de normalisation
La méthode à suivre pour normaliser une table est la suivante:
1) Vérifier que la table est en première forme normale ;
2) Établir son graphe des dépendances minimum;
3) Déterminer, à l'aide du graphe, la clé de la table ;
4) Déterminer, à l'aide du graphe, sa forme normale;
5) Si la table n'est pas normalisée, décomposer, à l'aide du
graphe, la relation en deux ou plusieurs table mieux
normalisées
23/03/2025
Exemple:Agence immobilière
Dépendances fonctionnelles:
Num_Client Nom_Client ;
Num_Client, Num_App DateD_Loc DateF_Loc;
Num_App Adr_App, Montant, Num_Prop;
Num_Prop Nom_Prop
Graphe de DFs:
Num_Client Num_App Num_Prop
Adr_App Nom_Prop
Nom_Client
Montant
DateD_Loc
DateF_Loc
Clé primaire: Num_Client, Num_App
23/03/2025
Exemple:Agence immobilière
Graphe de DFs:
Num_Client Num_App Num_Prop
Adr_App Nom_Prop
Nom_Client
Montant
DateD_Loc
DateF_Loc
Décomposition en 3FN
Clients ( Num_Client , Nom_Client )
Propriétaires ( Num_Prop , Nom_Prop )
Appartements ( Num_App , Adr_App, Montant, Num_Prop )
Locations ( Num_Client, Num_App , DateD_Loc DateF_Loc )
23/03/2025
Exemple : prêts de cassettes vidéo
Graphe DFs :
NumK7 NumCli
AdrCli
TitK7 DatePrêt NomCli
Décomposition en 3FN
Client(NumCli, NomCli, AdrCli)
K7(NumK7,TitK7),
Prêt(NumCli,NumK7,DatePrêt)
23/03/2025