24
Normalisation d’une relation Frédéric Gava (MCF) [email protected] LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général de Gaulle 94010 Créteil cedex COURS PECA

Normalisation dune relation Frédéric Gava (MCF) [email protected] LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue

Embed Size (px)

Citation preview

Page 1: Normalisation dune relation Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue

Normalisation d’une relation

Frédéric Gava (MCF)[email protected]

LACL, bâtiment P2 du CMC, bureau 223Université de Paris XII Val-de-Marne

61 avenue du Général de Gaulle94010 Créteil cedex

COURS PECA

Page 2: Normalisation dune relation Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue

2/19

IntroductionLors de la définition d’un schéma conceptuel dans le modèle relationnel, le choix des relations est primordiale. Ce choix doit être guidé par les dépendances qui existent entre les données, dans la réalité et qui sont des contraintes que doivent vérifier les données effectivement dans la base.Exemple :

Produit(NºP, NomP, Couleur, Poids) Fournisseur(NºF, NomF, Adresse, Tél) Livraison(NºF, NºP,Quantité, Date, Tél) DF =

NºP{NomP, Couleur, Poids} NºF{NomF, Adresse, Tél} NºF, NºP,DateQuantité, Tél

Problèmes :Si un fournisseur n’a pas fait de livraison, on ne connaît pas son nº de tél S’il fait plusieurs livraisons, le nº de tél sera stocké plusieurs fois S’il faut changer de nº de tél, il faut le faire autant de fois qu’il apparaît dans la table des livraisons. Ce schéma est mal défini

Page 3: Normalisation dune relation Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue

3/19

Définitions (1) Définition : Normaliser une relation consiste à la représenter sous une forme qui respecte certains critères afin de s’assurer de l’intégrité des données La normalisation est un moyen fondamentale mis à la disposition du concepteur de la base pour éviter un bon nombre d’erreur Définition : Une dépendance est une contrainte exprimé par une règle qui doivent vérifier les données pour que la BD soit dans un état cohérent. Exemple : un salarié travail dans un et un seul service. Nous avons 3 sortes de dépendance

Fonctionnelle (forme normale 1, 2 et 3) Multi-valué (forme norme 4) Jointure (forme normal 5)

Définition : Une DF traduis le fait qu’à une valeur d’une donnée, on associe dans une relation, une valeur au plus d’une autre donnée à un instant considéré

Page 4: Normalisation dune relation Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue

4/19

Décomposer une relation (1) Étant donnée une relation non satisfaisante

(répétitions, pbs d’intégrités etc.) on peut trouver un sous-ensemble de sous-relation satisfaisant et qui décrivent les mêmes informations

Exemple :

NOM STATUT AGE COURS

GAVA MCF 26 Parallélisme

HAINS Pr 40 Sécurité

HAINS Pr 40 Sémantique

NOM STATUT AGE

GAVA MCF 26

HAINS Pr 40

NOM COURS

GAVA Parallélisme

HAINS Sécurité

HAINS Sémantique

Page 5: Normalisation dune relation Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue

5/19

Décomposer une relation (2)

On dira qu’une décomposition est « bonne » si on peut retrouver les informations de la relation initiale à partir des sous-relations

Pour retrouver les informations d’une relation à partir des relations « filles », on utilisera l’opérateur de jointure naturelle

Page 6: Normalisation dune relation Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue

6/19

Jointure naturelle L’opération de jointure naturelle permet de composer des sous-relations pour en obtenir une plus grosse relation : R1(X,Y)R2(Y,Z)=R(X,Y,Z) C’est donc un lien entre plusieurs tables disposant de colonnes commune sémantiquement Chaque ligne de R est fabriquée avec une ligne de R1 et une ligne de R2 de telle sorte que les valeurs sur les attributs de Y soient identiques dans les ligne de R1 et de celle de R2 Elle permet donc de recomposer une relation qui avait été préalablement décomposée (voir forme normale) Une décomposition est dite « sans perte d’informations » si les jointures naturelles des sous-relations redonne la relation initiale

Page 7: Normalisation dune relation Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue

7/19

Produit cartésien : concaténation de toutes les lignes de la première table avec toutes les lignes de la seconde table. Exemple

Jointure : lien entre 2 tables disposant d’au moins une colonne commune (sémantiquement). On associe a chaque ligne de la première table toutes les lignes de la seconde table Exemple

Jointure et produit cartésien

Table 1 Table 2 Produit

a x a,x

b y a,y

c b,x

b,y

c,x

c,y

Table 1 Table 2 Jointure

a1,b1 b1,c1 a1,b1,c1

a2,b1 b2,c2 a2,b1,c1

a3,b2 b3,c3 a3,b2,c2

Page 8: Normalisation dune relation Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue

8/19

Exemple JointureNom Prénom Numéro avocat

Collard Bebert 1

Vergès Jacquy 2

Numéro avocat Procès Résultat

1 HLM Perdu

2 Serial Killer Gagné

1 Outreau Perdu

2 Du siècle Gagné

R1 =

R2 =

R1R2 =Nom Prénom Numéro avocat Procès Résultat

Collard Bebert 1 HLM Perdu

Vergès Jacquy 2 Serial Killer Gagné

Collard Bebert 1 Outreau Perdu

Vergès Jacquy 2 Du siècle Gagné

Page 9: Normalisation dune relation Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue

9/19

Différentes jointures Définition : une équi-jointure est une jointure dont la condition est une comparaison d’égalité de 2 colonnes appartenant aux 2 tables

Définition : une theta-jointure est est une jointure dont la condition est une comparaison autres que l’égalité de 2 colonnes appartenant aux 2 tables

Définition : une jointure multiple met en relation plus de 2 tables.

Définition : une auto-jointure est une jointure d’une table avec elle-même

Page 10: Normalisation dune relation Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue

10/19

Définitions (2) Définition : Une DF est élémentaire si un sous-ensemble de la clé n’est pas source de la DF. Exemple :

A, B, CD est élémentaire s’il existe pas les DF A, BD ; A, CD ; B, CD et aussi AD ; BD ; CD

Définition : Une DF AB est directe (non transitive) s’il n’existe pas un autre attribut C tel que AC et CB Définition : Une relation est normalisée si aucun attribut n’est présent plus d’une fois dans la relation et si aucun attribut n’est lui-même décomposable en d’autres attributs et qu’il n’est pas lui-même une relation Théorème de Heath : Une relation R(X,Y,Z) est décomposable SPI en 2 sous-relations R1(X,Y) et R2(X,Z) s’il existe pour R1 une DF XY ou pour R2 une DF X Z (c’est le cas si X est une clé de R1 ou de R2)

Page 11: Normalisation dune relation Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue

11/19

Formes normales 1 Toute relation normalisée est en FN1R(N°_Client, N°_Article, Nom_Client, Nom_Article)

N°_ClientNom_Client ; N°_ArticleNom_Article ; N°_Client, N°_ArticleNom_Article Table suivante :

Il faudrait plutôt les relations suivantes :Client(N°,Nom) Article(N°, Nom) Commande(N°_Article, N°_Client)

23 A5 Fred Chaise

23 A6 Fred Table

26 A5 Bob Chaise

Page 12: Normalisation dune relation Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue

12/19

Forme normal 2 Une relation est en FN2 si

Elle est en FN1 si tout attribut n’appartenant pas à une clé dépend élémentairement d’une clé Suffisant ?

R(N°_Client, Nom_Client, N°_Repr, Nom_Repr) DF= N°_ClientNom_Client, N°_Repr, Nom_Repr ; N°_ReprNom_Repr

Repr(N°_Repr, Nom) Client(N°_Client, Nom, N°_Repr)

25 Fred R1 Nicole

26 Patrick R1 Nicole

Page 13: Normalisation dune relation Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue

13/19

Exemple Fournisseur(Nom, Adresse, Tél, NomProduit, Prix)

Nom, NomProduitPrix, Adresse, Tél NomAdresse

FN2 ? ok pour Nom, NomProduitPrix par contre Nom, NomProduitAdresse n’est pas élémentaire car NomAdresse donc que FN1

Décomposition possible et SPI d’après théorème de Heath Fournisseur(Nom, Adresse, Tél) Catalogue(Nom_Fournisseur, NomProduit, Prix)

Page 14: Normalisation dune relation Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue

14/19

Forme normal 3 Une relation est en FN3 si

Elle est en FN2 (donc en FN1) Tout attribut n’appartenant pas à une clé dépend de façon direct d’une clé

Définition : un ensemble d’attribut X est une clé candidate d’une relation R si et seulement si {X}+=R Remarque : lorsqu’une relation est en FN3 aucune DF n’est issue d’un sous-ensemble de la clé et aucune DF n’est issue d’un attribut non clé vers un autre

Page 15: Normalisation dune relation Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue

15/19

Exemple

Fournisseur(Nom, Pays, Ville) NomVille, Pays VillePays (pas de ville homonyme dans des pays différents)

FN2 ? Oui car l’attribut Nom est la seule clé FN3 ? Non car NomPays n’est pas direct (on peut passer par Ville). Il y a donc des répétitions de noms de pays. Décomposition SPI

Fournisseur(Nom, Ville) Géographie(Ville, Pays)

Page 16: Normalisation dune relation Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue

16/19

Forme normal 4 Aussi appelé Forme normal de Boyse-Codd

Une relation R est en en FNBC si tout attribut dépend de façon élémentaire et direct d’une clé

Remarque : quand une relation n’a qu’une clé candidate (donc qu’une unique clé appelé atomique), alors si elle est en FN3 cela implique qu’elle est aussi en FNBC

Remarque : FNBCFN3FN2FN1

Remarque : Il existe une FN5 mais nous la verrons pas dans ce cours (trop rare)

Page 17: Normalisation dune relation Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue

17/19

Exemple Catalogue(N°F, NomF, NomP, Prix)

2 clés (N°F, NomP) et (NomF, NomP) DF :

N°F, NomPNomF,Prix NomF, NomPN°F, Prix N°FNomF NomFN°F

FN3 ? Oui car seul Prix n’appartient pas à une clé et dépend élémentairement et directement de 2 clés FNBC ? Non car NomF ne dépend pas élémentairement d’une clé : N°F,NomPNomF n’est pas élémentaire car il existe et N°FNomF et NomF ne dépend pas de l’autre clé Décomposition possible

Fournisseur(N°F, NomF) avec N°FNomF et si l’on veut NomFN°F Catalogue(N°F, NomP, Prix) avec N°F, NomPPrix

Page 18: Normalisation dune relation Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue

18/19

Exemple complet

La relation Place(N°Etu, Matière, Rang) représente le rang de chaque étudiant par matière. On suppose qu’il n’y a pas d’ex-aequo. Nous avons les DF suivantes :

Rang, Matière N°Etu (pas d’ex-aequo) N°Etu, Matière Rang

2 clés candidates : (Rang, Matière) et (N°Etu, Matière) Quelles sont les formes normales vérifiées ?

Tout attribut appartient à une clé donc c’est en FN3 Les 2 DF sont directes et élémentaires avec des membres gauches (de la DF) qui sont des clés donc la relation Place est en FNBC

Page 19: Normalisation dune relation Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue

19/19

Version simplifiée (pratique)

On ne touche pas à la définition de FN1

Quand on n’a qu’une clé (clé primaire ou atomique) Définition d’une relation R en FN2 :

La relation R est en FN1

Toutes les DF issues de la clé sont élémentaires

Définition d’une relation R en FN3 : La relation R est en FN2

Toutes les DF issues de la clé sont directes

Pas de FNBC

Page 20: Normalisation dune relation Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue

20/19

Atelier

Pour la BD suivante : R1(N°_Client, N°_Produit, QtComm, Nom_Produit) R2(N°_Commande, N°_Produit, QtComm) R3(N°_Client, Nom_Client, Nom_Repr) R4(N°_Produit, Nom_Produit, N°_Atelier, Nom_Chef_Atelier) R5(N°_Client, Nom_Client, N°_Repr) R6(N°_Produit, N°_Fournisseur, Prix, Nom_Fournisseur)

Trouvez les clés externe et déduisez les DF Trouvez les formes normales des relations suivantes

Page 21: Normalisation dune relation Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue

21/19

Correction Atelier

1. N°_ProduitNom_Produit donc pas élémentaire donc FN12. N°_Commande, N°_ProduitQt_Commandé donc FN33. N°_ClientNom_Client, Nom_Repr donc FN34. N°_ProduitNom_Produit et

N°_AtelierNom_Chef_Atelier donc indirect donc FN25. N°_ClientNom_Client, Nom_Repr et

N°_ReprNom_Repr donc indirect donc FN26. N°_ProduitPrix et N°_FournisseurNom_Four donc pas

élémentaire donc FN1

Page 22: Normalisation dune relation Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue

22/19

Société de Tourisme (1) Une société de tourisme possède une vingtaine de centres sur le territoire français et une douzaine dans d’autres pays. Cette société a implanté une BD dont vous trouverez la structure ci-dessous :

Cette BD a, entre autre, pour but de mieux cibler les activités pratiquées par les clients dans les centres Un centre est ouvert pendant un certain nombre de semaines de l’année suivant son implantation Un animateur est en général un saisonnier, il n’anime qu’une seule activité et est rattaché à un seul centre Un responsable d’activité est un permanent de la société. Il peut-être responsable de plusieurs activités et travaille suivant les saisons dans différents centres. Cependant, un responsable d’une activité est responsable de cette activité dans tous les centres où il travaille (lorsque cette activité existe)

Donner et justifier les formes normales des relations

Page 23: Normalisation dune relation Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue

23/19

Société de Tourisme (2)1. Client(N°, Nom, Adresse, Age)

2. Inscription(N°_client, N°_Centre, N°_Semaine, N°_activité, N°_animateur)

3. Animateur(N°_Animateur, N°_Activité, N°_Responsable, Nom_Responsable, Adresse_Responsable, N°_Centre, N°_SS, Nom)

4. Centre(N°, Nom, Adresse)

5. Responsable(N°, N°_SS, Ancienneté, Nom, Adresse)

6. Employé(N°_SS, Nom, Adresse, Date_Naissance)

7. Activité(N°, Nom)

8. Fonctionnement(N°_Centre, Type_Appart, N°_Semaine)

9. Séjour(N°_Client, N°_Centre, N°_Semaine, Type_Appart)

10. Responsabilité(N°_Responsable, N°_Centre, N°_Activité)

11. Statistique(N°_Responsable, N°_Centre, N°_Activité, Nombre_Heures_Effectués)

Page 24: Normalisation dune relation Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue

24/19

Correction Tourisme1. FN3

2. FN3

3. FN2

4. FN3

5. FN1

6. FN3

7. FN3

8. FN3

9. FN1

10. FN3

11. FN3