Conception base de données


partager des documents DOCUMENTS ASSOCIÉS

 

Conception base de données

 

Conception d?une base de donn´ ees Cyril Gruau? 17 octobre 2005 (corrig´ e le 13 juillet 2006) R´ esum´ e Ce support de cours regroupe quelques notions concernant le mod´ elisation conceptuelle de syst` eme d?information par sch´ ema entit´ es-associations (via l?´ etude des d´ ependances fonctionnelles), la tra- duction en sch´ ema relationnel et la d´ emarche inverse (r´ etro-conception). Il pr´ esente ´ egalement les extensions majeures du mod` ele conceptuel de donn´ ees. Mots-clef : Merise, mod` ele conceptuel, entit´ e, association, d´ ependance fonctionnelle, graphe de couverture minimale, sch´ ema relationnel, traduction, r´ etro-conception, agr´ egation, identifiant relatif, h´ eritage Compl´ ements apport´ es ` a l?´ edition de novembre 2003 : ? une r´ e-´ ecriture compl` ete des r` egles de normalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 ? un nouveau paragraphe sur les d´ ependances fonctionnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 ? une r´ e-´ ecriture compl` ete de la section sur les agr´ egations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30 ? idem pour les identifiants relatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 ? et l?h´ eritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 ? auxquels s?ajoutent de nouveaux exemples et donc de nombreuses figures illustratives . . . . . . . . . 42 Remerciements L?auteur tient ` a exprimer toute sa gratitude envers Fr´ ed´ eric Brouard pour son travail de correction sur ce document, ses judicieux conseils et son soutien en toutes circonstances. ? Cyril.Gruau@ensmp.fr 1 TABLE DES MATI` ERES 2 Table des mati` eres Introduction 3 1 Mod` ele conceptuel de donn´ ees (MCD) 4 1.1 Sch´ ema entit´ es-associations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.1.1 Entit´ es et associations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.1.2 Attributs et identifiants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.1.3 Cardinalit´ es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.4 Associations plurielles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.1.5 Association r´ eflexive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.1.6 Associations non binaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.2 R` egles de normalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.2.1 Les bonnes mani` eres dans un sch´ ema entit´ es-associations . . . . . . . . . . . . . . 10 1.2.2 Les formes normales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.3 D´ ependances fonctionnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.3.1 D´ efinitions et propri´ et´ es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.3.2 Graphe de couverture minimale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.3.3 Traduction vers un sch´ ema entit´ es-associations . . . . . . . . . . . . . . . . . . . . 17 1.3.4 Gestion des dates et du caract` ere historique . . . . . . . . . . . . . . . . . . . . . . 18 1.3.5 D´ ependances plurielles et r´ eflexives . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.3.6 Associations sans attributs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.4 M´ ethodologie de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2 Mod` ele logique de donn´ ees (MLD) 22 2.1 Syst` emes logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.2 Mod` ele logique relationnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.2.1 Tables, lignes et colonnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.2.2 Cl´ es primaires et cl´ es ´ etrang` eres . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.2.3 Sch´ ema relationnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.3 Traduction d?un MCD en un MLDR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3 Mod` ele physique de donn´ ees (MPD) 27 3.1 Distinction entre MLD et MPD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.2 Optimisations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4 R´ etro-conception 28 4.1 Traduction inverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.2 Cas particuliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 5 Compl´ ements 30 5.1 Agr´ egation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 5.1.1 Association de type 1 : n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 5.1.2 Association de type n : m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5.1.3 Tables de codification ou tables de r´ ef´ erence . . . . . . . . . . . . . . . . . . . . . . 34 5.2 Identifiant relatif ou lien identifiant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 5.2.1 R´ esolution d?un probl` eme sur le sch´ ema relationnel . . . . . . . . . . . . . . . . . . 35 5.2.2 Mod` ele conceptuel correspondant . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 5.2.3 Discussion autour de la num´ erotation des exemplaires . . . . . . . . . . . . . . . . 37 5.3 H´ eritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 5.3.1 Sous-entit´ e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 5.3.2 Utilisation de l?h´ eritage pour s´ eparer les informations compl´ ementaires . . . . . . . 39 5.3.3 Sp´ ecialisation des associations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 INTRODUCTION 3 Conclusion 41 R´ ef´ erences 41 Table des figures 42 Index 43 Introduction Quand nous construisons directement les tables d?une base de donn´ ees dans un logiciel de gestion des bases de donn´ ees (Oracle, SQL Server, DB2, Access, MySQL, PostGre, ...), nous sommes expos´ es ` a deux types de probl` eme : ? nous ne savons pas toujours dans quelle table placer certaines colonnes (par exemple, l?adresse de livraison se met dans la table des clients ou dans la table des commandes?) ; ? nous avons du mal ` a pr´ evoir les tables de jonction interm´ ediaires (par exemple, la table des in- terpr´ etations qui est indispensable entre les tables des films et la table des acteurs). Il est donc n´ ecessaire de recourir ` a une ´ etape pr´ eliminaire de conception. Les techniques pr´ esent´ ees ici font partie de la m´ ethodologie Merise (M´ ethode d?´ Etude et de R´ ealisation Informatique pour les Syst` emes d?Entreprise) ´ elabor´ ee en France en 1978 [Tardieu et al.], qui permet no- tamment de concevoir un syst` eme d?information d?une fa¸ con standardis´ ee et m´ ethodique. Le but de ce support de cours est d?introduire le sch´ ema entit´ es-associations (section 1), le sch´ ema relationnel (sections 2 et 3) et d?expliquer la traduction entre les deux (sections 2.3 et 4). La construction du sch´ ema entit´ es-associations peut se faire en ´ etudiant les d´ ependances fonctionnelles (section 1.3) et en tenant compte d?un certain nombre d?extensions conceptuelles incontournables (section 5). Ne sont malheureusement pas abord´ es ici : les contraintes, les traitements, le langage relationnel et la gestion de projet. Pour toutes ces notions importantes, car li´ ees ` a la conception de syst` emes d?information, le lecteur est dirig´ e vers [Akoka et Comyn-Wattiau, Matheron, Nanci et al.]. La mod´ elisation objet ne fait pas non plus partie des outils expos´ es dans ce document. 1 MOD` ELE CONCEPTUEL DE DONN´ EES (MCD) 4 1 Mod` ele conceptuel de donn´ ees (MCD) Avant de r´ efl´ echir au sch´ ema relationnel d?une application, il est bon de mod´ eliser la probl´ ematique ` a traiter d?un point de vue conceptuel et ind´ ependamment du logiciel utilis´ e. 1.1 Sch´ ema entit´ es-associations La mod´ elisation conceptuelle que nous proposons dans ce document pour un univers dont on veut sto- cker les donn´ ees, conduit ` a l?´ elaboration d?un type de sch´ ema tr` es r´ epandu, le sch´ ema entit´ es-associations. 1.1.1 Entit´ es et associations Une entit´ e est une population d?individus homog` enes. Par exemple, les produits ou les articles vendus par une entreprise peuvent ? etre regroup´ es dans une m? eme entit´ e articles (figure 1), car d?un article ` a l?autre, les informations ne changent pas de nature (` a chaque fois, il s?agit de la d´ esignation, du prix unitaire, etc.). clients - numéro client - nom client - prénom - adresse client - ... articles - numéro article - désignation - prix unitaire de vente - ... fournisseurs - n° fournisseur - nom contact - n° téléphone contact - ... Fig. 1 ? Entit´ es Par contre, les articles et les clients ne peuvent pas ? etre regroup´ es : leurs informations ne sont pas homog` enes (un article ne poss` ede pas d?adresse et un client ne poss` ede pas de prix unitaire). Il faut donc leur r´ eserver deux entit´ es distinctes : l?entit´ e articles et l?entit´ e clients. Une association est une liaison qui a une signification pr´ ecise entre plusieurs entit´ es. Dans notre exemple, l?association commander est une liaison ´ evidente entre les entit´ es articles et clients, tandis que l?association livrer ´ etablit le lien s´ emantique entre les entit´ es articles et fournisseurs. commander - quantité commandée - date de commande clients - numéro client - nom client - prénom - adresse client - ... articles - numéro article - désignation - prix unitaire de vente - ... fournisseurs - n° fournisseur - nom contact - n° téléphone contact - ... livrer - quantité livrée - date livraison - nom livreur Fig. 2 ? Associations Remarquons que dans ce sch´ ema, les entit´ es clients et fournisseurs ne sont pas li´ ees directement, mais indirectement, via l?entit´ e articles, ce qui est assez naturel. 1 MOD` ELE CONCEPTUEL DE DONN´ EES (MCD) 5 1.1.2 Attributs et identifiants Un attribut est une propri´ et´ e d?une entit´ e ou d?une association. Toujours dans notre exemple (figure 3), le prix unitaire est un attribut de l?entit´ e articles, le nom de famille est un attribut de l?entit´ e clients, la quantit´ e command´ ee est un attribut de l?association commander et la date de livraison est un attribut de l?association livrer. commander - quantité commandée - date de commande clients - numéro client - nom client - prénom - adresse client - ... articles - numéro article - désignation - prix unitaire de vente - ... fournisseurs - n° fournisseur - nom contact - n° téléphone contact - ... livrer - quantité livrée - date livraison - nom livreur Fig. 3 ? Attributs Une entit´ e et ses attributs ne doivent traiter que d?un seul sujet afin d?assurer une certaine coh´ erence au mod` ele. Dans notre exemple, il est donc pr´ ef´ erable de ne pas mettre les informations relatives aux fournisseurs dans l?entit´ e des articles mais plut? ot dans une entit´ e fournisseurs s´ epar´ ees (et li´ ee ` a l?entit´ e articles via l?association livrer). Ensuite, chaque individu d?une entit´ e doit ? etre identifiable de mani` ere unique. C?est pourquoi toutes les entit´ es doivent poss´ eder un attribut sans doublon (c?est-` a-dire ne prenant pas deux fois la m? eme valeur). Il s?agit de l?identifiant que l?on souligne sur le sch´ ema, par convention. Le num´ ero de client constitue un identifiant classique pour l?entit´ e clients (figure 4). commander - quantité commandée - date de commande clients - numéro client - nom client - prénom - adresse client - ... articles - numéro article - désignation - prix unitaire de vente - ... fournisseurs - n° fournisseur - nom contact - n° téléphone contact - ... livrer - quantité livrée - date livraison - nom livreur Fig. 4 ? Identifiants Remarques : ? une entit´ e poss` ede au moins un attribut (son identifiant) ; ? au contraire, une association peut ? etre d´ epourvue d?attribut. 1 MOD` ELE CONCEPTUEL DE DONN´ EES (MCD) 6 1.1.3 Cardinalit´ es La cardinalit´ e d?un lien entre une entit´ e et une association pr´ ecise le minimum et le maximum de fois qu?un individu de l?entit´ e peut ? etre concern´ e par l?association. Exemple : un client a au moins command´ e un article et peut commander n articles (n ´ etant ind´ etermin´ e), tandis qu?un article peut avoir ´ et´ e command´ e entre 0 et n fois (m? eme si ce n?est pas le m? eme n que pr´ ec´ edemment). On obtient alors le sch´ ema entit´ es-associations complet1 (figure 5). commander - quantité commandée - date de commande 1,n clients - numéro client - nom client - prénom - adresse client - ... articles - numéro article - désignation - prix unitaire de vente - ... 0,n fournisseurs - n° fournisseur - nom contact - n° téléphone contact - ... livrer - quantité livrée - date livraison - nom livreur 1,n 1,n Fig. 5 ? Cardinalit´ es Une cardinalit´ e minimale de 1 doit se justifier par le fait que les individus de l?entit´ e en question ont besoin de l?association pour exister (un client n?existe pas avant d?avoir command´ e quoique ce soit, donc la cardinalit´ e minimale de l?entit´ e clients dans l?association commander est 1). Dans tous les autres cas, la cardinalit´ e minimale vaut 0 (c?est le cas pour une liste pr´ e-´ etablie d?articles par exemple). Ceci dit, la discussion autour d?une cardinalit´ e minimale 0 ou 1 n?est vraiment int´ eressante que lorsque la cardinalit´ e maximale est 1. Nous verrons en effet lors de la traduction vers un sch´ ema relationnel (sec- tion 2.3), que lorsque la cardinalit´ e maximale est n, nous ne pouvons pas faire la diff´ erence entre une cardinalit´ e minimale de 0 et une cardinalit´ e minimale de 1. Notons que sur notre exemple, un article peut ? etre command´ e par plusieurs clients. Cela provient du fait que tous les crayons rouges ne sont pas num´ erot´ es individuellement, mais portent un num´ ero d?article collectif. En toute rigueur, notre entit´ e articles aurait du s?appeler types d?article. Ainsi, un crayon rouge peut ? etre command´ e par plusieurs clients, ce n?est simplement pas le m? eme crayon ` a chaque fois. Il s?agit d?un choix de mod´ elisation, le lecteur peut tr` es l´ egitimement faire le choix inverse qui consiste ` a num´ eroter individuellement chaque crayon rouge. La seule difficult´ e pour ´ etablir correctement les cardinalit´ es est de se poser les questions dans le bon sens. Autour de l?association commander, par exemple : ? c? ot´ e clients, la question est ? ? un client peut commander combien d?articles? ? ? et la r´ eponse est ?? entre 1 et plusieurs ? ? ; ? c? ot´ e articles, la question est ? ? un article peut ? etre command´ e par combien de client? ?? et cette fois-ci, la r´ eponse est ? ? entre 0 et plusieurs ? ?. 1. Le lecteur avis´ e aura not´ e que le sch´ ema de la figure 5 comporte des erreurs de conception. Ces erreurs seront corrig´ ees dans la section 1.2 d´ edi´ ee ` a la normalisation des sch´ emas entit´ es-associations. 1 MOD` ELE CONCEPTUEL DE DONN´ EES (MCD) 7 1.1.4 Associations plurielles Deux m? emes entit´ es peuvent ? etre plusieurs fois en association (c?est le cas sur la figure 6). personnes - n° personnel - nom - prénom - ... logements - n° logement - adresse - ... posséder - date d?acquisition - prix achat résider principalement - date d?entrée - montant du loyer résider secondairement - date d?entrée - montant du loyer 0,n 0,1 0,n 1,1 0,n 0,n Fig. 6 ? Associations plurielles Dans cet exemple issu d?une agence immobili` ere, une personne peut ? etre propri´ etaire, r´ esider princi- palement ou r´ esider secondairement dans un logement g´ er´ e par l?agence. Les logements qui ne sont pas g´ er´ es par l?agence ne figurent pas dans l?entit´ es des logements, ce qui explique certaines cardinalit´ es 0 du sch´ ema. Nous supposons ´ egalement qu?un logement n?est d´ etenu que par une seule personne et que ce propri´ etaire figure obligatoirement dans l?entit´ e des personnes. 1.1.5 Association r´ eflexive Il est permis ` a une association d?? etre branch´ ee plusieurs fois ` a la m? eme entit´ e, comme par exemple l?association binaire r´ eflexive de la figure 7. diriger - date début employés - n° employé - nom - fonction - adresse - ... 0,n 0,1 Fig. 7 ? Association r´ eflexive Dans cet exemple, tout employ´ e est dirig´ e par un autre employ´ e (sauf le directeur g´ en´ eral) et un employ´ e peut diriger plusieurs autres employ´ es, ce qui explique les cardinalit´ es sur le sch´ ema. 1 MOD` ELE CONCEPTUEL DE DONN´ EES (MCD) 8 1.1.6 Associations non binaires Lorsqu?autour d?une entit´ e, toutes les associations ont pour cardinalit´ es maximales 1 au centre et n ` a l?ext´ erieur, cette entit´ e est candidate pour ? etre remplac´ ee par une association branch´ ee ` a toutes les entit´ es voisines avec des cardinalit´ es identiques 0,n. La deuxi` eme condition qu?il faut imp´ erativement satisfaire est la r` egle de normalisation des attributs des associations (section suivante). Cette r` egle conduit parfois ` a l?apparition d?associations qui ´ etablissent un lien s´ emantique entre 3 entit´ es ou plus. Sur l?exemple de la figure 8 issu d?un cin´ ema, l?entit´ e projections est uniquement entour´ ee d?asso- ciations dont les cardinalit´ es maximales sont 1 c? ot´ e projections et n de l?autre c? ot´ e. De plus, la donn´ ee d?un cr´ eneau, d?un film et d?une salle suffit ` a d´ eterminer une projection unique2. On peut donc la rem- placer par une association projeter branch´ ee aux trois entit´ es salles, cr´ eneaux horaires et films. On parle alors d?association ternaire. Fig. 8 ? Entit´ e rempla¸ cable par une association ternaire 2. sans la date dans l?entit´ e cr´ eneaux horaires, la donn´ ee d?un cr´ eneau, d?un film et d?une salle aurait d´ etermin´ e plusieurs projections et l?association ternaire n?aurait pas pu se faire 1 MOD` ELE CONCEPTUEL DE DONN´ EES (MCD) 9 La difficult´ e de concevoir une association ternaire (ou plus) directement est d?´ etablir les bonnes car- dinalit´ es. Il est donc conseill´ e d?en passer par un sch´ ema entit´ es-associations dans lequel on ne trouve que des associations binaires, puis de rep´ erer les entit´ es rempla¸ cables par des associations, comme sur la figure 8 ` a gauche. Cette r` egle de conduite permet d?´ eviter d?introduire une association ternaire abusive, par exemple entre les avions, les pilotes et les vols (figure 9), car le concepteur peut s?apercevoir que l?une des cardi- nalit´ es maximales ne convient pas. vols - numéro vol - heure de départ prévue - heure d?arrivée prévue avions - numéro avion - date mise en service - modèle - propriétaire correspondre départs - numéro départ - date - heure de départ effective pilotes - numéro pilote - nom - grade utiliser assurer 0,n 1,1 0,n 1,n 1,1 0,n Fig. 9 ? Contre-exemple : l?entit´ e d´ eparts n?est pas rempla¸ cable par une association ternaire Par ailleurs, une association peut ? etre branch´ ee ` a plus de trois entit´ es, comme sur la figure 10. L` a- encore, le conseil pour ? etre s? ur de la l´ egitimit´ e de cette association 4-aire, est de v´ erifier les cardinalit´ es sur un sch´ ema interm´ ediaire faisant appara? ?tre ` a la place, une entit´ e occupations et quatre associations binaires. occuper - motif 0,n salles - n° salle - capacité jours dans la semaine - n° jour - jour 0,n 0,n semaines dans l?année - n° semaine - date de début créneaux horaires dans la journée - n° créneau - heure de début 0,n Fig. 10 ? Exemple d?entit´ e quaternaire ou 4-aire 1 MOD` ELE CONCEPTUEL DE DONN´ EES (MCD) 10 1.2 R` egles de normalisation Un bon sch´ ema entit´ es-associations doit r´ epondre ` a 9 r` egles de normalisation, que le concepteur doit conna? ?tre par c?ur. 1.2.1 Les bonnes mani` eres dans un sch´ ema entit´ es-associations Normalisation des entit´ es (importante) : toutes les entit´ es qui sont rempla¸ cables par une associa- tion doivent ? etre remplac´ ees (comme sur la figure 8). Normalisation des noms : le nom d?une entit´ e, d?une association ou d?un attribut doit ? etre unique. Conseils : ? pour les entit´ es, utiliser un nom commun au pluriel (par exemple : clients) ; ? pour les associations, utiliser un verbe ` a l?infinitif (par exemple : effectuer, concerner) ´ eventuellement ` a la forme passive (? etre command´ e) et accompagn´ e d?un adverbe (avoir lieu dans, pendant, ` a) ; ? pour les attributs, utiliser un nom commun singulier (par exemple : nom, num´ ero, libell´ e, descrip- tion) ´ eventuellement accompagn´ e du nom de l?entit´ e ou de l?association dans laquelle il se trouve (par exemple : nom de client, num´ ero d?article). Remarque : lorsqu?il reste plusieurs fois le m? eme nom, c?est parfois symptomatique d?une mod´ elisation qui n?est pas termin´ ee (figure 11(a)) ou le signe d?une redondance (figure 11(b)). étudiants - n° étudiant - nom - prénom - adresse enseignants - n° enseignant - nom - prénom - adresse personnes - n° personnel - nom - prénom - adresse fusion (a) Deux entit´ es homog` enes peuvent ? etre fusionn´ ees passer 1,n clients - numéro client - nom client - adresse de livraison commandes - n° commande - date commande - adresse de livraison 1,1 redondance, donc risque d?incohérence (b) Si deux attributs contiennent les m? emes informations, alors la redondance induit non seulement un gaspillage d?espace mais ´ egalement un grand risque d?incoh´ erence : ici, les adresses risquent de ne pas ? etre les m? emes et dans ces conditions, o` u faut-il livrer ? Fig. 11 ? Contre-exemples de la normalisation des noms 1 MOD` ELE CONCEPTUEL DE DONN´ EES (MCD) 11 Normalisation des identifiants : chaque entit´ e doit poss´ eder un identifiant. Conseils : ? ´ eviter les identifiants compos´ es de plusieurs attributs (comme par exemple un identifiant form´ e par les attributs nom et pr´ enom), car d?une part c?est mauvais pour les performances et d?autres part, l?unicit´ e suppos´ ee par une telle d´ emarche finit t? ot ou tard par ? etre d´ ementie ; ? pr´ ef´ erer un identifiant court pour rendre la recherche la plus rapide possible (´ eviter notamment les cha? ?nes de caract` eres comme un num´ ero de plaque d?immatriculation, un num´ ero de s´ ecurit´ e sociale ou un code postal3) ; ? ´ eviter ´ egalement les identifiants susceptibles de changer au cours du temps (comme les plaques d?immatriculation ou les num´ eros de s´ ecurit´ e sociale provisoires). Conclusion : l?identifiant sur un sch´ ema entit´ es-associations (et donc la future cl´ e primaire dans le sch´ ema relationnel) doit ? etre un entier, de pr´ ef´ erence incr´ ement´ e automatiquement4. Normalisation des attributs (importante) : remplacer les attributs en plusieurs exemplaires en une association suppl´ ementaire de cardinalit´ es maximales n et ne pas ajouter d?attribut calculable ` a partir d?autres attributs. En effet, d?une part, les attributs en plusieurs exemplaires posent des probl` emes d?´ evolutivit´ e du mod` ele (sur la figure 12(a) ` a gauche, comment faire si un employ´ e a deux adresses secondaires?) et employés - n° employé - nom - adresse principale - adresse secondaire - n° téléphone domicile - n° téléphone portable employés - n° employé - nom adresses - n° adresse - adresse numéros de tél. - n° de n° de tél. - n° de téléphone - fixe ou portable 1,n 1,n 1,n 1,n posséder occuper - type normalisation (a) Attributs en plusieurs exemplaires remplac´ es par une association suppl´ ementaire commandes - n° commande - date commande - montant total articles - numéro article - désignation - prix unitaire de vente figurer - quantité 1,n 0,n calculable à partir de (b) Attribut calculable qu?il faut retirer du sch´ ema Fig. 12 ? Contre-exemples de la normalisation des attributs d?autre part, les attributs calculables induisent un risque d?incoh´ erence entre les valeurs des attributs de 3. Un num´ ero de s´ ecurit´ e sociale, un code postal ou un num´ ero de t´ el´ ephone sont bien des cha? ?nes de caract` eres, m? eme si elles ne comportent que des chiffres, tout simplement parce que ces num´ eros peuvent commencer par un 0, ce qui, en informatique, n?est pas possible avec un entier. 4. Le seul inconv´ enient de cette num´ erotation arbitraire est qu?il devient possible ` a une table de poss´ eder deux fois la m? eme ligne (avec deux num´ eros diff´ erents). Le conseil reste pourtant largement avantageux 1 MOD` ELE CONCEPTUEL DE DONN´ EES (MCD) 12 base et celles des attributs calcul´ es, comme sur la figure 12(b). D?autres d?attributs calculables classiques sont ` a ´ eviter, comme l?? age (qui est calculable ` a partir de la date de naissance) ou encore le d´ epartement (calculable ` a partir d?une sous-cha? ?ne du code postal). Normalisation des attributs des associations (importante) : les attributs d?une association doivent d´ ependre directement des identifiants de toutes les entit´ es en association. Par exemple, sur la figure 5 la quantit´ e command´ ee d´ epend ` a la fois du num´ ero de client et du num´ ero d?article, par contre la date de commande non. Il faut donc faire une entit´ e commandes ` a part, idem pour les livraisons (figure 13). concerner (1) - quantité commandée 1,n clients - numéro client - nom client - prénom - adresse client articles - numéro article - désignation - prix unitaire de vente 0,n fournisseurs - n° fournisseur - nom contact - n° téléphone contact concerner (2) - quantité livrée 1,n 1,n commandes - n° commande - date commande livraisons - n° livraison - date de livraison passer 1,n 1,! 1,n 1,! livrer - nom du livreur Fig. 13 ? Normalisation des attributs des associations L?inconv´ enient de cette r` egle de normalisation est qu?elle est difficile ` a appliquer pour les associations qui ne poss` edent pas d?attribut. Pour v´ erifier malgr´ e tout qu?une association sans attribut est bien nor- malis´ ee, on peut donner temporairement ` a cette association un attribut imaginaire (mais pertinent) qui permet de v´ erifier la r` egle. Par exemple, entre les entit´ es livres et auteurs de la figure 16, l?association ´ ecrire ne poss` ede pas d?attribut. Imaginons que nous ajoutions un attribut pourcentage qui contient le pourcentage du livre ´ ecrit par chaque auteur (du m? eme livre). Comme cet attribut pourcentage d´ epend ` a la fois du num´ ero de livre et du num´ ero d?auteur, l?association ´ ecrire est bien normalis´ ee. Autre cons´ equence de la normalisation des attributs des associations : une entit´ e avec une cardinalit´ e de 1,1 ou 0,1 aspire les attributs de l?association (figure 14). fournisseurs - n° fournisseur - nom contact - n° téléphone contact livraisons - n° livraison - date de livraison - livrer - nom du livreur 1,n 1,1 cet attribut passe ici Fig. 14 ? Cardinalit´ e 1,1 et attributs d?une association 1 MOD` ELE CONCEPTUEL DE DONN´ EES (MCD) 13 Normalisation des associations (importante) : il faut ´ eliminer les associations fant? omes (figure 15(a)), redondantes (figure 15(b)) ou en plusieurs exemplaires (figure 15(c)). fournisseurs - n° fournisseur - nom fournisseur - adresse contacts - n° contact - nom du contact - n° téléphone du contact travailler chez 1,1 1,1 fusion fournisseurs - n° fournisseur - nom fournisseur - adresse - nom du contact - n° téléphone du contact (a) les cardinalit´ es sont toutes 1,1 donc c?est une association fant? ome clients - numéro client - nom client factures - n° facture - date facture - montant total règlements - n° règlement - date règlement - montant payer recevoir correspondre 0,n 0,n 1,1 1,1 1,1 0,n (b) si un client ne peut pas r´ egler la facture d?un autre client, alors l?association payer est inutile et doit ? etre supprim´ ee (dans le cas contraire, l?association payer doit ? etre maintenue) normalisation joueurs de tennis - n° joueur - nom - genre - classement matchs de tennis - n° match - date joueur 1 co-équipier 1 joueur 2 co-équipier 2 1,1 1,1 0,1 0,1 0,n 0,n 0,n 0,n joueurs de tennis - n° joueur - nom - genre - classement matchs de tennis - n° match - date jouer 0,n 2,4 ou plutôt 1,n (c) une association suffit pour remplacer les 4 associations participer en tant que ... Fig. 15 ? Contre-exemples de la normalisation des associations 1 MOD` ELE CONCEPTUEL DE DONN´ EES (MCD) 14 En ce qui concerne les associations redondantes, cela signifie que s?il existe deux chemins pour se rendre d?une entit´ e ` a une autre, alors ils doivent avoir deux significations ou deux dur´ ees de vie diff´ erentes. Si- non, il faut supprimer le chemin le plus court, car il est d´ eductible ` a partir de l?autre chemin. Dans notre exemple de la figure 15(b), si on supprime l?association payer, on peut retrouver le client qui a pay´ e le r` eglement en passant par la facture qui correspond. Remarque : une autre solution pour le probl` eme de la figure 15(b) consiste ` a retirer l?entit´ e r` eglements et d?ajouter une association r´ egler avec les m? emes attributs (sauf l?identifiant) entre les entit´ es clients et factures. Normalisation des cardinalit´ es : une cardinalit´ e minimale est toujours 0 ou 1 (et pas 2, 3 ou n) et une cardinalit´ e maximale est toujours 1 ou n (et pas 2, 3, ...). Cela signifie que si une cardinalit´ e maximale est connue et vaut 2, 3 ou plus (comme sur la figure 15(c) ` a droite, ou pour un nombre limit´ e d?emprunts dans une biblioth` eque), alors nous consid´ erons quand m? eme qu?elle est ind´ etermin´ ee et vaut n. Cela se justifie par le fait que m? eme si nous connaissons n au moment de la conception, il se peut que cette valeur ´ evolue au cours du temps. Il vaut donc mieux consid´ erer n comme une inconnue d` es le d´ epart. Cela signifie ´ egalement qu?on ne mod´ elise pas les cardinalit´ es minimales qui valent plus de 1 car ce genre de valeur est aussi amen´ ee ` a ´ evoluer. Par ailleurs, avec une cardinalit´ e maximale de 0, l?association n?aurait aucune signification. Dans un SGBD relationnel, nous pourrions assurer les cardinalit´ es valant 2, 3 ou plus, via l?utilisation de d´ eclencheurs. Mais cette notion n?est pas abord´ ee dans ce document qui se contente, au contraire, de d´ ecrire ce qu?il est possible de faire sans utiliser de d´ eclencheur. 1.2.2 Les formes normales ` A ces 6 r` egles de normalisation, il convient d?ajouter les 3 premi` eres formes normales traditionnel- lement ´ enonc´ ees pour les sch´ emas relationnels, mais qui trouvent tout aussi bien leur place en ce qui concerne les sch´ emas entit´ es-associations. Premi` ere forme normale : ` a un instant donn´ e dans une entit´ e, pour un individu, un attribut ne peut prendre qu?une valeur et non pas, un ensemble ou une liste de valeurs. Si un attribut prend plusieurs valeurs, alors ces valeurs doivent faire l?objet d?une entit´ e suppl´ ementaire, en association avec la premi` ere (figure 16). livres - numéro livre - titre - auteurs - éditeur - nombre de pages - année 1ère forme normale livres - numéro livre - titre - éditeur - nombre de pages - année auteurs - numéro auteur - nom écrire 1,n 1,n Fig. 16 ? Application de la premi` ere forme normale : il peut y avoir plusieurs auteurs pour un livre donn´ e 1 MOD` ELE CONCEPTUEL DE DONN´ EES (MCD) 15 Deuxi` eme forme normale : l?identifiant peut ? etre compos´ e de plusieurs attributs mais les autres attributs de l?entit´ e doivent d´ ependre de l?identifiant en entier (et non pas une partie de cet identifiant). Cette deuxi` eme forme normales peut ? etre oubli´ ee si on suit le conseil de n?utiliser que des identifiants non compos´ es et de type entier. En v´ erit´ e, elle a ´ et´ e vid´ ee de sa substance par la r` egle de normalisation des attributs des associations (page 12). Consid´ erons malgr´ e tout le contre-exemple suivant : dans une entit´ e clients dont l?identifiant est compos´ e des attributs nom et pr´ enom, la date de f? ete d?un client ne d´ epend pas de son identifiant en entier mais seulement de pr´ enom. Elle ne doit pas figurer dans l?entit´ e clients, il faut donc faire une entit´ e calendrier ` a part, en association avec l?entit´ e clients. Troisi` eme forme normale de Boyce-Codd (importante) : tous les attributs d?une entit´ e doivent d´ ependre directement de son identifiant et d?aucun autre attribut. Si ce n?est pas le cas, il faut placer l?attribut pathologique dans une entit´ e s´ epar´ ee, mais en association avec la premi` ere. num´ ero avion constructeur mod` ele capacit´ e propri´ etaire 1 Airbus A380 180 Air France 2 Boeing B747 314 British Airways 3 Airbus A380 180 KLM Tab. 1 ? Il y a redondance (et donc risque d?incoh´ erence) dans les colonnes constructeur et capacit´ e Par exemple, l?entit´ e avions (figure 17 ` a gauche) dont les valeurs sont donn´ ees dans le tableau 1, n?est pas en troisi` eme forme normale de Boyce-Codd, car la capacit´ e et le constructeur d?un avion ne d´ ependent pas du num´ ero d?avion mais de son mod` ele. La solution normalis´ ee est donn´ ee figure 17 ` a droite. avions - numéro avion - constructeur - modèle - capacité - propriétaire avions - numéro avion - propriétaire modèles d?avion - numéro modèle - modèle - constructeur - capacité être du 1,n 1,n 3ème forme normale Fig. 17 ? Application de la troisi` eme forme normale de Boyce-Codd 1 MOD` ELE CONCEPTUEL DE DONN´ EES (MCD) 16 1.3 D´ ependances fonctionnelles Pour ´ etablir efficacement un mod` ele entit´ es-associations bien normalis´ e, on peut ´ etudier au pr´ ealable les d´ ependances fonctionnelles entre les attributs puis, les organiser en graphe de couverture minimale. Cette technique est traditionnellement employ´ ee pour normaliser des sch´ emas relationnels, mais elle s?applique tr` es bien en amont, au niveau des mod` eles conceptuels. 1.3.1 D´ efinitions et propri´ et´ es Un attribut Y d´ epend fonctionnellement d?un attribut X si et seulement si une valeur de X induit une unique valeur de Y . On note une d´ ependance fonctionnelle par une fl` eche simple : X ? Y . Par exemple, si X est le num´ ero de client et Y le nom de client, alors on a bien X ? Y . Par contre, on a pas Y ? X, car plusieurs clients de num´ eros diff´ erents peuvent porter le m? eme nom. Transitivit´ e : si X ? Y et Y ? Z alors X ? Z. Par exemple, on a num´ ero de commande ? num´ ero de client ? nom de client, donc on a aussi num´ ero de commande ? nom de client. Mais la d´ ependance fonctionnelle num´ ero de commande ? nom de client est dite transitive, car il faut passer par le num´ ero de client pour l?obtenir. Au contraire, la d´ ependance fonctionnelle num´ ero de client ? nom de client est directe . Seules les d´ ependances fonctionnelles directes nous int´ eressent. D?autres exemples sont donn´ ees dans le tableau 2. d´ ependance fonctionnelle directe ? num´ ero de livraison ? date de livraison oui num´ ero de livraison ? num´ ero du fournisseur oui num´ ero du fournisseur ? nom du fournisseur oui num´ ero de livraison ? nom du fournisseur non Tab. 2 ? Exemples de d´ ependances fonctionnelles Un attribut Y peut avoir une d´ ependance fonctionnelle qui repose sur la conjonction de plusieurs attri- buts, auquel cas la d´ ependance est dite non ´ el´ ementaire . Les d´ ependances fonctionnelles non ´ el´ ementaires sont not´ ees par une fl` eche unique mais comportant plusieurs points d?entr´ ee (regroup´ es autour d?un cercle). Par exemple, la quantit´ e command´ ee (d?un article dans une commande) d´ epend de deux attributs : le num´ ero de commande et le num´ ero d?article (figure 18). Notons que cette d´ ependance num´ ero de commande + num´ ero d?article ? quantit´ e est ` a la fois non ´ el´ ementaire et directe. quantité commandée numéro de commande numéro d?article Fig. 18 ? D´ ependance fonctionnelle non ´ el´ ementaire, mais directe 1 MOD` ELE CONCEPTUEL DE DONN´ EES (MCD) 17 1.3.2 Graphe de couverture minimale En repr´ esentant tous les attributs et toutes les d´ ependances fonctionnelles directes entre eux, nous obtenons un r´ eseau appel´ e graphe de couverture minimale. Dans notre exemple sur les clients, les com- mandes et les articles, ce graphe est donn´ e sur la figure 19. numéro de commande date de commande numéro de client numéro d?article quantité commandée nom du client adresse du client désignation Fig. 19 ? Graphe de couverture minimale La technique de traduction en un sch´ ema entit´ es-associations qui suit, suppose qu?aucun attribut n?a ´ et´ e oubli´ e sur le graphe de couverture minimal et notamment, aucun identifiant. D?ailleurs toutes les d´ ependances fonctionnelles du graphe doivent partir d?un identifiant. Si ce n?est pas le cas, c?est qu?un identifiant a ´ et´ e omis. 1.3.3 Traduction vers un sch´ ema entit´ es-associations ` A partir du graphe de couverture minimale (figure 19), le sch´ ema entit´ es-associations normalis´ e cor- respondant appara? ?t naturellement (figure 20), en suivant quelques ´ etapes simples. numéro de commande date de commande numéro de client numéro d?article quantité commandée nom du client adresse du client désignation Fig. 20 ? Identification des entit´ es et des associations sur un graphe de couverture minimale ´ Etape 1 : il faut rep´ erer et souligner les identifiants. ´ Etape 2 : puis tous les attributs non identifiant qui d´ ependent directement d?un identifiant et d?un seul, forment une entit´ e (avec l?identifiant, bien s? ur). ´ Etape 3 : ensuite, les d´ ependances ´ el´ ementaires entre les identifiants forment des associations binaires dont les cardinalit´ es maximales sont 1 au d´ epart de la d´ ependance fonctionnelle et n ` a l?arriv´ ee. ´ Etape 4 : sauf si entre deux identifiants se trouvent deux d´ ependances ´ el´ ementaires r´ eflexives5, au- quel cas l?association binaire a deux cardinalit´ es maximales valant 1. 5. c?est ` a cause de cette ´ etape 4 qu?il est pr´ ef´ erable de ne pas traduire directement le graphe de couverture minimale en un sch´ ema relationnel, cf. les commentaires de la r` egle 4 page 25 1 MOD` ELE CONCEPTUEL DE DONN´ EES (MCD) 18 ´ Etape 5 : enfin, les attributs (non identifiants) qui d´ ependent de plusieurs identifiants sont les attri- buts d?une association suppl´ ementaire dont les cardinalit´ es maximales sont toutes n. La traduction du graphe de couverture minimale de la figure 20 en un sch´ ema entit´ es-associations normalis´ e est donn´ ee sur la figure 21. concerner - quantité commandée clients - numéro client - nom client - prénom - adresse client articles - numéro article - désignation commandes - n° commande - date commande passer 1,n 1,1 1,n 0,n Fig. 21 ? Sch´ ema entit´ es-associations normalis´ e obtenu ` a partir du graphe de couverture minimale Dans ce genre de traduction, il faut donner un nom aux entit´ es et aux associations, car ce n?est pas le cas sur le graphe de couverture minimale et il reste les cardinalit´ es minimales ` a ´ etablir. Remarquons ´ egalement qu?en r´ ealit´ e, il faut d´ ej` a conna? ?tre les entit´ es en pr´ esence pour ´ etablir cor- rectement le graphe de couverture minimale, ne serait-ce que pour y faire figurer leurs identifiants. Donc finalement, cette technique n?est une aide pour ´ etablir les associations entre les entit´ es et pour normaliser les entit´ es et leurs associations (jusqu?en troisi` eme forme normale de Boyce-Codd). 1.3.4 Gestion des dates et du caract` ere historique Dans une biblioth` eque, on peut vouloir stocker les emprunts en cours (figure 22) et/ou les emprunts historiques (figure 23). Pour les emprunts en cours, la date de retour pr´ evu est un attribut de l?entit´ e numéro de livre date d? emprunt numéro de membre nom titre date de retour prévu adresse livres - n° livres - titre - date d?emprunt - date retour prévu 0,1 emprunts en cours 0,n membres - n° membre - nom - adresse traduction Fig. 22 ? Sans historisation des emprunts, pas de probl` eme livres car un livre ne peut faire l?objet que d?un seul emprunt en cours. Dans ce cas, l?´ etablissement du graphe de couverture minimal ne pose aucun probl` eme. 1 MOD` ELE CONCEPTUEL DE DONN´ EES (MCD) 19 Par contre, un livre peut faire l?objet de plusieurs emprunts historiques et dans ces conditions, la date d?emprunt est d´ eterminante pour conna? ?tre la date de retour pr´ evue (figure 23 en haut ` a gauche). Or une date n?est pas un identifiant6 et une d´ ependance fonctionnelle ne peut partir que d?un ou plusieurs identifiant(s). C?est le signe qu?il manque un identifiant : le num´ ero d?emprunt (figure 23 en haut ` a droite). numéro de livre date d?emprunt numéro de membre nom titre date de retour prévu adresse date de retour effectif numéro de livre date d?emprunt numéro de membre nom titre date de retour prévu adresse date de retour effectif numéro d?emprunt livres - n° livre - titre 1,1 avoir effectuer 0,n membres - n° membre - nom - adresse emprunts historiques - numéro d?emprunt - date d?emprunt - date de retour prévu - date retour effectif concerner 1,1 0,n correction traduction Fig. 23 ? M? eme pour une entit´ e historis´ ee, il vaut mieux ´ eviter que la date n?entre dans l?identifiant Notons que l?entit´ e emprunts historiques suppl´ ementaire qui appara? ?t apr` es traduction (figure 23 en bas) ne peut pas ? etre transform´ ee en une association comme on pourrait le croire au simple examen des cardinalit´ es qui l?entourent. En effet, les attributs de l?association qui en r´ esulterait ne v´ erifieraient pas la normalisation des attributs des associations. Notamment, la date de retour effectif ne d´ epend pas du num´ ero de livre et du num´ ero de membre, mais du num´ ero de livre et de la date d?emprunt. La normalisation des entit´ es ne s?applique donc pas aux entit´ es qui ont un caract` ere historique. ` A moins que les dates ne soient regroup´ ees dans une entit´ e s´ epar´ ee, ce qui n?est pas conseill´ e tant qu?aucune information li´ ee aux dates (comme le caract` ere f´ eri´ e, par exemple) n?est n´ ecessaire. 6. Si on suit le pr´ ecieux conseil de n?utiliser que des entiers arbitraires et auto-incr´ ement´ es comme identifiant. 1 MOD` ELE CONCEPTUEL DE DONN´ EES (MCD) 20 1.3.5 D´ ependances plurielles et r´ eflexives Une ou plusieurs d´ ependances fonctionnelles peuvent partir ou arriver plusieurs fois du m? eme attri- but. Pour clarifier la signification de chaque d´ ependance fonctionnelle, on peut ajouter un commentaire sur la fl` eche (figure 24). Ce commentaire sert ensuite ` a donner un nom aux associations correspondantes. numéro de médecin numéro de remplacement médecin remplacé médecin remplaçant nom adresse professionnelle date de début date de fin (a) d´ ependances plurielles numéro personnel père mère nom prénom (b) d´ ependances r´ eflexives Fig. 24 ? D´ ependances fonctionnelles comment´ ees Les d´ ependances fonctionnelles plurielles entre les m´ edecins et le remplacements (figure 24(a)) de- viennent, apr` es traduction, des associations plurielles entre les entit´ es m´ edecins et remplacements. No- tons que l?entit´ e remplacements ainsi g´ en´ er´ ee, a aussi un caract` ere historique. Les fonctionnelles r´ eflexives (X ? X), quoique toujours vraies, ne pr´ esentent aucun int´ er? et, ` a moins qu?elles aient une signification particuli` ere. Un exemple de d´ ependance r´ eflexive licite sur un graphe de couverture minimale est la d´ ependance fonctionnelle personne ? personne, lorsqu?elle signifie ? ? diriger ??, ? ? ? etre en couple avec ? ? ou ? ? ? etre le p` ere ou la m` ere de ? ? (figure 24(b)). Dans le m? eme ordre d?id´ ee, il est inutile de faire figurer sur le graphe de couverture minimal des d´ ependances fonctionnelles non ´ el´ ementaires vraies, mais idiotes, comme par exemple num´ ero de commande + num´ ero d?article ? num´ ero de commande. 1.3.6 Associations sans attributs La lacune majeure de cette m´ ethode reste tout de m? eme le fait que les associations dont toutes les cardinalit´ es maximales sont n mais qui sont sans attribut ne figurent pas sur le graphe de couverture minimale. Il faut alors, soit leur inventer temporairement un attribut (comme pour la normalisation des attributs des associations), soit introduire une notation sp´ eciale (par exemple, une d´ ependance non ´ el´ ementaire qui ne d´ ebouche sur aucun attribut). Pour illustrer ce d´ efaut, prenons l?exemple des films et des acteurs (figure 25). Il n?y a pas d?attribut numéro de film durée titre numéro d?acteur nom de scène date de naissance films - n° film - titre - durée 0,n jouer dans 0,n acteurs - numéro acteur - nom de scène - date naissance traduction Fig. 25 ? Utilisation d?une d´ ependance non ´ el´ ementaire et sans enfant sur un graphe de couverture minimal qui d´ epende ` a la fois du num´ ero de film et du num´ ero d?acteur (` a moins d?imaginer le temps d?apparition ` a l?´ ecran). Et pourtant, les deux entit´ es films et acteurs sont en association. Gr? ace ` a la d´ ependance non ´ el´ ementaire et sans enfant, on peut rendre compte de cette situation sur le graphe de couverture minimale et faire ainsi appara? ?tre l?association sur le sch´ ema entit´ es-associations qui en est traduit. 1 MOD` ELE CONCEPTUEL DE DONN´ EES (MCD) 21 1.4 M´ ethodologie de base Face ` a une situation bien d´ efinie (soit ` a travers un ´ enonc´ e pr´ ecis, soit ` a travers une collection de for- mulaires ou d?´ etats que le nouveau syst` eme d?information est cens´ e remplacer), nous pouvons proc´ eder sans ´ etablir le graphe de couverture minimale : ? identifier les entit´ es en pr´ esence ; ? lister leurs attributs ; ? ajouter les identifiants (num´ ero arbitraire et auto-incr´ ement´ e) ; ? ´ etablir les associations binaires entre les entit´ es ; ? lister leurs attributs ; ? calculer les cardinalit´ es ; ? v´ erifier les r` egles de normalisation et en particulier, la normalisation des entit´ es (c?est ` a ce stade qu?apparaissent les associations non binaires), des associations et de leurs attributs ainsi que la troisi` eme forme normale de Boyce-Codd ; ? effectuer les corrections n´ ecessaires. Mais, il est parfois plus intuitif d?en passer par l?´ etude des d´ ependances fonctionnelles directes : ? identifier les entit´ es en pr´ esence et leur donner un identifiant (num´ ero arbitraire et auto-incr´ ement´ e) ; ? ajouter l?ensemble des attributs et leur d´ ependances fonctionnelles directes avec les identifiants (en commen¸ cant par les d´ ependances ´ el´ ementaires) ; ? traduire le graphe de couverture minimale obtenu en un sch´ ema entit´ es-associations ; ? ajuster les cardinalit´ es minimales et ; ? ` a ce stade, la majorit´ e des r` egles de normalisation devraient ? etre v´ erifi´ ees, il reste tout de m? eme la normalisation des noms, la pr´ esence d?attributs en plusieurs exemplaires et d?associations redon- dantes ou en plusieurs exemplaires, ` a corriger. Il faut garder ´ egalement ` a l?esprit que le mod` ele doit ? etre exhaustif (c?est-` a-dire contenir toutes les informations n´ ecessaires) et ´ eviter toute redondance qui, on ne le dira jamais assez, constitue une perte d?espace, une d´ emultiplication du travail de maintenance et un risque d?incoh´ erence. Il faut par ailleurs veiller ` a ´ eliminer les synonymes (plusieurs signifiants pour un signifi´ e, exemple : nom, patronyme, appellation) et les polys` emes (plusieurs signifi´ es pour un signifiant, exemples : qualit´ e, statut). Il va de soi que cette m´ ethodologie ne doit pas ? etre suivie pas-` a-pas une bonne fois pour toute. Au contraire, il faut it´ erer plusieurs fois les ´ etapes successives, pour esp´ erer converger vers une mod´ elisation pertinente de la situation. 2 MOD` ELE LOGIQUE DE DONN´ EES (MLD) 22 2 Mod` ele logique de donn´ ees (MLD) Maintenant que le MCD est ´ etabli, on peut le traduire en diff´ erents syst` emes logiques et notamment les bases de donn´ ees relationnelles qui proposent une vision plus concr` ete pour mod´ eliser la situation. 2.1 Syst` emes logiques Avant l?apparition des syst` emes de gestion de base de donn´ ees (SGBD ou DBMS pour Data Base Management System), les donn´ ees ´ etaient stock´ ees dans des fichiers binaires et g´ er´ ees par des programmes ex´ ecutables (d´ evelopp´ es en Basic, Cobol ou Dbase, par exemple). [Gabay] propose ` a ce sujet une traduc- tion d?un MPD vers un MLD fichier. Mais la maintenance des programmes (en cas de modification de la structure des donn´ ees, notamment) ´ etait tr` es probl´ ematique. Sont alors apparus les SGBD hi´ erarchiques dans lesquels les donn´ ees sont organis´ ees en arbre (IMS- DL1 d?IBM, par exemple), puis les SGBD r´ eseaux dans lesquels les donn´ ees sont organis´ ees selon un graphe plus g´ en´ eral (IDS2 de Bull, par exemple). [Matheron, Nanci et al., Gabay] d´ ecrivent la traduc- tion d?un MPD vers un MLD Codasyl (base de donn´ ees r´ eseaux). Ces deux types de SGBD sont dit navigationnels car on peut retrouver l?information ` a condition d?en conna? ?tre le chemin d?acc` es. Aujourd?hui, ils sont largement remplac´ es par les SGBD relationnels (SGBDR) avec lesquels l?infor- mation peut ? etre obtenue par une requ? ete formul´ ee dans un langage quasiment naturel (la langage SQL pour Structured Query Langage). Parmi les SGBDR les plus r´ epandus nous trouvons Oracle, SQL Server et DB2. Nous nous contentons ici d?exposer le mod` ele logique de donn´ ees relationnel (MLDR). Plus r´ ecemment, sont apparus le mod` ele logique orient´ e objet et m? eme des SGBD orient´ es objets. Pourtant, les SGBD relationnels restent extr? emement majoritaires, tandis que l?approche orient´ e objet est parfaitement adapt´ ee au d´ eveloppement d?applications clientes dynamiques et li´ ees aux donn´ ees du syst` eme d?information. 2.2 Mod` ele logique relationnel Concentrons-nous d´ esormais sur le MLDR. 2.2.1 Tables, lignes et colonnes Lorsque des donn´ ees ont la m? eme structure (comme par exemple, les renseignements relatifs aux clients), on peut les organiser en table dans laquelle les colonnes d´ ecrivent les champs en commun et les lignes contiennent les valeurs de ces champs pour chaque enregistrement (tableau 3). num´ ero client nom pr´ enom adresse 1 Dupont Michel 127, rue... 2 Durand Jean 314, boulevard... 3 Dubois Claire 51, avenue... 4 Dupuis Marie 2, impasse... ... ... ... ... Tab. 3 ? Contenu de la table clients, avec en premi` ere ligne les intitul´ es des colonnes 2.2.2 Cl´ es primaires et cl´ es ´ etrang` eres Les lignes d?une table doivent ? etre uniques, cela signifie qu?une colonne (au moins) doit servir ` a les identifier. Il s?agit de la cl´ e primaire de la table. 2 MOD` ELE LOGIQUE DE DONN´ EES (MLD) 23 L?absence de valeur dans une cl´ e primaire ne doit pas ? etre autoris´ ee. Autrement dit, la valeur vide (NULL) est interdite dans une colonne qui sert de cl´ e primaire, ce qui n?est pas forc´ ement le cas des autres colonnes, dont certaines peuvent ne pas ? etre renseign´ ees ` a toutes les lignes. De plus, la valeur de la cl´ e primaire d?une ligne ne devrait pas, en principe, changer au cours du temps. Par ailleurs, il se peut qu?une colonne Colonne1 d?une table ne doive contenir que des valeurs prises par la colonne Colonne2 d?une autre table (par exemple, le num´ ero du client sur une commande doit correspondre ` a un vrai num´ ero de client). La Colonne2 doit ? etre sans doublons (bien souvent il s?agit d?une cl´ e primaire). On dit alors que la Colonne1 est cl´ e ´ etrang` ere et qu?elle r´ ef´ erence la Colonne2. Par convention, on souligne les cl´ es primaires et on fait pr´ ec´ eder les cl´ es ´ etrang` eres d?un di` ese # dans la description des colonnes d?une table : clients(num´ ero client, nom client, pr´ enom, adresse client) commandes(num´ ero commande, date de commande, #num´ ero client (non vide)) Remarques : ? une m? eme table peut avoir plusieurs cl´ es ´ etrang` eres mais une seule cl´ e primaire (´ eventuellement compos´ ees de plusieurs colonnes) ; ? une colonne cl´ e ´ etrang` ere peut aussi ? etre primaire (dans la m? eme table) ; ? une cl´ e ´ etrang` ere peut ? etre compos´ ee (c?est le cas si la cl´ e primaire r´ ef´ erenc´ ee est compos´ ee) ; ? implicitement, chaque colonne qui compose une cl´ e primaire ne peut pas recevoir la valeur vide (NULL interdit) ; ? par contre, si une colonne cl´ e ´ etrang` ere ne doit pas recevoir la valeur vide, alors il faut le pr´ eciser dans la description des colonnes. Les SGBDR v´ erifient au coup par coup que chaque cl´ e ´ etrang` ere ne prend pas de valeurs en dehors de celles d´ ej` a prises par la ou les colonne(s) qu?elle r´ ef´ erence. Ce m´ ecanisme qui agit lors de l?insertion, de la suppression ou de la mise ` a jour de lignes dans les tables, garantit ce que l?on appelle l?int´ egrit´ e r´ ef´ erentielle des donn´ ees. 2.2.3 Sch´ ema relationnel On peut repr´ esenter les tables d?une base de donn´ ees relationnelle par un sch´ ema relationnel dans lequel les tables sont appel´ ees relations et les liens entre les cl´ es ´ etrang` eres et leur cl´ e primaire est sym- bolis´ e par un connecteur (figure 26). clients - numéro client - nom client - prénom - adresse client commandes - n° commande - date commande - #numéro client (non vide) Fig. 26 ? Sch´ ema relationnel simple entre deux tables Certains ´ editeur inscrivent sur le connecteur un symbole 1 c? ot´ e cl´ e primaire et un symbole ? c? ot´ e cl´ e ´ etrang` ere (` a condition que celle-ci ne soit pas d´ ej` a cl´ e primaire). Il faut prendre garde avec cette convention, car le symbole ? se trouve du c? ot´ e oppos´ e ` a la cardinalit´ e maximale n correspondante. 2 MOD` ELE LOGIQUE DE DONN´ EES (MLD) 24 2.3 Traduction d?un MCD en un MLDR Pour traduire un MCD en un MLDR, il suffit d?appliquer cinq r` egles. Notations : on dit qu?une association binaire (entre deux entit´ es ou r´ eflexive) est de type : ? 1 : 1 (un ` a un) si aucune des deux cardinalit´ es maximales n?est n ; ? 1 : n (un ` a plusieurs) si une des deux cardinalit´ es maximales est n ; ? n : m (plusieurs ` a plusieurs) si les deux cardinalit´ es maximales sont n. En fait, un sch´ ema relationnel ne peut faire la diff´ erence entre 0,n et 1,n. Par contre, il peut la faire entre 0,1 et 1,1 (r` egles 2 et 4). R` egle 1 : toute entit´ e devient une table dans laquelle les attributs deviennent les colonnes. L?identi- fiant de l?entit´ e constitue alors la cl´ e primaire de la table. Par exemple, l?entit´ e articles de la figure 13 devient la table : articles(num´ ero article, d´ esignation, prix unitaire de vente) R` egle 2 : une association binaire de type 1 : n dispara? ?t, au profit d?une cl´ e ´ etrang` ere dans la table c? ot´ e 0,1 ou 1,1 qui r´ ef´ erence la cl´ e primaire de l?autre table. Cette cl´ e ´ etrang` ere ne peut pas recevoir la valeur vide si la cardinalit´ e est 1,1. Par exemple, l?association livrer de la figure 13 est traduite par : fournisseurs(n? fournisseur, nom contact, n? t´ el´ ephone contact) livraisons(n? livraison, date de livraison, nom livreur, #n? fournisseur (non vide)) fournisseurs - n° fournisseur - nom contact - n° téléphone contact livraisons - n° livraison - date de livraison - nom livreur livrer 1,n 1,1 traduction fournisseurs - n° fournisseur - nom contact - n° téléphone contact livraisons - n° livraison - date de livraison - nom livreur - #n° fournisseur (non vide) Fig. 27 ? Traduction d?une association de type 1 : n Il ne devrait pas y avoir d?attribut dans une association de type 1 : n, mais s?il en reste, alors ils glissent vers la table c? ot´ e 1. 2 MOD` ELE LOGIQUE DE DONN´ EES (MLD) 25 R` egle 3 : une association binaire de type n : m devient une table suppl´ ementaire (parfois appel´ ee table de jonction, table de jointure ou table d?association) dont la cl´ e primaire est compos´ ee de deux cl´ es ´ etrang` eres (qui r´ ef´ erencent les deux cl´ es primaires des deux tables en association). Les attributs de l?association deviennent des colonnes de cette nouvelle table. Par exemple, l?association concerner (1) de la figure 13 est traduite par la table suppl´ ementaire lignes de commande : lignes de commande(#n? commande, #n? article, quantit´ e command´ ee) concerner (1) - quantité commandée articles - numéro article - désignation - prix unitaire de vente 0,n commandes - n° commande - date commande 1,n traduction articles - numéro article - désignation - prix unitaire de vente commandes - n° commande - date commande lignes de commandes - #n° commande - #n° article - quantité commandée Fig. 28 ? Traduction d?une association de type n : m R` egle 4 : une association binaire de type 1 : 1 est traduite comme une association binaire de type 1 : n sauf que la cl´ e ´ etrang` ere se voit imposer une contrainte d?unicit´ e en plus d?une ´ eventuelle contrainte de non vacuit´ e (cette contrainte d?unicit´ e impose ` a la colonne correspondante de ne prendre que des valeurs distinctes). Si les associations fant? omes ont ´ et´ e ´ elimin´ ees, il devrait y avoir au moins un c? ot´ e de cardinalit´ e 0,1. C?est alors dans la table du c? ot´ e oppos´ e que doit aller la cl´ e ´ etrang` ere. Si les deux c? ot´ es sont de cardinalit´ e 0,1 alors la cl´ e ´ etrang` ere peut ? etre plac´ ee indiff´ eremment dans l?une des deux tables. Par exemple, l?association diriger de la figure 29 est traduite par : services(n? service, nom service, #num´ ero employ´ e (non vide, unique)) employ´ es(num´ ero employ´ es, nom) diriger services - n° service - nom service 1,1 employés - n° employé - nom 0,1 services - n° service - nom service - #n° employé (unique, non vide) employés - n° employé - nom traduction Fig. 29 ? Traduction d?une association de type 1 : 1 2 MOD` ELE LOGIQUE DE DONN´ EES (MLD) 26 En r´ ealit´ e, la r` egle 4 propos´ ee ici consid` ere qu?une association binaire de type 1 : 1 correspond ` a une association binaire de type 1 : n particuli` ere. Une alternative consiste ` a voir une association binaire de type 1 : 1 comme une association binaire de type n : m particuli` ere. Il suffit pour cela d?ajouter une contrainte d?unicit´ e sur chacune des cl´ es ´ etrang` eres de la table de jonction suppl´ ementaire : services(n? service, nom service) directions(#n? service (unique), #num´ ero employ´ e (unique) employ´ es(num´ ero employ´ es, nom) services - n° service - nom service employés - n° employé - nom directions - #n° service (unique) - #n° employé (unique) Fig. 30 ? Traduction alternative d?une association de type 1 : 1 Mais rien ne garantit, dans cette traduction alternative (figure 30), qu?un service poss` ede un dirigeant, alors que c?est obligatoire. La premi` ere traduction (figure 29) est donc pr´ ef´ erable. Remarque : d?autres techniques sont parfois propos´ ees pour cette r` egle 4 (fusionner les tables, utiliser une cl´ e primaire identique, utiliser deux cl´ es ´ etrang` eres r´ eflexives) mais elles ne sont pas exploitables dans le cas g´ en´ eral. R` egle 5 : une association non binaire est traduite par une table suppl´ ementaire dont la cl´ e primaire est compos´ ee d?autant de cl´ es ´ etrang` eres que d?entit´ es en association. Les attributs de l?association de- viennent des colonnes de cette nouvelle table. Par exemple, l?association projeter de la figure 8 devient la table : projections(#n? film, #n? salle, #n? cr´ eneau, tarif) projeter - tarif 0,n salles - n° salle - capacité films - n° film - titre - durée créneaux horaires - n° créneau - date - heure de début 0,n 0,n salles - n° salle - capacité films - n° film - titre - durée créneaux horaires - n° créneau - date - heure de début traduction projections - #n° film - #n° salle - #n° créneau - tarif Fig. 31 ? Traduction d?une association ternaire 3 MOD` ELE PHYSIQUE DE DONN´ EES (MPD) 27 3 Mod` ele physique de donn´ ees (MPD) Un mod` ele physique de donn´ ees est l?impl´ ementation particuli` ere du mod` ele logique de donn´ ees par un logiciel. 3.1 Distinction entre MLD et MPD La traduction d?un MLD conduit ` a un MPD qui pr´ ecise notamment le stockage de chaque donn´ ee ` a travers son type et sa taille (en octets ou en bits). Cette traduction est ´ egalement l?occasion d?un certain nombre de libert´ es prises par rapport aux r` egles de normalisation afin d?optimiser les performances du syst` eme d?information. La traduction d?un MLD relationnel en un mod` ele physique est la cr´ eation (par des requ? etes SQL de type CREATE TABLE et ADD CONSTRAINT) d?une base de donn´ ees h´ eberg´ ee par un SGBD relationnel particulier. Il peut s?agir d?une base Oracle, d?une base SQL Server, d?une base Access ou d?une base DB2, par exemple. Le fait que tous les SGBDR reposent sur le m? eme mod` ele logique (le sch´ ema relationnel) permet ` a la fois la communication entre des bases h´ et´ erog` enes et la conversion d?une base de donn´ ees d?une SGBDR ` a l?autre. 3.2 Optimisations L?optimisation des performances en temps de calcul se fait toujours au d´ etriment de l?espace m´ emoire consomm´ e. Dans le pire des cas, r´ eduire les temps de r´ eponse consiste ` a d´ enormaliser volontairement le syst` eme d?information, avec tous les risques d?incoh´ erence et les probl` emes de gestion que cela comporte. Pour les bases de donn´ ees relationnelles, l?optimisation qui vise ` a acc´ el´ erer les requ? etes peut passer par : ? l?ajout d?index aux tables (au minimum sur les colonnes cl´ es primaires et cl´ es ´ etrang` eres) ; ces index consomment de l?espace m´ emoire suppl´ ementaire, mais la base de donn´ ees reste normalis´ ee ; ? l?ajout de colonnes calcul´ ees ou de certaines redondances pour ´ eviter des jointures co? uteuses (au- quel cas la base est d´ enormalis´ ee) ; il faut alors veiller ` a ce que la coh´ erence entre les colonnes soit respect´ ee, soit par l?utilisation de d´ eclencheurs, soit dans les applications clientes du syst` eme d?information ; ? la suppression des contraintes d?unicit´ e, de non vacuit´ e ou encore de cl´ e ´ etrang` ere (auquel cas, l?int´ egrit´ e des donn´ ees doit ? etre assur´ ee par le code client du syst` eme d?information). Par exemple, la table commandes de la figure 28 peut ? etre supprim´ ee et la date de commande est alors ajout´ ee ` a la table lignes de commandes. On renonce donc ` a la troisi` eme forme normale (figure 32) articles - numéro article - désignation - prix unitaire de vente commandes - n° commande - date commande lignes de commandes - #n° commande - #n° article - quantité commandée dénormalisation articles - numéro article - désignation - prix unitaire de vente lignes de commandes - n° commande - #n° article - date commande - quantité commandée Fig. 32 ? Sacrifice de la troisi` eme forme normale 4 R´ ETRO-CONCEPTION 28 puisque la date de commande est r´ ep´ et´ ee autant de fois qu?il y a de lignes dans la commande, mais on ´ evite ainsi une jointure co? uteuse en temps de calcul lors des requ? etes SQL. Le conseil le plus pr´ ecieux, en mati` ere d?optimisation, est de ne jamais optimiser a priori, mais toujours a posteriori, c?est-` a-dire en r´ eponse ` a une lenteur que le SGBDR n?est pas capable de r´ esoudre tout seul. Il faut alors mesurer le gain de toute optimisation manuelle en effectuant des tests (chronom´ etrages avant/apr` es) sur un volume de donn´ ees significatif et de pr´ ef´ erence en exploitation. 4 R´ etro-conception Dans la majorit´ e des cas, le travail du concepteur de bases de donn´ ees consiste non pas ` a cr´ eer une base de donn´ ees ex nihilo, mais plut? ot ` a corriger ou ´ etendre une base existante. Dans ce cas, la mati` ere de travail initiale est un mod` ele physique et la m´ ethode de r´ etro-conception ou reverse engineering consiste ` a traduire ce MPD en un mod` ele conceptuel, modifier le MCD obtenu puis modifier le mod` ele physique en cons´ equence. 4.1 Traduction inverse Dans le cadre des bases de donn´ ees relationnelles, il faut convertir le mod` ele physique en un sch´ ema relationnel normalis´ e (en d´ etricotant les optimisations ´ eventuelles et en renommant les colonnes des tables pour assurer l?unicit´ e et le caract` ere explicite (non cod´ e) des noms), puis appliquer les r` egles de traduction de la section 2.3 dans le sens inverse. ´ Etape 1 : chaque table dont la cl´ e primaire ne contient pas de cl´ e ´ etrang` ere devient une entit´ e dont l?identifiant est la cl´ e primaire de la table et dont les attributs sont les colonnes de la table qui ne sont pas cl´ e ´ etrang` ere. ´ Etape 3 : chaque table dont la cl´ e primaire est compos´ ee exclusivement de cl´ es ´ etrang` eres qui r´ ef´ erencent plusieurs cl´ es primaires, devient une association autour de laquelle toutes les cardinalit´ es maximales valent n, c?est-a-dire soit une association binaire de type n : m soit une association ternaire ou plus (les autres colonnes non cl´ es ´ etrang` eres de la table deviennent des attributs de l?association). ´ Etape 5 : les colonnes cl´ es ´ etrang` eres restantes deviennent des associations binaires de type 1 : n s?il n?y a pas de contrainte d?unicit´ e ou de type 1 : 1 s?il y a une contrainte d?unicit´ e (il faut trouver un nom ` a cette association). ´ Etape 6 : la cardinalit´ e minimale vaut 1 pour les cl´ es ´ etrang` eres qui font partie d?une cl´ e primaire ou qui poss` edent une contrainte (non vide), sinon elle vaut 0. 4 R´ ETRO-CONCEPTION 29 4.2 Cas particuliers Malheureusement, ces quatres ´ etapes ne suffisent pas pour traduire tous les sch´ emas relationnels pos- sibles. Notamment, les tables de la figure 33 n´ ecessitent l?insertion d?´ etapes suppl´ ementaires. chèques - #n° règlement - n° chèque - nom banque règlements - n° règlement - date règlement - montant paiements par carte - #n° règlement - n° carte - date d?expiration (a) cl´ e sur une colonne, mais ` a la fois pri- maire et ´ etrang` ere parcours - n° parcours - nom parcours trous - #n° parcours - n° trou dans parcours - par - distance (b) cl´ e primaire compos´ ee partiel- lement de cl´ e ´ etrang` ere Fig. 33 ? Tables particuli` eres en r´ etro-conception ´ Etape 2 : chaque table dont la cl´ e primaire est compos´ ee exclusivement de cl´ es ´ etrang` eres qui r´ ef´ erencent une seule cl´ e primaire, devient une sous-entit´ e ou une sous-association (les autres colonnes non cl´ es ´ etrang` eres de la table deviennent des attributs de cette sous-entit´ e). ´ Etape 4 : chaque table dont la cl´ e primaire est compos´ ee partiellement de cl´ es ´ etrang` eres provient soit d?une optimisation qu?il faire d´ efaire (comme sur la figure 32) soit d?un identifiant relatif d?une entit´ e comme dans la section 5.2 (auquel cas les autres colonnes non cl´ es ´ etrang` eres de la table deviennent des attributs de cette entit´ e). 5 COMPL´ EMENTS 30 5 Compl´ ements Aucune situation compl` ete, ou presque, ne peut ? etre parfaitement mod´ elis´ ee si le concepteur se contente des fonctionnalit´ es abord´ ees ` a ce stade du document. Ne serait-ce que pour comprendre l?´ ela- boration des tables de la figure 33, il est n´ ecessaire d?introduire de nouvelles notations sur le sch´ ema entit´ es-associations. Les trois extensions majeures pr´ esent´ ees dans cette section font partie de la ver- sion 2 de Merise [Panet et al.]. Elles permettent de traiter davantage de situations r´ eelles et souvent de mani` ere plus simple. Dans cette section, nous reprenons la d´ emarche qui consiste ` a ´ etudier les d´ ependances fonctionnelles directes sur le graphe de couverture minimale, puis ` a traduire ce graphe en sch´ ema entit´ es-associations, pour obtenir finalement un sch´ ema relationnel. Les notions abord´ ees ici ne permettent plus au sch´ ema relationnel d?? etre ´ ecrit textuellement sans ambigu¨ ?t´ e. Afin de lever toute ambigu¨ ?t´ e pour savoir quelle cl´ e primaire est r´ ef´ erenc´ ee par telle cl´ e ´ etrang` ere, il est imp´ eratif de repr´ esenter le sch´ ema relationnel de mani` ere graphique, ce que nous nous contentons de faire. 5.1 Agr´ egation Une association n?est pas forc´ ement ´ etablie exclusivement entre des entit´ es. 5.1.1 Association de type 1 : n Consid´ erons l?exemple de la figure 34 issu du monde des courses hippiques. La d´ ependance fonction- nelle n? cheval + n? course ? n? jockey est la premi` ere d´ ependance fonctionnelle non ´ el´ ementaire vers un identifiant que nous rencontrons. Ce type de d´ ependance fonctionnelle nous incite ` a cr´ eer une association binaire de type 1 : n entre l?entit´ e jockeys et l?association binaire de type n : m qu?il y a entre les entit´ es chevaux et courses. D?un point de vue s´ emantique, la logique est respect´ ee puisque un jockey ne monte pas un cheval, mais un cheval-qui-participe-` a-une-course. Pour tenir compte de ce nouveau cas de d´ ependance fonctionnelle, il convient d?ajouter une sixi` eme ´ etape ` a la technique de traduction d?un graphe de couverture minimal en un sch´ ema entit´ es-associations, telle qu?elle est commenc´ ee section 1.3.3 : ´ Etape 6 : lorsqu?un identifiant d´ epend de plusieurs autres identifiants, son entit´ e est en association de type 1 : n avec l?association qui lie les autres identifiants. 5 COMPL´ EMENTS 31 participer - dossard - ordre d? arrivée 0,n courses - n° course - lieu course - date course jockeys - n° jockey - nom jockey - prénom chevaux - n° cheval - nom cheval - date naissance 0,n 0,n monter 1,1 courses - n° course - lieu course - date course jockeys - n° jockey - nom jockey - prénom chevaux - n° cheval - nom cheval - date naissance participations - #n° course - #n° cheval - dossard - ordre d?arrivée - #n° jockey (non vide) traduction numéro de cheval numéro de jockey nom du jockey ordre d?arrivée prénom dossard nom du cheval date de naissance numéro de course lieu de la course date de la course t r a d u c t i o n Fig. 34 ? Association binaire de type 1 : n (monter), li´ ee ` a une association binaire de type n : m (participer) Certains auteurs consid` erent que l?agr´ egation des entit´ es chevaux, courses et de l?association par- ticiper constitue une nouvelle entit´ e participations qui englobe ces trois ´ el´ ements graphiques. Dans ce cas, l?association monter fait le lien entre les deux entit´ es (participations et jockeys). Le r´ esultat final sur le sch´ ema relationnel est le m? eme. Malheureusement, cette notation n?est pas tr` es pratique car le sch´ ema entit´ es-associations devient vite illisible lorsqu?une entit´ e participe ` a plusieurs agr´ egations. Nous pr´ ef´ erons donc autoriser, dans ce document, qu?une association puisse ? etre li´ ee ` a une associa- tion binaire de type n : m ou ` a une association ternaire (ou plus). Cependant pour ne pas confondre les liens entres associations et entit´ es avec les liens entres associations, nous encadrons soigneusement les associations qui interviennent dans une agr´ egation, comme sur la figure 34 en bas ` a gauche. En tout cas, une association ne peut pas ? etre li´ ee ` a une association binaire de type 1 : n ou 1 : 1. Dans ce cas, l?association doit ? etre directement li´ ee ` a l?entit´ e qui se trouve du c? ot´ e o` u la cardinalit´ e maximale est 1. Sur le sch´ ema relationnel final (figure 34 en bas ` a droite), la table de jonction participations re¸ coit une cl´ e ´ etrang` ere suppl´ ementaire, mais qui contrairement aux autres, ne participe pas ` a la cl´ e primaire. 5 COMPL´ EMENTS 32 5.1.2 Association de type n : m ` A pr´ esent, ajoutons les parieurs ` a notre exemple de la figure 34. ´ Etant donn´ e que nous avons la d´ ependance fonctionnelle n? cheval + n? course + n? parieur ? montant de la mise (figure 35 en haut), nous pourrions avoir une association ternaire entre les entit´ es chevaux, courses et parieurs. Mais dans ce cas, un parieur peut miser sur un cheval dans une course, alors que ce cheval ne participe pas ` a cette course. numéro de cheval numéro de jockey nom du jockey ordre d?arrivée prénom dossard nom du cheval date de naissance numéro de course lieu de la course date de la course numéro de parieur nom du parieur numéro de compte montant numéro de cheval numéro de jockey nom du jockey ordre d?arrivée prénom dossard nom du cheval date de naissance numéro de course lieu de la course date de la course numéro de parieur nom du parieur numéro de compte montant correction Fig. 35 ? Association ternaire remplac´ ee par deux associations binaires Pour pallier cette lacune, on pourrait faire appel ` a des d´ eclencheurs programm´ es dans la base de donn´ ees finale. Les d´ eclencheurs sont des proc´ edures SQL qui, dans notre exemple, permettraient ` a chaque insertion ou mise ` a jour de lignes dans la table des paris, d?assurer qu?un pari ne puisse pas concerner un cheval dans une course ` a laquelle il ne participe pas. Cependant, il existe une solution plus simple qui repose uniquement sur l?int´ egrit´ e r´ ef´ erentielle. En r´ ealit´ e (figure 35 en bas), la vraie d´ ependance fonctionnelle directe est (n? cheval + n? course) + n? parieur ? montant, ce qui garantit qu?un parieur ne peut miser que sur un cheval-qui-participe- ` a-une-course. Le fait qu?une association ternaire (ou plus) disparaissent au profit d?une ou plusieurs agr´ egations est tr` es fr´ equent lorsque l?on mod´ elise une situation compl` ete. ` A tel point qu?on peut partir du principe qu?un sch´ ema entit´ es-associations sans agr´ egation est g´ en´ eralement faux. 5 COMPL´ EMENTS 33 Dans notre exemple, la traduction de la nouvelle d´ ependance fonctionnelle en une association de type n : m (figure 36 en haut) se fait en appliquant, comme d?habitude, l?´ etape 4 de la section 1.3.3. parieurs - n° parieur - nom parieur - n° compte paris - #n° parieur - #n° course - #n° cheval - montant courses - n° course - lieu course - date course jockeys - n° jockey - nom jockey - prénom chevaux - n° cheval - nom cheval - date naissance participations - #n° course - #n° cheval - dossard - ordre arrivée - #n° jockey (non vide) participer - dossard - ordre d? arrivée 0,n courses - n° course - lieu course - date course jockeys - n° jockey - nom jockey - prénom chevaux - n° cheval - nom cheval - date naissance 0,n 0,n monter 1,1 parieurs - n° parieur - nom parieur - n° compte 0,n 0,n parier - montant traduction Fig. 36 ? Association binaire de type n : m (parier), li´ ee ` a une autre association binaire de type n : m Sur le sch´ ema relationnel obtenu (figure 36 en bas), la traduction de l?association binaire de type n : m li´ ee ` a une autre association binaire de type n : m fait appara? ?tre dans la table paris une cl´ e ´ etrang` ere composite qui r´ ef´ erence la cl´ e primaire composite de la table participations. Rappelons qu?il est d´ econseill´ e d?utiliser des identifiants composites. Mais la cl´ e primaire composite de la table participations est l´ egitime puisqu?elle est issue d?une association binaire de type n : m. En cons´ equence de quoi la cl´ e ´ etrang` ere composite de la table paris est ´ egalement l´ egitime puisqu?elle est aussi issue d?une association binaire de type n : m. On peut ainsi imaginer avoir sur un sch´ ema relationnel des cl´ es primaires ou ´ etrang` eres compos´ ees d?un nombre arbitraire de colonnes, sans pour autant qu?il n?y ait un seul identifiant composite sur le sch´ ema entit´ es-associations correspondant. 5 COMPL´ EMENTS 34 5.1.3 Tables de codification ou tables de r´ ef´ erence Certains attributs ne peuvent prendre qu?un jeu volontairement limit´ e de valeurs. C?est le cas sur la figure 37 ` a gauche, pour les attributs enseignant et mati` ere. Cela ´ evite sur cet exemple qu?une m? eme mati` ere ne soit d´ ecrite de deux mani` eres diff´ erentes et qu?un m? eme nom d?enseignant ne soit orthographi´ e deux fois. occuper - enseignant - matière 0,n salles - n° salle - capacité jours dans la semaine - n° jour - jour 0,n 0,n semaines dans l?année - n° semaine - date de début créneaux horaires dans la journée - n° créneau - heure de début 0,n correction occuper 0,n salles - n° salle - capacité jours dans la semaine - n° jour - jour 0,n 0,n semaines dans l?année - n° semaine - date de début créneaux horaires dans la journée - n° créneau - heure de début 0,n enseignants - n° enseignant - nom matière - n° matière - libellé assurer 0,n 1,1 concerner 1,1 0,n Fig. 37 ? Agr´ egation et entit´ es de codification Il est recommand´ e de regrouper ces valeurs au sein d?une entit´ e dite de codification (qui donnera ensuite une table de codification). Si l?attribut concern´ e appartient ` a une entit´ e, alors cette entit´ e est en association binaire de type 1 : n avec cette entit´ e de codification. Par contre, si l?attribut fait partie d?une association, il faut recourir ` a l?agr´ egation afin de mettre en association l?entit´ e de codification avec l?association de cet attribut (figure 37 ` a droite). Ainsi, l?agr´ egation ´ evite notamment aux entit´ es de codification de transformer une association binaire en une association ternaire (ou plus). 5 COMPL´ EMENTS 35 5.2 Identifiant relatif ou lien identifiant M? eme en utilisant des agr´ egations, il reste des situations o` u tout le potentiel de l?int´ egrit´ e r´ ef´ erentielle n?est pas exploit´ e. 5.2.1 R´ esolution d?un probl` eme sur le sch´ ema relationnel Prenons par exemple le sch´ ema relationnel en haut de la figure 38, tir´ e d?une base de donn´ ees pour un centre de golf. Dans la table trous, la cl´ e primaire n? trou est en incr´ ement automatique, tandis que la colonne n? trou dans parcours est un nombre (g´ en´ eralement compris entre 1 et 18) qui correspond ` a la num´ erotation des trous dans le parcours. Le probl` eme de ce sch´ ema relationnel est qu?en l?´ etat, il peut y avoir un score dans la table scores pour un trou qui n?appartient pas au parcours sur lequel la partie se joue (le lecteur est invit´ e ` a bien observer la figure pour s?en apercevoir). parcours - n° parcours - nom parcours golfeurs - n° golfeur - nom golfeur - handicap parties - n° partie - #n° parcours (non vide) - date participations - #n° golfeur - #n° partie trous - n° trou - #n° parcours (non vide) - n° trou dans parcours - par - distance scores - #n° golfeur - #n° partie - #n° trou - score correction parcours - n° parcours - nom parcours golfeurs - n° golfeur - nom golfeur - handicap parties - n° partie - #n° parcours - date participations - #n° golfeur - #n° partie - #n° parcours trous - #n° parcours - n° trou dans parcours - par - distance scores - #n° golfeur - #n° partie - #n° parcours - #n° trou dans parcours - score Fig. 38 ? Utilisation de cl´ es primaires partiellement ´ etrang` eres Pour r´ egler ce probl` eme, on peut ` a nouveau se reposer sur l?emploi de d´ eclencheurs. Mais l` a-encore, il existe une solution ne faisant appel qu?` a l?int´ egrit´ e r´ ef´ erentielle. Cette solution consiste ` a faire entrer le num´ ero de parcours dans la num´ erotation des trous (rem- pla¸ cant ainsi le n? trou) ainsi que dans la num´ erotation des parties (en conservant cette fois-ci le n? 5 COMPL´ EMENTS 36 partie en incr´ ement automatique). Les tables trous et parties poss` edent alors une cl´ e primaire com- posite et partiellement ´ etrang` ere (figure 38 en bas). Les cl´ es ´ etrang` eres des tables participations et scores qui r´ ef´ erencent ces nouvelles cl´ es primaires sont alors compl´ et´ ees par une nouvelle colonne (le num´ ero de parcours). Dans la table des scores, comme cette colonne n? parcours n?est introduite qu?une fois, il n?est plus possible pour un joueur d?avoir un score sur un trou qui n?appartient pas au parcours sur lequel se joue la partie. 5.2.2 Mod` ele conceptuel correspondant En r´ etro-conception, pour tenir compte du fait que le num´ ero de parcours fera partie de la cl´ e primaire de la table trous sur le sch´ ema entit´ es-associations, il suffit de mettre entre parenth` eses la cardinalit´ e 1,1 de l?association entre les entit´ es trous et parcours (figure 39). L?identifiant de l?entit´ e c? ot´ e 1,1 devient alors relatif ` a celui de l?autre entit´ e en association. parcours - n° parcours - nom parcours golfeurs - n° golfeur - nom golfeur - handicap parties - n° partie - date trous - n° trou dans parcours - par - distance avoir lieu sur 0,n (1,1) faire partie 0,n (1,1) participer 0,n 0,n obtenir - score 0,n 0,n Fig. 39 ? Repr´ esentation des identifiants relatifs De m? eme, sur le graphe de couverture minimal, nous introduisons une nouvelle notation (fl` eche en pointill´ es) pour repr´ esenter le caract` ere relatif des identifiants (figure 40). numéro de parcours nom du parcours numéro de partie sur un parcours date numéro de golfeur nom du golfeur handicap numéro de trou dans un parcours par distance score Fig. 40 ? Repr´ esentation des identifiants relatifs sur le graphe de couverture minimale Si les fl` eches ´ etaient pleines, les num´ eros de trou dans un parcours et de partie sur un parcours figureraient dans des entit´ es s´ epar´ ees et r´ eduites ` a leur identifiant (` a ´ eviter). 5 COMPL´ EMENTS 37 5.2.3 Discussion autour de la num´ erotation des exemplaires Dans un magasin de location de vid´ eos, le g´ erant peut vouloir num´ eroter s´ epar´ ement les exemplaires de chaque vid´ eo (figure 41 colonne de gauche), alors que le concepteur de la base de donn´ ees aurait tendance ` a vouloir num´ eroter globalement l?ensemble des exemplaires (colonne de droite). numéro de vidéo titre numéro d?exemplaire date d?acquisition numéro de membre nom téléphone date d?emprunt emprunt date de réservation numéro de vidéo titre numéro d?exemplaire date d?acquisition numéro de membre nom téléphone date d?emprunt emprunt date de réservation vidéos - n° vidéo - titre exemplaires - # n° vidéo - n° exemplaire - date acquisition - #n° membre - date emprunt membres - n° membre - nom - téléphone réservations - # n° vidéo - # n° membre - date réservation vidéos - n° vidéo - titre exemplaires - n° exemplaire - date acquisition - date emprunt membres - n° membre - nom - téléphone emprunter 0,1 0,n correspondre 0,n (1,1) réserver - date réservation 0,n 0,n vidéos - n° vidéo - titre membres - n° membre - nom - téléphone 0,1 0,n correspondre 0,n 1,1 réserver - date réservation 0,n 0,n emprunter exemplaires - n° exemplaire - date acquisition - date emprunt traduction traduction traduction traduction vidéos - n° vidéo - titre exemplaires - # n° vidéo (non vide) - n° exemplaire - date acquisition - #n° membre - date emprunt membres - n° membre - nom - téléphone réservations - # n° vidéo - # n° membre - date réservation Fig. 41 ? Num´ erotations alternatives des exemplaires La seule diff´ erence entre les deux solutions est l?entr´ ee ou non de la colonne num´ ero vid´ eo dans la cl´ e primaire de la table exemplaire. L?inconv´ enient majeur de la solution avec identifiant relatif (colonne de gauche), est le traitement de l?incr´ ement automatique du num´ ero d?exemplaire, car il faut un compteur pour chaque vid´ eo et non pas un compteur pour l?ensemble des vid´ eos, contrairement ` a la solution de la colonne de droite. Le concepteur devrait donc retenir sa solution pour la base de donn´ ees et proposer une colonne suppl´ ementaire avec la num´ erotation du g´ erant, afin de lui faire plaisir. 5 COMPL´ EMENTS 38 5.3 H´ eritage Enfin, il est parfois utile de factoriser les attributs communs ` a plusieurs entit´ es au sein d?une entit´ e m` ere. 5.3.1 Sous-entit´ e Consid´ erons l?exemple suivant : les factures d?une entreprise font l?objet d?un r` eglement par ch` eque ou par carte. Cette entreprise souhaite conna? ?tre pour chaque r` eglement la date, le montant et : ? le num´ ero et le nom de la banque des ch` eques ; ? ou le num´ ero et la date d?expiration des paiements par carte. On a donc une entit´ e g´ en´ erique r` eglements et deux entit´ es sp´ ecialis´ ees ch` eques et paiements par carte. Ces deux sous-entit´ es de l?entit´ e r` eglements ont des attributs propres mais pas d?identifiant propre. Au niveau logique objet, on retrouve la notion d?h´ eritage. Conform´ ement aux notations objets, sur le sch´ ema entit´ es-associations, on repr´ esente le lien qui unit une sous-entit´ e ` a son entit´ e g´ en´ erique par une fl` eche creuse (figure 42 au centre). Ce lien remplace une as- sociation ^ etre de type 1 : 1 (un ch` eque ? ? est un ? ? r` eglement et un paiement par carte ? ? est un ? ? r` eglement). chèques - n° chèque - nom banque règlements - n° règlement - date règlement - montant factures - n° facture - date facture - montant total 1,1 correspondre 0,n traduction paiements par carte - n° carte - date d?expiration chèques - #n° règlement - n° chèque - nom banque règlements - n° règlement - date règlement - montant - #n° facture (non vide) factures - n° facture - date facture - montant total paiements par carte - #n° règlement - n° carte - date d?expiration numéro de facture date de facture et montant total numéro de règlement date de règlement et montant numéro de chèque numéro de carte traduction numéro de règlement numéro de règlement date d?expiration nom de la banque Fig. 42 ? Repr´ esentation des sous-entit´ es Toutefois, il ne faut pas voir d?h´ eritage ` a chaque fois que l?on peut dire ? ? est un ? ?, car il faut en plus que l?entit´ e m` ere ne poss` ede que les attributs communs de ses entit´ es filles. Par exemple, un cercle ? ? est math´ ematiquement un ? ? ovale. Mais l?entit´ e cercles (avec les attributs centre et rayon) n?est pas 5 COMPL´ EMENTS 39 une sous-entit´ e de l?entit´ e ovales car celle-ci poss` ede davantage d?attributs (centre, rayon principal, rayon secondaire et rotation). La traduction des sous-entit´ es au niveau logique relationnel fait intervenir une cl´ e primaire identique ` a celle de l?entit´ e m` ere, mais dans les sous-entit´ es la cl´ e primaire est aussi ´ etrang` ere (figure 42 en bas). Sur le graphe de couverture minimale (figure 42 en haut), l?identifiant dont d´ ependent les attributs communs est volontairement dupliqu´ e autant de fois que n´ ecessaire pour les attributs sp´ ecialis´ es. Nous pouvons alors remarquer que les attributs qui d´ ependent d?un m? eme identifiant peuvent ? etre regroup´ es avec des ?? et ?? logiques tandis que d` es qu?il est n´ ecessaire de faire appel ` a un ? ? ou ? ? logique, c?est le signe d?une sp´ ecialisation. Sur la figure 42, il est tentant de traduire directement le graphe de couverture minimale en le sch´ ema relationnel, car il en est beaucoup plus proche que le sch´ ema entit´ es-associations. C?est une technique licite, ` a condition de traduire correctement les associations de type 1 : 1 (´ etape 4 page 17). 5.3.2 Utilisation de l?h´ eritage pour s´ eparer les informations compl´ ementaires L?h´ eritage peut ? etre utilis´ e m? eme lorsqu?il n?y a qu?une entit´ e sp´ ecialis´ ee. C?est utile pour stocker dans une table s´ epar´ ee des informations compl´ ementaires. Consid´ erons la table clients dans laquelle nous stockons d´ ej` a le num´ ero, le nom et le code pos- tal. Nous souhaitons d´ esormais stocker ´ egalement le num´ ero de t´ el´ ephone, l?adresse courier et l?adresse ´ electronique. La premi` ere id´ ee consiste ` a ajouter trois colonnes suppl´ ementaires dans la table clients. Mais pour les clients qui ont d´ ej` a ´ et´ e saisis dans la table, ces trois colonnes seront vides. Pour gagner de la place, ces trois colonnes peuvent constituer une nouvelle table annuaire clients dont la cl´ e primaire r´ ef´ erence celle de la table clients (figure 43). Formellement, annuaire clients est issue d?une sous-entit´ e de l?entit´ e clients. numéro de client numéro de client nom code postal téléphone adresse email traduction clients - n° client - nom - code postal annuaire clients - téléphone - adresse - email traduction clients - n° client - nom - code postal annuaire clients - # n° client - téléphone - adresse - email Fig. 43 ? S´ eparation des informations compl´ ementaires par h´ eritage La configuration d?h´ eritage sur le sch´ ema relationnel (figure 43 ` a droite) constituera une occasion d?´ ecrire des requ? etes SQL avec des jointures externes (c?est-` a-dire facultatives). 5 COMPL´ EMENTS 40 5.3.3 Sp´ ecialisation des associations La notion d?h´ eritage est valable ´ egalement pour les associations. Nous pouvons donc faire appel ` a des sous-associations avec des attributs sp´ ecifiques et des associations g´ en´ eriques qui contiennent les attributs communs. Mais sans aller jusqu?` a l?introduction de sous-associations, d` es qu?un sch´ ema entit´ es- associations fait appel ` a des sous-entit´ es, il est fr´ equent que les associations concern´ ees par ces sous-entit´ es soient elles-m? emes sp´ ecialis´ ees . Consid´ erons une entreprise artisanale qui vend non seulement des articles produits en s´ erie ` a prix unitaire fixe, mais aussi des articles fait sur mesure et dont le prix unitaire est calcul´ e ` a partir de la dur´ ee de confection et d?un taux horaire. Dans ce cas, non seulement l?entit´ e articles est sp´ ecialis´ ee en articles en s´ erie et articles sur mesure, mais en plus, l?association concerner entre les entit´ es commandes et article est sp´ ecialis´ ee selon qu?il s?agit d?un article en s´ erie ou sur mesure (figure 44 au centre). articles en série - prix unitaire de vente articles - n° article - désignation articles sur mesure - taux horaire de facturation - durée commandes - n° commande - date commande 1,n 0,n concerner (1) - quantité commandée concerner (2) 1,1 articles en série - #n° article - prix unitaire de vente articles - n° article - désignation articles sur mesure - #n° article - taux horaire de facturation - durée - #n° commande (non vide) commandes - n° commande - date commande lignes de commandes - #n° commande - #n° article - quantité commandée t r a d u c t i o n numéro d?article désignation prix unitaire de vente taux horaire de facturation numéro de commande quantité traduction 1,n numéro d?article numéro d?article durée Fig. 44 ? Sp´ ecialisation des associations en pr´ esence de sous-entit´ es Le fait d?avoir volontairement d´ edoubler l?identifiant commun des entit´ es en h´ eritage, permet d?utili- ser chaque identifiant dupliqu´ e dans l?association qui le concerne. Sur le sch´ ema relationnel (figure 44 en bas), les associations sp´ ecialis´ ees sont traduites de mani` ere classique. ` A charge ensuite pour le d´ eveloppeur du formulaire de facturation, d?effectuer la r´ eunion des articles command´ es. CONCLUSION 41 Conclusion Avec la pratique, vient un moment o` u le concepteur peut se passer du mod` ele entit´ es-associations et produire directement des sch´ emas relationnels corrects. Pourtant, continuer de travailler ` a un niveau conceptuel plut? ot qu?` a un niveau logique reste une tactique payante pour lui, dans la mesure o` u les donn´ ees pourtant stock´ ees sous une forme relationnelle, doivent de nos jours ? etre acc´ ed´ ees par des appli- cations orient´ ees objet. Le mod` ele conceptuel permet de faire le lien entre d?une part la repr´ esentation objet des donn´ ees et d?autre le stockage relationnel des m? emes donn´ ees. Par exemple, on peut tr` es bien imaginer qu?un sch´ ema entit´ es-associations soit d?un c? ot´ e traduit en un sch´ ema relationnel puis impl´ ement´ e dans une base de donn´ ees Oracle ; tandis qu?en parall` ele, il est traduit en un diagramme de classe (mod` ele logique objet), lui-m? eme impl´ ement´ e dans un ensemble de classes Java. Ces classes Java permettent ensuite aux d´ eveloppeurs de construire des applications clientes orient´ ees objet et qui attaquent de mani` ere transparente les donn´ ees de la base Oracle. Il s?agit d?une solution de passage entre la mod´ elisation orient´ ee objet (pertinente pour d´ evelopper des interfaces gra- phiques) et la mod´ elisation relationnelle (pertinente pour g´ erer les donn´ ees). Par ailleurs, la m´ ethodologie Merise est certes typiquement fran¸ caise, mais en Grande-Bretagne, la m´ ethodologie standard s?appelle SSADM (Structured Systems Analysis ans Design Method) et repose sur les m? emes principes. Les nord-am´ ericains quant ` a eux utilisent ce qu?on appelle des diagrammes de flux, dont les principes sont repris par la version 2 de Merise. Aujourd?hui, ce sont les mod´ elisations objets et leur unification UML (Unified Modeling Language, autrement dit langage unifi´ e de mod´ elisation) qui se placent ` a la pointe de l?´ etat de l?art. Malheureuse- ment, UML n?est qu?un ensemble de notations (d?ailleurs moins intuitives que celles des sch´ emas entit´ es- associations7). La connaissance de ce langage ne permet donc pas au concepteur de faire l?´ economie d?une m´ ethodologie de conception. Voil` a pourquoi il n?est pas anachronique de r´ e-´ editer en 2005 un document sur des m´ ethodes qui auront bient? ot 30 ans ;-) R´ ef´ erences [Akoka et Comyn-Wattiau] Akoka, J. et Comyn-Wattiau I. Conception de bases de donn´ ees relation- nelles. Vuibert Informatique. Ce livre tr` es didactique contient de bon exercices sur la phase de conception d?un syst` eme d?in- formation. [Gabay] Gabay, J. Apprendre et pratiquer Merise. Masson, 1989. Ce livre tr` es synth´ etique permet de s?exercer sur la m´ ethode. [Matheron] Matheron, J.-P. Comprendre Merise. Eyrolles, 1994. Cet ouvrage tr` es accessible permet vraiment de comprendre la m´ ethode. [Nanci et al.] Nanci, D., Espinasse, B., Cohen, B. et Heckenroth, H. Ing´ enierie des syst` emes d?in- formation avec Merise. Sybex, 1992. Cet ouvrage complet d´ etaille la m´ ethode dans son ensemble. [Panet et al.] Panet, G., Letouche, R. et Tardieu, H. Merise/2 : Mod` eles et techniques Merise avanc´ es. ´ Edition d?organisation, 1994. Ce livre d´ ecrit la version 2 de la m´ ethode. [Tardieu et al.] Tardieu, H., Rochfeld, A. et Coletti, R. La m´ ethode Merise. Principes et outils. ´ Edition d?organisation, 1986. Il s?agit-l` a du livre de r´ ef´ erence par les auteurs de la m´ ethode. 7. qui sont facilement traduisibles en sch´ emas UML, gr? ace ` a certains outils automatiques TABLE DES FIGURES 42 Table des figures 1 Entit´ es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 Associations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3 Attributs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 4 Identifiants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 Cardinalit´ es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 Associations plurielles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7 Association r´ eflexive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 8 Entit´ e rempla¸ cable par une association ternaire . . . . . . . . . . . . . . . . . . . . . . . . 8 9 Contre-exemple : l?entit´ e d´ eparts n?est pas rempla¸ cable par une association ternaire . . . 9 10 Exemple d?entit´ e quaternaire ou 4-aire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 11 Contre-exemples de la normalisation des noms . . . . . . . . . . . . . . . . . . . . . . . . . 10 12 Contre-exemples de la normalisation des attributs . . . . . . . . . . . . . . . . . . . . . . . 11 13 Normalisation des attributs des associations . . . . . . . . . . . . . . . . . . . . . . . . . . 12 14 Cardinalit´ e 1,1 et attributs d?une association . . . . . . . . . . . . . . . . . . . . . . . . . 12 15 Contre-exemples de la normalisation des associations . . . . . . . . . . . . . . . . . . . . . 13 16 Application de la premi` ere forme normale : il peut y avoir plusieurs auteurs pour un livre donn´ e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 17 Application de la troisi` eme forme normale de Boyce-Codd . . . . . . . . . . . . . . . . . . 15 18 D´ ependance fonctionnelle non ´ el´ ementaire, mais directe . . . . . . . . . . . . . . . . . . . 16 19 Graphe de couverture minimale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 20 Identification des entit´ es et des associations sur un graphe de couverture minimale . . . . 17 21 Sch´ ema entit´ es-associations normalis´ e obtenu ` a partir du graphe de couverture minimale . 18 22 Sans historisation des emprunts, pas de probl` eme . . . . . . . . . . . . . . . . . . . . . . . 18 23 M? eme pour une entit´ e historis´ ee, il vaut mieux ´ eviter que la date n?entre dans l?identifiant 19 24 D´ ependances fonctionnelles comment´ ees . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 25 Utilisation d?une d´ ependance non ´ el´ ementaire et sans enfant sur un graphe de couverture minimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 26 Sch´ ema relationnel simple entre deux tables . . . . . . . . . . . . . . . . . . . . . . . . . . 23 27 Traduction d?une association de type 1 : n . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 28 Traduction d?une association de type n : m . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 29 Traduction d?une association de type 1 : 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 30 Traduction alternative d?une association de type 1 : 1 . . . . . . . . . . . . . . . . . . . . . 26 31 Traduction d?une association ternaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 32 Sacrifice de la troisi` eme forme normale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 33 Tables particuli` eres en r´ etro-conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 34 Association binaire de type 1 : n (monter), li´ ee ` a une association binaire de type n : m (participer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 35 Association ternaire remplac´ ee par deux associations binaires . . . . . . . . . . . . . . . . 32 36 Association binaire de type n : m (parier), li´ ee ` a une autre association binaire de type n : m 33 37 Agr´ egation et entit´ es de codification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 38 Utilisation de cl´ es primaires partiellement ´ etrang` eres . . . . . . . . . . . . . . . . . . . . . 35 39 Repr´ esentation des identifiants relatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 40 Repr´ esentation des identifiants relatifs sur le graphe de couverture minimale . . . . . . . . 36 41 Num´ erotations alternatives des exemplaires . . . . . . . . . . . . . . . . . . . . . . . . . . 37 42 Repr´ esentation des sous-entit´ es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 43 S´ eparation des informations compl´ ementaires par h´ eritage . . . . . . . . . . . . . . . . . . 39 44 Sp´ ecialisation des associations en pr´ esence de sous-entit´ es . . . . . . . . . . . . . . . . . . 40 INDEX 43 Index A agr´ egation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30 aspiration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 association . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4-aire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 binaire de type 1 : 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 de type 1 : n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 de type n : m. . . . . . . . . . . . . . . . . . . . . . . . . . . . .25 en plusieurs exemplaires. . . . . . . . . . . . . . . . . . . .13 fant? ome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 plurielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 redondante. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 r´ eflexive. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 sp´ ecialis´ ee. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40 ternaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 attribut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 calculable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 en plusieurs exemplaires. . . . . . . . . . . . . . . . . . . .11 imaginaire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12, 20 C cardinalit´ e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6, 24 maximale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 minimale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6, 14 question. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 ternaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 cl´ e ´ etrang` ere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 particuli` ere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 primaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Codasyl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 coh´ erence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5, 27 colonne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 commentaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 contrainte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 conversion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27 D date. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 DBMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 d´ eclencheur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14, 32 d´ ependance fonctionnelle . . . . . . . . . . . . . . . . . . . . . . . 16 directe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 non ´ el´ ementaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 vers un identifiant. . . . . . . . . . . . . . . . . . . . . . . .30 non ´ el´ ementaire sans enfant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 plurielle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20 r´ eflexive. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20 transitive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 diagramme de flux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 doublon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 E enregistrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 entier auto-incr´ ement´ e. . . . . . . . . . . . . . . . . . . . . . . . . .11 entit´ e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 de codification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 de r´ ef´ erence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 des dates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19 rempla¸ cable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 exemplaires (num´ erotation) . . . . . . . . . . . . . . . . . . . . 37 exhaustif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 F factorisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38 fichier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 fl` eche pleine ou en pointill´ es . . . . . . . . . . . . . . . . . . . . 36 forme normale deuxi` eme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 premi` ere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 troisi` eme de Boyce-Codd . . . . . . . . . . . . . . . . . . . 15 fusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 G g´ en´ ericit´ e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 graphe de couverture minimale . . . . . . . . . . . . . . . . . 17 H h´ eritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 hi´ erarchique (SGBD). . . . . . . . . . . . . . . . . . . . . . . . . . .22 historisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 homog´ en´ eit´ e. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 I identifiant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5, 11 relatif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 incoh´ erence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10, 11, 15 incr´ ementation automatique . . . . . . . . . . . . . . . . . . . . 11 index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 int´ egrit´ e r´ ef´ erentielle . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 intitul´ e. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22 it´ eration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 J jointure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 externe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 INDEX 44 L lien identifiant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 ligne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 lisibilit´ e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 M maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 MCD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Merise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 41 version 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 MLD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22 MLDR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 MPD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 N navigationnel (SGBD). . . . . . . . . . . . . . . . . . . . . . . . . .22 normalisation des associations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 des attributs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 des associations . . . . . . . . . . . . . . . . . . . . . . . . . . 12 des cardinalit´ es . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 des entit´ es. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10, 19 des identifiants. . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 des noms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 NULL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23 O optimisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 orient´ e objet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22, 41 P performance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27 polys` eme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21 R redondance . . . . . . . . . . . . . . . . . . . . . . 10, 13, 15, 21, 27 r´ ef´ erence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 relation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 requ? ete. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22 r´ eseau (SGBD). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22 r´ etro-conception. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28 reverse engineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 S sch´ ema entit´ es-associations . . . . . . . . . . . . . . . . . . . . . . . . . . 6 relationnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 SGBD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 22 SGBDR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22 sous-entit´ e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 sp´ ecialisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38, 40 SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 SSADM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41 symbole ?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23 synonyme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 syst` eme d?information . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 T table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 d?informations compl´ ementaires . . . . . . . . . . . . 39 de codification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 de jonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 25 de r´ ef´ erence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 des dates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19 taille . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 traduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17, 18 transitivit´ e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 type. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27 U UML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41 unicit´ e. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25, 28 V vacuit´ e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 vide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23

PARTAGER SUR

Envoyer le lien par email
2134
READS
25
DOWN
7
FOLLOW
2
EMBED
DOCUMENT # TAGS
#base de données  #merise  #mcd  #conception database 

licence non indiquée


DOCUMENT # INDEX
Database 
img

Partagé par  lucio

 Suivre

Auteur:Cyril GRUAU
Source:Non communiquée