• Aucun résultat trouvé

FormatPowerPoint97

N/A
N/A
Protected

Academic year: 2022

Partager "FormatPowerPoint97"

Copied!
63
0
0

Texte intégral

(1)

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

1

II.1 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)

Exemple de mauvaise conception

 Redondance de données

– problèmes de mise à jour et d ’incohérence

Table Vente

noCommande dateCommande noClient nomClient noTéléphone noArticle description prixUnitaire quantité

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

1 01/06/2000 10 Hugh Paycheck (999)999-9999 90 Pommier 25.99 1

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

2 02/06/2000 20 Dollard Cash (888)888-8888 95 Génévrier 15.99 3

3 02/06/2000 10 Hugh Paycheck (999)999-9999 20 Sapin 12.99 1

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

4 05/06/2000 10 Hugh Paycheck (999)999-9999 50 Chêne 22.99 1

5 09/07/2000 30 Ye San Le Sou (777)777-7777 70 Herbe à puce 10.99 3 5 09/07/2000 30 Ye San Le Sou (777)777-7777 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

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

(3)

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

3

Solution : décomposition

Table Client

noClient nomClient noTéléphone 10 Hugh Paycheck (999)999-9999 20 Dollard Cash (888)888-8888 30 Ye San Le Sou (777)777-7777 40 Le Comte Hasek (666)666-6666 50 Hafedh Lajoie (555)555-5555 60 Comtesse Hasek (666)666-6666 70 Coco McPoulet (444)444-4419 80 Dollard Cash (333)333-3333

Table VenteReste

noCommande dateCommande noClient noArticle description prixUnitaire 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

6 09/ 07/ 2000 20 10 Cèdre en boule 10.99 5

6 09/ 07/ 2000 20 40 Epinette bleue 25.99 1

7 15/ 07/ 2000 40 50 Chêne 22.99 1

7 15/ 07/ 2000 40 95 Génévrier 15.99 2

8 15/ 07/ 2000 40 20 Sapin 12.99 3

Table Vente

noCommande dateCommande noClient nomClient noTéléphone noArticle description prixUnitaire quantité 1 01/ 06/ 2000 10 Hugh Paycheck (999)999-9999 10 Cèdre en boule 10.99 10 1 01/ 06/ 2000 10 Hugh Paycheck (999)999-9999 70 Herbe à puce 10.99 5

1 01/ 06/ 2000 10 Hugh Paycheck (999)999-9999 90 Pommier 25.99 1

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

2 02/ 06/ 2000 20 Dollard Cash (888)888-8888 95 Génévrier 15.99 3

3 02/ 06/ 2000 10 Hugh Paycheck (999)999-9999 20 Sapin 12.99 1

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

4 05/ 06/ 2000 10 Hugh Paycheck (999)999-9999 50 Chêne 22.99 1

5 09/ 07/ 2000 30 Ye San Le Sou (777)777-7777 70 Herbe à puce 10.99 3 5 09/ 07/ 2000 30 Ye San Le Sou (777)777-7777 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

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

7 15/ 07/ 2000 40 Le Comte Hasek (666)666-6666 50 Chêne 22.99 1

7 15/ 07/ 2000 40 Le Comte Hasek (666)666-6666 95 Génévrier 15.99 2

8 15/ 07/ 2000 40 Le Comte Hasek (666)666-6666 20 Sapin 12.99 3

(4)

II.1.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  ClientVenteMalFoutue

Table Client

noClient nomClient noTéléphone 10 Hugh Paycheck (999)999-9999 20 Dollard Cash (888)888-8888 30 Ye San Le Sou (777)777-7777 40 Le Comte Hasek (666)666-6666 50 Hafedh Lajoie (555)555-5555 60 Comtesse Hasek (666)666-6666 70 Coco McPoulet (444)444-4419 80 Dollard Cash (333)333-3333

Table VenteMalFoutue

noCommande dateCommande noArticle description prixUnitaire quantité

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 09/ 07/ 2000 40 Epinette bleue 25.99 1

7 15/ 07/ 2000 50 Chêne 22.99 1

7 15/ 07/ 2000 95 Génévrier 15.99 2

8 15/ 07/ 2000 20 Sapin 12.99 3

(6)

II.1.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

Table Vente

noCommande dateCommande noClient nomClient noTéléphone noArticle description prixUnitaire quantité

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

1 01/06/2000 10 Hugh Paycheck (999)999-9999 90 Pommier 25.99 1

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

2 02/06/2000 20 Dollard Cash (888)888-8888 95 Génévrier 15.99 3

3 02/06/2000 10 Hugh Paycheck (999)999-9999 20 Sapin 12.99 1

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

4 05/06/2000 10 Hugh Paycheck (999)999-9999 50 Chêne 22.99 1

5 09/07/2000 30 Ye San Le Sou (777)777-7777 70 Herbe à puce 10.99 3 5 09/07/2000 30 Ye San Le Sou (777)777-7777 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

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

7 15/07/2000 40 Le Comte Hasek (666)666-6666 50 Chêne 22.99 1

7 15/07/2000 40 Le Comte Hasek (666)666-6666 95 Génévrier 15.99 2

8 15/07/2000 40 Le Comte Hasek (666)666-6666 20 Sapin 12.99 3

noClient nomClient, noTéléphone

noCommande noClient, dateCommande

noCommande, noArticle quantité

noArticle description,

prixUnitaire

(8)

II.1.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)

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

9

Dépendance élémentaire

Dépendance fonctionnelle complètement non triviale

Dépendance fonctionnelle pleine (« full »)

É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)

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

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)

II.1.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)

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

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)

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

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)

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

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)

II.1.2.4 Couverture minimale

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

– 1) Min(D) équivalent à D

– 2) Dépendances élémentaires et non superflues

– 3) Pas deux dépendances avec même

déterminant

(19)

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

19

Fonction Min(D)

 Eliminer colonnes de droites superflues D = {

noClient noClient, nomClient, noTéléphone ;

noCommande  noClient ;

noCommande  dateCommande ;

noCommande, noArticle, noClient quantité ;

noArticle description, prixUnitaire ;

noCommande  nomClient }

(20)

Fonction Min(D)...

 Réduire les déterminants (utiliser Dérivable) D = {

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

noCommande  dateCommande ;

noCommande, noArticle, noClient quantité ;

noArticle description,

(21)

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

21

Fonction Min(D)...

 Eliminer les dépendances superflues (utiliser Dérivable)

D = {

noClient nomClient, noTéléphone ;

noCommande  noClient ;

noCommande

dateCommande ;

noCommande, noArticle quantité ;

noArticle description, prixUnitaire ;

noCommande  nomClient

}

(22)

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

22

Fonction Min(D)...

 Union des dépendances de même déterminant

D = {

noClient nomClient, noTéléphone ;

noCommande  noClient ;

noCommande

dateCommande ;

noCommande, noArticle

quantité ;

(23)

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

23

Fonction Min(D)...

 Résultat final Min(D) = {

noClient nomClient, noTéléphone ;

noCommande noClient , dateCommande ;

noCommande, noArticle quantité ;

noArticle description,

prixUnitaire }

(24)

II.1.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

(25)

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

25

II.1.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 é lé m e n t a ir 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 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 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

(26)

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 é lé m e n t a i r e q u i c a u s e d e la 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

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

(27)

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

27

II.1.3.1 Forme normale Boyce-Codd (FNBC)

Table en FNBC

Pour toute dépendance fonctionnelle élémentaire, 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

(28)

II.1.3.1.1 Algorithme de décomposition en FNBC

Procédure DécompositionFNBC (T, S) Entrée:

T : une table avec ses dépendances fonctionnelles élémentaires 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 T 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

(29)

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

29

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 é l é m e n t a i r 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 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 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 = {VenteReste, Client}

S = {Vente}

(30)

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 é l é m e n t a i r 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 p r i x U n i t a i r e n o C l i e n t d a t e C o m m a n d e

S = {VenteReste,

Client}

(31)

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

31

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 é l é m e n t a i r 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 q u a n t i t é

S = {Client, Commande, Article, LigneCommande}

S = {Client,

Commande,

VenteReste2}

(32)

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

(33)

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

33

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>>

(34)

II.1.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 é l é m e n t a i r 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

(35)

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

35

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

 Pour toute dépendance fonctionnelle élémentaire, X T Y, le déterminant X est une clé candidate de T ou Y fait partie d ’une clé candidate

Colonne première

– fait partie d'une clé candidate

(36)

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 é l é m e n t a i r e q u i

A d r e s s e

(37)

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

37

3 FN

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

Proposition. FNBC  3FN

(38)

II.1.3.2.1 Algorithme de synthèse pour la 3FN

Procédure Synthèse3FN (T, S) Entrée:

T : une table avec ses dépendances fonctionnelles D Sortie

S : un schéma relationnel pour T en 3FN qui préservent les dépendances DÉBUT

Calculer min(D);

S := Ø;

POUR chaque dépendance X  Y dans min(D)

Ajouter une table T(X  Y) à S; X devient une clé candidate de T FIN POUR;

Eliminer les tables dont le schéma est inclus dans une autre table de S;

SI aucune table de S ne contient une clé candidate de T

Ajouter une table avec les colonnes d'une clé candidate FIN SI;

Fusionner les tables dont les clés candidates se déterminent mutuellement

FIN T a b l e T

(39)

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

39

Exemple avec Ventes

D = {

noClient noClient, nomClient, noTéléphone ;

noCommande  noClient ;

noCommande

dateCommande ;

noCommande, noArticle, noClient  quantité ;

noArticle description, prixUnitaire ;

noCommande  nomClient } Min(D) = {

noClient nomClient, noTéléphone ;

noCommande noClient , dateCommande ;

noCommande, noArticle quantité ;

noArticle description,

prixUnitaire }

(40)

Exemple (suite)

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 )

(41)

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

41

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 )

Résultat en 3FN mais pas en FNBC

(42)

II.1.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 é l é m e n t a i r 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 é l é m e n t a i r 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 } )

(43)

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

43

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

95 Génévrier 15.99 2

noArticle description prixUnitaire quantité

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

20 Sapin 12.99 3

(44)

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

 Colonnes à valeurs complexes

 Table enchâssée

valeur = une table

Oracle8 : NESTED TABLE

 Collection de valeurs

Oracle8 : VARRAY (Varying Array)

 Valeur composée

Oracle8 : CREATE TYPE nomType AS...

(45)

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

45

Extensions objet

 Table d ’objets

– Oracle8 : CREATE TABLE nom OF nomType

 Colonne qui réfère à un objet

– Oracle8 : opérateur REF

(46)

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

(47)

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

47

II.1.3.4 Quatrième forme normale et dépendances multi-valué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 Patch Adams Marvin Minof Robin Williams Patch Adams Marvin Minof Monica Potter

(48)

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

(49)

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

49

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

(50)

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

(51)

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

51

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

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 Y

D é p e n d a n c e m u l t i v a l u é e é l é m e n t a i r 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 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

(52)

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 é l é m e n t a i r 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

(53)

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

53

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 Patch Adams Michael Farrell Patch Adams Marvin Minof Table ActeurFilm

titre nomActeur

La vie est belle Roberto Benigni La vie est belle Giorgio Cantarini La vie est belle Nicoletta Braschi Patch Adams Robin Williams Patch Adams Monica Potter

(54)

Dépendance multivaluée élémentaire

 Une dépendance multivaluée A 1 , A 2 , …, A n  T B 1 , B 2 , …, B m est élémentaire si :

il y a d'autres colonnes dans la table

{A

1

, A

2

, …, A

n

}  { B

1

, B

2

, …, B

m

} = Ø

complètement non triviale

la partie gauche est minimale

dépendance pleine

(55)

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

55

Quatrième forme normale (4FN)

 Pour toute dépendance multivaluée élémentaire, X  T Y, le déterminant X est une clé candidate de T

Proposition

– 4FN  FNBC

(56)

II.1.3.4.2 Algorithme de décomposition en 4FN

Procédure Décomposition4FN (T, S) Entrée:

T : une table avec ses dépendances multivaluées élémentaires 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 4FN

Décomposer T selon une dépendance élémentaire X T Y qui ne respecte pas la condition de FNBC

et remplacer T par T1(U-Y) et T2(XY) dans S FIN TANT QUE

FIN

(57)

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

57

II.1.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

2 p2 1

Table Cours2

sigleCours idEtudiant codeProf

INF5180 1 p1

INF5180 2 p1

INF5180 1 p2

INF5180 2 p2

idEtudiant, codeProf 

nbCours

(58)

II.1.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

(59)

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

59

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)}

(60)

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 contient une clé candidate de T

Proposition

– 5FN  4FN

(61)

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

61

II.1.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

(62)

II.1.3.7 Formale normale domaine-clé (FNDC)

 Toutes les contraintes déductibles de

– domaines

– clés candidates

 Considère aussi fragmentation

horizontale

(63)

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

63

II.1.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