normalisation d’une base de données r elationnel le (chapitre 5)
DESCRIPTION
Bases de Données Relationnelles. Normalisation d’une base de données r elationnel le (Chapitre 5). Qu’est-ce qu’une BD relationnelle ‘correcte’ ?. Un ensemble de relations tel que : chaque relation décrit un fait élémentaire avec les seuls attributs qui lui sont directement liés - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/1.jpg)
Normalisation d’une base de
données relationnelle
(Chapitre 5)
Bases de Données Relationnelles
![Page 2: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/2.jpg)
Qu’est-ce qu’une BD relationnelle ‘correcte’ ?
Un ensemble de relations tel que: chaque relation décrit un fait élémentaire
avec les seuls attributs qui lui sont directement liés
il n'y a pas de redondance d’information, génératrices de problèmes lors des MAJ
il n'y a pas de perte d ’information Personne (nom, prénom), Adresse (no, rue,
ville) Qui habite oú ? Impossible de répondre !
![Page 3: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/3.jpg)
Qu’est-ce qu’une BD relationnelle ‘incorrecte’ ?
Une relation n’est pas correcte si: elle implique des répétitions au niveau de
sa population
elle pose des problèmes lors des MAJ insertions / modifications / suppressions
Les conditions pour qu'une relation soit correcte peuvent être définies formellement:
=> règles de normalisation
![Page 4: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/4.jpg)
Normalisation
Processus de transformation d'une relation posant des problèmes lors des MAJ en relations ne posant pas de problèmes
On mesure la qualité d'une relation par son degré de normalisation
1NF, 2NF, 3NF, BCNF, 4NF, etc.
![Page 5: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/5.jpg)
Formes normales: 1FN
Une relation est en 1FN si chaque valeur de chaque attribut de chaque tuple est une valeur simple (tous les attributs sont simples et monovalués).
Exemple:
Livraison (N°fourn, adr.f, N°prod, prix.p, qté)
![Page 6: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/6.jpg)
Exemple de mauvaise relation en 1FNLivraison (N°fourn, adr.f, N°prod, prix-p, qté)
3 Lausanne 52 65 1022 Bienne 10 15 522 Bienne 25 10 12
3 Lausanne 25 10 5 3 Lausanne 10 15 20
L’adresse du fournisseur ne dépend pas du produit. Le prix du produit ne dépend pas du fournisseur
REDONDANCES Anomalies de mise à jour
![Page 7: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/7.jpg)
Exemple de mauvaise relation en 1FNLivraison (N°fourn, adr.f, N°prod, prix-p, qté)
3 Lausanne 52 65 1022 Bienne 10 15 522 Bienne 25 10 12
3 Lausanne 25 10 5 3 Lausanne 10 15 20
Si un fournisseur change d’adresse et qu’un seul tuple (une seule ligne) est mis à jour: incohérence
Si une nouvelle ligne est insérée pour un fournisseur connu, mais avec une adresse différente:
incohérence
![Page 8: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/8.jpg)
Exemple de mauvaise relation en 1FNLivraison (N°fourn, adr.f, N°prod, prix-p, qté)
3 Geneve 52 65 1022 Bienne 10 15 522 Bienne 25 10 12
3 Lausanne 25 10 5 3 Lausanne 10 15 20
Si un fournisseur change d’adresse et qu’un seul tuple (une seule ligne) est mis à jour: incohérence
Si une nouvelle ligne est insérée pour un fournisseur connu, mais avec une adresse différente:
incohérence
![Page 9: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/9.jpg)
Normalisation ou traduction EA
Schéma relationnel normalisé
VALIDATION
Règles
TRADUCTIONEA - R
Niveau conceptuel (EA)
Niveau logique (Relationnel)
NORMALISATION
Schéma EA
Schéma EA valide
Schéma Relationnel
![Page 10: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/10.jpg)
Exemple
Produit (NP, Nom, Couleur)
Fournisseur (NF, Nom, Adr, Tél)
Livraison (NP, NF, Date, Qté)
Produit0-n 0-n
Fournisseur
Nom Adr. Nom Coul.QtéDate TelTel
Fournisseur ProduitLivraison0-n 0-n
Nom Adr. Nom Coul.Qté DateTelTel
VALIDATION
Règles
TRADUCTION
Fournisseur (NF, Nom, Adr)Produit (NP, Nom, Couleur) Livraison (NP, NF, Date, Qté, Tél)
Décomposition des relations
non satisfaisantes NORMALISATION
Livraison
![Page 11: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/11.jpg)
Formalisation du problème
L’adresse d’un fournisseur ne dépend que du fournisseur, ..…
DÉPENDANCE FONCTIONNELLE (DF)
soit une table T (x, y, z)
il existe une DF: x y si et seulement si dans T à une même valeur de x correspond toujours une même valeur de y
![Page 12: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/12.jpg)
Formalisation
T : X Y Z x1 y1 z1 ..........................
x1 y1 z2..........................
X Y : X détermine Y Y dépend de X X: source de la DF, Y: cible de la DF la source peut être un ensemble d’attributs:
(nom, prénom) adresse
![Page 13: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/13.jpg)
Propriétés des DF (Armstrong's Axioms)
Transitivité:si X Y et Y Z alors X Z (DF déduite)
Augmentation:si X Y alors (A, X) Y quelque soit A (DF non élémentaire)
Reflexivité: si Y X alors X Y (DF triviale)
On ne s’intéresse qu’aux DF élémentaires non déduites et non triviale.
![Page 14: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/14.jpg)
Graphe des DF
Pour chaque table il faut connaître les DF intéressantes. Il est facile alors de les représenter sous forme de graphe:
graphe minimum des DF (orienté)
Exemple: T (A, B, C, D, E)
E A E B E C (E A, B, C) C D
E
A B C
D
![Page 15: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/15.jpg)
Exemple de graphe des DFLivraison (N°fourn, adr-f, N°prod, prix-p, qté) N°fourn adr-f
l ’adresse d ’un fournisseur ne dépend que du fournisseur
N°prod prix-p le prix d ’un produit ne dépend que du produit
(N°fourn, N°prod) qté la quantité livrée dépend du produit et du
fournisseur
[faux: N°fourn qté , N°prod qté ]N°fourn N°prod
adr-f qté prix-p
![Page 16: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/16.jpg)
DFs et identifiants Le graphe minimum des DF permet de trouver les
identifiants de la table L’identifiant d ’une table est l ’ensemble (minimal)
des nœuds du graphe minimum à partir desquels on peut atteindre tous les autres nœuds (via les DF)
Pour que ce soit faux il faudrait qu’il y ait deux lignes avec la même valeur de l’« identifiant » et des valeurs différentes pour les autres attributs, ce qui est en contradiction avec les DF.
Exemple: T1 (A, B, C, D, E)E
A B C D
![Page 17: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/17.jpg)
X Y
DFs et identifiants
Autre exemple: T2 (A, B, C, D, E, X, Y)
A B C E
D
T2 (A, B, C, D, E, X, Y)
![Page 18: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/18.jpg)
DFs et identifiants
Autre exemple: T3 (X, Y, Z)
DF: X YZ, YZ X
Y Z
X
![Page 19: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/19.jpg)
Normalisation
Que faire si une table n ’est pas « normalisée » ?
DECOMPOSITION
La table doit être remplacée par un ensemble de tables (plus petites: moins d’attributs)
![Page 20: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/20.jpg)
Décomposition d'une relation
Soit une relation non satisfaisante, trouver un ensemble de relations satisfaisantes qui décrive les mêmes informations
Pour vérifier qu’une relation est décomposable sans perte d’information:
Nombreux algorithmes de décomposition
Mais attention: les relations sont normalisées, mais peuvent être sémantiquement non significatives.
RelationEnsemble de sous-relations obtenues par projection
* (jointure)
![Page 21: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/21.jpg)
Projection
Opération unaire la syntaxe : A1,A2,…An(R) (avec A1, … An des attributs
de R) la sémantique : tous les n-uplets de R, mais avec
seulement les attributs A1, … An le schéma : schéma(A1,A2,…An(R)) = A1, … An
d’éventuelles remarques : |A1,A2,…An(R)| <= |R| un exemple :
S B C Db c da a ba a c
B,D(S) B Db da ba c
![Page 22: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/22.jpg)
Jointure
Opération binaire la syntaxe : R S la sémantique :
Si schéma(R) schéma(S) = A1, …, An,Si t1R et t2S sont égaux sur A1, .. An, on
les « recolle » (avec t1 et t2 des n-uplets)Si schéma(R) schéma(S) = , c’est le produit cartésien
le schéma : schéma(R S) = schéma(R) schéma(S)
![Page 23: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/23.jpg)
Exemple
R A Ba ba cb b
S B C Db c da a ba a c
Aab
B C Db c db c d
R S
![Page 24: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/24.jpg)
Méthode formelle de décomposition
Théorème de Heath
T (x, y, z) est décomposable sans perte d’information en
T1 (x, y) et T2 (x, z)
si x y
![Page 25: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/25.jpg)
Application de Heath
N°fourn adr.f. (N°fourn, adr.f.) ok (N°fourn, N°prod, prix.p.,
qté)
N°prod prix.p (N°prod, prix.p) ok (N°prod, N°fourn, qté)
N°prod, N° fourn qté ok
N°fourn N°prod
Adr.f . qté prix.p
Livraison (N°fourn, adr.f, N°prod, prix.p, qté)
![Page 26: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/26.jpg)
Qualité d’une décomposition
Une « bonne » décomposition est une décomposition
1) sans perte d ’information
2) sans perte de DF
Sans perte de DF:
toute DF doit être dans l’une des tables obtenues par décomposition
![Page 27: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/27.jpg)
Sans perte d ’information
La « recomposition » de la table à partir des « morceaux » doit redonner la table initiale
soit T (x, y, z) décomposée en T1 ( x, y ) T2 (x, z )
tel que: T1 = PROJECTION [x, y] T
T2 = PROJECTION [x, z ] T
la décomposition est sans perte d ’informations
si et seulement si : T = JOINTURE (T1, T2)
![Page 28: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/28.jpg)
Exemple: bonne décomposition T (NomEmp, adresse, poste, age)
Zoé
Armand
Marie
Lausanne
Genève
Bienne
secrétaire
secrétaire
directeur
27
32
38
T1 (NomEmp, adresse, poste) T2 (NomEmp, age)
Zoé
Armand
Marie
Lausanne
Genève
Bienne
secrétaire
secrétaire
directeur
Zoé
Armand
Marie
27
32
38
T = JOINTURE (T1, T2)
![Page 29: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/29.jpg)
Exemple: mauvaise décomposition
T12 (NomEmp, adresse, poste) T22 (poste, age)
Zoé
Armand
Marie
Lausanne
Genève
Bienne
secrétaire
secrétaire
directeur
secrétaire
secrétaire
directeur
27
32
38
JOINTURE (T12, T22) =
Zoé
Zoé
Armand
Lausanne
Lausanne
Genève
secrétaire
secrétaire
secrétaire
27
32
27
32secrétaireGenèveArmand
38directeurBienneMarie
T
![Page 30: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/30.jpg)
Exemple: perte de DF
T (NomEmp, adresse, CP)
Zoé
Armand
Marie
Lausanne
Genève
Bienne
1016
1020
1030
NomEmp
adresse
CP
Zoé
Armand
Marie
1016
1020
1030
Zoé
Armand
Marie
Lausanne
Genève
Bienne
T1 (NomEmp, CP) T2 (NomEmp, adresse)
![Page 31: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/31.jpg)
Exemple: perte de DF
JOINTURE (T1, T2) =T sans perte d ’information
MAJ de adresse en T2 DF CP adresse incohérence entre T1 et T2 si pas
de contrôle par application
![Page 32: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/32.jpg)
Formes normales: 1FN
Une relation est en 1FN si chaque valeur de chaque attribut de chaque tuple est une valeur simple (tous les attributs sont simples et monovalués).
Exemple:
Livraison (N°fourn, adr.f, N°prod, prix.p, qté)
![Page 33: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/33.jpg)
2ème forme normale: 2FN
mélange la description:
- de la livraison ( ≠fourn., ≠produit, quantité-livrée)
- du fournisseur ( ≠fourn., adr.-fourn)
- du produit (≠produit, prix)
N°fourn N°prod
Adr.f . qté prix.p
Livraison (N°fourn, adr.f, N°prod, prix.p, qté)
Permet d ’éliminer les attributs qui ne décrivent pas l ’« objet » traduit par la relation
![Page 34: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/34.jpg)
Exemple de mauvaise relation en 1FNLivraison (N°fourn, adr.f, N°prod, prix-p,
qté) 3 Lausanne 52 65 10
22 Bienne 10 15 522 Bienne 25 10 12
3 Lausanne 25 10 5 3 Lausanne 10 15 20
![Page 35: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/35.jpg)
2ème forme normale: définition
des DF partent de composants de l ’identifiant: Livraison n’est pas en 2FN
une table est en 2FN si - elle est en 1FN, et - chaque attribut qui ne fait pas partie de l’identifiant dépend d’un identifiant
entier
Livraison (N°fourn, adr.f, N°prod, prix.p, qté)
N°fourn N°prod
adr.f qté prix.p
![Page 36: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/36.jpg)
Application de Heath
N°fourn adr.f. (N°fourn, adr.f.) ok (N°fourn, N°prod, prix.p.,
qté)
N°prod prix.p (N°prod, prix.p) ok (N°prod, N°fourn, qté)
N°prod, N° fourn qté ok
N°fourn N°prod
Adr.f . qté prix.p
Livraison (N°fourn, adr.f, N°prod, prix.p, qté)
![Page 37: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/37.jpg)
3FN: 3ème forme normale
doit être décomposée en
F (N° fourn, ville)G (ville, pays)
Permet d’éliminer des sous-relations incluses dans une relation Exemple: Fournisseur (N°fourn, ville, pays)
N°fourn
ville pays
![Page 38: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/38.jpg)
Exemple
Fournisseur (N°fourn., ville, pays) 3 Lausanne Suisse
21 Paris France22 Paris France
4 Lausanne Suisse 5 Lausanne Suisse
![Page 39: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/39.jpg)
3ème forme normale: définition
Profondeur de l ’arbre des DF > 1 : pas en 3FN
3FN: si T est en 2FN et chaque attribut qui ne fait pas partie de l’identifiant dépend directement d’un identifiant entier
Fournisseur (N°fourn., ville, pays)N°fourn
ville pays
![Page 40: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/40.jpg)
3ème forme normale: définition
Plusiers identifiants:
3FN: chaque attribut qui ne fait pas partie de un des plusiers identifiants dépend directement du identifiant entier
N°fourn nom-fourn
N°produitprix
Fournisseur (N°fourn, nom-fourn, N°produit, prix)
![Page 41: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/41.jpg)
FNBC Forme normale de Boyce-Codd
Généralise la 3FN aux relations avec plusieurs identifiants
Fournisseur (N°fourn, nom-fourn, N°produit, prix)
(BCNF)
Une table est en FNBC si elle est en 3FN et si toute source complète de DF (élémentaire) est un identifiant entier
![Page 42: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/42.jpg)
le passage en FNBC n’est pas toujours possible sans perte de dépendances
FNBC: example Fournisseur Fournisseur (N°fourn, nom-fourn, N°produit, prix)
N°fourn nom-fourn
N°produitprix
est en 3FN mais pas en FNBC
![Page 43: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/43.jpg)
Décomposition Fournisseur Fournisseur (N°fourn, nom-fourn, N°produit, prix)
N°fourn nom-fourn
N°produitprix
F1 (N°fourn, nom-fourn)
F2 (N°fourn, N°produit, prix) ou
F2’ (nom-fourn, N°produit, prix)
![Page 44: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/44.jpg)
FNBC: example Place
Place (N°Etud, Matière, Rang)
N°Etud Matière
Rang
Identifiants : 1) N°Etud + Matière
2) Rang + Matière Place est en 3FN et est en FNBC
![Page 45: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/45.jpg)
FNBC contre-example
Enseignement (NomEtud, Matière, Prof)
NomEtud Matière
Prof
Identifiants : 1) NomEtud + Matière
2) NomEtud + Prof Enseignement est en 3FN mais n’est pas en
FNBC
![Page 46: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/46.jpg)
Exemple
Problème avec suppression Perte d'information
Rossier
Rossier
Blanc
RDB
Programm.
RDB
Aberer
Odersky
Spaccapietra
Blanc Programm.Guerraoui
Perret RDB Guerraoui
![Page 47: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/47.jpg)
Décomposition Enseignement
Enseignement (NomEtud, Matière, Prof) Soit la décomposition:
T1 (Prof, Matière) T2 (NomEtud, Prof) T1 + T2 : sans perte d ’information
mais avec perte de la DF: (NomEtud, Matière) Prof
il faut ajouter la C.I.: un étudiant suit une matière donnée
avec un seul professeur
![Page 48: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/48.jpg)
Exemple
mauvais !
RDB
Programm.
RDB
Aberer
Odersky
Spaccapietra
Programm.Guerraoui
Rossier
Rossier
Blanc
Aberer
Odersky
Spaccapietra
Blanc Guerraoui
Blanc Aberer
![Page 49: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/49.jpg)
3FN: définition plus general
Plusiers identifiants et DF elementaire A->B Cond1: A est un identifiant Cond2: B fait part d'un identifiant
FNBC si Cond1
3NF (plusiers identifiants) si Cond1 OR Cond2
N°fourn nom-fourn
N°produitprix
Fournisseur (N°fourn, nom-fourn, N°produit, prix)
![Page 50: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/50.jpg)
Quatrième Forme Normale (4FN)
Dépendance multivaluée (DM)
A B
a { b1, … b1+x} x = 1 : A B
A CB A B
A B
B A
A B
A C
"trivial"necessary
![Page 51: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/51.jpg)
4FN: exemple et décomposition
Catalogue (N°Article, Couleur, Taille)
A C1 T1
A C2 T2
A C2 T1
A C1 T2
N°Article Couleur
N°Article Taille
Décomposition : R1 (N°Article, Couleur)
R2 (N°Article, Taille)
(stronger version of Heath)
![Page 52: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/52.jpg)
Méthode formelle de décomposition
Théorème de Heath (stronger)
T (x, y, z) est décomposable sans perte d’information en
T1 (x, y) et T2 (x, z)
si x y
(and therefore also x z)
![Page 53: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/53.jpg)
4 FN: sémantique permet de séparer des fait indépendants qui auraient
été réunis dans une même relation exemple:
- il existe plusieurs cours - tout cours peut être assuré par plusieurs professeurs - tout cours possède un ensemble de livres de référence
alors
cours (intitulé, nom-prof., titre-livre) donne une représentation très redondante, qu ’il
convient de remplacer par décomposition
![Page 54: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/54.jpg)
RDB
4FN: exemple
Cours
intitulé nom-prof titre-livre
cours (intitulé, nom-prof., titre-livre)
RDB {Aberer, Spaccapietra} {Ullman, Date}
RDB
RDB
Ullman
Date
Ullman
RDB
Aberer
Aberer
Spaccapietra
Spaccapietra Date
![Page 55: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/55.jpg)
4 FN: définition cours (intitulé, nom-prof., titre-livre)
décomposition: cours-p (intitulé, nom-prof.) cours-1 (intitulé, titre-livre)
Formalisation: dans cours (intitulé, nom-prof., titre-livre) il existe une dépendance multivaluée
intitulé nom-prof, titre-livre Une relation est en 4FN s ’il n ’existe pas de
dépendance multivaluée qui ne soit pas une dépendance fonctionnelle
![Page 56: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/56.jpg)
4FN: définition formelle
Soit une relation R (x,y,z) z pouvant être vide Il y a Dépendance multivaluée (DM)
x ---->> y si à toute valeur de x correspond un ensemble de
valeurs de y qui est totalement indépendant de z Remarque: DF est un cas particulier de DM
R est en 4 FN si elle est en 1ère FN et si toute DF ou DM de R a pour source un identifiant entier de R Remarque: 4 FN implique BCNF (FNBC)
![Page 57: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/57.jpg)
Cinquième Forme Normale (5FN) Permet de décomposer une relation en faits
élémentaires exemple: Vins (buveur, cru, producteur) Peut être décomposable en
V1 (buveur, cru) V2 (buveur, producteur) V3 (cru, producteur)
Avec Vins = V1 |X| V2 |X| V3 On dit qu’il y a dépendance de jointure
![Page 58: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/58.jpg)
Conception d’une BD relationnelle
(niveau conceptuel)
Méthode "classique"
Objectif: arriver à un ensemble de relations tel que
- chaque relation décrit un type d’ « objet » avec les seuls attributs qui lui sont directement liés
- les redondances d ’information (génératrices de problèmes lors des mises à jour) sont éliminées
![Page 59: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/59.jpg)
Conception d’une BD relationnelle Méthode: Décomposition par projections
sans perte d ’information et sans perte de dépendances
Outils:- dépendances
(fonctionnelles, multivaluées, de jointure)- règles de normalisation
Limites:- ne garantit pas que le schéma soit celui qu’il faut - ne garantit pas que le schéma soit efficace
(« overnormalization »)
![Page 60: Normalisation d’une base de données r elationnel le (Chapitre 5)](https://reader035.vdocuments.pub/reader035/viewer/2022062519/56814d4a550346895dba7336/html5/thumbnails/60.jpg)
Conception d’une BD relationnelle
Méthode "moderne"
Conception d’un schéma entité-association, puis traduction de celui-ci en schéma relationnel