Cours 4-BDD-conception de Bases de Données Relationnelles
Cours 4-BDD-conception de Bases de Données Relationnelles
Cours 4-BDD-conception de Bases de Données Relationnelles
CHELLAKH
Sur la base de cet ensemble d’attributs, nous construisons une relation qui nous renseigne
sur l’emploi du temps, d’une filière donnée (informatique par exemple, toutes années confondues.
Emploi du temps :
Jour Heure local Cod-mod Num-ens An-étude Section
Dimanche 8h 00 L1 Algo E1 2 A
Dimanche 13h 00 L2 Archi E2 2 A
Lundi 9h 30 L1 Algo E4 2 B
Mardi 11h 30 L3 Log E3 2 B
Dimanche 13h 00 L3 Sys E4 3 A
…
1
Module BDD : Conception de BDD relationnelles Mme H.CHELLAKH
Ou encore :
Jour , Heure, Local Cod mod
Jour , Heure, Local num ens
Jour , Heure, Local An étude
Jour , Heure, Local Section
Nous constatons aussi que Cod-mod ne détermine pas Num-ens. En effet, pour le module
Algo, nous avons deux enseignants différents E1 et E4.
Connaissant le module, nous ne pouvons pas déterminer l’enseignant.
De même, Num-ens ne détermine pas Cod-mod, du fait que l’enseignant E4 assure deux module
différents Algo et Sys.
Remarques :
Une DF est une assertion qui est définie sur toutes les réalisations (tuples) d’une réalisation
et pas sur un tuple particulier.
Une DF traduit une certaine perception de la réalité, elle correspond à une contrainte sur les
données, qui doit être vérifiée en permanence.
Définition (Dépendance Fonctionnelle) :
Soit R a1 , a 2 ,..., a n ( n 2) un schéma de relation, soit X, Y, Z trois sous-ensembles
d’attributs de A= a1 , a 2 ,..., a n tels que : X Y Z et X Y Z A (Z peut être vide)
On dira que X détermine Y, ou Y dépend fonctionnellement de X et on notera X Y si quels que
soient les tuples (x,y,z) et ( x , y , z ) de R, x x y y
Autrement dit : une valeur de x détermine une et une seule valeur de y, ou bien connaissant la
valeur de x, nous pouvons déterminer la valeur de y sans ambiguïté.
Exemples :
Dans une relation qui décrit les modules enseignés R(Code-mod, Libellé-mod, coef), nous
avons les DFs suivantes :
Code mod Libellé mod
Code mod Coef
Connaissant Cod-mod, nous pouvons déterminer son libellé et son Coefficient.
Dans une relation qui décrit les enseignants, nous avons les DFs suivantes :
Num ens Grade
Num ens Nom ens
Num ens Pr énom ens
On pourra les écrire aussi comme suit :
Num ens Grade, Nom ens, Pr énom ens
Dans une relation qui décrit les sections, nous avons :
Section, An étude Nbre étudiants
2
Module BDD : Conception de BDD relationnelles Mme H.CHELLAKH
Transitivité :
Si X Y et Y Z alors X Z
Exemple :
Num ens grade et grade salaire de base Num ens salaire de base
Les trois règles précédentes ci-dessus sont connues sous le nom d’axiomes
d’ARMSTRONG, d’autres règles peuvent en être déduites : il s’agit de l’union, la pseudo
transitivité et la décomposition.
Union :
Si X Y et X Z alors X Y Z
Exemple :
Jour , Heure, Local Cod mod et Jour , Heure, Local num ens
Jour , Heure, Local Cod mod, Num ens
Pseudo-transitivité :
Si X Y et Y W Z X W Z
Exemple :
Num ens grade
Grade, Nom ens salaire
Num ens, Nom ens salaire
Décomposition :
Si X Y et Z Y alors X Z
Exemple :
Code mod Libellé mod, Coef Coef Libellé mod, Coef
Cod mod Coef
3
Module BDD : Conception de BDD relationnelles Mme H.CHELLAKH
4
Module BDD : Conception de BDD relationnelles Mme H.CHELLAKH
Remarque :
La recherche de la couverture minimale d’un ensemble de DF est un élément essentiel dans
le processus de normalisation, afin de décomposer une relation en plus petites relations.
5
Module BDD : Conception de BDD relationnelles Mme H.CHELLAKH
Définition :
Soit A un ensemble d’attributs qui constitue la clé primaire d’une relation R1. A est dite
étrangère de R2, si :
1- A apparaît dans R2.
2- Une valeur de clé extérieure d’un tuple quelconque de R2 est soit « NULL », soit apparaît
comme valeur de clé primaire d’un tuple de R1.
Exemple :
Module (Cod-mod, Libellé-mod, Coef, An-étude, Code-filière)
Filière (Cod-filière, Libellé-filière)
Code-filière est une clé primaire dans la relation Filière et elle est étrangère dans la relation module.
6
Module BDD : Conception de BDD relationnelles Mme H.CHELLAKH
7
Module BDD : Conception de BDD relationnelles Mme H.CHELLAKH
8
Module BDD : Conception de BDD relationnelles Mme H.CHELLAKH
Remarque :
La troisième forme normale a pour objectif d’éliminer les redondances dues aux DF
transitives.
4. Algorithme de synthèse :
En appliquant les étapes de cet algorithme, vous pourrez déduire un schéma de relation en
3FN. Vous devez démarrer de la relation universelle et de ses dépendances fonctionnelles. La
relation universelle est une relation qui contient tous les attributs du domaine d’étude.
Relation Ensemble
universelle de DF
Algorithme de
synthèse
Relations
En 3FN
9
Module BDD : Conception de BDD relationnelles Mme H.CHELLAKH
Soit F, l’ensemble de toutes les dépendances fonctionnelles définies sur les attributs de la relation
universelle. Les étapes de l’algorithme de synthèse sont les suivantes :
1. Trouver l’ensemble IRR(F) contenant la couverture irréductible (couverture minimale) de F
2. Partitionner l’ensemble IRR(F) en sous ensembles Fi, tels que toutes les DFs d’un ensemble
Fi aient la même partie gauche.
3. pour chaque ensemble Fi de DFs, construire une relation composée de tous les attributs
formant les DFs de Fi, la clé de la relation sera la partie gauche commune à toutes ces DFs.
4. traiter les attributs isolés.
Exemple :
Soient les DFS suivantes relatives à la gestion de la scolarité :
1. Code mod Libellé mod
2. Code mod An etude
3. Code mod Libellé filière
4. Code filière Libellé filière
5. Matricule Nom etud
6. Matricule Adresse etud
7. Matricule Date naiss etud
8. Num ens Nom ens
9. Num ens Date naiss ens
10. Num ens Grade
11. Num ens Situation familiale
12. Num ens salaire
13. Grade Nbre heures
14. Grade Salaire
15. Code mod Coef
16. Code mod Code filière
17. Matricule Pr énom etud
18. Num ens Pr énom ens
19. Num ens Adresse ens
20. Num ens, Grade Nbre heures
21. Num ens, Grade salaire
22. Num ens Nbre heures
23. Matricule Section
24. Matricule Groupe
25. Code mod, Matricule Code filière
Question :
Concevoir un schéma de relations en 3FN, à partir de cet ensemble de DFs en appliquant
l’algorithme de synthèse.
10