Documente Academic
Documente Profesional
Documente Cultură
relations
PARTIE I
Dépendances et formes normales
Dpt Informatique
1
Université de Nantes
Formes normales :
pourquoi ?
2
Problèmes
(anomalies)
de redondance : la même valeur d’un sous-ensemble
d’attributs apparaît plusieurs fois.
3
Exemple (B. Defude, C. Date)
4
Exemple
Redondance : L’information « le fournisseur Labaleine est sur
Paris » apparaît autant de fois que l’on a commandé de
produit à ce fournisseur.
5
Liens entre les
attributs ?
Entre «fournisseur» et «adresse» ?
6
Notations et
conventions
U : ensemble d’attributs ;
A, B, C : attributs particuliers.
7
Dépendance
fonctionnelle (df)
Soit R(U) un schéma de relation ;
La dépendance fonctionnelle
X->Y est vraie sur R ssi quelle que soit r instance de R, X->Y
est vrai dans r.
i.e. ssi tous les tuples de R qui ont même valeur pour X ont
même valeur pour Y
8
Dépendance
fonctionnelle
On dit aussi X détermine Y, Y dépend
fonctionnellement de X.
<R(U), DF>
9
Dépendance
élémentaire (dfe)
Soit R(U), DF et soit la dépendance
fonctionnelle X->A appartenant à DF, avec A non
inclus dans X (i.e. pas trivial).
10
Exercice
11
Propriétés des dfs
Quelques règles
Split
Combination
Trivial
12
Propriétés des dfs
Réflexivité
Transitivité
Augmentation
13
Propriétés des dfs
Union
Pseudo-transitivité
14
Fermeture d’un
ensemble d’attributs
15
Algorithme de
+
calcul de X
Début X+ <- X
Répéter
16
Clés
Ensemble minimal d’attributs qui détermine tous les
autres.
17
Fermeture d’un
ensemble de df
Soit DF un ensemble de df.
18
Couverture
minimale de DF
Sous ensemble minimal de DF permettant de générer toutes les
autres.
CV(DF)+ = DF+
19
Calcul de CV(DF)
20
Comment faire le
pas 2
Prendre une df avec coté gauche > 1 attributs
(supposons 2 ici)
22
Formes normales
1 et 2
1FN : tous les attributs sont atomiques
23
2FN
PC ->NC
24
3e forme normale
(v2)
NC->NC
25
3FN n'est pas
suffisant
26
Boyce-Cood-Kent
(FNBCK ou BCNF)
PC->PC et NC->PC
27
Quoi faire si une relation
n'est pas normalisée ?
Découper la relation en
plusieurs relations à l'aide
des algorithmes de
normalisation.
28
Normalisation des
relations
PARTIE II
Algorithmes de Normalisation
29
Normalisation
d’une relation
La normalisation dans une
forme normale « nf » d’une
relation R est le remplacement
de la relation par plusieurs
relations qui sont dans la
forme normale « nf » et qui,
« globalement » conservent
exactement les informations
contenues dans R.
30
Plan
Décomposition d’une relation
Algorithmes de normalisation
Par synthèse
Par décomposition
31
3FN et BCNF
Ces formes normales garantissent que les anomalies
ne seront pas présentes
de redondance,
de mise à jour,
d'ajout et
de suppression
Mais, peut-on
33
Décomposition
Une décomposition de <R(U), DF> est le remplacement
de <R(U), DF> par un ensemble de schémas
34
Décomposition
sans perte de dfs
Définition :
35
Décomposition
sans perte d’info
Définition :
36
Théorème pour spi
Soit <R(U), DF> ; Z = U - {X,Y}
et vice-versa.
38
Normalisation :
résultats
Théorème 1
Théorème 2
39
Algorithmes de
normalisation
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.
40
Normalisation par
synthèse
41
Algorithme de
Bernstein
Entrée : <R(U), DF>
42
Algorithme de
Bernstein
43
Remarque
Certains schémas définis doivent être regroupés,
lorsque l’ensemble d’attributs de l’un est inclus dans
l’ensemble d’attributs de l’autre.
R(A, B, C, D)
DF = {A, B -> C,
C -> A,
B -> D}
44
Exemple
R(C, E, P, N, J, H, S)
DF = { C, E, P -> N
J, H, S -> P, C
E, P -> C
E, P, S -> C }
45
Normalisation par
décomposition
On part du schéma initial et on le remplace par 2
autres schémas, contenant moins d’attributs et ainsi
de suite jusqu’à n’avoir que des schémas dans la
forme normale désirée.
46
Algorithme
decomp()
Entrée : <R(U), DF>
47
Algorithme
decomp()
1. Choisir une dépendance non triviale de DF X ->
Y, X ne contenant pas de clé.
3. Pour i = 1, 2 faire
48
Remarque
49
Conclusion
Il faut faire un compromis entre performance et absence
de problèmes.
Exemple : R(A, B, C, D)
50