Vous êtes sur la page 1sur 138

Bases de données :

« Le Modèle Relationnel »

David Célestin FAYE

8 mai 2023

David Célestin FAYE Bases de données


Introduction 2
Z Modèle logique très simple associé aux SGBD relationnels
(ex : Oracle, SQL Server, Access, DBASE etc.).

Z Fondé sur la théorie mathématique des ensembles et la notion


de base qui lui est rattachée : la relation

Z Représentation de l’information selon trois composantes :

• des structures de données


• des contraintes qui permettent de spécifier les règles qui
doivent respecter les données de la BD
• des opérations pour manipuler les données en interrogation et
en mise en jour.

Z Modèle relationnel assure l’indépendance logique et physique


Z Trop simple pour certains qui ont proposé d’autres modèles
conceptuels permettant de mieux décrire certains aspects
sémantiques des données : modèles Entité-Association,
relationnel-objet...
David Célestin FAYE Bases de données
Rappels mathématiques 3

Z Un ensemble est une collection d’éléments

Z On note
x ∈ à l’ensemble S
∅ l’ensemble vide
|S| cardinalité de l’ensemble S
P (S) ou 2|S| l’ensemble des parties de l’ensemble S

Z Opérations sur les ensembles


∩, ∪, −, ×

Z Comparateurs ensemblistes
=, ̸=, ⊂, ⊈

David Célestin FAYE Bases de données


Rappels mathématiques 4

Z Partition
soit S un ensemble non vide et I un intervalle
une partition de S est une famille d’ensembles {Si |i ∈ I} telle
que
S
i∈I Si = S
1
2 Si ∩ Sj = ∅ pour i ̸= j
3 Si ̸= ∅ pour tout i ∈ I
Exemple
S = {a, b, c, d}
S1 = {a, c} et S2 = {b, d} forment une partition de S
S1 = {a, b} et S2 = {b, c, d} ne forment pas une partition de
S

David Célestin FAYE Bases de données


Domaine-Attribut 5
Domaine
Un domaine est un ensemble de valeurs atomiques(non dé-
composable)

Exemples de domaines
les chaînes de caractères de longueur maximale 20
les entiers positifs
les entiers compris entre 1 et 30
les couleurs {V ert, Jaune, Rouge}
...
Attribut
Un attribut A est une caractéristique d’un objet représentée
par une valeur prise dans un domaine. On note Dom(A) le
domaine de l’attribut A

David Célestin FAYE Bases de données


Relation binaire 6
Relation binaire
Une relation binaire R sur un ensemble S est un sous-
ensemble de S × S.
Donc une relation est un ensemble.
on note R(x, y) pour indiquer que (x, y) ∈ R.
on appelle (x, y) couple ou doublet ou 2-uplet.

Dom(x) Dom(y)

a 1
Dom(y)
b 2
4
3
3 c
4
2

a b c Dom(x)

David Célestin FAYE Bases de données


Relation n-aire 7

relation n-aire
Une relation n-aire R sur S est définie de manière analogue
comme un sous-ensemble de S n
on note R(x1 , . . . , xn ) pour indiquer que (x1 , . . . , xn ) ∈ R
on appelle (x1 , . . . , xn ) n-uplet ou tuple
Soit R la relation définie sur les ensembles A1, A2, . . . , An
R ⊂ A1 × A2 × . . . × An

David Célestin FAYE Bases de données


Relation n-aire 8

A1 A2 An A1xA2x.....xAn

x a11 x a21 x an1 x (a11, a21,...., an1)

x a12 x a22 x an2 x (a11, a21,...., an2)


......... x (a11, a21,...., an 3)
x a13 ..... .....
..............
..... x (a11, a21,...., an k)
x a2j x ank
x a1i ..............
x (a11, a22,...., an 1)
..............
car(A1)=i car(A2)=j car(An)=k x (a11, a22,...., ank)
..............
..............
x (a12, a2j,...., ank)
..............
x (a1i, a2j,...., ank)

card(A1xA2x...xAn)=ixjx...xk

David Célestin FAYE Bases de données


Représentation de R en extension (TABLE) : 9
Colonne/attributs

A1 A2 A 3 An
a11 a21 an2

a11 a21 ank


Lignes/tuple
a11 a22 an1
Table/relation
a12 a2j ank

........
........
a12 a2j

Nom Année UFR


modou 1980 LSH
Mada 1983 SAT

Mory 1979 SJP

Mara 1981 SEG

NB : une relaton est un ensemble et non un multi-ensemble.


Chaque n-uplet est donc unique, et il n’y a pas d’ordre entre les
n-uplets
David Célestin FAYE Bases de données
Tuple : 10
tuple
Soit R un ensemble d’attributs, un tuple t sur R est une
application
[
T :R→ Dom(Ai ) où t(Ai ) ∈ Dom(Ai )

Une relation r sur R est un ensemble de tuple. R est dit


schéma de la relation R

Schéma de la relation
Description de la relation en intention
R(A1 , A2 , . . . , An )
R : Nom de la relation
A1 , A2 , . . . , An : Nom des attributs de la relation
(a1i , a2j , ..., ank ) : n-uplet
n : Degré ou arité de la relation (Relation n-aires)

NB : Par abus de langage onFAYE


David Célestin confond
Basessouvent
de données r le nom de la
Exemple de schéma relationnel : 11

CLIENTS(codClient, nomClient ,prenomClient, ville)


PRODUITS(codPproduit ,designation ,prixUnitaire ,tauxTVA ,stock)
COMMANDES(numCommande, dateCommande, commandeReglee)
LIGNES_COMMANDES(numCommande,codeProduit, quantite)
FOURNISSEURS(codFournisseur, nomFourn, prenomFourn, ville,
telephone)
FOURNISSEURS_PRODUIT(codFournisseur, codProduit,quantite)

David Célestin FAYE Bases de données


Représentation de R en extension (TABLE) : 12

CLIENTS
NumClient Nom Ville PRODUITS
001 Albert Dakar NumProd Désignation PrixUnitaire

002 Modou Thies 0001 Table 25000


003 Safy Kolda 0002 Chaise 10000
0003 Armoire 30000

COMMANDES
NumClient NumProd Quantite
001 0002 3
002 0002 1
002 0003 5

David Célestin FAYE Bases de données


Construction du schéma relationnel 13

Un schéma relationnel peut contenir des centaines de tables


avec des milliers d’attributs.
Problème : comment éviter des erreurs de conception ?
Deux solutions(complémentaires) :
Génération (automatique) à partir d’un schéma E/A(en L3)
Théorie des dépendances et normalisation

David Célestin FAYE Bases de données


Construction du schéma relationnel 14

Schéma EA

Niveau Conceptuel (EA) VALIDATION


Règles

Schéma EA Valide

Niveau Logique Schéma Relationnel


(Relationnel)
TRADUCTION
EA-R
NORMALISATION

Schéma Relationnel normalisé

David Célestin FAYE Bases de données


Construction du schéma relationnel 15

David Célestin FAYE Bases de données


Construction du schéma relationnel 16

Représenter xxxxxxx xxxxxxx

............ 1,n AAAA 1,n ............


............ ............ ............
DOMAINE

Traduire MODELE CONCEPTUEL

Implémenter
yyyyyyyy yyyyyyyy
ORDINATEUR
............ ............
............ yyyyyyyy ............

............
............
Représenter

MODELE LOGIQUE

David Célestin FAYE Bases de données


Contraintes d’intégrité 17
cadre pour ajouter une sémantique au modèle relationnel.
Le schéma en lui-même ne fait aucune restriction sur les
données qui peuvent être stockées.
Toutefois, la sémantique attendue de ce schéma peut
impliquer plusieurs restrictions.
Contraintes d’intégrité
Soit R ⊂ Dom(A1 )×Dom(A2 )×. . .×Dom(An ) Soit P une
propriété logique sur la liste d’attributs. P est une contrainte
d’intégrité pour la relation R si et seulement si :
P restreint à R est vrai
Toute modification de R laisse P vrai

Il est possible de classser les contraintes d’intégrités


Contraintes d’intégrité élémentaire
Contraintes d’intégrité statique
Contraintes d’intégrité dynamique
David Célestin FAYE Bases de données
Typologie des Contraintes d’intégrité 18

Contrainte d’intégrité élémentaire


Pour chaque n-uplet t de la relation R, il est possible de
décider si P (t) est vrai ou faux

Exemples
P 1 : les numéros des étudiants ne sont pas des multiples de 3.
Le prédicat P 1 interdit l’ajout du n-uplet(369, mbaye,sarr, 12
mars 1990)
P 2 : la chaîne de caractère de l’attribut DateDeN aissance
est une date valide. Le prédicat P 2 interdit l’ajout du n-uplet
(369,mbaye sarr, 15 décembbre 2300).

David Célestin FAYE Bases de données


Typologie des Contraintes d’intégrité 19
Contrainte d’intégrité statique
Pour chaque n-uplet t de la relation R, il n’est pas possible
de décider si P (t) est vrai ou faux, mais il est possible de
décider si P (R) est vrai ou faux

Exemples
P 3 : le nombre de Numéros finissant par 83 est inférieur ou
égal à 17
P 4 = P 1|P 2&P 3
Contrainte d’intégrité dynamique
Il n’est pas possible de décider si P (R) est vrai ou faux, mais
il est possible de décider si P (R −→ R) est vrai ou faux

Exemples
P 5 : les étudiants nés un 29 février ne peuvent pas être
supprimés de la base
David Célestin FAYE Bases de données
Typologie des Contraintes d’intégrité 20

les contraintes d’intégrité d’une relation sont des propriétés


logiques qui restreignent les évolutions de la relation
elles sont données par le concepteur de la relation et les règles
de gestion
Il est possible de regrouper une liste de contraintes d’intégrités
en une seule plus complexe grâce aux opérateurs booléens
NB : Un identifant(clé) est une contrainte d’intégrité statique
particulière

David Célestin FAYE Bases de données


Contraintes d’intégrité : Unicité de la Clé 21
Z Une relation est un ensemble de tuples, il ne peut y avoir 2
tuples identiques dans une relation
Z Plus petit sous ensemble d’attributs dont les valeurs
permettent de distinguer les n-uplets les uns des autres ;
Définition
Soit X ⊆ R un ensemble d’attributs, notons t[X] la
restriction du tuple t à X. X est clé si et seulement si :

∀(ti , tj ) ∈ r2 , ∀A ∈ Rti [X] = tj [X] ⇒ ti [A] = tj [A]

Z Toute relation possède au moins une clé. S’il existe plusieurs


clés possibles, on en choisit une qui est alors clé primaire, les
autres sont appelées clés candidates
Z Exemple
Dans la relation
Personne(num_cni,nom,lieu_nais,d_naiss) num_cni
constitue la clé primaire
David Célestin FAYE Bases de données
Contraintes d’intégrité : Entité & Domaine 22

Z Contraintes d’entité
Lorsque la valeur d’un attribut est inconnue, on utilise une
valeur conventionnelle appelée valeur nulle
impose que toute relation possède une clé primaire et que tout
attribut participant à cette clé primaire soit non nul.

Z Contraintes de domaine
obligation pour tout attribut de prendre des valeurs dans le
domaine qu’on lui a définit. Elle set traduit sous forme
d’assertion logique.
Exemple :

P rixU ni > 0 ET P rixU ni < 1000

David Célestin FAYE Bases de données


Contraintes d’intégrité : Contraintes référentielle 23
contrainte d’intégrité( inter-relation) portant sur une relation
R qui consiste à imposer que la valeur d’un groupe d’attributs
apparaissent comme valeur de clé dans une autre relation
définit la notion de clé étrangère (attribut qui est clé primaire
dans une autre relation).
Clients(codClient, nomClient ,prenomClient, ville)
Produits(codProduit ,designation ,prixUnitaire ,tauxTVA ,stock)
Commandes(numCommande, dateCommande,
commandeReglee,codeClient)
LignesCommandes(numCommande,codeProduit, quantite)
Fournisseurs(codFournisseur, nomFourn, prenomF, ville, telephone)
FournisseursProduits(cod_fournisseur, codProduit,quantite)
La relation Lignes_commande fait référence aux relations
Commandes et Produits respectivement par les clés
num_commande et cod_produit. Elle est référençante tandis
que les deux autres sont dites référencées
David Célestin FAYE Bases de données
Contraintes d’intégrité : Autres types de contraintes 24

Il existe d’autres types de contraintes plus fines :


« tous projets cumulés, un même employé ne peut travailler
plus de 56h par semaine »
« le salaire d’un employé ne peut jamais être baissé »
contrainte d’exclusion, de totalité, de partition,...(voir
modélisation E-A)
⇒ langages de spécification de contraintes
⇒ triggers(déclencheurs), ASSERTIONS

David Célestin FAYE Bases de données


Représentation de R en extension (TABLE) : 25

David Célestin FAYE Bases de données


Dépendances fonctionnelles : 26
Une dépendance fonctionnelle est une contrainte sémantique
sur les données. Par conséquent :
Elle est observée dans le monde réel
Elle doit être maintenue par le système (donc de manière
efficace)
Elle ne peut pas être déduite des valeurs d’une instance
particulière (ce n’est pas parce qu’une DF est satisfaite par une
instance qu’elle existe dans le monde réel)
Les DFs sont des contraintes qui doivent être respectées : les
utilisateurs veulent l’assurance de la cohérence de la base.
Base cohérente = BD qui respecte les contraintes d’intégrité
Toute modification qui viole la cohérence de la base doit être
INTERDITE
Grand enjeu dans la conception des bases de données : trouver
un moyen de rendre la maintenance des DF efficace et moins
chère.
David Célestin FAYE Bases de données
Dépendances fonctionnelles : 27
Le schéma en lui-même ne fait aucune restriction sur les
données qui peuvent êetre stockées.
Toutefois, l’application attendue de ce schéma peut impliquer
plusieurs de ces restrictions.
Z But : simplifier et éviter les redondances inutiles,
Définition
Soit X ⊆ R un ensemble d’attribut, A ∈ R. Soit r son
extension. A est en dépendance fonctionnelle avec X ou X
détermine A si :

∀(ti , tj ) ∈ r2 , ti [X] = tj [X] ⇒ ti [A] = tj [A]


On note r |= X → A

Z La connaissance de la valeur de X dans R entraîne la


connaissance d’au plus une valeur de A.
Z X est appelé source et A cible.
David Célestin FAYE Bases de données
Dépendances fonctionnelles : 28

A B C D E
A→B oui
a1 b1 c1 d3 e2 A→C non
a1 b1 c3 d4 e3 BC→D oui
AC →D oui
a2 b2 c4 d2 e1
B →D non
a3 b1 c1 d3 e2 D →E oui
a2 b2 c4 d2 e1 AC →E oui

On note dep(r) l’ensemble des dépendances fonctionnelles de r.

dep(r) = {X → A|X ∪ {A} ⊆ R, r |= X → A}

Attention : une dépendance fonctionnelle est valable sur toutes les


valeurs possibles de n-uplets et pas seulement sur celles présentes à
un moment donné.

David Célestin FAYE Bases de données


Dépendances fonctionnelles : 29
Dépendance minimale
Une DF X → A est minimale (élémentaire ou complète)
si A ne dépend d’aucun sous ensemble propre de X, ie si
Y → A n’est pas valide dans R pour tout Y ⊆ X. On dit
qu’elle est non-redondante à gauche.
X → A est élémentaire ⇔ ∀ Y ⊆ X, Y → A ∈ / dep(r).
Si X est un agrégat d’attributs, par exemple
X = (X1, X2, X3) et si X → Z et si X1 → Z, la
dépendance fonctionnelleX → Z n’est pas élémentaire.

Dépendance partielle -triviale-Standard


La DF X → A est partielle si elle n’est pas élémentaire, i.e.
elle est redondante à gauche
La DF X → A est triviale si A ∈ X.
La DF est standard si X ̸= ∅.
Dépendances fonctionnelles : 30
Dépendance transitive
Soit X un ensemble d’attributs,
Y un ensemble d’attributs avec Y ⊈ X, et Y ↛ X
A un attribut, A ∈/Y
La dépendance fonctionnelle
X → A est directe
S’il n’existe pas Y tel que
X→Y
Y →A
Si Y existe la dépendance est transitive

Une des notions importantes de la théorie des dépendances


est celle d’implication.
Armstrong a introduit un certains nombre de règles de
déduction

David Célestin FAYE Bases de données


Propriétés des DF (Axiomes d’Armstrong) 31

Soient X, Y, Z sont des ensembles d’attributs, A un attribut.


Z Réflexivité(augmentée) :
Si Y ⊆ X alors X → Y

Z Augmentation :
Si X → Y alors X, Z → Y

Z Transitivité :
Si X → Y et Y → Z alors X → Z

David Célestin FAYE Bases de données


Propriétés dérivées 32
Z Réflexivité stricte :
X→X
Z Union :
Si X → Y et X → Z alors X → Y, Z
Z Décomposition :
Si X → Y et Z ⊆ Y alors X → Z
Z Augmentation stricte :
Si X → Y alors X, Z → Y, Z
Z Pseudo transitivité(Transitivité augmentée) :
Si X → Y et A, Y → Z alors X, A → Z
Z Union augmentée.
Si X → Y et Z → V alors X, Z → Y, V
Z Affaiblissement
Si X → Y et X ⊆ X ′ et Y ′ ⊆ X ∪ Y alors X ′ → Y ′
David Célestin FAYE Bases de données
L’implication de dépendances 33
Définition
Soit F et G deux ensembles de dépendances.
Une dépendance X → Y est impliquée logiquement par F
(noté F |= X → Y ) si toute relation qui satisfait F satisfait
aussi X → Y .
F et G sont (logiquement) équivalents (noté F ≡ G) si toute
dépendance de G est impliquée logiquement par F et
vice-versa
La fermeture de F est l’ensemble F + des dépendances
logiquement impliquées par F , c’est-à-dire
F + = {X → Y |F |= X → Y }
Exemple :Soit R(A, B, C) et F = {A → B, B → C}
On a par exemple :
F |= A → C
{A → B, B → C} ≡ {A → B, B → C, A → C}

David Célestin FAYE Bases de données


Fermeture transitive d’un ensemble de DF : (dep(r))+ 34
Z (dep(r))+ = dep(r) ∪
{df élémentaires obtenues en appliquant les axiomes}
Z ∀f ∈ (dep(r))+ , (dep(r)) |= f
Exemple :
dep(r) = {A → B, B → C, B → D, A → E}
(dep(r))+ = dep(r) ∪ {A → C, A → D}
Deux ensembles de DFE, F 1 et F 2, sont équivalents si leurs
fermetures sont égales :

F 1 ≡ F 2 ⇔ F 1+ = F 2+
Exemple :
{A → B, B → C, B → D} ≡ {A → B, A → D, B → CD}
{A → B, B → C} ≡ {A → B, B → C, A → C}
Remarque
La fermeture contient beaucoup de solutions triviales et le
calcul même est coûteux. ⇒ éviter de calculer toute la fer-
meture.
David Célestin FAYE Bases de données
Fermeture d’un ensemble d’attributs 35
Au lieu de calculer toute la fermeture transitive de F , on
calcule la fermeture d’un ensemble d’attributs X, qui contient
tous les attributs qui dépendent des attributs dans X :

Soit F un ensemble de dépendances et X ⊆ U un ensemble


d’attributs pris parmi un ensemble d’attributs U .
La fermeture X + à partir de X par rapport à l’ensemble de
dépendances F est l’ensemble des A ∈ U tels que F |= X → A.

Si on peut calculer la fermeture d’un ensemble d’attributs, il est


simple de déterminer si une dépendance X → Y est impliquée
logiquement par un ensemble de dépendances F .
1 Calculer X + par rapport à F .
2 Si Y ⊆ X + alors F |= X → Y , sinon F ⊯ X → Y .
Cela permet aussi de calculer F + (en principe) :
F + = {X → Y |F |= X → Y } = {X → Y |X ⊆ U et Y ⊆ X + }.
David Célestin FAYE Bases de données
Un algorithme de calcul de la fermeture 36

Soit F un ensemble de dépendances et X ⊆ U un ensemble


d’attributs. L’algorithme calcule une suite d’ensembles d ?attributs
X (0) ,X (1) ,...
Algorithme
Données : X, U, F .
1 X (0) = X ;
2 X (i+1) = X (i) ∪ {A |∃ Z : Y → Z ∈ F et A ∈ Z et Y ⊆
X (i) } ;
3 Si X (i+1) = X (i) , l’algorithme s’arrête.
Note : L’algorithme s’arrête toujours puisque
X (0) ⊆ X (1) ⊆ X (2) . . . ⊆ U et U est un ensemble fini.

David Célestin FAYE Bases de données


Un algorithme de calcul de la fermeture 37

Exemple
Soit F :
AB → C D → EG
C→A BE → C
BC → D CG → BD
ACD → B CE → AG
X : BD et U : ABCDEG
L’algorithme calcule

X (0) : BD
X (1) : BDEG
X (2) : BDEGC
X (3) : BDEGCA
X (4) : BDEGCA

David Célestin FAYE Bases de données


Un algorithme de calcul de la fermeture 38 I

Théorème
L’algorithme donné calcule bien X + , c’est-à-dire que, quand
l’algorithme s’arrête, X (if ) = {A | F |= X → A}.

Preuve
1 Montrons X (if ) ⊆ X + {A | F |= X → A}
On démontre par induction que ∀i X (i) ⊆ X +
(a) Initialement X (0) = X ⊆ X +
(b) Si X (i) ⊆ X + alors X (i+1) ⊆ X +
Par la définition de X (i+1) , on peut voir que
si on a F |= X → A pour tout A ∈ X (i) ,
alors on a F |= X → A pour tout A ∈ X (i+1) .

David Célestin FAYE Bases de données


Un algorithme de calcul de la fermeture 39 II

2 Montrons X + ⊆ X (if ) c-à-d X + − X (if ) = ∅


Pour ce faire, nous montrons que, pour toute dépendance
X → B telle que B ∈ / X (if ) , nous avons que F ⊭ X → B et
donc que B ∈ /X .+

Pour établir que F ⊭ X → B, il suffit de montrer qu’il existe


une relation qui satisfait toutes les dépendances de F , mais
qui ne satisfait pas X → B.
Cette relation est la suivante :
r:
X (if ) U − X (if )
1 1···1 1 1···1
1 1···1 0 0···0
Cette relation ne satisfait pas X → B vu que X ⊆ X (if ) et
que B ∈/ X (if )

David Célestin FAYE Bases de données


Un algorithme de calcul de la fermeture 40 III

Montrons qu’elle satisfait F .


En effet, si r ne satisfaisait pas F , il y aurait dans F une DF
V → W telle que V ⊆ X (if ) et W ⊈ X (if ) (par déf. de R).
Mais dans ce cas, l’algorithme de calcul de X (i) ne se serait
pas arrêté et aurait ajouté les attributs de W .
Exercice
Soit ABCDEF un ensemble d’attributs avec les dépendances :

AB → C, D → C, D → E, CE → F, E → A

Calculer D+ , (AB)+ , (CE)+ .

David Célestin FAYE Bases de données


Retour sur la notion de clé 41 I
Z Une clé (ou superclé) de R(∆) d’ensemble de dépendances
dep(r) est un groupe d’attributs (non nécessairement
minimum) X tel que : X → ∆ ∈ dep(r)+ .
Z on dit que X → ∆ est une dépendance de clé.
Z Une clé minimale ( ou clé candidate) X est une clé sur
< R(∆), dep(r) > telle que :

X → ∆ ∈ dep(r)+ et ∄ Y ⊂ X tel que Y → ∆ ∈ dep(r)+ .

Z NB : une relation peut comporter plusieurs clés candidates


Z Une clé primaire X de < R(∆), dep(r) > est une clé
candidate privilégiée pour la relation R.
Attribut premier : attribut membre d’une cle
Retour sur la notion de clé 42 II

Les deux propriétés suivantes permettent de faciliter la recherche


de clé minimale :
P1 : tout attribut qui ne figure pas dans le membre droit
d’une DF non triviale (X → Y et Y ∈ / X) de F doit
appartenir à toute clé de R,
P2 : si l’ensemble des attributs de R qui ne figurent pas en
membre droit d’une DF non triviale de F est une clé, alors R
possède une clé minimale unique composée de l’ensemble de
ces attributs.
EXEMPLE
Soit la relation R(ville, region, code). Les DF
ville, region → code et code → ville sont vérifiées. ville, region
est une clé minimale étant donné que
ville, region → ville, region, code est vérifiée et que ni
ville → ville, region, code et region → ville, region, code ne sont
verifiees.
Retour sur la notion de clé 43 III

Exercice
Soit R(A, B, C, D) et F est composé de
{AB → C, C → D, D → A}. Trouver les clés candidates.
(Réponse CB et AB).
Les clés : commentaires 44

Grands avantages des clés sur les DFs : Les SGDB fournissent
le contrôle des clés alors qu’ils ne fournissent pas le contrôle
des DFs.
Notre but est donc de transformes les DF en clés !
Technique de base : identifier les tables avec des DFs qui ne
sont pas des clés et les décomposer en tables plus petites.
Utilisation des propriétés des DF

David Célestin FAYE Bases de données


Couverture (ou réduction) minimale 45
objectif : simplifier, supprimer les redondances dans les DF
Definition
On appelle couverture minimale de F un ensemble G tel que
F + = G+ et qui vérifie les trois propriétés suivantes :
1 Toutes les parties droites sont réduites à un seul élément. G
contient uniquement des dépendances du type X → A.
2 Aucune partie gauche ne contient d’élément redondant :

∀X → A ∈ G et Z ⊂ X, (G − {X → A} ∪ {Z → A})+ ̸= G+

3 Il n’y a pas d’élément superflue :

∀X → A ∈ G, (G − {X → A})+ ̸= G+

(min(F ))+ = F +
Une couverture d’un ensemble de DF est donc une
représentation alternative, mais qui possède exactement la
même sémantique. Elle est plus « compacte »
Algorithme de calcul d’une couverture minimale 46
Z Exprimer tout fj ∈ F sous forme canonique. On obtient ainsi
un ensemble F ′ . En d’autres termes, toute dépendance
X → Y avec Y = {A1 , A2 , . . . , An } est remplacée par les
dépendances X → A1 , X → A2 , . . . , X → An .
Z Pour tout fj ∈ F ′ tester si F ′ − {fj } |= f j est vrai, alors
F ′ := F ′ − {fj }
Z Pour tout fj ∈ F ′ de la forme A1 , A2 , . . . , Am → Bj
Si F ′ |= {A1 , . . . , Ai−1 , Ai+1 , . . . , Am → Bj } est vrai alors
supprimer Ai dans fj , i allant de 1 à m.
NB : cette couverture minimale n’est pas unique en général

David Célestin FAYE Bases de données


Couverture minimale : Exemple 47
Soit F :
AB → C D → EG
C→A BE → C
BC → D CG → BD
ACD → B CE → AG
1 F peut être transformé en :

AB → C D→E
D→G
C → A BE → C
BC → D CG → B
CG → D
ACD → B CE → A
CE → G
2 On peut éliminer CE → A

On peut éliminer CG → B
3 On peut remplacer ACD → B par CD → B

David Célestin FAYE Bases de données


Couverture minimale : Exemple 48

Soit F :

A → B, BC → D, D → E, AC → D, AC → E

Les trois premières dépendances forment une couverture


irredondante de F . En effet, si G = {A → B, BC → D, D → E}
alors G+ contient aussi les dépendances AC → D et AC → E
(vérifiez !) et si on supprime une dépendance de G alors on la
clôture change.
Donc G est un plus petit sous-ensemble de F + tel que G+ = F + .

David Célestin FAYE Bases de données


Couverture minimale : Exemple 49
Soit les DF A → BC, B → C, A → B, AB → C, AC → D.
Trouver couverture minimale (irredondante).
On calcule les clôtures :
A+ = ABCD
(1)
B + = BC

On voit que toutes les autres dépendances peuvent être obtenues à


partir de (1).
Cela donne 4 dépendances non triviales
A → C, A → D, A → B, B → C mais la première est dans la
clôture de trois dernières donc finalement la couverture
irredondante est composée de trois dépendances :

A → D, A → B, B→C

David Célestin FAYE Bases de données


La normalisation 50

Z Eviter des incohérences dans les données


Une personne n’a qu’une date de naissance, le prix d’un
produit est unique, ....
Z Eviter la redondance d’information :
La même information est stockée dans différentes relations
Anomalies : insertion, suppression, modification
Z Eviter les valeurs nulles :
difficiles à interpréter : inconnu, connu mais non disponible
inapplicable
rend les jointures difficiles à spécifier
Z Eviter les jointures inutiles :
Performance (la jointure est une opération coûteuse)

David Célestin FAYE Bases de données


Les formes normales 51
Z Objectifs de la normalisation :
Suppression des problèmes de mise à jour
Minimisation de l’espace de stockage (élimination des
redondances)

Z Les questions à résoudre :


• Quand y-a-t-il une redondance gênante ?
• S’il y a redondance :
Comment faut-il décomposer la relation ?
Y-a-t-il de l’information perdue par la décomposition ?
Existe-t-il des algorithmes qui permettent de déterminer la
décomposition adéquate ?

Les DF sont utilisées pour fournir des informations sur la


sémantique de l’application afin que le système puisse aider
l’utilisateur à choisir, parmi tous les schémas possibles, le plus
approprié(non redondant).
Il existe plusieurs façons, pour un schéma, de ne pas être
approprié.
David Célestin FAYE Bases de données
Problèmes de la redondance 52
NumProd Quantite NumFourn adresse
01 30 F01 dakar
04 58 F02 thies
11 45 F04 kolda
03 25 F01 dakar

Z Anomalies de modification
Si l’on souhaite mettre à jour l’adresse d’un fournisseur, il faut
le faire pour tous les tuples concernés.
Z Anomalies d’insertion
Pour ajouter un fournisseur nouveau, il faut obligatoirement
fournir des valeurs pour NumProd et Quantité
Z Anomalies de suppression
La suppression du produit 04 fait perdre toutes les
informations concernant le fournisseur F 02.
⇒définir des contraintes sur les schémas de relations qui
permettent d’éviter ce type de problème

David Célestin FAYE Bases de données


Le problème de la décomposition 53

Définition
Soit R(U ) un schéma relationnel d’ensemble de dé-
pendances fonctionnelles F . L’ensemble des schémas
R1 (U ), . . . , Rn (U ), avec U = U1 ∪. . .∪Un d’ensemble de dé-
pendances fonctionnelles respectifs F1 , . . . , Fn constitue une
décomposition de F . Le contenu de chaque relation Ri (Ui )
peut être caractérisé à partir de R en posant

Ri (Ui ) = R[Ui ].

L’ensemble de dépendances fonctionnelles Fi est obtenu en


projetant l’ensemble F sur l’ensemble d’attributs Ui comme
suit :

F [Ui ] = {X → Y ∈ F + |X ⊆ Ui , Y ⊆ Ui }

David Célestin FAYE Bases de données


Algorithmes de normalisation 54

Objectif : Obtenir de manière automatique un ensemble de


relations vérifiant la forme normale souhaitée pour remplacer une
relation qui ne la vérifie pas.
Deux types d’algorithmes :
Normalisation « par synthèse » : 3FN
Normalisation « par décomposition » : BCNF

David Célestin FAYE Bases de données


But de la décomposition 55
Casser R en plus petites relations afin d ’éviter :
les redondances
Dépendance élémentaire
les anomalies de mise à jour qui cause de la redondance

Table T
U : ensemble de tous les attributs de T

Déterminant(X) ≠
Y
Clé candidate

Table T1 Table T2
U : ensemble de tous les attributs de T X = Clé primaire
de T2 Y
X = Clé étrangère
dans T1 Y

David Célestin FAYE Bases de données


Propriété d’une bonne décomposition 56
Z Décomposition Sans perte d’informations (SPI)
Soit α = {R1 (U1 ), . . . , Rn (Un )} une décomposition d’un
schéma R telle que R = R1 ∪ . . . ∪ Rk
Soit r une relation de schéma R. La décomposition α de R est
sans perte pour r ssi

r = r[U1 ] ▷◁ . . . ▷◁ r[Un ]

Soit F un ensemble de DF sur R. La décomposition est sans


perte par rapport à F ssi pour toute relation r de schéma R
qui satisfait F , la décomposition est sans perte pour r,
c’est-à-dire r = r[U1 ] ▷◁ . . . ▷◁ r[Un ]

Z Décomposition Sans perte de dépendances(SPD)


Une décomposition (R1 , . . . , Rm ) de R préserve les DF si la
fermeture transitive des DFs de R est la même que la
fermeture transitive de l’union des DFs de R1 , . . . , Rm .
[
F+ = ( F [Ui ])+

Notation : vα (r) = r[U1 ] ▷◁ . . . ▷◁ r[Un ]


Propriété d’une bonne décomposition 57

Z Décomposition Sans perte d’informations (SPI)


pour chaque instance (BD) du schéma S qui satisfait F, il doit
être possible de la reconstruire (par des jointures) à partir des
tables obtenues après la décomposition (par projection).

Z Décomposition Sans perte de dépendances(SPD)


il doit être possible de vérifier toutes les contraintes définies
par F sans faire de jointures (efficacité).

David Célestin FAYE Bases de données


Décomposition Sans perte d’informations (SPI) 58

Soit r une relation de schéma R. La décomposition est sans perte


pour r ssi
r = r[U1 ] ▷◁ . . . ▷◁ r[Un ]

On a toujours r ⊆ r[U1 ] ▷◁ . . . ▷◁ r[Un ] (SPI = pas de nuplets


en trop)
Il suffit de prouver que r[U1 ] ▷◁ . . . ▷◁ r[Un ] ⊆ r : on montre
que tous les nuplets t générée par la jointure entre les nuplets
ti ∈ r[Ui ] étaient dans r à cause des DF dans F .
Comment vérifier SPI :
Pour 2 relations :théorème
Pour plusieurs schémas :Algorithme de poursuite(Algorithme
CHASE)

David Célestin FAYE Bases de données


Décomposition SPI : Algorithme CHASE (1/7) 59

Entrée :
Un schéma de relation R[A1 ...An ] (ou un univers
U = {A1 ...An })
Un ensemble de dépendances fonctionnelles F sur R (ou U ).
Une décomposition α = {R1 , R2 , ..., Rk }.
Sortie :
Oui ou non la décomposition est SPI par rapport à F
.

David Célestin FAYE Bases de données


Décomposition SPI : Algorithme CHASE (2/7) 60
1 Construire une table avec n colonnes et k lignes.
La colonne j correspond à attribut Aj et la ligne i correspond
à la relation Ri .
2 Sur la position (ligne i, colonne j) :
SI Aj appartient à Ri
ALORS placer le symbole aj (une constante-ti défini sur Aj )
SINON placer le symbole bij (une variable-ti non défini sur
Aj )
3 Considérer les DF de F de la manière suivante :
REPETER
POUR (chaque DF X → Y dans F ) FAIRE
SI (il existe des tuples avec les mêmes valeurs sur les
attributs de X)
ALORS rendre égales les valeurs sur Y pour ces tuples.
JUSQU’A (aucun changement est possible sur la table) ;
4 SI (il existe une ligne a1 ...an dans la table) ALORS SPI
SINON non SPI ;
David Célestin FAYE Bases de données
Décomposition SPI : Algorithme CHASE (3/7) 61

Soit un tableau de poursuite T et un ensemble de DF F .


Algorithme de poursuite : Itération
Choisit une DF X → Y et un nuplet ti dans T qui est défini
sur X et un sous-ensemble de Y : s’il existe un nuplet tj qui
est défini sur XY , remplace dans ti les valeurs des attributs
non-définis de Y par leurs constantes.
Fin d’itération quand il n’y a plus de remplacement possible.
Succes(décomposition SPI) quand il existe au moins un nuplet
où tous les attributs sont définis.

David Célestin FAYE Bases de données


Décomposition SPI : Algorithme CHASE (4/7) 62

Exemple 1
F ournisseurP roduit(N umF ourn, adresse, N umP rod, Quantite)

est décomposé en

F ournisseur(N umF ourn, adresse) et


Livraison(N umP rod, N umF ourn, Quantite)

N umF ourn adresse N umP rod Quantite


t1 num adr b13 b14
t2 num b22 prod quantite

David Célestin FAYE Bases de données


Décomposition SPI : Algorithme CHASE (5/7) 63

Exemple 1 (Suite)
F ournisseurP roduit(N umF ourn, adresse, N umP rod, Quantite)

est décomposé en

F ournisseur(N umF ourn, adresse) et


Livraison(N umP rod, N umF ourn, Quantite)
F = {N umF ourn → adresse ;
N umF ourn, N umP rod → Quantite}
Tableau de poursuite :

N umF ourn adresse N umP rod Quantite


t1 num adr v13 v14
t2 num adr prod quantite

N umF ourn → Adresse ⇒ v22 = adr ⇒ t1 ▷◁ t2 ∈ r


⇒ La décomposition est SPI

David Célestin FAYE Bases de données


Décomposition SPI : Algorithme de poursuite (6/7) 64

Exemple 2
F ournisseurP roduit(N umF ourn, adresse, N umP rod, Quantite)

est décomposé en

R1(N umF ourn, Adresse, N umP rod) et


Livraison(N umF ourn, Quantite)
F = {N umF ourn → adresse ;
N umF ourn, N umP rod → Quantite}
Tableau de poursuite :

N umF ourn Adresse N umP rod Quantite


t1 num adr prod v14
t2 num adr v23 quantite

N umF ourn → Adresse ⇒ v22 = adr ⇒ echec (v23 ou v14)


⇒ La décomposition n’est pas SPI

David Célestin FAYE Bases de données


Décomposition SPI : Algorithme de poursuite (6/7) 65

Exercice
Soit F = {B → C} un ensemble de dépendances fonctionnelles sur
U = {ABC}.
Décompositions : (SPI ?)
1 α = {R1(AB), R2(BC)}
2 α = {R1(AB), R2(AC)}
3 α = {R1(AC), R2(BC)}

David Célestin FAYE Bases de données


Décomposition SPI : en 2 et plusieurs relations 66
Théorème(Heath)
Soit {R1 , R2 } une décomposition de R et F l’ensemble des
DF qui s’appliquent à R, alors la décomposition de R en deux
relations {R1 , R2 } est SPI(lossless-join) ssi l’intersection de
R1 et R2 est une surclé d’au moins une des deux relations :
{R1 , R2 } SPI ≡ (R1 ∩R2 ) → R1 −R2 ∈ F + ou (R1 ∩R2 ) →
R2 − R1 ∈ F +
Autrement dit, si au moins une des dépendances ci-dessus est
dans la fermeture transitive F + de F

NB : Les applications successives de décompositions sans perte


donnent une décompositions sans perte.
Théorème
Si {R1 , R2 , . . . , Rn } est SPI de R et {S1 , S2 , . . . , Sm } est
SPI de R1 , alors {S1 , S2 , . . . , Sm , R2 , . . . , Rn }est SPI de R.

David Célestin FAYE Bases de données


Décomposition SPI : en 2 et plusieurs relations 67
Preuve du Théorème :
Soit α = (R1 , R2 ), une décomposition de R.
On suppose que (R1 ∩ R2 ) → R1 − R2 ∈ F + ou
(R1 ∩ R2 ) → R2 − R1 ∈ F +
On montre que pour toute relation r de schéma R : si r satisfait
F , alors r = vα (r).
Soit r une relation de schéma R qui satisfait F . On sait que
r ⊆ vα (r)
Montrons que vα (r) ⊆ r
Soit un tuple t ∈ vα (r). On veut montrer que t ∈ r
Puisque t ∈ vα (r), il existe des tuples t1 , t2 ∈ r tels que
t1 [R1 ] = t[R1 ] et t2 [R2 ] = t[R2 ].
Supposons que (R1 ∩ R2 ) → R1 − R2 ∈ F + (l’autre cas se traite
symétriquement).
Puisque t2 [R2 ] = t[R2 ], on a : t2 [R1 ∩ R2 ] = t[R1 ∩ R2 ].
Et puisque (R1 ∩ R2 ) → (R1 − R2 ) : t2 [R1 ] = t[R1 ]. Donc,
t[R] = t2 [R] et puisque t2 ∈ r : t ∈ r !
Décomposition SPI : en 2 et plusieurs relations 68

Exemple :
Soit R = {ABC} et F = {A → B}.
(AB, AC) est une décomposition de R sans perte par rapport à F
vu que AB ∩ AC = A et AB − AC = B et A → B est une
dépendance de F + .
En revanche, la décomposition de R en (AB, BC) n’est pas sans
perte par rapport à F . En effet, on peut trouver une relation.
A B C A B
r : a1 b1 c1 qui satisfait F et telle que r[AB] : a1 b1 et
a2 b1 c2 a2 b1
A B C
B C a1 b1 c1
r[BC] : b1 c1 et r[AB] ▷◁ r[BC] : a1 b1 c2 ̸= r
b1 c2 a2 b1 c1
a2 b1 c2
Décomposition Sans perte de dépendances(SPD) 69

Nous décidons de stocker les données d’une base suivant une


décomposition SPI α de U .
Lors de la mise à jour de la base, nous devons vérifier que la
base modifiée reste cohérente, c’est-à-dire, qu’elle satisfait les
d’pendances de F (sinon la mise à jour doit être refusée).
Pour ce faire : à chaque mise à jour, reconstituer la relation de
départ (sur U ), car les dépendances de F sont énoncées sur U .
Cette reconstruction est très coûteuse !
Est-il est possible de vérifier la cohérence de la base sans
reconstruire la relation sur U ?

David Célestin FAYE Bases de données


Décomposition SPD (1/4) 70

{R1 (CodeP ostal, Rue), R2 (CodeP ostal, V ille)}


est une décomposition SPI de
R(CodeP ostal, V ille, Rue) avec
F = {(V ille, Rue) → CodeP ostal, CodeP ostal → V ille}
car R1 ∩ R2 → R2 − R1 = CodeP ostal → V ille.
Mais : la DF (V ille, Rue) → CodeP ostal ne peut plus être
évaluée efficacement (sans faire des jointures) :
la décomposition ne préserve pas les dépendances (SPD).

David Célestin FAYE Bases de données


Décomposition SPD (2/4) 71

Définition
Une DF X → Y est projetée(est applicable) dans R si R
contient XY .

NB : Une DF non-projeté dans les relations d’une décomposition


n’est pas forcément « perdue » : elle peut faire partie de la
fermeture transitive des DF projetées.
Définition
Soit F + [R] les DF de F + qui se projettent dans R. Une
décomposition de R en {R1 , R2 , . . . , Rn } préserve les dépen-
dances (SPD) dans F si
[
F+ = ( F [Ri ])+
i

David Célestin FAYE Bases de données


Décomposition SPD (3/4) 72

Théorème
[
Il suffit de montrer que F + ⊆ ( F [Ri ])+
i

Preuve :
[
F+ ⊇ ( F [Ri ])+ trivial, car on ne peut pas créer de
i
nouvelles DF lorsqu’on fait une décomposition.
[
F+ ⊆ ( F [Ui ])+ : il suffit de montrer que toute DF de F
i [
peut se déduire des DF projetées F ⊆ ( F [Ri ])+
i

David Célestin FAYE Bases de données


Décomposition SPD (3/4) 73

Exemple
Est-ce que α est SPD ?
U = {C, R, Z}
F = {CR → Z, Z → C}
α = {RZ, CZ}

David Célestin FAYE Bases de données


Décomposition SPD (3/4) 74

Comment savoir si α est SPD


Solution naïve
1 Calculer F +
[
2 Calculer G = ( F [Ri ])+
i
3 Vérifier si G ≡ F .

David Célestin FAYE Bases de données


Décomposition SPD (3/4) 75

Comment savoir si α est SPD


Autre Solution
Définissons G = ( F [Ri ])+
S

Nous voulons savoir si G ≡ F .


Pour cela nous considérons chaque X → Y dans F et nous
calculons X + (à partir de G)
Pour calculer X + sans connaître G, nous considérons X + en
fonction de F [Ri ] (i = 1, 2, ..., n)
En d’autres termes nous définissons l’opération
Z ←− Z ∪ ([Z ∩ Ri ]+F ∩ Ri )
où Z est un ensemble d’attribut et [Z ∩ Ri ]+
F est la fermeture
par rapport à F .
Nous pouvons ainsi calculer X + en relation à G (on
commence par X et on considère tous les Ri ).

David Célestin FAYE Bases de données


Décomposition SPD (3/4) 76

Pour tester si une décomposition est SPD


Entrée
Un schéma de relation R[A1 ...An ] (ou un univers
U = A1 ...An ).
Un ensemble de dépendances fonctionnelles F sur R (ou U ).
Une décomposition α = {R1 , R2 , ..., Rk }.
Sortie
Oui ou non la décomposition est SPD par rapport à une
dépendance X → Y dans F .

David Célestin FAYE Bases de données


Décomposition SPD (4/4) 77
Algorithme SPD ;
Entrée : {R1 , R2 , . . . , Rn } et F
Sortie : succès ou échec
pour tous les DF X → A ∈ F faire
Z ←− X
tant que Z change faire
pour tous les Ri faire
Z ←− Z ∪ ([Z ∩ Ri ]+ F ∩ Ri )
fin
fin
si A ∈ / Z alors
return échec
fin
return succès
trivial
z }| {
R(ABCD) et F = {A → B, B → C, C → D, D → A}
R1(AB), R2(BC), R3(CD) est SPD (Z = {D, C}, B, A pour
D → A)
Les formes normales 78
Z Restrictions sur l’ensemble des relations admises

Z Permettent de déterminer la « qualité » d’une relation (par


rapport à la redondance,etc.) en utilisant les DF

Z Il existe des DF qui sont néfastes car pouvant mener à la


duplication de l’information

Z Il faut éviter c’est d’avoir une DF non triviale Y → A pour la


quelle la partie du tuple y1 . . . yk puisse apparaître plusieurs
fois

Z On mesure la qualité d’une relation par son degré de


normalisation

Z Classification fondée sur la structure des DFs d’une


relation :1NF, 2NF,3NF 3BCNF, 4NF et 5NF.
David Célestin FAYE Bases de données
Première forme normale (1NF) 79
Définition
Une relation est en première forme normale (1NF) si :
Tout attribut n’est pas décomposable (est atomique)
Tous les attributs non clé sont en dépendance
fonctionnelle avec la clé

NB : Les attributs ne peuvent être décomposés du point de vue du


contexte dans lequel est envisagé la relation.
En particulier, une relation 1FN ne peut avoir une valeur
d’attribut qui soit
un ensemble de valeurs
un nuplet de valeurs
Hypothèse de base des SGBD relationnels.
Dans les SGBD objet, relationnel-objet et N1NF, cette
hypothèse est relâchée.

David Célestin FAYE Bases de données


Exemple : 1NF 80
Exemple :

EMPLOYE(Matricule,Nom,Prenom,Enfants,Experience )
ENFANTS( NomEnfant,DateNaissance)
EXPERIENCE( DateExperience,Titre, HistoriqueSalaire)
HISTORIQUE-SALAIRE( DateSalaire,Salaire)

Zschéma pas en 1NF car les relations EMPLOYE et EXPERIENCE


contiennent des attributs non atomiques : ENFANTS, EXPERIENCE,
et HISTORIQUE-SALAIRE .
ZNormalisation :

EMPLOYE(Matricule,Nom,Prenom)
ENFANTS(Matricule, NomEnfant,DateNaissance )
EXPERIENCE(Matricule,DateExperience,Titre )
HISTORIQUE-SALAIRE(Matricule,DateExperience,DateSalaire,

David Célestin FAYE Bases de données


Deuxième forme normale (2NF) 81
Définition
Une relation est en deuxième forme normale (2NF) si :
elle est en 1NF
tout attribut non clé primaire est en dépendance
fonctionnelle élémentaire avec la clé primaire. Tout
attribut non clé dépend entièrement de la clé.

Exemple :
CLIENT(NumCli,Nom,Prenom,Rue,Ville) est en 2NF
COMMANDE_PRODUIT(NumProd,Quantite,NumFourn,Ville) n’est
pas en 2NF car on a N umP rod, N umF ourn → Quantite et
N umF ourn → V ille
La décomposition suivante donne deux relations en 2NF :

COMMANDE(NumProd,NumFourn,Quantite) ;
FOURNISSEUR(NumFourn,Ville).

David Célestin FAYE Bases de données


Troisième forme normale (3NF)- (Codd, 1970) 82
Définition
Une relation est en troisième forme normale (3NF) si :
elle est en 2NF
il n’existe aucune dépendance entre deux attributs non
clé primaire. Tous les attributs non clé sont en
dépendance fonctionnelle élémentaire directe avec
la clé. Il n’existe donc pas de dépendance transitive.

Une relation en 3ème forme normale est donc du type :

David Célestin FAYE Bases de données


Troisième forme normale (3NF) 83
Exemple :
EMPLOYE(Nss,nom,CodServ,ChefSer)
est en 2NF mais pas en 3NF car la DF CodServ → Chef Ser est
valide.
En décomposant en obtient :

EMPLOYE(Nss,nom,CodServ)
SERVICE(CodServ,ChefSer)

La relation
FOURNISSEUR(NumFourn,Pays Ville)
n’est pas en 3NF car il existe les dépendances
N F → V ille et V ille → P ays
En décomposant en obtient :

FOURN(NumFourn,Ville)
GEO(Ville,Pays)

David Célestin FAYE Bases de données


Algorithme de synthèse-(Algorithme de Bernstein) 84
Soit < R(U ), dep(r) >
1 Calculer la couverture minimale m = min(dep(r))

2 Partitionner m en m1 . . . mn ou chaque mj possède des DF


ayant la même partie gauche.

3 Pour chaque mj , construire< Rj (Uj ), mj > où Uj est


l’ensemble des attributs apparaissant dans Uj .
L’algorithme assure une décomposition
dans laquelle les relations sont en 3NF
la décomposition préserve les dépendances fonctionnelles
Remarque : Il est possible qu’au cours de la transformation de la
relation R originelle, on ait perdu sa clé. C’est la raison pour
laquelle P.A. BERSTEIN a proposé d’ajouter une étape à cet
algorithme, étape que l’on peut énoncer ainsi :
Si aucun des schémas définis précédemment ne contient de clé de
R, ajouter une relation RK(K), où K est une clé minimale de R,
celle-ci n’étant "munie" d’aucune dépendance.
Algorithme de synthèse 85

Vente (noClient, nomClient,noTéléphone, noCommande,


dateCommande, noArticle, description, prixUnitaire,
quantité).

dep(V ente) = {noClient → nomClient, noT elephone;


noCommande → noClient;
noCommande → dateCommande;
noCommande, noArticle → quantite;
noCommande, noArticle, noClient → quantite;
noArticle → description, prixU nitaire;
noCommande → nomClient}.

David Célestin FAYE Bases de données


Algorithme de synthèse 86

min(dep(V ente)) = {noClient → nomClient, noT elephone;


noCommande →
noClient, dateCommande;
noCommande, noArticle → quantite;
noArticle → description, prixU nitaire}
Chacune des dépendances produit une table

Client (noClient, nomClient, noTéléphone)


Commande(noCommande, dateCommande, noClient)
LigneCommande(noCommande, noArticle, quantité)
Article(noArticle, description, prixUnitaire)

David Célestin FAYE Bases de données


Importance de la 3FN 87

Toute relation peut toujours être décomposeée en relations en


3FN sans aucune perte
sans perte de DF, et
sans perte d’information
Ce n’est pas vrai pour les formes supérieures
Il faut donc toujours faire des schémas au moins en 3FN

David Célestin FAYE Bases de données


Forme normale de Boyce-Codd (Heath 1971 ... ) 88
Z Cas non prévu par la 3NF : cas un attribut constituant la clé
dépend d’un attribut ne constituant pas la clé.
Z COURS( ETUDIANT, MATIERE, PROF)
chaque ETUDIANT étudie une MATIERE enseignée par un PROF.
On suppose les DF
(ET U DIAN T, M AT IERE) → P ROF
P ROF → M AT IERE

Cette relation a deux identifiants :


(ET U DIAN T, M AT IERE)
(ET U DIAN T, P ROF )
Z Relation est 3NF, mais pas satisfaisante car une extension de
cette relation peut présenter des redondances

David Célestin FAYE Bases de données


Forme normale de Boyce-Codd 89
Z Exemple ETUDIANT MATIERE PROF
FALL MATHS BA
FALL PHYS LY
SALL MATHS BA
SALL PHYS KA

Z Si, par exemple, FALL n’étudie pas la Physique, on éliminera


le tuple ( FALL, PHYS, LY) et, de ce fait, on perd
l’information "LY enseigne la Physique" .
definition
Une relation est en forme normale Boyce Codd si les
seules dépendances fonctionnelles élémentaires sont du
type cle candidate → attribut.
Un schéma de relation est en BCNF si pour toute dépen-
dance non-triviale X → A, alors X est une super-clé.

La forme normale de Boyce-Codd impose que toutes les parties


gauches des DF soient des clés.
David Célestin FAYE Bases de données
Forme normale de Boyce-Codd 90

Z On peut décomposer COURS en 2 relations BCNF :


R1 ( PROF, MATIERE) R2 ( ETUDIANT, PROF)
ETUDIANT PROF
PROF MATIERE
FALL BA
BA MATHS
R1 R2 FALL LY
LY PHYS
SALL BA
KA PHYS
SALL KA

Z On notera que COU RS = R1 ▷◁ R2 mais que la dépendance


fonctionnelle
(ET U DIAN T, M AT IERE) → P ROF est perdue.
NB :
Certaines relations en BCNF peuvent contenir des redondances
et poser des problèmes lors des mises à jour.
Une décomposition FNBC est toujours SPI, mais pas
forcement SPD

David Célestin FAYE Bases de données


Algorithme de décomposition en BCNF 91
Algorithme de décomposition Tsou et Fisher (1982)
Procédure DécompositionFNBC (T, S)
Entrée :
T : une table avec ses dépendances fonctionnelles élémentaire
Sortie
S : un schéma relationnel pour T en FNBC
DÉBUT
Ajouter T à S
TANT QU’il y a une table T dans S qui n’est pas en FNBC
Décomposer T selon une dépendance élémentaire
X-> Y qui ne respecte pas la condition de FNBC
et remplacer T par T1(U-Y) et T2(X, Y ) dans S
FIN TANT QUE
FIN

Remarques
Toute relation à 2 attributs est FNBC
FNBC = aucune redondance dûe aux DFs
David Célestin FAYE Bases de données
Forme normale de Boyce-Codd 92

Vente (noClient, nomClient, noTéléphone, noCommande,


dateCommande, noArticle,description, prixUnitaire,
quantité)
min(dep(r)) = {noClient → nomClient, noT elephone;
noCommande → noClient, dateCommande;
noCommande, noArticle → quantite;
noArticle → description, prixU nitaire}
Z Vente pas en FNBC. En effet, la table a une clé candidate
{noCommande, noArticle} et il y a trois DF élémentaires
qui violent la noClient → nomClient, noT elephone
noCommande → noClient, dateCommande
noArticle → description, prixU nitaire

Z On choisit une dépendance pour orienter la décomposition

David Célestin FAYE Bases de données


Forme normale de Boyce-Codd 93
dateCommande
noCommande
nomClient
noClient
noArticle noTéléphone

description
quantité prixUnitaire

VenteReste Client

nomClient
noClient
dateCommande noTéléphone
noCommande
nomClient
noClient
noArticle noTéléphone

dateCommande
quantité prixUnitaire

Après décomposition :

Client (noClient, nomClient, noTelephone)


Commande(noCommande, dateCommande, noClient)
LigneCommande(noCommande, noArticle, quantite)
Article(noArticle, description, prixUnitaire)

David Célestin FAYE Bases de données


Forme normale de Boyce-Codd 94
Le processus complet de décomposition peut être schématisé sous
forme d’un arbre, tel qu’illustré par la figure ci-dessous

Vente

VenteReste Client

VenteReste2 Commande

Article LigneCommande

David Célestin FAYE Bases de données


Forme normale de Boyce-Codd 95

Exemple
Place (N°Etud, Matière, Rang)
rang sans ex aequo
N řEtud, M atiere → Rang
M atiere, Rang → N řEtud
2 identifiants : (N°Etud + Matiere)
(Rang + Matiere)
Place est en 3FN et est en FNBC

David Célestin FAYE Bases de données


La BCNF : Une forme idéale 96

La BCNF est, pour les DF, la forme idéale d’un schéma de bases
de données.
Les trois propriétés suivantes sont équivalentes
R est en BCNF par rapport à F ;
R n’a pas de problème de redondances par rapport à F ;
R n’a pas de problème de mise à jour par rapport à F ;

David Célestin FAYE Bases de données


Décomposition en 3FN et en FNBC 97

Propriété
Toute relation a au moins une décomposition en 3FN qui
préserve les dépendances fonctionnelles et qui est sans perte.
Toute relation a au moins une décomposition en BCNF qui est
sans perte mais qui peut ne pas préserver les DFs.
Faire un compromis
Accepter de ne pas être en BCNF, et donc d’avoir des
anomalies de mise à jour :
Se contenter de déclarer les clés.
Implémenter les DF qui ne BCNF pas des clés (avec des
déclencheurs).
Accepter de relâcher des contraintes, c’est à dire enlever des
DF et rendre l’application « plus souple ».

David Célestin FAYE Bases de données


Exemple (1/3) 98

Soit le problème de la gestion des emplois du temps modélisé


par deux DFs sur la relation R(Horaire, Salle, Cours)
pour un horaire et une salle donnés il n’y a qu’un seul cours :
Horaire, Salle → Cours
un cours a toujours lieu dans la même salle : Cours → Salle.
La relation R est en 3FN mais pas en FNBC. On considère trois
possibilités de décomposition.
Solution 1 : on accepte les redondances et on reste en 3FN
R Horaire Salle Cours
Mercredi 08H00 FS02 INFO242
vendredi 15H00 FS02 INFO242
Mercredi 10H00 FS02 INFO245

David Célestin FAYE Bases de données


Exemple (2/3) 99

Solution 2 : on décompose en BCNF en perdant la DF


Horaire, Salle → Cours

R2 Horaire Cours
R1 Cours Salle Mercredi 08H00 INFO242
INFO242 FS02 Vendredi 15H00 INFO242
INFO245 FS02 Mercredi 10H00 INFO245
* Mercredi 10H00 INFO242

Le tuple rouge(*) est bien autorisé dans R2 !

David Célestin FAYE Bases de données


Exemple (2/3) 100

Solution 3 : on fait un codage des couples Horaire, Salle et on


décompose en BCNF
Le codage permet de rajouter des attributs, qui regroupent
d’autres attributs, et des DF
On introduit un nouvel attribut créneau (Creneau) qui
identifie de façon unique un horaire dans une salle.
Avec les DFs Creneau → Horaire, salle et
Horaire, salle → Creneau on assure la bijection entre un
créneau et un couple horaire/salle.

David Célestin FAYE Bases de données


Exemple (2/3) 101

Solution 3 : on fait un codage des couples Horaire, Salle et on


décompose en BCNF
R0 Horaire Salle Creneau
Mercredi 08H00 FS02 Creneau1
vendredi 15H00 FS02 Creneau2
Mercredi 10H00 FS02 Creneau3

R2′ Creneau Cours


R1 Cours Salle
Creneau1 INFO242
INFO242 FS02
Creneau2 INFO242
INFO245 FS02
Creneau3 INFO245

David Célestin FAYE Bases de données


Dépendances multivaluées (plurivalente) 102
Z ETUDES(M AT IERE, P ROF, LIV RE) où
Z une M AT IERE peut être enseignée par plusieurs P ROF S
et peut correspondre à plusieurs LIV RES
Z la désignation du P ROF et le choix d’un LIV RE étant
complètement indépendants (ceci est important)
Z Donc pour chaque cours il y a un ensemble de profs et un
ensemble de livres ; ces deux ensembles sont indépendants
MATIERE PROF LIVRE

Informatique Diop Bases de Données


Maths Ndiaye Algèbre

Maths Ndiaye Géométrie


Physique Diagne  Thermodynamique
Informatique Diouf  Bases de Données
Physique Faye Thermodynamique

Informatique Diop Langage Cobol


Physique Diagne  Statique des Solides

Informatique Diouf  Langage Cobol

David Célestin FAYE Bases de données


Dépendances multivaluées 103

On constate que à une valeur donnée de M AT IERE est associé


un ensemble donné (et non pas une valeur donnée) de P ROF .
Diop
Informatique
Diouf

Maths Ndiaye

Diagne
Physique
Faye

On dira alors que M AT IERE ↠ P ROF est une dépendance


multivaluée. On dit que M AT IERE multidétermine P ROF .

David Célestin FAYE Bases de données


Dépendances multivaluées 104
Nous constatons d’ailleurs qu’il en existe une autre (à cause de
l’indépendance entre P ROF et LIV RE)

Bases de Données
Informatique
Langage Cobol

Algèbre
Maths
Géométrie

Thermodynamique
Physique
Statique des Solides

David Célestin FAYE Bases de données


Dépendances multivaluées 105

definition
Etant donné une relation R et X, Y des ensembles d’attributs
de R, on dit qu’il existe une dépendance multivaluée X ↠ Y
si
la connaissance d’une valeur de X détermine un unique
ensemble de valeurs de Y
ensemble indépendant des autres attributs R − X − Y
de R
Dépendances multivaluées 106
Sémantique
Une relation r sur R satisfait la DM X ↠ Y , noté r |=
X ↠ Y , ssi pour toute paire de tuples t1 et t2 de r tels que
t1 [X] = t2 [X], ils existent des tuples t3 et t4 avec t3 [X] =
t4 [X] = t1 [X] tels que :
t3 [Y ] = t1 [Y ] et t3 [R − Y ] = t2 [R − Y ]
t4 [Y ] = t2 [Y ] et t4 [R − Y ] = t1 [R − Y ]
Informellement, pour chaque valeur de X fixée, les valeurs
de Y et Z = R − XY sont indépendantes : on a toutes les
combinaisons possibles de Y et Z.

definition
Soit R un schéma de relation et X, Y ⊆ R. Il existe une DM
entre X et Y , notée X ↠ Y ssi, pour tout état r de R,

πX∪Y (r) ▷◁ πR−Y (r) = r (2)


Dépendances multivaluées 107

Definition
Une dépendance plurivalente X ↠ Y est triviale ssi
soit Y ⊆ X (comme pour les DF)
soit X ∪ Y = R(la DM n’impose l’existence d’aucun
tuple).

Dépendance multivaluée élémentaire (DME)


Dépendance multivaluée X ↠ Y d’une relation R telle que :

Y n’est pas vide et est disjoint de X


R ne contient pas une autre DM du type X ′ ↠ Y ′ telle
que X ′ ⊂ X et Y ′ ⊂ Y

David Célestin FAYE Bases de données


Dépendances multivaluées 108

Propriétés des dépendances multivaluées


Les DM triviales sont toujours satisfaites.
La définition de la satisfaction sont symétrique(règle du
complément),
Si r |= X ↠ Y alors r |= X ↠ R − X − Y également.
Dans notre exemple, X = M AT IERE et Y = P ROF ou
bien X = M AT IERE et Y = LIV RE.
Si r |= X → Y alors r |= X ↠ Y également
une DF est un cas particulier d’une dépendance multivaluée,
l’ensemble des valeurs de Y se réduisant à un seul élément
mais la réciproque est fausse.

David Célestin FAYE Bases de données


Axiomes d’inférence des DM 109
Z Réflexivité
Si Y ⊆ X alors X ↠ Y
Z Complémentation
Si X ↠ Y alors X ↠ R − X − Y
Z Augmentation
Si X ↠ Y et V ⊆ W alors XW ↠ Y V
Z Union
Si X ↠ Y et X ↠ Z alors X ↠ Y Z
Z Transitivité
Si X ↠ Y et Y ↠ Z alors X ↠ Z − Y
Z Décomposition
Si X ↠ Y et X ↠ Z alors
X ↠Y ∩Z , X ↠Y −Z , X ↠Z −Y
Z Sous-ensemble
Si X ↠ Y et W ↠ Z et Y ∩ W = ∅ alors
X ↠Y ∩Z , X ↠Y −Z
Axiomes d’inférence des DM 110

Réflexivité, complémentation, augmentation et transitivité forment


un système correct et complet pour l’inférence des DM

Rappels. Un système d’inférences est


correct : si toutes les déductions syntaxiques sont bien
sémantiquement valides ;
complet : toutes les déductions sémantiquement valides
peuvent bien être syntaxiquement déduites.
Z Généralisation
Si X → Y alors X ↠ Y
Z Pseudo-transitivité mixée
Si X ↠ Y , Z ⊆ Y W ∩ Y = ∅ , W → Z Alors X → Z

Ajoutés à réflexivité, complémentation, augmentation et


transitivité, ces règles forment un système correct et complet pour
l’inférence des DM et de DFs prises ensembles.
Dépendances multivaluées 111

La relation ETUDES pose des problèmes de mise à jour :


ajout d’un nouveau professeur : Diop au cours de BD
Corriger le nom d’un livre
...
Z Cependant ET U DES est déjà bien normalisé.
Z ET U DES est en BCNF parce qu’il n’y a pas de DF.
Z Lorsque des DM interviennent dans une relation, elles
introduisent des redondances qui compliquent la mise à jour
de cette relation (même si elle est en 3NF)
Z Fagin et Zaniolo ont alors introduit une 4ème forme normale.

David Célestin FAYE Bases de données


Quatrieme forme normale (4NF) 112
Définition
Une relation R est en 4ème forme normale si chaque fois
que l’on a une dépendance multivaluée non triviale A ↠ X,
pour tout autre attribut Y ∈ R, on a A −→ Y . Ceci revient
à dire que A contient une clé de R

Définition
Si une relation R est en BCNF et elle ne contient pas de
dépendance multivaluée alors R est en 4NF .

Remarque
R ne doit pas être décomposable en deux relations sans perte
de jointure.
La 4NF implique la BCNF puisqu’une dépendance
fonctionnelle est un cas particulier de dépendance multivaluée.
David Célestin FAYE Bases de données
Quatrieme forme normale (4NF) 113

1 permet de séparer des faits multivalués indépendants qui


auraient été réunis dans une même relation
2 ET U DES n’est pas en 4NF car M AT IERE ↠ P ROF
mais M AT IERE ↛ LIV RE.
3 4FN est une généralisation de la BCNF. toute table en 4FN
est nécessairement en BCNF
4 une table en FNBC est souvent aussi en 4FN parce que les
DM élémentaires problématiques, qui ne sont pas des DF,
sont peu.
Décomposition dans le cas de l’exemple précédent :

R1( MATIERE, PROF)


R2 ( MATIERE, LIVRE)

ET U DES = R1 ▷◁ R2

David Célestin FAYE Bases de données


Quatrieme forme normale (4NF) 114

Dépendance multivaluée élémentaire


qui cause de la redondance

Table T
U : ensemble de tous les attributs de T

Déterminant(X) ≠
Y
Clé candidate

Table T1 Table T2
U : ensemble de tous les attributs de T X Y

X Y

David Célestin FAYE Bases de données


Dépendance de jointure et 5ième forme normale(5NF) 115
Résolution une redondance dans une relation en la remplaçant
par deux de ses projections.
Cependant, dans certains cas, il peut ne pas exister de
décomposition sans perte de jointure de R en deux relations
Mais il peut exister une décomposition sans perte de jointure
en plus de deux schémas.(ces cas sont assez rares en pratique)
De plus, il peut ne pas exister de DF dans R qui violent les
formes normales jusqu’ à BCNF, et il peut ne pas y avoir de
DM non-triviale dans R qui violent la 4NF.
Dans ces cas, utilisation d’un autre type de dépendance,
appelé dépendance de jointure, et si elle est présente, on
effectue une décomposition à plusieurs branches vers une 5NF.
DJ contrainte sémantique particulière qui est très difficile à
détecter en pratique ; en conséquence, la normalisation jusqu’à
la 5NF est rarement faite en pratique.

David Célestin FAYE Bases de données


Dépendance de jointure (DJ)-(Rissanen 1979) 116

Dépendance de jointure (DJ)


Soient X1 , X2 , . . . , Xn des sous-ensembles d’un schéma
de relation R. Il y a une dépendance de jointure, notée
∗{X1 , X2 , . . . , Xn } dans la relation R, si :

R = ΠX1 (R) ▷◁ ΠX2 (R) ▷◁ . . . ▷◁ ΠX2 (R)

Notons qu’une DM est un cas particulier de dépendance de


jointure avec n = 2.
Dépendance de jointure jointure triviale
Une dépendance de jointure est triviale si une des parties, Xi ,
est l’ensemble de toutes les attributs de R.

David Célestin FAYE Bases de données


Cinquième forme normale (5NF) 117

Cinquième forme normale (5NF)


Une relation R est en cinquième forme normale (5NF) si, pour
toute dépendance de jointure non triviale ∗{X1 , X2 , . . . , Xn }
dans R, chacun des Xi contient une clé candidate de R.

Autrement dit, les seules décompositions qui préservent le


contenu sont celles où chacune des relations de la
décomposition contient une clé candidate de la relation.
Il est donc superflu de décomposer de ce point de vue.
Cette forme normale est finale vis-à-vis de la projection et de
la jointure : elle garantie qu’une relation en cinquième forme
normale ne contient aucune anomalie pouvant être supprimêe
en effectuant des projections (i.e. des décompositions).

David Célestin FAYE Bases de données


Cinquième forme normale (5NF) 118
Soit la relation ci-dessous
Fournisseur
NumFournisseur codeProduit numUsine
f1 p2 u1
f1 p1 u2
f2 p1 u1
f1 p1 u1
Un fournisseur fournit un certain nombre de produits.
Le même produit peut être fourni par plusieurs fournisseurs
Un fournisseur peut être attitré à plusieurs usines.
Une usine peut avoir plusieurs fournisseurs
Une usine peut utiliser plusieurs produits
un produit peut être utilisé par plusieurs usines.

David Célestin FAYE Bases de données


Cinquième forme normale (5NF) 119
Supposons que nous avons la contrainte suivante :
À chaque fois, (1) qu’un fournisseur f fournit un produit p (2)
qu’une usine u utilise un produit p, (3) que le fournisseur f
fournit un produit quelconque à l’usine u alors le fournisseur f
fournit aussi le produit p à l’usine u.
Le dernier fait est déductible des trois autres.
Cette table contient de la redondance de données parce que
certains faits sont répétés.
Par exemple, le fait que f 1 fournit p1 est répété à deux
reprises. Le fait que f 1 est attitré a ? u1 est aussi répété à
deux reprises. Il en est de même pour u1 qui utilise p1.
Cependant la relation est en 4NF

David Célestin FAYE Bases de données


Cinquième forme normale (5NF) 120
La relation F ournisseur souffre d’une dépendance de
jointure :
∗{(numF ournisseur, numP roduit), (numF ournisseur, numU s
(numP roduit, numU sine)}

Pour résoudre le problème de redondance, il faut décomposer


la relation en trois pour obtenir des relations en 5NF
FournisseurProduit FournisseurUsine ProduitUsine
NumFournisseur codeProduit NumFournisseur numUsine codeProduit numUsine
f1 p2 f1 u1 p2 u1
f1 p1 f1 u2 p1 u2
f2 p1 f2 u1 p1 u1

Aucune décomposition binaire de cette relation ne préserve le


contenu de la relation initiale car aucune jointure des tables
deux à deux des trois précédentes ne produit la relation
F ournisseur.
En EA, F ournisseur. serait une fausse association ternaire.
Le réel contient 3 liens binaires indépendants.
David Célestin FAYE Bases de données
DJ - conclusion 121

En pratique
Les DJ sont rares et pas faciles à détecter
On normalise en général en 4FN (si possible)
Cependant
Une relation en 4FN peut contenir encore des redondances et
poser des problèmes lors des m.a.j.
D’autres FN ont encore été proposées.

David Célestin FAYE Bases de données


Dépendances d’inclusion 122

Les Dépendances d’Inclusion (DI) se différencient des


fonctionnelles sur plusieurs points :
1 les DI peuvent être définies entre attributs de relations
différentes et possèdent un caractère global à la base, pas
local à une relation.
2 Les DI sont définies non pas entre deux ensembles d’attributs,
mais entre deux séquences d’attributs de même taille.
L’ordre des attributs est donc important pour les dépendances
d’inclusion !

David Célestin FAYE Bases de données


Dépendances d’inclusion 123

Syntaxe des dépendances d’inclusion


Soit S un schéma de base de données. Une Dépendance d’In-
clusion (DI) sur S est une expression de la forme

Ri [X] ⊆ Rj [Y ]
avec Ri , Rj ∈ S, X et Y des séquences d’attributs distincts
respectivement de Ri et de Rj , avec |X| = |Y |.

Intuitivement, une DI est satisfaite dans une base de données si


toutes les valeurs prises par la partie gauche apparaissent dans la
partie droite.

David Célestin FAYE Bases de données


Dépendances d’inclusion 124
Sémantique des dépendances d’inclusion
Soit d = {r1 , r2 , . . . , rn } une base de données sur un schéma
S = {R1 , . . . , Rn }. Une dépendance d’inclusion Ri [X] ⊆
Rj [Y ] sur S est satisfaite dans d, noté d |= Ri [X] ⊆ Rj [Y ],
ssi

∀ti ∈ ri , ∃tj ∈ rj ti [X] = tj [Y ]


(ou de manière équivalente ssi πX (ri ) ⊆ πY (rj ))

Exemple
Tout codeClient projeté actuellement de la relation Commandes
est le code d’un client apparaissant dans la relation Clients

Commandes[codeClient] ⊆ Clients[codeClient]

David Célestin FAYE Bases de données


Dépendances d’inclusion 125

Exemple 1 :
Supposons des schémas de relation pour décrire les matières :
M atiere(codeM atiere, intitule, volumeHoraire)
et un schéma de relation pour décrire les séances de cours :
Seance(date, codeM atiere, numSalle)
Pour imposer que les numéros de matières dans les séances
soient bien des matières qui existent, on définit la dépendance
d’inclusion :

Seance[codeM atiere] ⊆ M atiere[codeM atiere]

David Célestin FAYE Bases de données


Dépendances d’inclusion 126

Exemple 2 :
Supposons un schéma de relation Reservations modélisant
les réservations de vidéos pour les séances
Reservations(date, codeM atiere, numP rof, numV ideo)
Pour assurer la cohérence de la base, on doit préciser que les
vidéos doivent être réservés pour des séances de cours
existantes dans la base on définira alors la DI :

Reservations[date, codeM atiere] ⊆ Seance[date, codeM atiere]

David Célestin FAYE Bases de données


Dépendances d’inclusion : Clé étrangère 127
Une contrainte d’intégrité référentielle est une DI dont la partie
droite est une clé

La partie gauche d’une contrainte d’intégrité référentielle est


appelée clé étrangère

Les DI ne sont pas toutes des clés étrangères

On souhaite imposer que tous les cours possèdent au moins


une séance dans l’année, on définira alors une DI :
Cours[numCours] ⊆ Seance[numCours]
Tous les cours apparaîtront donc au moins une fois dans la
relation des séances
Mais numCours n’est pas une clé de Seance
Cette DI n’est donc pas une contrainte d’intégrité référentielle.

David Célestin FAYE Bases de données


Inférence de dépendances d’inclusion 128
Système d’inférence de Casanova et al.
Soit I un ensemble de DI sur un schéma de base de données
S.
Les règles d’inférence suivantes sont appelées système
d’inférence de Casanova et al. pour les DI, dans lequel σ est
une permutation d’un sous-ensemble de {1..n} :
Réflexivité

R[X] ⊆ R[X]
Permutation & projection

R1 [A1 . . . An ] ⊆ R2 [B1 . . . Bn ] ⇒
R1 [Aσ(1) . . . Aσ(k) ] ⊆ R2 [Bσ(1) . . . Bσ(k) ]
pour chaque séquence σ(1)...σ(k) d’entier distincts dans {1...n}
Transitivité
R1 [X] ⊆ R2 [Y ] et R2 [Y ] ⊆ R3 [Z] ⇒
R [X] ⊆ R
David Célestin1FAYE 3 [Z]
Bases de données
Propriétés du système d’inférence 129

Ce système d’inférence est lui aussi est correct et complet


Rappels. Un système d’inférences est
correct : si toutes les déductions syntaxiques sont bien
sémantiquement valides ;
complet : toutes les déductions sémantiquement valides
peuvent bien être syntaxiquement déduites.
Contrairement aux DF, le problème d’inférence des DI est très
difficile à traiter dans le cas général (PSPACE-complet), donc
infaisable dans le cas général. -voir cours Algo & compléxité ;
La notion I + s’applique aussi pour noter la fermeture d’un
ensemble de DI.
En revanche, la notion de fermeture d’un ensemble d’attributs
par rapport à un ensemble de DI ne s’applique pas, car les DI
manipulent des séquences et non des ensembles.

David Célestin FAYE Bases de données


Combinaison DF et DI 130

Inférence des DF à partir d’un ensemble de DF,


Inférence des DI à partir d’un ensemble de DI.
Mais il existe des interactions entre DF et DI
Proposition
Si |X| = |T |, les propriétés suivantes sont vérifiées
1 {R[XY ] ⊆ S[T U ] , S : T → U } |= R : X → Y
2 {R[XY ] ⊆ S[T U ] , R[XZ] ⊆ S[T V ] , S : T → U } |=
R[XY Z] ⊆ S[T U V ]
3 Σ = {R[XY ] ⊆ S[T U ] , R[XZ] ⊆ S[T V ] , S : T →
U },
si r |= Σ, s |= Σ et u ∈ r alors u[Y ] = u[Z]

David Célestin FAYE Bases de données


Dépendance généralisée -(Sadri et Ullman 1981) 131

Une dépendance généralisée est une forme de dépendance


encore plus générale que les dépendances de jointure.
Ce genre de dépendance permet en particulier d’exprimer les
dépendances emboîtées.
La représentation utilisée est treès attrayante, car elle permet
de visualiser les patrons qui doivent apparaître dans une table.
Dépendance généralisée
Une dépendance généralisée est un énoncé de la forme : si
un ensemble de patrons de lignes est présent dans une table,
alors une certaine condition doit être respectée, par exemple
un patron particulier de ligne doit apparaître.

David Célestin FAYE Bases de données


Dépendance généralisée 132
Exemple La dépendance de jointure

∗{(numF ournisseur, numP roduit), (numF ournisseur, numU sine),


(numP roduit, numU sine)}
est représentée par la dépendance généralisée suivante sous forme
de tableau :
NumFournisseur codeProduit numUsine
f1 p2 u1
f1 p1 u2
f2 p1 u1
f1 p1 u1
Les trois premières lignes représentent un patron général.
Les valeurs représentent des variables qui peuvent prendre des
valeurs quelconques.
La dernière ligne représente la conclusion de la règle.
Dans ce cas, la règle spécifie qu’un certain patron de ligne
doit être présent
David Célestin FAYE Bases de données
Normalisation 133

1 Impact sur les requêtes ?


Le temps d’exécution peut augmenter à cause des jointures
nouvelles (en pratique, on va « dénormaliser » après)
David Célestin FAYE Bases de données
Normalisation 134
1FN élimine les attributs non atomiques

David Célestin FAYE Bases de données


Normalisation 135

David Célestin FAYE Bases de données


Avantages & Inconvénients de la normalisation 136
Avantages
1 Redondance réduite

moins de données dans la base, donc une plus petite BD,


plus petite est la BD et plus rapides sont les E/S.
2 Plus petites relations et plus petits tuples
plus de tuples peuvent être affichés ou imprimer sur une page,
plus de tuples peuvent être traités en une même E/S,
plus de tuples peuvent être mis en mémoire cache
3 Assure que la BD est dans un état cohérent
Inconvénients
Par son nombre élevé de relations de petites tailles :
1 n’optimise pas la performance s’il faut effectuer plusieurs
jointures pour retrouver l’information.
2 les jointures peuvent être coûteuses en temps CPU et en
E/S

David Célestin FAYE Bases de données


La dénormalisation 137

La dénormalisation...
est un processus intentionnel visant à s’éloigner de la
normalisation pour améliorer les performances de la BD,
peut être appliquée sur des colonnes ou des relations entières,
s’effectue après la normalisation,
requiert du concepteur de la BD de connaître comment les
données seront utilisées,
Elle peut être utilisé pour ajuster la BD à une application
particulière.

David Célestin FAYE Bases de données


La dénormalisation 138

Bénéfices
minimise le besoin de jointures,
réduit le nombre de clés étrangères (foreign key),
réduit le nombre d’index,
réduit le nombre de relations.

Le choix d’un bon schéma sera toujours un compromis entre la


performance de la BD (moins de jointures) et l’absence
d’anomalies de mise à jour (pas de redondance de donneées).

Le concepteur doit faire une étude sur la fréquence des besoins


de certaines données pour justifier la redondance des données.

David Célestin FAYE Bases de données

Vous aimerez peut-être aussi