• Aucun résultat trouvé

Transparents(PowerPoint

N/A
N/A
Protected

Academic year: 2022

Partager "Transparents(PowerPoint"

Copied!
62
0
0

Texte intégral

(1)

11 Théorie de la normalisation

 Résolution de problèmes de redondance de données

 Par décomposition

 Caractérisation des problèmes

– dépendances fonctionnelles, multivaluées,...

 Contexte relationnel

 Transposable à d ’autres contextes

(2)

27/02/22 © Robert Godin. Tous droits réservés 2

Exemple de mauvaise conception

Table Vente

noComman

de dateComma

nde noClie

nt nomClient noTélépho

ne noArti

cle description prixUnita

ire quant

ité 1 01/06/2000 10 Luc Sansom (999)999-

9999 10 Cèdre en

boule 10.99 10

1 01/06/2000 10 Luc Sansom (999)999-

9999 70 Herbe à

puce 10.99 5

1 01/06/2000 10 Luc Sansom (999)999-

9999 90 Pommier 25.99 1

2 02/06/2000 20 Dollard

Tremblay (888)888-

8888 40 Epinette

bleue 25.99 2

2 02/06/2000 20 Dollard

Tremblay (888)888-

8888 95 Génévrier 15.99 3

3 02/06/2000 10 Luc Sansom (999)999-

9999 20 Sapin 12.99 1

4 05/06/2000 10 Luc Sansom (999)999-

9999 40 Epinette

bleue 25.99 1

4 05/06/2000 10 Luc Sansom (999)999-

9999 50 Chêne 22.99 1

5 09/07/2000 30 Lin Bô (777)777-

7777 70 Herbe à

puce 10.99 3

5 09/07/2000 30 Lin Bô (777)777-

7777 10 Cèdre en

boule 10.99 5

5 09/07/2000 30 Lin Bô (777)777-

7777 20 Sapin 12.99 5

6 09/07/2000 20 Dollard

Tremblay (888)888-

8888 10 Cèdre en

boule 10.99 5

6 09/07/2000 20 Dollard

Tremblay (888)888-

8888 40 Epinette

bleue 25.99 1

Redondance de données

(3)

Solution : décomposition

Table Vente

noComma

nde dateComma

nde noClient nomCli

ent noTéléphon

e noArti

cle descripti

on prixUnita

ire quantité

1 01/06/2000 10 Luc

Sanso m

(999)999-

9999 10 Cèdre

en boule

10.99 10

1 01/06/2000 10 Luc

Sanso m

(999)999-

9999 70 Herbe

à puce 10.99 5

1 01/06/2000 10 Luc

Sanso m

(999)999-

9999 90 Pommi

er 25.99 1

Table VenteReste

noComman

de dateComma

nde noClie

nt noArticl

e description prixUnita

ire quantit é

1 01/06/2000 10 10 Cèdre en

boule 10.99 10

1 01/06/2000 10 70 Herbe à puce 10.99 5

1 01/06/2000 10 90 Pommier 25.99 1

2 02/06/2000 20 40 Epinette

bleue 25.99 2

2 02/06/2000 20 95 Génévrier 15.99 3

3 02/06/2000 10 20 Sapin 12.99 1

4 05/06/2000 10 40 Epinette

bleue 25.99 1

4 05/06/2000 10 50 Chêne 22.99 1

5 09/07/2000 30 70 Herbe à puce 10.99 3

5 09/07/2000 30 10 Cèdre en

boule 10.99 5

5 09/07/2000 30 20 Sapin 12.99 5

Table Client noClie

nt nomClient noTélépho ne

10 Luc Sansom (999)999- 9999 20 Dollard

Tremblay (888)888- 8888

30 Lin Bô (777)777-

7777 40 Jean Leconte (666)666-

6666 50 Hafedh Lajoie (555)555-

5555 60 Comtesse

Hasek (666)666- 6666 70 Coco McPoulet (444)444-

(4)

11.1 Décomposition sans perte

 Une décomposition binaire d'une table T en deux tables T 1 et T 2 est sans perte si :

T = T 1  T 2

 Exemple :

Vente = Client  VenteReste

(5)

27/02/22 © Robert Godin. Tous droits réservés .

5

Exemple de décomposition avec perte

Vente  ClientVenteMalFoutu e

Table Client

noClient nomClient noTéléphone

10 Luc Sansom (999)999-9999

20 Dollard Tremblay (888)888-8888

30 Lin Bô (777)777-7777

40 Jean Leconte (666)666-6666 50 Hafedh Lajoie (555)555-5555 60 Comtesse Hasek (666)666-6666 70 Coco McPoulet (444)444-4419 80 Dollard Tremblay (333)333-3333 Table VenteMalFoutue

noComman

de dateComma

nde noArtic

le description prixUnita

ire quanti

1 01/06/2000 10 Cèdre en

boule 10.99 10

1 01/06/2000 70 Herbe à

puce 10.99 5

1 01/06/2000 90 Pommier 25.99 1

2 02/06/2000 40 Epinette

bleue 25.99 2

2 02/06/2000 95 Génévrier 15.99 3

3 02/06/2000 20 Sapin 12.99 1

4 05/06/2000 40 Epinette

bleue 25.99 1

4 05/06/2000 50 Chêne 22.99 1

5 09/07/2000 70 Herbe à

puce 10.99 3

5 09/07/2000 10 Cèdre en

boule 10.99 5

5 09/07/2000 20 Sapin 12.99 5

6 09/07/2000 10 Cèdre en

boule 10.99 5

(6)

11.2 Dépendance fonctionnelle

A 1 , A 2 , …, A nT B 1 , B 2 , …, B m

– pour toute instance de T

– mêmes valeurs pour les colonnes A

1

, A

2

, …, A

n

mêmes valeurs pour les colonnes B

1

, B

2

, …, B

m

Déterminant : partie gauche A 1 , A 2 , …, A n

 Notation… Signifie réellement :

– {A

1

, A

2

, …, A

n

} 

T

{B

1

, B

2

, …, B

m

}

(7)

27/02/22 © Robert Godin. Tous droits réservés .

7

Exemples pour Vente

noClient nomClient, noTéléphone

noCommande noClient, dateCommande

noCommande, noArticle quantité

noArticle description, prixUnitaire

Table Vente

noComman

de dateComma

nde noClie

nt nomClient noTélépho

ne noArti

cle description prixUnita

ire quant

ité 1 01/06/2000 10 Luc Sansom (999)999-

9999 10 Cèdre en

boule 10.99 10

1 01/06/2000 10 Luc Sansom (999)999-

9999 70 Herbe à

puce 10.99 5

1 01/06/2000 10 Luc Sansom (999)999-

9999 90 Pommier 25.99 1

2 02/06/2000 20 Dollard

Tremblay (888)888-

8888 40 Epinette

bleue 25.99 2

2 02/06/2000 20 Dollard

Tremblay (888)888-

8888 95 Génévrier 15.99 3

3 02/06/2000 10 Luc Sansom (999)999-

9999 20 Sapin 12.99 1

4 05/06/2000 10 Luc Sansom (999)999-

9999 40 Epinette

bleue 25.99 1

4 05/06/2000 10 Luc Sansom (999)999-

9999 50 Chêne 22.99 1

5 09/07/2000 30 Lin Bô (777)777-

7777 70 Herbe à

puce 10.99 3

5 09/07/2000 30 Lin Bô (777)777-

7777 10 Cèdre en

boule 10.99 5

5 09/07/2000 30 Lin Bô (777)777-

7777 20 Sapin 12.99 5

6 09/07/2000 20 Dollard

Tremblay (888)888-

8888 10 Cèdre en

boule 10.99 5

6 09/07/2000 20 Dollard

Tremblay (888)888-

8888 40 Epinette

bleue 25.99 1

(8)

11.2.1 Inférence et choix des dépendances fonctionnelles

 Considérer toutes les dépendances ?

 Sinon lesquelles ?

 Équivalences logiques

noClient  nomClient, noTéléphone

noClient nomClient

noClient  noTéléphone

éclatement

union

noCommande, noArticle

 quantité

noCommande

quantité

(9)

Dépendance élémentaire

Dépendance fonctionnelle complètement non triviale

Dépendance fonctionnelle pleine (« full »)

Dépendance fonctionnelle X a élémentaire :

complètement non triviale &

pleine

noClient  noClient, nomClient

noClient, noCommande 

nomClient

(10)

Dépendances superflues (redondantes)

noClient nomClient, noTéléphone

noCommande noClient, dateCommande

noCommande  nomClient Par transitivité

(11)

II.1.2.2 Axiomes d'Armstrong

 A

1

. Réflexivité

Si {B

1

, B

2

, …, B

m

} {A

1

, A

2

, …, A

n

} alors

A

1

, A

2

, …, A

n

B

1

, B

2

, …, B

m

 A

2

. Augmentation

Si A

1

, A

2

, …, A

n

B

1

, B

2

, …, B

m

et

{D

1

, D

2

, …, D

p

} {C

1

, C

2

, …, C

r

} alors

A

1

, A

2

, …, A

n

, C

1

, C

2

, …, C

r

 B

1

, B

2

, …, B

m

, D

1

, D

2

, …, D

p

 A

3

. Transitivité

Si A

1

, A

2

, …, A

n

B

1

, B

2

, …, B

m

et

B

1

, B

2

, …, B

m

 C

1

, C

2

, …, C

r

alors

A

1

, A

2

, …, A

n

 C

1

, C

2

, …, C

r

(12)

11.2.3 Représentation par un diagramme à bulles

D = {noClient  nomClient, noTéléphone ; noCommande noClient, dateCommande ; noCommande, noArticle quantité ; noArticle  description, prixUnitaire}

n o C l i e n t

n o m C l i e n t n o T é l é p h o n e n o C o m m a n d e

n o A r t i c l e

d e s c r i p t i o n

p r i x U n i t a i r e

d a t e C o m m a n d e

(13)

Fermeture de X (X + )

X + = {x | X  x}

 Exemples

{noClient}

+

= {noClient, nomClient, noTéléphone}

{noArticle}

+

= {noArticle, description, prixUnitaire}

{prixUnitaire}

+

= {prixUnitaire}

{ noCommande }

+

= {noCommande, noClient, dateCommande, nomClient, noTéléphone}

{noCommande, noArticle}

+

= {noClient, nomClient,

noTéléphone, noCommande, dateCommande, noArticle,

description, prixUnitaire, quantité}

(14)

Fonction Fermeture sur diagramme à bulles

 Exemple : Fermeture(B, noCommande)

n o C l i e n t

n o m C l i e n t n o T é l é p h o n e n o C o m m a n d e

n o A r t i c l e

d e s c r i p t i o n

p r i x U n i t a i r e

d a t e C o m m a n d e

(15)

Fonction Fermeture ...

n o C l i e n t

n o m C l i e n t n o T é l é p h o n e n o C o m m a n d e

n o A r t i c l e

d e s c r i p t i o n p r i x U n i t a i r e

q u a n t i t é

d a t e C o m m a n d e

(16)

Fonction Fermeture...

{ noCommande }

+

= {noCommande, noClient, dateCommande, nomClient, noTéléphone}

n o C l i e n t

n o m C l i e n t n o T é l é p h o n e n o C o m m a n d e

n o A r t i c l e

d e s c r i p t i o n p r i x U n i t a i r e

q u a n t i t é

d a t e C o m m a n d e

(17)

Fonction Dérivable

D |= XY si et seulement si Y  X +

D |= noCommande  nomClient ?

{ noCommande }

+

= {noCommande, noClient, dateCommande, nomClient, noTéléphone}

{nomClient}  {noCommande, noClient, dateCommande, nomClient, noTéléphone}

Fonction Dérivable(B, d) Entrée:

B: le diagramme à bulle de D d : XY

Sortie

Vrai si D |= d , faux sinon DÉBUT

X

+

= Fermeture ( B , X );

Dérivable := YX

+

FIN

(18)

11.2.4 Couverture minimale (canonique)

 Une couverture minimale, notée min(D), satisfait :

– 1) min(D) équivalent à D

– 2) Dépendances élémentaires

– 3) Aucune dépendance de min(D)

n'est déductible des autres

(19)

Fonction min(D) : étape 1 Éclater les parties droites

D = {noClient  noClient, nomClient, noTéléphone ; noCommande  noClient, noTéléphone ;

noCommande  dateCommande ;

noCommande, noArticle, noClient  quantité, noArticle;

noArticle  description, prixUnitaire ;

noCommande  nomClient } D

1

= { noClient  noClient;

noClient  nomClient;

noClient  noTéléphone ; noCommande  noClient;

noCommande  noTéléphone ; noCommande  dateCommande ; noCommande, noArticle, noClient  quantité ;

noCommande, noArticle, noClient 

noArticle;

(20)

Fonction min(D) : étape 2

Éliminer les dépendances triviales

D

2

= {noClient  noClient;

noClient  nomClient;

noClient  noTéléphone ; noCommande  noClient;

noCommande  noTéléphone ; noCommande  dateCommande ;

noCommande, noArticle, noClient  quantité ; noCommande, noArticle, noClient  noArticle;

noArticle  description;

noArticle  prixUnitaire ;

noCommande  nomClient}.

(21)

Fonction min(D) : étape 3

Rendre les dépendances pleines

D 3 = {noClient  nomClient;

noClient  noTéléphone ; noCommande  noClient;

noCommande  noTéléphone ; noCommande  dateCommande ;

noCommande, noArticle, noClient  quantité ; noArticle  description;

noArticle  prixUnitaire ;

noCommande  nomClient}.

(22)

Fonction min(D) : étape 4

Éliminer les dépendances déductibles des autres

Min(D) = {noClient  nomClient;

noClient  noTéléphone ; noCommande  noClient;

noCommande  noTéléphone ;

noCommande  dateCommande ;

noCommande, noArticle  quantité ; noArticle  description;

noArticle  prixUnitaire ;

(23)

11.2.5 Dépendances fonctionnelles et clés candidates

X est une clé candidate de T (U) 

U = X + et il n'y a pas de Y X tel que U = Y +

 Pas d ’algorithmes efficaces (Maier, 83)

 Heuristique

– partir des déterminants

 Visualiser par diagramme à bulles

(24)

11.3 Normalisation

V e n t e R e s t e C l i e n t

n o C l i e n t

n o m C l i e n t n o T é l é p h o n e n o C o m m a n d e

n o A r t i c l e

d e s c r i p t i o n p r i x U n i t a i r e q u a n t i t é

d a t e C o m m a n d e

D é p e n d a n c e p l e i n e q u i c a u s e d e l a r e d o n d a n c e

n o C l i e n t

n o m C l i e n t n o T é l é p h o n e n o C o m m a n d e

n o A r t i c l e

d a t e C o m m a n d e n o C l i e n t

n o m C l i e n t n o T é l é p h o n e V e n t e

(25)

Patron général

d é t e r m i n a n t ( X )

c l é c a n d i d a t e Y

U : l 'e n s e m b l e d e t o u s l e s a t t r i b u t s d e T

X = c l é p r i m a i r e d e

T

2

Y

D é p e n d a n c e p l e i n e q u i c a u s e d e l a r e d o n d a n c e

T a b l e T

T a b l e T

1

T a b l e T

2

X = c l é é t r a n g è r e

d a n s T Y

U : l 'e n s e m b l e d e t o u s l e s a t t r i b u t s d e T

(26)

11.3.1 Forme normale Boyce-Codd (FNBC)

 Table en FNBC

Pour toute dépendance fonctionnelle non triviale et pleine, X

T

Y, le déterminant X est une clé candidate de T

Pour toute dépendance fonctionnelle non triviale, X

T

Y, le déterminant X est une superclé de T

Rappel : clé unique (unique key)ou superclé (superkey)

X est une clé unique (ou superclé) de T si deux lignes de T ne peuvent avoir les mêmes valeurs pour toutes les colonnes de X

Schéma relationnel est en FNBC

toutes les tables du schéma sont en FNBC

(27)

11.3.1.1 Algorithme de

décomposition en FNBC

(28)

Exemple avec Vente

V e n t e R e s t e C l i e n t

n o C l i e n t

n o m C l i e n t n o T é l é p h o n e n o C o m m a n d e

n o A r t i c l e

d e s c r i p t i o n p r i x U n i t a i r e q u a n t i t é

d a t e C o m m a n d e

D é p e n d a n c e p l e i n e q u i v i o l e F N B C

n o C l i e n t

n o m C l i e n t n o T é l é p h o n e n o C o m m a n d e

n o A r t i c l e d e s c r i p t i o n

d a t e C o m m a n d e n o C l i e n t

n o m C l i e n t n o T é l é p h o n e V e n t e

S = {Vente}

(29)

Suite

V e n t e R e s t e

C o m m a n d e n o C o m m a n d e

n o A r t i c l e

d e s c r i p t i o n p r i x U n i t a i r e q u a n t i t é

D é p e n d a n c e p l e i n e q u i v i o l e F N B C

V e n t e R e s t e 2

n o C l i e n t d a t e C o m m a n d e

n o C o m m a n d e

n o C l i e n t d a t e C o m m a n d e n o C o m m a n d e

n o A r t i c l e

d e s c r i p t i o n n o C l i e n t d a t e C o m m a n d e

S = {VenteReste,

Client}

(30)

Suite

A r t i c l e n o C o m m a n d e

n o A r t i c l e

d e s c r i p t i o n p r i x U n i t a i r e q u a n t i t é

D é p e n d a n c e p l e i n e q u i v i o l e F N B C

L i g n e C o m m a n d e

V e n t e R e s t e 2

n o A r t i c l e

d e s c r i p t i o n p r i x U n i t a i r e n o C o m m a n d e

n o A r t i c l e

d e s c r i p t i o n p r i x U n i t a i r e

S = {Client,

Commande,

VenteReste2}

(31)

Schéma final (S)

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

Commande(noCommande, dateCommande, noClient)

LigneCommande(noCommande, noArticle, quantité)

Article(noArticle, description, prixUnitaire)

V e n t e R e s t e C l i e n t V e n t e

V e n t e R e s t e 2 C o m m a n d e

A r t i c l e L i g n e C o m m a n d e

(32)

Résultat en UML

Commande

{Clé primaire : noCommande}

noCommande dateCommande noClient

<<Table>>

Client

{Clé primaire : noClient}

noClient nomClient noTéléphone

<<Table>>

LigneCommande

{Clé primaire : noCommande, noArticle}

noCommande noArticle

quantité

<<Table>>

Article

{Clé primaire : noArticle}

noArticle description prixUnitaire

<<Table>>

(33)

11.3.2 Troisième forme normale

 FNBC ne préserve pas toujours DF

Table Adresse

rue ville codePostal Chambly Longueuil J4G 2L7 Chambly St-Hubert J3S 2R4 Taschereau Longueuil J4G 2L7 Taschereau St-Hubert J3S 4T8

Table CodeVille codePostal ville J4G 2L7 Longueuil Table CodeRue

codePostal rue J4G 2L7 Chambly

C o d e V i l l e r u e

v i l l e

c o d e P o s t a l

D é p e n d a n c e p l e i n e q u i v i o l e F N B C

C o d e R u e

A d r e s s e

v i l l e

c o d e P o s t a l r u e

v i l l e

c o d e P o s t a l D é p e n d a n c e n o n p r é s e r v é e

(34)

Troisième forme normale (3FN, third normal form)

 Pour toute dépendance

fonctionnelle non triviale

et pleine, X T Y, le

déterminant X est une clé

candidate de T ou Y fait

partie d ’une clé candidate

(35)

Adresse est en 3FN

ville est première

– fait partie de la clé candidate {rue, ville}

r u e

v i l l e

c o d e P o s t a l

D é p e n d a n c e n o n t r i v i a l e e t

A d r e s s e

(36)

3 FN

Proposition. Il y a toujours une décomposition en 3FN qui préserve les dépendances.

Proposition. FNBC  3FN

(37)

11.3.2.1 Algorithme de

synthèse pour la 3FN

(38)

Exemple avec Ventes

D = {noClient  noClient, nomClient, noTéléphone ; noCommande  noClient, noTéléphone ;

noCommande  dateCommande ;

noCommande, noArticle, noClient  quantité, noArticle;

noArticle  description, prixUnitaire ; noCommande  nomClient }

min(D) = {noClient  nomClient;

noClient  noTéléphone ; noCommande  noClient;

noCommande  dateCommande ; noCommande, noArticle  quantité ; noArticle  description;

noArticle  prixUnitaire }.

{noClient  nomClient, noTéléphone ; noCommande  noClient,

dateCommande ;

noCommande, noArticle,  quantité ;

Regroupement des dépendances

de même déterminant

(39)

Par le diagramme à bulles

n o C l i e n t

n o m C l i e n t n o T é l é p h o n e n o C o m m a n d e

n o A r t i c l e

d e s c r i p t i o n p r i x U n i t a i r e

q u a n t i t é

d a t e C o m m a n d e

C l ie n t (n o C l ie n t, n o m C l ie n t, n o T é l é p h o n e ) C o m m a n d e ( n o C o m m a n d e , d a t e C o m m a n d e , n o C l ie n t )

L ig n e C o m m a n d e ( n o C o m m a n d e , n o A r t ic l e , q u a n t it é )

A r t ic l e ( n o A r t i c l e , d e s c r ip t io n , p r ix U n it a ir e )

(40)

Exemple avec Adresse

r u e v i l l e

c o d e P o s t a l

A d r e s s e ( r u e , v il l e , c o d e P o s t a l )

C o d e V il l e ( c o d e P o s t a l , v il l e )

(41)

11.3.3 Vue d'ensemble des formes normales

 2FN : interdit dépendance partielles d ’une clé

n o C l i e n t

n o m C l i e n t n o T é l é p h o n e n o C o m m a n d e

n o A r t i c l e

d e s c r i p t i o n p r i x U n i t a i r e d a t e C o m m a n d e

D é p e n d a n c e q u i v i o l e 3 F N m a i s p a s 2 F N

V e n t e

D é p e n d a n c e q u i v i o l e 2 F N : d é p e n d a n c e p a r t i e l l e d e l a c l é { n o C o m m a n d e , n o A r t i c l e } )

(42)

1FN : valeurs atomiques

Table Vente avec table enchâssée (non en 1FN)

noCommande dateCommande noClient nomClient noTéléphone lignesDeLaCommande (table enchâssée)

noArticle description prixUnitaire quantité

10 Cèdre en boule 10.99 10 70 Herbe à puce 10.99 5 1 01/06/2000 10 Hugh Paycheck (999)999-9999

90 Pommier 25.99 1

noArticle description prixUnitaire quantité

40 Epinette bleue 25.99 2 2 02/06/2000 20 Dollard Cash (888)888-8888

95 Génévrier 15.99 3

noArticle description prixUnitaire quantité

3 02/06/2000 10 Hugh Paycheck (999)999-9999

20 Sapin 12.99 1

noArticle description prixUnitaire quantité

40 Epinette bleue 25.99 1 4 05/06/2000 10 Hugh Paycheck (999)999-9999

50 Chêne 22.99 1

noArticle description prixUnitaire quantité

70 Herbe à puce 10.99 3 10 Cèdre en boule 10.99 5 5 09/07/2000 30 Ye San Le Sou (777)777-7777

20 Sapin 12.99 5

noArticle description prixUnitaire quantité

10 Cèdre en boule 10.99 5 6 09/07/2000 20 Dollard Cash (888)888-8888

40 Epinette bleue 25.99 1

noArticle description prixUnitaire quantité

50 Chêne 22.99 1

7 15/07/2000 40 Le Comte Hasek (666)666-6666

(43)

Modèle relationnel étendu ou NF 2 (Non First Normal Form)

 Colonnes à valeurs complexes

 Table enchâssée

– Oracle8

 NESTED TABLE

 Valeur composée

– Oracle8/SQL:1999

 CREATE TYPE nomType AS...

(44)

Extensions objet

 Table d ’objets

– Oracle8/SQL:1999

 CREATE TABLE nom OF nomType

 Colonne qui réfère à un objet

– Oracle8/SQL:1999

 REF

(45)

Restrictions de plus en plus fortes

5 F N 5 F N 5 F N 5 F N 5 F N 5 F N 4 F N F N B C

3 F N

2 F N

1 F N

(46)

11.3.4 Quatrième forme normale et dépendances multivaluées

Film est en FNBC mais pas en 4FN

 Redondance due à dépendance multivaluée

titre  nomProducteur

titre  nomActeur

Table Film

titre nomProducteur nomActeur

La vie est belle Elda Ferri Roberto Benigni

La vie est belle Elda Ferri Nicoletta Braschi

La vie est belle Elda Ferri Giorgio Cantarini

La vie est belle Gianluigi Braschi Roberto Benigni

La vie est belle Gianluigi Braschi Nicoletta Braschi

La vie est belle Gianluigi Braschi Giorgio Cantarini

Patch Adams Barry Kemp Robin Williams

Patch Adams Barry Kemp Monica Potter

Patch Adams Michael Farrell Robin Williams

Patch Adams Michael Farrell Monica Potter

(47)

Dépendance multivaluée (multivalued dependency)

A 1 , A 2 , …, A n  T B 1 , B 2 , …, B m

– à chacune de valeurs de A 1 , A 2 , …, A n

est associé un ensemble de valeurs

de B 1 , B 2 , …, B m sans relation directe

avec les autres colonnes C 1 , C 2 , …, C p

de la table

(48)

Définition formelle

 (a 1 , a 2 , …, a n , b 1 , b 2 , …, b m , c 1 , c 2 , …, c p ) et (a 1 , a 2 , …, a n , b' 1 , b' 2 , …, b' m , c' 1 , c' 2 , …, c' p ) T  (a 1 , a 2 , …, a n , b 1 , b 2 , …, b m , c' 1 , c' 2 , …, c' p ) T

 ('La vie est belle', 'EldaFerri', 'Robert Benigni') et ('La vie est belle', 'Gianluigi Braschi',

'Nicoletta Braschi') Film  ('La vie est

belle', 'EldaFerri', 'Nicoletta Braschi') Film

(49)

Dépendances multivaluées

Proposition (règle du complément)

A

1

, A

2

, …, A

n



T

B

1

, B

2

, …, B

m

A

1

, A

2

, …, A

n



T

C

1

, C

2

, …, C

p

C

1

, C

2

, …, C

p

correspond aux autres colonnes de T

Proposition (DF cas particulier de DMV)

A

1

, A

2

, …, A

n

T

B

1

, B

2

, …, B

m

A

1

, A

2

,

…, A

n



T

B

1

, B

2

, …, B

m

(50)

Généralisation directe du patron de décomposition

déterm inant (X ) 

superclé Y

U : l'ensem ble de tous les attributs de T

X Y

D épendance m ultivaluée non triviale qui cause de la redondance

Table T

Table T1 T able T2

X Y

U : l'ensem ble de tous les attributs de T

(51)

Exemple : Film

t i t r e n o m P r o d u c t e u r

D é p e n d a n c e m u l t i v a l u é e n o n t r i v i a l e q u i v i o l e 4 F N

F i l m

n o m A c t e u r

t i t r e n o m P r o d u c t e u r

P r o d u c t e u r F i l m

t i t r e n o m P r o d u c t e u r

A c t e u r F i l m

(52)

Exemple (suite)

Table Film

titre nomProducteur nomActeur La vie est belle Elda Ferri Roberto Benigni La vie est belle Elda Ferri Nicoletta Braschi La vie est belle Elda Ferri Giorgio Cantarini La vie est belle Gianluigi Braschi Roberto Benigni La vie est belle Gianluigi Braschi Nicoletta Braschi La vie est belle Gianluigi Braschi Giorgio Cantarini Patch Adams Barry Kemp Robin Williams Patch Adams Barry Kemp Monica Potter Patch Adams Michael Farrell Robin Williams Patch Adams Michael Farrell Monica Potter Patch Adams Marvin Minof Robin Williams Patch Adams Marvin Minof Monica Potter

Table ProducteurFilm titre nomProducteur La vie est belle Elda Ferri

La vie est belle Gianluigi Braschi Patch Adams Barry Kemp Table ActeurFilm

titre nomActeur La vie est belle Roberto Benigni La vie est belle Giorgio Cantarini La vie est belle Nicoletta Braschi

(53)

Dépendance multivaluée triviale

A 1 , A 2 , …, A n  T B 1 , B 2 , …, B m est triviale si :

 Schéma(T) = {A

1

, A

2

, …, A

n

}  { B

1

, B

2

, …, B

m

} ou

 { B

1

, B

2

, …, B

m

}  {A

1

, A

2

, …, A

n

}

(54)

Quatrième forme normale (4FN)

 Pour toute dépendance multivaluée non triviale, X  T Y, le déterminant X est une superclé de T

Proposition

– 4FN  FNBC

(55)

11.3.4.2 Algorithme de

décomposition en 4FN

(56)

11.3.4.3 Dépendances multivaluées emboîtées

sigleCours  idEtudiant ne tient pas dans Cours mais « surgit » dans Cours2

!

Table Cours

sigleCours idEtudiant codeProf nbCours

INF5180 1 p1 2

INF5180 2 p1 3

INF5180 1 p2 4

INF5180 2 p2 1

Table NombreCours idEtudiant codeProf nbCours

1 p1 2

2 p1 3

1 p2 4

Table Cours2

sigleCours idEtudiant codeProf

INF5180 1 p1

INF5180 2 p1

INF5180 1 p2

idEtudiant, codeProf 

nbCours

(57)

11.3.5 Cinquième forme normale

 Décomposition n-aire (n > 2)

Table Fournisseur

noFournisseur noArticle noOrganisme

f

1

a

2

o

1

f

1

a

1

o

2

f

2

a

1

o

1

f

1

a

1

o

1

Table FournisseurArticle noFournisseur noArticle

f1 a2

f1 a1

f2 a1

Table FournisseurOrganisme noFournisseur noOrganisme

f1 o1

f1 o2

f2 o1

Table ArticleOrganisme noArticle noOrganisme

a2 o1

a1 o2

a1 o1

(58)

Dépendance de jointure ou dépendance produit (join dependancy)

 * {X 1 ,X 2 ,...,X n } dans T si

T = 

X1

(T)  

X2

(T)  …  

Xn

(T)

Dépendance de jointure triviale

– si une des parties, X

i

, est l'ensemble de toutes les colonnes de T

Proposition (DMV cas particulier d ’une DJ)

X 

T

Y  *{(X  Y), (X, U-X-Y)}

(59)

Cinquième forme normale (5FN)

 Pour toute dépendance de jointure non triviale *{X 1 ,X 2 ,...,X n } dans T , chacun des X i est une superclé (contient une clé candidate) de T

Proposition

– 5FN  4FN

(60)

11.3.6 Dépendance généralisée

 Sous forme de tableau :

noFournisseur noArticle noOrganisme

f

1

a

2

o

1

f

1

a

1

o

2

f

2

a

1

o

1

f

1

a

1

o

1

(61)

11.3.7 Formale normale domaine-clé (FNDC)

 Toutes les contraintes déductibles de

– domaines

– clés candidates

 Considère aussi fragmentation

horizontale

(62)

11.3.8 Remarques au sujet de la normalisation

 Normalisé : pas toujours satisfaisant

 Autres considérations de conception

– valeurs nulles

– colonnes dérivées

– choix des colonnes

– codage

– performance en lecture

 dénormalisation

– ...

Références

Documents relatifs

vous êtes la dernière personne à avoir été vue dans sa chambre ça ne prouve rien?. à chaque nouveau décès vous étiez

[r]

[r]

Je sais que cette fois, c'est la fin Je sais que l'on n'y peut plus rien Je sais, mais je ne peux pas croire Je sais qu'il n'y a plus d'espoir J'ai peur, si peur seul dans la vie

 lever sedan länge ihop med Mirta Torres som äger hotellet i kvarteret, Mirta är just nu i Spanien för att hjälpa till med ett nytt hotell som hon fått i arv. Thomas

Ce feuilleton touche à tous les sujets de la vie quotidienne comme l’homosexualité (Thomas vit avec un homme), la révolte de l’adolescence, l’infidelité, les relations

Dans la série joue aussi l’institutrice Blanche qui a trois enfants : sa fille Johanna et ses deux fils Lucas et Noé. Blanche a écrit un livre et ellee st en froid avec sa fille qui

5263 PLUS BELLE LA VIE DÉBUTANT vocabulaire. à quelle heure