Vous êtes sur la page 1sur 44

Conception dune base de donnese

Cyril Gruau

17 octobre 2005 (corrig le 13 juillet 2006)e

Rsumee Ce support de cours regroupe quelques notions concernant le modlisation conceptuelle de syst`meee dinformation par schma entits-associations (via ltude des dpendances fonctionnelles), la tra-eeee duction en schma relationnel et la dmarche inverse (rtro-conception). Il prsente galement leseeeee extensions majeures du mod`le conceptuel de donnes.ee

Mots-clef : Merise, mod`le conceptuel, entit, association, dpendance fonctionnelle,eee graphe de couverture minimale, schma relationnel, traduction, rtro-conception,ee agrgation, identiant relatif, hritageee

Complments apports ` ldition de novembre 2003 :ee a e

une r-criture compl`te des r`gles de normalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10eeee un nouveau paragraphe sur les dpendances fonctionnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16e une r-criture compl`te de la section sur les agrgations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30eeee idem pour les identiants relatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 et lhritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38e auxquels sajoutent de nouveaux exemples et donc de nombreuses gures illustratives . . . . . . . . . 42

Remerciements
Lauteur tient ` exprimer toute sa gratitude envers Frdric Brouard pour son travail de correctionae e sur ce document, ses judicieux conseils et son soutien en toutes circonstances.

Cyril.Gruau@ensmp.fr

` TABLE DES MATIERES

Table des mati`rese


Introduction 1 Mod`le conceptuel de donnes (MCD)ee 1.1 Schma entits-associations . . . . . . . . . . . . . . . . . . . . .ee 1.1.1 Entits et associations . . . . . . . . . . . . . . . . . . . .e 1.1.2 Attributs et identiants . . . . . . . . . . . . . . . . . . . 1.1.3 Cardinalits . . . . . . . . . . . . . . . . . . . . . . . . . .e 1.1.4 Associations plurielles . . . . . . . . . . . . . . . . . . . . 1.1.5 Association rexive . . . . . . . . . . . . . . . . . . . . .e 1.1.6 Associations non binaires . . . . . . . . . . . . . . . . . . 1.2 R`gles de normalisation . . . . . . . . . . . . . . . . . . . . . . .e 1.2.1 Les bonnes mani`res dans un schma entits-associationseee 1.2.2 Les formes normales . . . . . . . . . . . . . . . . . . . . . 1.3 Dpendances fonctionnelles . . . . . . . . . . . . . . . . . . . . .e 1.3.1 Dnitions et proprits . . . . . . . . . . . . . . . . . . .eee 1.3.2 Graphe de couverture minimale . . . . . . . . . . . . . . . 1.3.3 Traduction vers un schma entits-associations . . . . . .ee 1.3.4 Gestion des dates et du caract`re historique . . . . . . . .e 1.3.5 Dpendances plurielles et rexives . . . . . . . . . . . . .ee 1.3.6 Associations sans attributs . . . . . . . . . . . . . . . . . 1.4 Mthodologie de base . . . . . . . . . . . . . . . . . . . . . . . .e 3 4 4 4 5 6 7 7 8 10 10 14 16 16 17 17 18 20 20 21

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

2 Mod`le logique de donnes (MLD)ee 2.1 Syst`mes logiques . . . . . . . . . . . . .e 2.2 Mod`le logique relationnel . . . . . . . .e 2.2.1 Tables, lignes et colonnes . . . . 2.2.2 Cls primaires et cls trang`resee ee 2.2.3 Schma relationnel . . . . . . . .e 2.3 Traduction dun MCD en un MLDR . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

22 22 22 22 22 23 24

3 Mod`le physique de donnes (MPD)ee 3.1 Distinction entre MLD et MPD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Optimisations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Rtro-conceptione 4.1 Traduction inverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Cas particuliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Complmentse 5.1 Agrgation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .e 5.1.1 Association de type 1 : n . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.2 Association de type n : m . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.3 Tables de codication ou tables de rfrence . . . . . . . . . . . . . . .ee 5.2 Identiant relatif ou lien identiant . . . . . . . . . . . . . . . . . . . . . . . . 5.2.1 Rsolution dun probl`me sur le schma relationnel . . . . . . . . . . .eee 5.2.2 Mod`le conceptuel correspondant . . . . . . . . . . . . . . . . . . . . .e 5.2.3 Discussion autour de la numrotation des exemplaires . . . . . . . . .e 5.3 Hritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .e 5.3.1 Sous-entit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .e 5.3.2 Utilisation de lhritage pour sparer les informations complmentaireseee 5.3.3 Spcialisation des associations . . . . . . . . . . . . . . . . . . . . . . .e

27 27 27 28 28 29 30 30 30 32 34 35 35 36 37 38 38 39 40

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

INTRODUCTION

Conclusion Rfrencesee Table des gures Index

41 41 42 43

Introduction
Quand nous construisons directement les tables dune base de donnes dans un logiciel de gestion dese bases de donnes (Oracle, SQL Server, DB2, Access, MySQL, PostGre, ...), nous sommes exposs ` deuxee a types de probl`me :e nous ne savons pas toujours dans quelle table placer certaines colonnes (par exemple, ladresse de livraison se met dans la table des clients ou dans la table des commandes?) ; nous avons du mal ` prvoir les tables de jonction intermdiaires (par exemple, la table des in-a ee terprtations qui est indispensable entre les tables des lms et la table des acteurs).e Il est donc ncessaire de recourir ` une tape prliminaire de conception.eaee

Les techniques prsentes ici font partie de la mthodologie Merise (Mthode dEtude et de Ralisationeeeee Informatique pour les Syst`mes dEntreprise) labore en France en 1978 [Tardieu et al.], qui permet no-eee tamment de concevoir un syst`me dinformation dune faon standardise et mthodique.ecee Le but de ce support de cours est dintroduire le schma entits-associations (section 1), le schmaeee relationnel (sections 2 et 3) et dexpliquer la traduction entre les deux (sections 2.3 et 4). La construction du schma entits-associations peut se faire en tudiant les dpendances fonctionnelles (section 1.3) eteeee en tenant compte dun certain nombre dextensions conceptuelles incontournables (section 5). Ne sont malheureusement pas abords ici : les contraintes, les traitements, le langage relationnel et lae gestion de projet. Pour toutes ces notions importantes, car lies ` la conception de syst`mes dinformation,e ae ele lecteur est dirig vers [Akoka et Comyn-Wattiau, Matheron, Nanci et al.]. La modlisation objet nee fait pas non plus partie des outils exposs dans ce document.e

` MODELE CONCEPTUEL DE DONNEES (MCD)

Mod`le conceptuel de donnes (MCD)ee

Avant de rchir au schma relationnel dune application, il est bon de modliser la problmatiquee eeee a` traiter dun point de vue conceptuel et indpendamment du logiciel utilis.ee

1.1

Schma entits-associationsee

La modlisation conceptuelle que nous proposons dans ce document pour un univers dont on veut sto-e cker les donnes, conduit ` llaboration dun type de schma tr`s rpandu, le schma entits-associations.ea eee eee 1.1.1 Entits et associationse

Une entit est une population dindividus homog`nes. Par exemple, les produits ou les articles vendusee par une entreprise peuvent tre regroups dans une mme entit articles (gure 1), car dun articleeeee a` lautre, les informations ne changent pas de nature (` chaque fois, il sagit de la dsignation, du prixae unitaire, etc.).

clients numro client nom client prnom adresse client ...

articles - numro article - dsignation - prix unitaire de vente - ...

fournisseurs - n fournisseur - nom contact - n tlphone contact - ...

Fig. 1 Entitse Par contre, les articles et les clients ne peuvent pas tre regroups : leurs informations ne sont pasee homog`nes (un article ne poss`de pas dadresse et un client ne poss`de pas de prix unitaire). Il faut donceee leur rserver deux entits distinctes : lentit articles et lentit clients.eeee Une association est une liaison qui a une signication prcise entre plusieurs entits. Dans notreee exemple, lassociation commander est une liaison vidente entre les entits articles et clients, tandisee que lassociation livrer tablit le lien smantique entre les entits articles et fournisseurs.eee

clients numro client nom client prnom adresse client ...

commander - quantit commande - date de commande

articles - numro article - dsignation - prix unitaire de vente - ...

livrer - quantit livre - date livraison - nom livreur

fournisseurs - n fournisseur - nom contact - n tlphone contact - ...

Fig. 2 Associations Remarquons que dans ce schma, les entits clients et fournisseurs ne sont pas lies directement,eee mais indirectement, via lentit articles, ce qui est assez naturel.e

` MODELE CONCEPTUEL DE DONNEES (MCD) Attributs et identiants eeeUn attribut est une proprit dune entit ou dune

1.1.2

association.

Toujours dans notre exemple (gure 3), le prix unitaire est un attribut de lentit articles, le nome de famille est un attribut de lentit clients, la quantit commande est un attribut de lassociationeee commander et la date de livraison est un attribut de lassociation livrer.

clients numro client nom client prnom adresse client ...

commander - quantit commande - date de commande

articles - numro article - dsignation - prix unitaire de vente - ...

livrer - quantit livre - date livraison - nom livreur

fournisseurs - n fournisseur - nom contact - n tlphone contact - ...

Fig. 3 Attributs Une entit et ses attributs ne doivent traiter que dun seul sujet an dassurer une certaine cohrenceee au mod`le. Dans notre exemple, il est donc prfrable de ne pas mettre les informations relatives auxeee fournisseurs dans lentit des articles mais plutt dans une entit fournisseurs spares (et lie ` lentiteoee ee ae articles via lassociation livrer). Ensuite, chaque individu dune entit doit tre identiable de mani`re unique. Cest pourquoi touteseee les entits doivent possder un attribut sans doublon (cest-`-dire ne prenant pas deux fois la mmeeeae valeur). Il sagit de lidentiant que lon souligne sur le schma, par convention. Le numro de clientee constitue un identiant classique pour lentit clients (gure 4).e

clients numro client nom client prnom adresse client ...

commander - quantit commande - date de commande

articles - numro article - dsignation - prix unitaire de vente - ...

livrer - quantit livre - date livraison - nom livreur

fournisseurs - n fournisseur - nom contact - n tlphone contact - ...

Fig. 4 Identiants Remarques : une entit poss`de au moins un attribut (son identiant) ;ee au contraire, une association peut tre dpourvue dattribut.ee

` MODELE CONCEPTUEL DE DONNEES (MCD) Cardinalitse

1.1.3

eeeLa cardinalit dun lien entre une entit et une association prcise le minimum et le maximum de fois quun individu de lentit peut tre concern par lassociation.eee Exemple : un client a au moins command un article et peut commander n articles (n tant indtermin),eeee tandis quun article peut avoir t command entre 0 et n fois (mme si ce nest pas le mme n queeeeee 1 (gure 5).prcdemment). On obtient alors le schma entitsassociations complete eee
clients articles - numro article 0,n - dsignation - prix unitaire de vente - ... fournisseurs - n fournisseur 1,n - nom contact - n tlphone contact - ...

commander

livrer 1,n - quantit livre - date livraison - nom livreur

numro client - quantit nom client 1,n prnom commande adresse client - date de ... commande

Fig. 5 Cardinalitse Une cardinalit minimale de 1 doit se justier par le fait que les individus de lentit en question ontee besoin de lassociation pour exister (un client nexiste pas avant davoir command quoique ce soit, donce la cardinalit minimale de lentit clients dans lassociation commander est 1). Dans tous les autres cas,ee la cardinalit minimale vaut 0 (cest le cas pour une liste pr-tablie darticles par exemple).eee Ceci dit, la discussion autour dune cardinalit minimale 0 ou 1 nest vraiment intressante que lorsqueee la cardinalit maximale est 1. Nous verrons en eet lors de la traduction vers un schma relationnel (sec-ee tion 2.3), que lorsque la cardinalit maximale est n, nous ne pouvons pas faire la dirence entre uneee cardinalit minimale de 0 et une cardinalit minimale de 1.ee Notons que sur notre exemple, un article peut tre command par plusieurs clients. Cela provient duee fait que tous les crayons rouges ne sont pas numrots individuellement, mais portent un numro darticlee ee collectif. En toute rigueur, notre entit articles aurait du sappeler types darticle. Ainsi, un crayone rouge peut tre command par plusieurs clients, ce nest simplement pas le mme crayon ` chaque fois.eeea Il sagit dun choix de modlisation, le lecteur peut tr`s lgitimement faire le choix inverse qui consiste `ee ea numroter individuellement chaque crayon rouge.e

La seule dicult pour tablir correctement les cardinalits est de se poser les questions dans le boneee sens. Autour de lassociation commander, par exemple : ct clients, la question est (( un client peut commander combien darticles ? )) et la rponse estoee (( entre 1 et plusieurs )) ; ct articles, la question est (( un article peut tre command par combien de client ? )) et cetteoeee fois-ci, la rponse est (( entre 0 et plusieurs )).e

1. Le lecteur avis aura not que le schma de la gure 5 comporte des erreurs de conception. Ces erreurs seront corrigeseeee dans la section 1.2 ddie ` la normalisation des schmas entits-associations.e e aee

` MODELE CONCEPTUEL DE DONNEES (MCD) Associations plurielles

1.1.4

Deux mmes entits peuvent tre plusieurs fois en association (cest le cas sur la gure 6).eee

possder - date dacquisition - prix achat 0,n personnes n personnel nom prnom ... 0,1 rsider principalement - date dentre - montant du loyer rsider secondairement - date dentre - montant du loyer 1,1 logements 0,n 0,n - n logement - adresse - ...

0,n

Fig. 6 Associations plurielles Dans cet exemple issu dune agence immobili`re, une personne peut tre propritaire, rsider princi-eeee palement ou rsider secondairement dans un logement gr par lagence. Les logements qui ne sont paseee grs par lagence ne gurent pas dans lentits des logements, ce qui explique certaines cardinalits 0 dueeee schma. Nous supposons galement quun logement nest dtenu que par une seule personne et que ceeee propritaire gure obligatoirement dans lentit des personnes.ee

1.1.5

Association rexivee

Il est permis ` une association dtre branche plusieurs fois ` la mme entit, comme par exempleaeeaee lassociation binaire rexive de la gure 7.e

diriger - date dbut 0,n employs n employ nom fonction adresse ...

0,1

Fig. 7 Association rexivee Dans cet exemple, tout employ est dirig par un autre employ (sauf le directeur gnral) et uneeee e employ peut diriger plusieurs autres employs, ce qui explique les cardinalits sur le schma.eeee

` MODELE CONCEPTUEL DE DONNEES (MCD) Associations non binaires

1.1.6

Lorsquautour dune entit, toutes les associations ont pour cardinalits maximales 1 au centre et nee a` lextrieur, cette entit est candidate pour tre remplace par une association branche ` toutes leseeeee a entits voisines avec des cardinalits identiques 0,n.ee La deuxi`me condition quil faut imprativement satisfaire est la r`gle de normalisation des attributseee des associations (section suivante). Cette r`gle conduit parfois ` lapparition dassociations qui tablissenteae un lien smantique entre 3 entits ou plus.ee Sur lexemple de la gure 8 issu dun cinma, lentit projections est uniquement entoure dasso-eee ciations dont les cardinalits maximales sont 1 ct projections et n de lautre ct. De plus, la donneeoeoee 2 . On peut donc la rem-dun crneau, dun lm et dune salle sut ` dterminer une projection uniqueea e placer par une association projeter branche aux trois entits salles, crneaux horaires et films.eee On parle alors dassociation ternaire.

Fig. 8 Entit remplaable par une association ternaireec

2. sans la date dans lentit crneaux horaires, la donne dun crneau, dun lm et dune salle aurait dtermin plusieurse eeeee projections et lassociation ternaire naurait pas pu se faire

` MODELE CONCEPTUEL DE DONNEES (MCD)

La dicult de concevoir une association ternaire (ou plus) directement est dtablir les bonnes car-ee dinalits. Il est donc conseill den passer par un schma entits-associations dans lequel on ne trouveeeee que des associations binaires, puis de reprer les entits remplaables par des associations, comme sur laeec gure 8 ` gauche.a Cette r`gle de conduite permet dviter dintroduire une association ternaire abusive, par exempleee entre les avions, les pilotes et les vols (gure 9), car le concepteur peut sapercevoir que lune des cardinalits maximales ne convient pas.e

avions utiliser 0,n numro avion date mise en service modle propritaire

1,1 vols - numro vol - heure de dpart 0,n prvue - heure darrive prvue dparts - numro dpart correspondre 1,1 - date - heure de dpart effective 1,n assurer pilotes 0,n - numro pilote - nom - grade

Fig. 9 Contre-exemple : lentit dparts nest pas remplaable par une association ternairee ec Par ailleurs, une association peut tre branche ` plus de trois entits, comme sur la gure 10. L`-ee aea encore, le conseil pour tre sr de la lgitimit de cette association 4-aire, est de vrier les cardinalitseueeee sur un schma intermdiaire faisant appara ` la place, une entit occupations et quatre associationseetre ae binaires.
jours dans la semaine - n jour - jour 0,n semaines dans lanne - n semaine - date de dbut 0,n occuper - motif 0,n salles - n salle - capacit 0,n crneaux horaires dans la journe - n crneau - heure de dbut

Fig. 10 Exemple dentit quaternaire ou 4-airee

` MODELE CONCEPTUEL DE DONNEES (MCD)

10

1.2

R`gles de normalisatione

Un bon schma entits-associations doit rpondre ` 9 r`gles de normalisation, que le concepteur doiteeeae conna par cur.tre 1.2.1 Les bonnes mani`res dans un schma entits-associationseee

Normalisation des entits (importante) : toutes les entits qui sont remplaables par une associa-eec tion doivent tre remplaces (comme sur la gure 8).ee Normalisation des noms : le nom dune entit, dune association ou dun attribut doit tre unique.ee Conseils : pour les entits, utiliser un nom commun au pluriel (par exemple : clients) ;e pour les associations, utiliser un verbe ` linnitif (par exemple : eectuer, concerner) ventuellementae a` la forme passive (tre command) et accompagn dun adverbe (avoir lieu dans, pendant, `) ;eeea pour les attributs, utiliser un nom commun singulier (par exemple : nom, numro, libell, descrip-ee tion) ventuellement accompagn du nom de lentit ou de lassociation dans laquelle il se trouveeee (par exemple : nom de client, numro darticle).e

Remarque : lorsquil reste plusieurs fois le mme nom, cest parfois symptomatique dune modlisationee qui nest pas termine (gure 11(a)) ou le signe dune redondance (gure 11(b)).e

tudiants n tudiant nom prnom adresse -

enseignants n enseignant nom prnom adresse fusion -

personnes n personnel nom prnom adresse

(a) Deux entits homog`nes peuvent tre fusionneseeee

clients - numro client - nom client - adresse de livraison 1,n passer

commandes - n commande 1,1 - date commande - adresse de livraison

redondance, donc risque dincohrence


(b) Si deux attributs contiennent les mmes informations, alorse la redondance induit non seulement un gaspillage despace mais galement un grand risque dincohrence : ici, les adresses risquentee de ne pas tre les mmes et dans ces conditions, o` faut-il livrereeu ?

Fig. 11 Contre-exemples de la normalisation des noms

` MODELE CONCEPTUEL DE DONNEES (MCD) Normalisation des identiants : chaque entit doit possder un identiant.ee

11

Conseils : viter les identiants composs de plusieurs attributs (comme par exemple un identiant form pareee les attributs nom et prnom), car dune part cest mauvais pour les performances et dautres part,e lunicit suppose par une telle dmarche nit tt ou tard par tre dmentie ;eeeoee prfrer un identiant court pour rendre la recherche la plus rapide possible (viter notamment leseee chanes de caract`res comme un numro de plaque dimmatriculation, un numro de scurit socialeeeeee 3) ;ou un code postal viter galement les identiants susceptibles de changer au cours du temps (comme les plaquesee dimmatriculation ou les numros de scurit sociale provisoires).eee eeeeConclusion : lidentiant sur un schma entits-associations (et donc la future cl primaire dans le schma 4.relationnel) doit tre un entier, de prfrence incrment automatiquementeeeee Normalisation des attributs (importante) : remplacer les attributs en plusieurs exemplaires en une association supplmentaire de cardinalits maximales n et ne pas ajouter dattribut calculable ` partireea dautres attributs. En eet, dune part, les attributs en plusieurs exemplaires posent des probl`mes dvolutivit dueee mod`le (sur la gure 12(a) ` gauche, comment faire si un employ a deux adresses secondaires ?) eteae

employs n employ nom adresse principale adresse secondaire n tlphone domicile n tlphone portable

employs - n employ - nom 1,n normalisation possder

occuper 1,n - type 1,n

adresses - n adresse - adresse

numros de tl. 1,n - n de n de tl. - n de tlphone - fixe ou portable

(a) Attributs en plusieurs exemplaires remplacs par une association supplmentaireee

commandes

figurer

articles - numro article 0,n - dsignation - prix unitaire de vente

- n commande 1,n - date commande - quantit - montant total

calculable partir de
(b) Attribut calculable quil faut retirer du schmae

Fig. 12 Contre-exemples de la normalisation des attributs dautre part, les attributs calculables induisent un risque dincohrence entre les valeurs des attributs dee
3. Un numro de scurit sociale, un code postal ou un numro de tlphone sont bien des chaeeeeeenes de caract`res, mmeee si elles ne comportent que des chires, tout simplement parce que ces numros peuvent commencer par un 0, ce qui, ene informatique, nest pas possible avec un entier. 4. Le seul inconvnient de cette numrotation arbitraire est quil devient possible ` une table de possder deux fois laeeae mme ligne (avec deux numros dirents). Le conseil reste pourtant largement avantageuxeee

` MODELE CONCEPTUEL DE DONNEES (MCD)

12

base et celles des attributs calculs, comme sur la gure 12(b).e Dautres dattributs calculables classiques sont ` viter, comme lge (qui est calculable ` partir deaeaa la date de naissance) ou encore le dpartement (calculable ` partir dune sous-cha du code postal).eane Normalisation des attributs des associations (importante) : les attributs dune association doivent dpendre directement des identiants de toutes les entits en association.ee Par exemple, sur la gure 5 la quantit commande dpend ` la fois du numro de client et duee eae numro darticle, par contre la date de commande non. Il faut donc faire une entit commandes ` part,eea idem pour les livraisons (gure 13).

clients numro client nom client prnom adresse client 1,n passer 1,!

concerner (1) - quantit commande 1,n commandes - n commande - date commande

articles - numro article 0,n - dsignation - prix unitaire de vente concerner (2) 1,n - quantit livre 1,n livraisons - n livraison - date de livraison 1,!

fournisseurs - n fournisseur - nom contact - n tlphone contact 1,n livrer - nom du livreur

Fig. 13 Normalisation des attributs des associations Linconvnient de cette r`gle de normalisation est quelle est dicile ` appliquer pour les associationseea qui ne poss`dent pas dattribut. Pour vrier malgr tout quune association sans attribut est bien nor-eee malise, on peut donner temporairement ` cette association un attribut imaginaire (mais pertinent) quiea permet de vrier la r`gle.ee Par exemple, entre les entits livres et auteurs de la gure 16, lassociation crire ne poss`de paseee dattribut. Imaginons que nous ajoutions un attribut pourcentage qui contient le pourcentage du livre crit par chaque auteur (du mme livre). Comme cet attribut pourcentage dpend ` la fois du numroeeeae de livre et du numro dauteur, lassociation crire est bien normalise.eee Autre consquence de la normalisation des attributs des associations : une entit avec une cardinaliteee de 1,1 ou 0,1 aspire les attributs de lassociation (gure 14).
fournisseurs - n fournisseur - nom contact 1,n - n tlphone contact livraisons 1,1 - n livraison - date de livraison -

livrer - nom du livreur

cet attribut passe ici

Fig. 14 Cardinalit 1,1 et attributs dune associatione

` MODELE CONCEPTUEL DE DONNEES (MCD)

13

Normalisation des associations (importante) : il faut liminer les associations fantmes (gure 15(a)),eo redondantes (gure 15(b)) ou en plusieurs exemplaires (gure 15(c)).

fournisseurs - n fournisseur - nom fournisseur - adresse contacts - n contact - nom du contact - n tlphone du contact 1,1 1,1 travailler chez fusion fournisseurs n fournisseur nom fournisseur adresse nom du contact n tlphone du contact

(a) les cardinalits sont toutes 1,1 donc cest une association fantmeeo

payer clients - numro client - nom client 0,n

rglements 1,1 - n rglement - date rglement - montant factures 1,1 - n facture - date facture - montant total

1,1 0,n

correspondre

0,n

recevoir

(b) si un client ne peut pas rgler la facture dun autre client, alors lassociatione payer est inutile et doit tre supprime (dans le cas contraire, lassociation payeree doit tre maintenue)e

joueurs de tennis 0,n joueur 1 n joueur nom genre classement 0,n 0,n 0,n co-quipier 2 normalisation -

joueurs de tennis n joueur nom genre classement 0,n jouer 2,4 ou plutt 1,n matchs de tennis - n match - date

joueur 2 1,1 1,1

co-quipier 1 0,1 0,1

matchs de tennis - n match - date

(c) une association sut pour remplacer les 4 associations participer en tant que ...

Fig. 15 Contre-exemples de la normalisation des associations

` MODELE CONCEPTUEL DE DONNEES (MCD)

14

En ce qui concerne les associations redondantes, cela signie que sil existe deux chemins pour se rendre dune entit ` une autre, alors ils doivent avoir deux signications ou deux dures de vie direntes. Si-eaee non, il faut supprimer le chemin le plus court, car il est dductible ` partir de lautre chemin. Dans notreea exemple de la gure 15(b), si on supprime lassociation payer, on peut retrouver le client qui a pay lee r`glement en passant par la facture qui correspond.e

Remarque : une autre solution pour le probl`me de la gure 15(b) consiste ` retirer lentit r`glementseae e et dajouter une association rgler avec les mmes attributs (sauf lidentiant) entre les entits clientseee et factures. Normalisation des cardinalits : une cardinalit minimale est toujours 0 ou 1 (et pas 2, 3 ou n)ee et une cardinalit maximale est toujours 1 ou n (et pas 2, 3, ...).e Cela signie que si une cardinalit maximale est connue et vaut 2, 3 ou plus (comme sur la gure 15(c) `ea droite, ou pour un nombre limit demprunts dans une biblioth`que), alors nous considrons quand mmeeeee quelle est indtermine et vaut n. Cela se justie par le fait que mme si nous connaissons n au momenteee de la conception, il se peut que cette valeur volue au cours du temps. Il vaut donc mieux considrer nee comme une inconnue d`s le dpart.ee

Cela signie galement quon ne modlise pas les cardinalits minimales qui valent plus de 1 car ceeee genre de valeur est aussi amene ` voluer. Par ailleurs, avec une cardinalit maximale de 0, lassociatione aee naurait aucune signication. Dans un SGBD relationnel, nous pourrions assurer les cardinalits valant 2, 3 ou plus, via lutilisatione de dclencheurs. Mais cette notion nest pas aborde dans ce document qui se contente, au contraire, deee dcrire ce quil est possible de faire sans utiliser de dclencheur.ee 1.2.2 Les formes normales

` A ces 6 r`gles de normalisation, il convient dajouter les 3 premi`res formes normales traditionnel-ee lement nonces pour les schmas relationnels, mais qui trouvent tout aussi bien leur place en ce quieee concerne les schmas entits-associations.ee Premi`re forme normale : ` un instant donn dans une entit, pour un individu, un attribut neeaee peut prendre quune valeur et non pas, un ensemble ou une liste de valeurs. Si un attribut prend plusieurs valeurs, alors ces valeurs doivent faire lobjet dune entit supplmentaire,ee en association avec la premi`re (gure 16).e

livres numro livre titre auteurs diteur nombre de pages anne -

livres 1re forme normale numro livre titre 1,n diteur nombre de pages anne crire auteurs 1,n - numro auteur - nom

Fig. 16 Application de la premi`re forme normale : il peut y avoir plusieurs auteurs pour un livre donnee

` MODELE CONCEPTUEL DE DONNEES (MCD)

15

Deuxi`me forme normale : lidentiant peut tre compos de plusieurs attributs mais les autreseee attributs de lentit doivent dpendre de lidentiant en entier (et non pas une partie de cet identiant).ee Cette deuxi`me forme normales peut tre oublie si on suit le conseil de nutiliser que des identiantseee non composs et de type entier. En vrit, elle a t vide de sa substance par la r`gle de normalisationee eeeee des attributs des associations (page 12). Considrons malgr tout le contre-exemple suivant : dans une entit clients dont lidentiant esteee compos des attributs nom et prnom, la date de fte dun client ne dpend pas de son identiant eneeee entier mais seulement de prnom. Elle ne doit pas gurer dans lentit clients, il faut donc faire uneee entit calendrier ` part, en association avec lentit clients.eae Troisi`me forme normale de Boyce-Codd (importante) : tous les attributs dune entit doiventee dpendre directement de son identiant et daucun autre attribut.e Si ce nest pas le cas, il faut placer lattribut pathologique dans une entit spare, mais en associatione e e avec la premi`re.e

numro avione constructeur 1 Airbus 2 Boeing 3 Airbus

mod`lee capacite propritairee A380 180 Air France B747 314 British Airways A380 180 KLM

Tab. 1 Il y a redondance (et donc risque dincohrence) dans les colonnes constructeur et capacitee Par exemple, lentit avions (gure 17 ` gauche) dont les valeurs sont donnes dans le tableau 1,eae nest pas en troisi`me forme normale de Boyce-Codd, car la capacit et le constructeur dun avionee ne dpendent pas du numro davion mais de son mod`le. La solution normalise est donne gure 17 `eeeeea droite.
avions numro avion constructeur modle capacit propritaire
me

modles davion avions forme normale - numro avion 1,n - propritaire tre du 3 1,n numro modle modle constructeur capacit

Fig. 17 Application de la troisi`me forme normale de Boyce-Codde

` MODELE CONCEPTUEL DE DONNEES (MCD)

16

1.3

Dpendances fonctionnellese

Pour tablir ecacement un mod`le entits-associations bien normalis, on peut tudier au pralableeeeeee les dpendances fonctionnelles entre les attributs puis, les organiser en graphe de couverture minimale.e Cette technique est traditionnellement employe pour normaliser des schmas relationnels, mais elleee sapplique tr`s bien en amont, au niveau des mod`les conceptuels.ee

1.3.1

Dnitions et propritsee e

eUn attribut Y dpend fonctionnellement dun attribut X si et seulement si une valeur de X induit une unique valeur de Y . On note une dpendance fonctionnelle par une `che simple : X Y .ee Par exemple, si X est le numro de client et Y le nom de client, alors on a bien X Y . Par contre,e on a pas Y X, car plusieurs clients de numros dirents peuvent porter le mme nom.eee Transitivit : si X Y et Y Z alors X Z.e Par exemple, on a numro de commande numro de client nom de client, donc on a aussiee numro de commande nom de client. Mais la dpendance fonctionnelle numro de commande nomeee de client est dite transitive, car il faut passer par le numro de client pour lobtenir.e Au contraire, la dpendance fonctionnelle numro de client nom de client est directe . Seulesee les dpendances fonctionnelles directes nous intressent. Dautres exemples sont donnes dans le tableau 2.eee dpendance fonctionnellee directe ? numro de livraison date de livraisone oui numro de livraison numro du fournisseuree oui numro du fournisseur nom du fournisseure oui numro de livraison nom du fournisseure non Tab. 2 Exemples de dpendances fonctionnellese Un attribut Y peut avoir une dpendance fonctionnelle qui repose sur la conjonction de plusieurs attri-e buts, auquel cas la dpendance est dite non lmentaire . Les dpendances fonctionnelles non l mentaireseeeeee sont notes par une `che unique mais comportant plusieurs points dentre (regroups autour duneeee cercle). Par exemple, la quantit commande (dun article dans une commande) dpend de deux attributs :eee le numro de commande et le numro darticle (gure 18). Notons que cette dpendance numro deeeee commande + numro darticle quantit est ` la fois non lmentaire et directe.eeaee
numro de commande quantit commande numro darticle

Fig. 18 Dpendance fonctionnelle non lmentaire, mais directeeee

` MODELE CONCEPTUEL DE DONNEES (MCD) Graphe de couverture minimale

17

1.3.2

En reprsentant tous les attributs et toutes les dpendances fonctionnelles directes entre eux, nousee obtenons un rseau appel graphe de couverture minimale. Dans notre exemple sur les clients, les com-ee mandes et les articles, ce graphe est donn sur la gure 19.e

numro de commande

numro darticle

numro de client

date de commande quantit commande

dsignation

nom du client adresse du client

Fig. 19 Graphe de couverture minimale La technique de traduction en un schma entits-associations qui suit, suppose quaucun attribut naee t oubli sur le graphe de couverture minimal et notamment, aucun identiant. Dailleurs toutes leseee dpendances fonctionnelles du graphe doivent partir dun identiant. Si ce nest pas le cas, cest quune identiant a t omis.ee

1.3.3

Traduction vers un schma entits-associationsee

` A partir du graphe de couverture minimale (gure 19), le schma entits-associations normalis cor-eee respondant appara naturellement (gure 20), en suivant quelques tapes simples.te
numro de commande

numro darticle

numro de client

date de commande quantit commande

dsignation

nom du client adresse du client

Fig. 20 Identication des entits et des associations sur un graphe de couverture minimalee Etape 1 : il faut reprer et souligner les identiants.e Etape 2 : puis tous les attributs non identiant qui dpendent directement dun identiant et dune seul, forment une entit (avec lidentiant, bien sr).eu Etape 3 : ensuite, les dpendances lmentaires entre les identiants forment des associations binaireseee dont les cardinalits maximales sont 1 au dpart de la dpendance fonctionnelle et n ` larrive.eeeae Etape 4 : sauf si entre deux identiants se trouvent deux dpendances lmentaires rexives quel cas lassociation binaire a deux cardinalits maximales valant 1.e
5

, au-eeee

5. cest ` cause de cette tape 4 quil est prfrable de ne pas traduire directement le graphe de couverture minimale enaeee un schma relationnel, cf. les commentaires de la r`gle 4 page 25ee

` MODELE CONCEPTUEL DE DONNEES (MCD)

18

Etape 5 : enn, les attributs (non identiants) qui dpendent de plusieurs identiants sont les attri-e buts dune association supplmentaire dont les cardinalits maximales sont toutes n.ee La traduction du graphe de couverture minimale de la gure 20 en un schma entits-associationsee normalis est donne sur la gure 21.ee

passer

commandes 1,1 - n commande - date commande

articles - numro article - dsignation

1,n clients numro client nom client prnom adresse client 1,n concerner - quantit commande 0,n

Fig. 21 Schma entits-associations normalis obtenu ` partir du graphe de couverture minimaleeeea Dans ce genre de traduction, il faut donner un nom aux entits et aux associations, car ce nest pase le cas sur le graphe de couverture minimale et il reste les cardinalits minimales ` tablir.eae Remarquons galement quen ralit, il faut dj` conna les entits en prsence pour tablir cor-ee eeatreeee rectement le graphe de couverture minimale, ne serait-ce que pour y faire gurer leurs identiants. Donc nalement, cette technique nest une aide pour tablir les associations entre les entits et pour normaliseree les entits et leurs associations (jusquen troisi`me forme normale de Boyce-Codd).ee 1.3.4 Gestion des dates et du caract`re historiquee

Dans une biblioth`que, on peut vouloir stocker les emprunts en cours (gure 22) et/ou les empruntse historiques (gure 23). Pour les emprunts en cours, la date de retour prvu est un attribut de lentitee
numro de livre traduction titre date d numro de membre emprunt date de retour prvu nom adresse

livres emprunts en n livres 0,1cours titre date demprunt date retour prvu

membres 0,n - n membre - nom - adresse

Fig. 22 Sans historisation des emprunts, pas de probl`mee livres car un livre ne peut faire lobjet que dun seul emprunt en cours. Dans ce cas, ltablissement due graphe de couverture minimal ne pose aucun probl`me.e

` MODELE CONCEPTUEL DE DONNEES (MCD)

19

Par contre, un livre peut faire lobjet de plusieurs emprunts historiques et dans ces conditions, la date demprunt est dterminante pour connaetre la date de retour prvue (gure 23 en haut ` gauche). Orea une date nest pas un identiant 6 et une dpendance fonctionnelle ne peut partir que dun ou plusieurse identiant(s). Cest le signe quil manque un identiant : le numro demprunt (gure 23 en haut ` droite).ea

numro de livre

date demprunt

numro de livre

date demprunt

numro demprunt correction titre date de date de retour retour prvu effectif numro de membre titre date de numro de membre date de retour retour prvu effectif nom adresse

nom

adresse

ion uct trad

emprunts historiques livres - n livre 0,n - titre concerner 1,1 numro demprunt 1,1 date demprunt date de retour prvu date retour effectif avoir effectuer

membres 0,n - n membre - nom - adresse

Fig. 23 Mme pour une entit historise, il vaut mieux viter que la date nentre dans lidentianteeee Notons que lentit emprunts historiques supplmentaire qui appara apr`s traduction (gure 23eete en bas) ne peut pas tre transforme en une association comme on pourrait le croire au simple examenee des cardinalits qui lentourent. En eet, les attributs de lassociation qui en rsulterait ne vrieraienteee pas la normalisation des attributs des associations. Notamment, la date de retour eectif ne dpend pase du numro de livre et du numro de membre, mais du numro de livre et de la date demprunt.eee ` La normalisation des entits ne sapplique donc pas aux entits qui ont un caract`re historique. Aeee moins que les dates ne soient regroupes dans une entit spare, ce qui nest pas conseill tant quaucuneee e ee information lie aux dates (comme le caract`re fri, par exemple) nest ncessaire.ee e ee

6. Si on suit le prcieux conseil de nutiliser que des entiers arbitraires et auto-incrments comme identiant.eee

` MODELE CONCEPTUEL DE DONNEES (MCD) Dpendances plurielles et rexivesee

20

1.3.5

Une ou plusieurs dpendances fonctionnelles peuvent partir ou arriver plusieurs fois du mme attri-ee but. Pour clarier la signication de chaque dpendance fonctionnelle, on peut ajouter un commentairee sur la `che (gure 24). Ce commentaire sert ensuite ` donner un nom aux associations correspondantes.ea

mdecin remplac numro de mdecin mdecin remplaant nom adresse professionnelle


(a) dpendances pluriellese

pre mre numro de remplacement

numro personnel

date de dbut

date de fin

nom

prnom

(b) dpendances rexivesee

Fig. 24 Dpendances fonctionnelles commentesee Les dpendances fonctionnelles plurielles entre les mdecins et le remplacements (gure 24(a)) de-ee viennent, apr`s traduction, des associations plurielles entre les entits mdecins et remplacements. No-ee e tons que lentit remplacements ainsi gnre, a aussi un caract`re historique.ee eee Les fonctionnelles rexives (X X), quoique toujours vraies, ne prsentent aucun intrt, ` moinseeee a quelles aient une signication particuli`re. Un exemple de dpendance rexive licite sur un graphe deeee couverture minimale est la dpendance fonctionnelle personne personne, lorsquelle signie (( diriger )),e (( tre en couple avec )) ou (( tre le p`re ou la m`re de )) (gure 24(b)).eeee

Dans le mme ordre dide, il est inutile de faire gurer sur le graphe de couverture minimal desee dpendances fonctionnelles non lmentaires vraies, mais idiotes, comme par exemple numro de commandeeeee + numro darticle numro de commande.ee 1.3.6 Associations sans attributs

La lacune majeure de cette mthode reste tout de mme le fait que les associations dont toutes lesee cardinalits maximales sont n mais qui sont sans attribut ne gurent pas sur le graphe de couverturee minimale. Il faut alors, soit leur inventer temporairement un attribut (comme pour la normalisation des attributs des associations), soit introduire une notation spciale (par exemple, une dpendance nonee lmentaire qui ne dbouche sur aucun attribut).eee

Pour illustrer ce dfaut, prenons lexemple des lms et des acteurs (gure 25). Il ny a pas dattribute
numro de film numro dacteur films - n film - titre - dure 0,n jouer dans acteurs 0,n - numro acteur - nom de scne - date naissance

traduction

titre

dure

nom de scne

date de naissance

Fig. 25 Utilisation dune dpendance non lmentaire et sans enfant sur un graphe de couvertureeee minimal qui dpende ` la fois du numro de lm et du numro dacteur (` moins dimaginer le temps dapparitioneaeea a e` lcran). Et pourtant, les deux entits films et acteurs sont en association. Grce ` la dpendanceea ae non lmentaire et sans enfant, on peut rendre compte de cette situation sur le graphe de couvertureee minimale et faire ainsi appara lassociation sur le schma entits-associations qui en est traduit.treee

` MODELE CONCEPTUEL DE DONNEES (MCD)

21

1.4

Mthodologie de basee

Face ` une situation bien dnie (soit ` travers un nonc prcis, soit ` travers une collection de for-aeaee ea mulaires ou dtats que le nouveau syst`me dinformation est cens remplacer), nous pouvons procdereeee sans tablir le graphe de couverture minimale :e

identier les entits en prsence ;ee lister leurs attributs ; ajouter les identiants (numro arbitraire et auto-incrment) ;eee

tablir les associations binaires entre les entits ;ee lister leurs attributs ; calculer les cardinalits ;e vrier les r`gles de normalisation et en particulier, la normalisation des entits (cest ` ce stadeeeea quapparaissent les associations non binaires), des associations et de leurs attributs ainsi que la troisi`me forme normale de Boyce-Codd ;e eectuer les corrections ncessaires.e

Mais, il est parfois plus intuitif den passer par ltude des dpendances fonctionnelles directes :ee

identier les entits en prsence et leur donner un identiant (numro arbitraire et auto-incrment) ;eeeee ajouter lensemble des attributs et leur dpendances fonctionnelles directes avec les identiants (ene commenant par les dpendances lmentaires) ;ceee traduire le graphe de couverture minimale obtenu en un schma entits-associations ;ee ajuster les cardinalits minimales et ;e ` ce stade, la majorit des r`gles de normalisation devraient tre vries, il reste tout de mmeaeeee ee la normalisation des noms, la prsence dattributs en plusieurs exemplaires et dassociations redon-e dantes ou en plusieurs exemplaires, ` corriger.a

Il faut garder galement ` lesprit que le mod`le doit tre exhaustif (cest-`-dire contenir toutes leseaeea informations ncessaires) et viter toute redondance qui, on ne le dira jamais assez, constitue une perteee despace, une dmultiplication du travail de maintenance et un risque dincohrence.ee Il faut par ailleurs veiller ` liminer les synonymes (plusieurs signiants pour un signi, exemple :aee nom, patronyme, appellation) et les polys`mes (plusieurs signis pour un signiant, exemples : qualit,eee statut). Il va de soi que cette mthodologie ne doit pas tre suivie pas-`-pas une bonne fois pour toute. Aueea contraire, il faut itrer plusieurs fois les tapes successives, pour esprer converger vers une modlisationeeee pertinente de la situation.

` MODELE LOGIQUE DE DONNEES (MLD)

22

Mod`le logique de donnes (MLD)ee

Maintenant que le MCD est tabli, on peut le traduire en dirents syst`mes logiques et notammenteee les bases de donnes relationnelles qui proposent une vision plus concr`te pour modliser la situation.eee

2.1

Syst`mes logiquese

Avant lapparition des syst`mes de gestion de base de donnes (SGBD ou DBMS pour Data Baseee Management System), les donnes taient stockes dans des chiers binaires et gres par des programmese eeee excutables (dvelopps en Basic, Cobol ou Dbase, par exemple). [Gabay] propose ` ce sujet une traduc-eeea tion dun MPD vers un MLD chier. Mais la maintenance des programmes (en cas de modication de la structure des donnes, notamment) tait tr`s problmatique.eeee Sont alors apparus les SGBD hirarchiques dans lesquels les donnes sont organises en arbre (IMS-eee eeeDL1 dIBM, par exemple), puis les SGBD rseaux dans lesquels les donnes sont organises selon un graphe plus gnral (IDS2 de Bull, par exemple). [Matheron, Nanci et al., Gabay] dcrivent la traduc-e ee tion dun MPD vers un MLD Codasyl (base de donnes rseaux). Ces deux types de SGBD sont ditee navigationnels car on peut retrouver linformation ` condition den conna le chemin dacc`s.atree Aujourdhui, ils sont largement remplacs par les SGBD relationnels (SGBDR) avec lesquels linfor-e mation peut tre obtenue par une requte formule dans un langage quasiment naturel (la langage SQLeee pour Structured Query Langage). Parmi les SGBDR les plus rpandus nous trouvons Oracle, SQL Servere et DB2. Nous nous contentons ici dexposer le mod`le logique de donnes relationnel (MLDR).ee Plus rcemment, sont apparus le mod`le logique orient objet et mme des SGBD orients objets.eeeee Pourtant, les SGBD relationnels restent extrmement majoritaires, tandis que lapproche orient objetee est parfaitement adapte au dveloppement dapplications clientes dynamiques et lies aux donnes dueeee syst`me dinformation.e

2.2

Mod`le logique relationnele


Concentrons-nous dsormais sur le MLDR.e

2.2.1

Tables, lignes et colonnes

Lorsque des donnes ont la mme structure (comme par exemple, les renseignements relatifs auxee clients), on peut les organiser en table dans laquelle les colonnes dcrivent les champs en commun et lese lignes contiennent les valeurs de ces champs pour chaque enregistrement (tableau 3).

numro cliente nom 1 Dupont 2 Durand 3 Dubois 4 Dupuis ... ...

prnome Michel Jean Claire Marie ...

adresse 127, rue... 314, boulevard... 51, avenue... 2, impasse... ...

Tab. 3 Contenu de la table clients, avec en premi`re ligne les intituls des colonnesee

2.2.2

Cls primaires et cls trang`resee ee

Les lignes dune table doivent tre uniques, cela signie quune colonne (au moins) doit servir ` lesea identier. Il sagit de la cl primaire de la table.e

` MODELE LOGIQUE DE DONNEES (MLD)

23

Labsence de valeur dans une cl primaire ne doit pas tre autorise. Autrement dit, la valeur videeee (NULL) est interdite dans une colonne qui sert de cl primaire, ce qui nest pas forcment le cas des autresee colonnes, dont certaines peuvent ne pas tre renseignes ` toutes les lignes.ee a De plus, la valeur de la cl primaire dune ligne ne devrait pas, en principe, changer au cours du temps.e Par ailleurs, il se peut quune colonne Colonne1 dune table ne doive contenir que des valeurs prises par la colonne Colonne2 dune autre table (par exemple, le numro du client sur une commande doite correspondre ` un vrai numro de client). La Colonne2 doit tre sans doublons (bien souvent il sagitaee dune cl primaire). On dit alors que la Colonne1 est cl trang`re et quelle rfrence la Colonne2.eeeeee Par convention, on souligne les cls primaires et on fait prcder les cls trang`res dun di`se # dansee ee eee la description des colonnes dune table : clients(numro client, nom client, prnom, adresse client)ee commandes(numro commande, date de commande, #numro client (non vide))ee Remarques : une mme table peut avoir plusieurs cls trang`res mais une seule cl primaire (ventuellementee eeee composes de plusieurs colonnes) ;e une colonne cl trang`re peut aussi tre primaire (dans la mme table) ;eeeee une cl trang`re peut tre compose (cest le cas si la cl primaire rfrence est compose) ;eeeeeeeeee implicitement, chaque colonne qui compose une cl primaire ne peut pas recevoir la valeur videe (NULL interdit) ; par contre, si une colonne cl trang`re ne doit pas recevoir la valeur vide, alors il faut le prcisereeee dans la description des colonnes.

Les SGBDR vrient au coup par coup que chaque cl trang`re ne prend pas de valeurs en dehorseeee de celles dj` prises par la ou les colonne(s) quelle rfrence. Ce mcanisme qui agit lors de linsertion,eaeee de la suppression ou de la mise ` jour de lignes dans les tables, garantit ce que lon appelle lintgritaee rfrentielle des donnes.eee

2.2.3

Schma relationnele

On peut reprsenter les tables dune base de donnes relationnelle par un schma relationnel danseee e eeelequel les tables sont appeles relations et les liens entre les cl s trang`res et leur cl primaire est sym-e bolis par un connecteur (gure 26).e
clients numro client nom client prnom adresse client commandes - n commande - date commande - #numro client (non vide)

Fig. 26 Schma relationnel simple entre deux tablese Certains diteur inscrivent sur le connecteur un symbole 1 ct cl primaire et un symbole cteoe eoe cl trang`re (` condition que celle-ci ne soit pas dj` cl primaire). Il faut prendre garde avec cettee eeaea e convention, car le symbole se trouve du ct oppos ` la cardinalit maximale n correspondante.oeeae

` MODELE LOGIQUE DE DONNEES (MLD)

24

2.3

Traduction dun MCD en un MLDR


Pour traduire un MCD en un MLDR, il sut dappliquer cinq r`gles.e

Notations : on dit quune association binaire (entre deux entits ou rexive) est de type :ee 1 : 1 (un ` un) si aucune des deux cardinalits maximales nest n ;ae 1 : n (un ` plusieurs) si une des deux cardinalits maximales est n ;ae n : m (plusieurs ` plusieurs) si les deux cardinalits maximales sont n.ae

En fait, un schma relationnel ne peut faire la dirence entre 0,n et 1,n. Par contre, il peut la faireee entre 0,1 et 1,1 (r`gles 2 et 4).e R`gle 1 : toute entit devient une table dans laquelle les attributs deviennent les colonnes. Lidenti-ee ant de lentit constitue alors la cl primaire de la table.ee Par exemple, lentit articles de la gure 13 devient la table :e articles(numro article, dsignation, prix unitaire de vente)ee R`gle 2 : une association binaire de type 1 : n dispara au prot dune cl trang`re dans la tableet,eee ct 0,1 ou 1,1 qui rfrence la cl primaire de lautre table. Cette cl trang`re ne peut pas recevoir laoeeeeeee valeur vide si la cardinalit est 1,1.e Par exemple, lassociation livrer de la gure 13 est traduite par : fournisseurs(n fournisseur, nom contact, n tlphone contact)e e livraison, date de livraison, nom livreur, #n fournisseur (non vide))livraisons(n

fournisseurs - n fournisseur - nom contact 1,n - n tlphone contact livrer

livraisons - n livraison 1,1 - date de livraison - nom livreur

fournisseurs - n fournisseur traduction - nom contact - n tlphone contact

livraisons - n livraison - date de livraison - nom livreur - #n fournisseur (non vide)

Fig. 27 Traduction dune association de type 1 : n Il ne devrait pas y avoir dattribut dans une association de type 1 : n, mais sil en reste, alors ils glissent vers la table ct 1.oe

` MODELE LOGIQUE DE DONNEES (MLD)

25

R`gle 3 : une association binaire de type n : m devient une table supplmentaire (parfois appeleeee table de jonction, table de jointure ou table dassociation) dont la cl primaire est compose de deuxee cls trang`res (qui rfrencent les deux cls primaires des deux tables en association). Les attributs dee eeeee lassociation deviennent des colonnes de cette nouvelle table. Par exemple, lassociation concerner (1) de la gure 13 est traduite par la table supplmentairee lignes de commande : lignes de commande(#n commande, #n article, quantit commande)ee

commandes - n commande - date commande 1,n concerner (1) - quantit commande 0,n articles - numro article - dsignation - prix unitaire de vente traduction commandes - n commande - date commande lignes de commandes - #n commande - #n article - quantit commande articles - numro article - dsignation - prix unitaire de vente

Fig. 28 Traduction dune association de type n : m R`gle 4 : une association binaire de type 1 : 1 est traduite comme une association binaire de type 1 : ne sauf que la cl trang`re se voit imposer une contrainte dunicit en plus dune ventuelle contrainte deeeeee non vacuit (cette contrainte dunicit impose ` la colonne correspondante de ne prendre que des valeurseea distinctes). Si les associations fantmes ont t limines, il devrait y avoir au moins un ct de cardinalit 0,1.oeeeeoee Cest alors dans la table du ct oppos que doit aller la cl trang`re. Si les deux cts sont de cardinalit oeeeeeoee 0,1 alors la cl trang`re peut tre place indiremment dans lune des deux tables.eeeeee Par exemple, lassociation diriger de la gure 29 est traduite par : eeservices(n service, nom service, #numro employ (non vide, unique)) employs(numro employs, nom)eee
services employs - n employ 0,1 - nom diriger services 1,1 - n service - nom service employs traduction - n employ - nom - n service - nom service - #n employ (unique, non vide)

Fig. 29 Traduction dune association de type 1 : 1

` MODELE LOGIQUE DE DONNEES (MLD)

26

En ralit, la r`gle 4 propose ici consid`re quune association binaire de type 1 : 1 correspond `e eeeea une association binaire de type 1 : n particuli`re. Une alternative consiste ` voir une association binaireea de type 1 : 1 comme une association binaire de type n : m particuli`re. Il sut pour cela dajouter unee contrainte dunicit sur chacune des cls trang`res de la table de jonction supplmentaire :ee eee services(n service, nom service) directions(#n service (unique), #numro employ (unique)ee employs(numro employs, nom)eee

directions employs - n employ - nom - #n service (unique) - #n employ (unique)

services - n service - nom service

Fig. 30 Traduction alternative dune association de type 1 : 1 Mais rien ne garantit, dans cette traduction alternative (gure 30), quun service poss`de un dirigeant,e alors que cest obligatoire. La premi`re traduction (gure 29) est donc prfrable.eee Remarque : dautres techniques sont parfois proposes pour cette r`gle 4 (fusionner les tables, utiliseree une cl primaire identique, utiliser deux cls trang`res rexives) mais elles ne sont pas exploitables dansee eee le cas gnral.e e R`gle 5 : une association non binaire est traduite par une table supplmentaire dont la cl primaireeee est compose dautant de cls trang`res que dentits en association. Les attributs de lassociation de-ee eee viennent des colonnes de cette nouvelle table. Par exemple, lassociation projeter de la gure 8 devient la table : projections(#n film, #n salle, #n crneau, tarif)e
crneaux horaires crneaux horaires - n crneau - date - heure de dbut 0,n projeter - tarif 0,n salles - n salle - capacit salles - n salle - capacit films 0,n - n film - titre - dure traduction projections #n film #n salle #n crneau tarif - n crneau - date - heure de dbut

films - n film - titre - dure

Fig. 31 Traduction dune association ternaire

` MODELE PHYSIQUE DE DONNEES (MPD)

27

Mod`le physique de donnes (MPD)ee

Un mod`le physique de donnes est limplmentation particuli`re du mod`le logique de donnes pareeeeee un logiciel.

3.1

Distinction entre MLD et MPD

La traduction dun MLD conduit ` un MPD qui prcise notamment le stockage de chaque donne `aee a travers son type et sa taille (en octets ou en bits). Cette traduction est galement loccasion dun certaine nombre de liberts prises par rapport aux r`gles de normalisation an doptimiser les performances duee syst`me dinformation.e La traduction dun MLD relationnel en un mod`le physique est la cration (par des requtes SQLeee de type CREATE TABLE et ADD CONSTRAINT) dune base de donnes hberge par un SGBD relationneleee particulier. Il peut sagir dune base Oracle, dune base SQL Server, dune base Access ou dune base DB2, par exemple. Le fait que tous les SGBDR reposent sur le mme mod`le logique (le schma relationnel)eee permet ` la fois la communication entre des bases htrog`nes et la conversion dune base de donnesaee ee dune SGBDR ` lautre.a

3.2

Optimisations

Loptimisation des performances en temps de calcul se fait toujours au dtriment de lespace mmoireee consomm. Dans le pire des cas, rduire les temps de rponse consiste ` dnormaliser volontairement leeeea e syst`me dinformation, avec tous les risques dincohrence et les probl`mes de gestion que cela comporte.eee Pour les bases de donnes relationnelles, loptimisation qui vise ` acclrer les requtes peut passereaeee par : lajout dindex aux tables (au minimum sur les colonnes cls primaires et cls trang`res) ; ces indexee ee consomment de lespace mmoire supplmentaire, mais la base de donnes reste normalise ;eeee lajout de colonnes calcules ou de certaines redondances pour viter des jointures coteuses (au-eeu quel cas la base est dnormalise) ; il faut alors veiller ` ce que la cohrence entre les colonneseeae soit respecte, soit par lutilisation de dclencheurs, soit dans les applications clientes du syst`meeee dinformation ; la suppression des contraintes dunicit, de non vacuit ou encore de cl trang`re (auquel cas,eee ee lintgrit des donnes doit tre assure par le code client du syst`me dinformation).eeeeee

Par exemple, la table commandes de la gure 28 peut tre supprime et la date de commande estee alors ajoute ` la table lignes de commandes. On renonce donc ` la troisi`me forme normale (gure 32)e aae
commandes - n commande - date commande lignes de commandes lignes de commandes - #n commande - #n article - quantit commande articles - numro article - dsignation - prix unitaire de vente dnormalisation n commande #n article date commande quantit commande articles - numro article - dsignation - prix unitaire de vente

Fig. 32 Sacrice de la troisi`me forme normalee

RETRO-CONCEPTION

28

puisque la date de commande est rpte autant de fois quil y a de lignes dans la commande, mais one ee vite ainsi une jointure coteuse en temps de calcul lors des requtes SQL.eue Le conseil le plus prcieux, en mati`re doptimisation, est de ne jamais optimiser a priori, mais toujoursee a posteriori, cest-`-dire en rponse ` une lenteur que le SGBDR nest pas capable de rsoudre tout seul.aeae Il faut alors mesurer le gain de toute optimisation manuelle en eectuant des tests (chronomtragese avant/apr`s) sur un volume de donnes signicatif et de prfrence en exploitation.eeee

Rtro-conceptione

Dans la majorit des cas, le travail du concepteur de bases de donnes consiste non pas ` crer uneeea e base de donnes ex nihilo, mais plutt ` corriger ou tendre une base existante. Dans ce cas, la mati`re deeo aee travail initiale est un mod`le physique et la mthode de rtro-conception ou reverse engineering consisteeee a` traduire ce MPD en un mod`le conceptuel, modier le MCD obtenu puis modier le mod`le physiqueee en consquence.e

4.1

Traduction inverse

Dans le cadre des bases de donnes relationnelles, il faut convertir le mod`le physique en un schmaeee relationnel normalis (en dtricotant les optimisations ventuelles et en renommant les colonnes des tableseee pour assurer lunicit et le caract`re explicite (non cod) des noms), puis appliquer les r`gles de traductioneeee de la section 2.3 dans le sens inverse. Etape 1 : chaque table dont la cl primaire ne contient pas de cl trang`re devient une entit donteeeee lidentiant est la cl primaire de la table et dont les attributs sont les colonnes de la table qui ne sonte pas cl trang`re.eee Etape 3 : chaque table dont la cl primaire est compose exclusivement de cls trang`res quieee ee rfrencent plusieurs cls primaires, devient une association autour de laquelle toutes les cardinalitseeee maximales valent n, cest-a-dire soit une association binaire de type n : m soit une association ternaire ou plus (les autres colonnes non cls trang`res de la table deviennent des attributs de lassociation).e ee Etape 5 : les colonnes cls trang`res restantes deviennent des associations binaires de type 1 : n sile ee ny a pas de contrainte dunicit ou de type 1 : 1 sil y a une contrainte dunicit (il faut trouver un nomee a` cette association). Etape 6 : la cardinalit minimale vaut 1 pour les cls trang`res qui font partie dune cl primaireee eee ou qui poss`dent une contrainte (non vide), sinon elle vaut 0.e

RETRO-CONCEPTION

29

4.2

Cas particuliers

Malheureusement, ces quatres tapes ne susent pas pour traduire tous les schmas relationnels pos-ee eeesibles. Notamment, les tables de la gure 33 ncessitent linsertion dtapes supplmentaires.

chques - #n rglement - n chque - nom banque paiements par carte - #n rglement - n carte - date dexpiration

rglements - n rglement - date rglement - montant

parcours - n parcours - nom parcours

trous - #n parcours - n trou dans parcours - par - distance

(a) cl sur une colonne, mais ` la fois pri-ea maire et trang`reee

(b) cl primaire compose partiel-ee lement de cl trang`reeee

Fig. 33 Tables particuli`res en rtro-conceptionee e eeEtape 2 : chaque table dont la cl primaire est compose exclusivement de cls trang`res quiee rfrencent une seule cl primaire, devient une sous-entit ou une sous-association (les autres colonneseeee non cls trang`res de la table deviennent des attributs de cette sous-entit).e eee Etape 4 : chaque table dont la cl primaire est compose partiellement de cls trang`res provienteee ee soit dune optimisation quil faire dfaire (comme sur la gure 32) soit dun identiant relatif dune entitee comme dans la section 5.2 (auquel cas les autres colonnes non cls trang`res de la table deviennent dese ee attributs de cette entit).e

COMPLEMENTS

30

Complmentse

Aucune situation compl`te, ou presque, ne peut tre parfaitement modlise si le concepteur seeee e contente des fonctionnalits abordes ` ce stade du document. Ne serait-ce que pour comprendre lla-ee ae boration des tables de la gure 33, il est ncessaire dintroduire de nouvelles notations sur le schmaee entits-associations. Les trois extensions majeures prsentes dans cette section font partie de la ver-eee sion 2 de Merise [Panet et al.]. Elles permettent de traiter davantage de situations relles et souvent dee mani`re plus simple.e

Dans cette section, nous reprenons la dmarche qui consiste ` tudier les dpendances fonctionnelleseaee directes sur le graphe de couverture minimale, puis ` traduire ce graphe en schma entits-associations,aee pour obtenir nalement un schma relationnel. Les notions abordes ici ne permettent plus au schmaeee relationnel dtre crit textuellement sans ambigu e. An de lever toute ambigu e pour savoir quelleeett cl primaire est rfrence par telle cl trang`re, il est impratif de reprsenter le schma relationnel deeeeeeeeeee mani`re graphique, ce que nous nous contentons de faire.e

5.1

Agrgatione
Une association nest pas forcment tablie exclusivement entre des entits.eee

5.1.1

Association de type 1 : n

Considrons lexemple de la gure 34 issu du monde des courses hippiques. La dpendance fonction-ee cheval + n course n jockey est la premi`re dpendance fonctionnelle non lmentairenelle neeee vers un identiant que nous rencontrons. Ce type de dpendance fonctionnelle nous incite ` crer uneea e association binaire de type 1 : n entre lentit jockeys et lassociation binaire de type n : m quil y a entree les entits chevaux et courses. Dun point de vue smantique, la logique est respecte puisque un jockeyeee ne monte pas un cheval, mais un cheval-qui-participe-`-une-course.a

Pour tenir compte de ce nouveau cas de dpendance fonctionnelle, il convient dajouter une sixi`meee tape ` la technique de traduction dun graphe de couverture minimal en un schma entits-associations,eaee telle quelle est commence section 1.3.3 :e Etape 6 : lorsquun identiant dpend de plusieurs autres identiants, son entit est en associationee de type 1 : n avec lassociation qui lie les autres identiants.

COMPLEMENTS
numro de cheval nom du cheval date de naissance dossard numro de jockey ordre darrive numro de course lieu de la course date de la course nom du jockey prnom

31

chevaux - n cheval - nom cheval - date naissance 0,n participer - dossard - ordre d arrive 0,n courses - n course - lieu course - date course 1,1 monter

tra du cti on

chevaux - n cheval - nom cheval - date naissance participations jockeys #n course #n cheval dossard ordre darrive #n jockey (non vide)

0,n - n jockey - nom jockey - prnom

traduction

jockeys - n jockey - nom jockey - prnom

courses - n course - lieu course - date course

Fig. 34 Association binaire de type 1 : n (monter), lie ` une association binaire de type n : me a (participer)

Certains auteurs consid`rent que lagrgation des entits chevaux, courses et de lassociation par-eee ticiper constitue une nouvelle entit participations qui englobe ces trois lments graphiques. Danseee ce cas, lassociation monter fait le lien entre les deux entits (participations et jockeys). Le rsultatee nal sur le schma relationnel est le mme. Malheureusement, cette notation nest pas tr`s pratique careee le schma entits-associations devient vite illisible lorsquune entit participe ` plusieurs agrgations.eeeae

Nous prfrons donc autoriser, dans ce document, quune association puisse tre lie ` une associa-eeee a tion binaire de type n : m ou ` une association ternaire (ou plus). Cependant pour ne pas confondre lesa liens entres associations et entits avec les liens entres associations, nous encadrons soigneusement lese aassociations qui interviennent dans une agrgation, comme sur la gure 34 en bas ` gauche.e En tout cas, une association ne peut pas tre lie ` une association binaire de type 1 : n ou 1 : 1. Dans ceee a cas, lassociation doit tre directement lie ` lentit qui se trouve du ct o` la cardinalit maximale est 1.ee aeoe ue Sur le schma relationnel nal (gure 34 en bas ` droite), la table de jonction participations reoiteac une cl trang`re supplmentaire, mais qui contrairement aux autres, ne participe pas ` la cl primaire.eeeeae

COMPLEMENTS Association de type n : m

32

5.1.2

` A prsent, ajoutons les parieurs ` notre exemple de la gure 34. Etant donn que nous avons laeae cheval + n course + n parieur montant de la mise (gure 35 endpendance fonctionnelle ne haut), nous pourrions avoir une association ternaire entre les entits chevaux, courses et parieurs.e Mais dans ce cas, un parieur peut miser sur un cheval dans une course, alors que ce cheval ne participe pas ` cette course.a
numro de cheval numro de parieur numro de compte montant numro de course nom du cheval date de naissance dossard numro de jockey ordre darrive lieu de la course date de la course nom du jockey prnom

nom du parieur

correctio n

nom du parieur numro de parieur numro de compte montant

numro de cheval

nom du cheval date de naissance dossard numro de jockey ordre darrive nom du jockey prnom

numro de course

lieu de la course date de la course

Fig. 35 Association ternaire remplace par deux associations binairese Pour pallier cette lacune, on pourrait faire appel ` des dclencheurs programms dans la base deaee donnes nale. Les dclencheurs sont des procdures SQL qui, dans notre exemple, permettraient `eeea chaque insertion ou mise ` jour de lignes dans la table des paris, dassurer quun pari ne puisse pasa concerner un cheval dans une course ` laquelle il ne participe pas. Cependant, il existe une solution plusa simple qui repose uniquement sur lintgrit rfrentielle.ee ee En ralit (gure 35 en bas), la vraie dpendance fonctionnelle directe est (n cheval + n course)e ee parieur montant, ce qui garantit quun parieur ne peut miser que sur un cheval-qui-participe-+ n a`-une-course.

Le fait quune association ternaire (ou plus) disparaissent au prot dune ou plusieurs agrgationse ` est tr`s frquent lorsque lon modlise une situation compl`te. A tel point quon peut partir du principee eee quun schma entits-associations sans agrgation est gnralement faux.eeee e

COMPLEMENTS

33

Dans notre exemple, la traduction de la nouvelle dpendance fonctionnelle en une association de typee n : m (gure 36 en haut) se fait en appliquant, comme dhabitude, ltape 4 de la section 1.3.3.e

chevaux - n cheval - nom cheval - date naissance 0,n parieurs - n parieur0,n - montant - nom parieur - n compte parier 0,n participer - dossard - ordre d arrive 0,n courses - n course - lieu course - date course traductio n 1,1 monter jockeys 0,n - n jockey - nom jockey - prnom

courses - n course - lieu course - date course chevaux - n cheval - nom cheval - date naissance jockeys - n jockey - nom jockey - prnom

parieurs - n parieur - nom parieur - n compte -

paris #n parieur #n course #n cheval montant -

participations #n course #n cheval dossard ordre arrive #n jockey (non vide)

Fig. 36 Association binaire de type n : m (parier), lie ` une autre association binaire de type n : me a Sur le schma relationnel obtenu (gure 36 en bas), la traduction de lassociation binaire de type n : me lie ` une autre association binaire de type n : m fait appara dans la table paris une cl trang`ree atreeee composite qui rfrence la cl primaire composite de la table participations.eee Rappelons quil est dconseill dutiliser des identiants composites. Mais la cl primaire compositeeee de la table participations est lgitime puisquelle est issue dune association binaire de type n : m. Ene consquence de quoi la cl trang`re composite de la table paris est galement lgitime puisquelle esteeeeee aussi issue dune association binaire de type n : m. On peut ainsi imaginer avoir sur un schma relationnel des cls primaires ou trang`res composeseeeee dun nombre arbitraire de colonnes, sans pour autant quil ny ait un seul identiant composite sur le schma entits-associations correspondant.ee

COMPLEMENTS Tables de codication ou tables de rfrenceee

34

5.1.3

Certains attributs ne peuvent prendre quun jeu volontairement limit de valeurs. Cest le cas sur lae aeeegure 37 ` gauche, pour les attributs enseignant et mati`re. Cela vite sur cet exemple quune mme mati`re ne soit dcrite de deux mani`res direntes et quun mme nom denseignant ne soit orthographi eeeeee deux fois.
semaines dans lanne - n semaine - date de dbut jours dans la semaine0,n - n jour - jour 0,n occuper correction semaines dans lanne - n semaine - date de dbut jours dans la semaine 0,n - n jour - jour 0,n occuper enseignants - n enseignant - nom 0,n assurer 1,1 1,1 concerner

- enseignant crneaux horaires 0,n - matire dans la journe - n crneau 0,n - heure de dbut salles - n salle - capacit

crneaux horaires 0,n dans la journe - n crneau - heure de dbut salles - n salle - capacit 0,n

0,n matire - n matire - libell

Fig. 37 Agrgation et entits de codicationee Il est recommand de regrouper ces valeurs au sein dune entit dite de codication (qui donneraee ensuite une table de codication). Si lattribut concern appartient ` une entit, alors cette entit esteaee en association binaire de type 1 : n avec cette entit de codication. Par contre, si lattribut fait partiee dune association, il faut recourir ` lagrgation an de mettre en association lentit de codication avecaee lassociation de cet attribut (gure 37 ` droite).a

Ainsi, lagrgation vite notamment aux entits de codication de transformer une association binaireeee en une association ternaire (ou plus).

COMPLEMENTS

35

5.2

Identiant relatif ou lien identiant

Mme en utilisant des agrgations, il reste des situations o` tout le potentiel de lintgrit rfrentielleeeuee ee nest pas exploit.e 5.2.1 Rsolution dun probl`me sur le schma relationneleee

eePrenons par exemple le schma relationnel en haut de la gure 38, tir dune base de donnes poure trou est en incrment automatique, tandis queun centre de golf. Dans la table trous, la cl primaire nee la colonne n trou dans parcours est un nombre (gnralement compris entre 1 et 18) qui corresponde e a` la numrotation des trous dans le parcours.e Le probl`me de ce schma relationnel est quen ltat, il peut y avoir un score dans la table scoreseee pour un trou qui nappartient pas au parcours sur lequel la partie se joue (le lecteur est invit ` biene a observer la gure pour sen apercevoir).

participations parties - n partie - #n parcours (non vide) - date trous - n trou - #n parcours (non vide) - n trou dans parcours - par - distance - #n golfeur - #n partie

golfeurs - n golfeur - nom golfeur - handicap scores #n golfeur #n partie #n trou score

parcours - n parcours - nom parcours

correctio n

participations parties - n partie - #n parcours - date parcours - n parcours - nom parcours trous - #n parcours - n trou dans parcours - par - distance - #n golfeur - #n partie - #n parcours

golfeurs - n golfeur - nom golfeur - handicap scores - #n golfeur - #n partie - #n parcours - #n trou dans parcours - score

Fig. 38 Utilisation de cls primaires partiellement trang`reseee Pour rgler ce probl`me, on peut ` nouveau se reposer sur lemploi de dclencheurs. Mais l`-encore,eeaea il existe une solution ne faisant appel qu` lintgrit rfrentielle.aee ee Cette solution consiste ` faire entrer le numro de parcours dans la numrotation des trous (rem-aee trou) ainsi que dans la numrotation des parties (en conservant cette fois-ci le nplaant ainsi le nce

COMPLEMENTS

36

partie en incrment automatique). Les tables trous et parties poss`dent alors une cl primaire com-eee posite et partiellement trang`re (gure 38 en bas).ee Les cls trang`res des tables participations et scores qui rfrencent ces nouvelles cls primairese eeeee sont alors compltes par une nouvelle colonne (le numro de parcours). Dans la table des scores, commeeee cette colonne n parcours nest introduite quune fois, il nest plus possible pour un joueur davoir un score sur un trou qui nappartient pas au parcours sur lequel se joue la partie.

5.2.2

Mod`le conceptuel correspondante

En rtro-conception, pour tenir compte du fait que le numro de parcours fera partie de la cl primaireeee de la table trous sur le schma entits-associations, il sut de mettre entre parenth`ses la cardinalit 1,1eeee de lassociation entre les entits trous et parcours (gure 39). Lidentiant de lentit ct 1,1 devientee oe aealors relatif ` celui de lautre entit en association.

avoir lieu sur 0,n parcours - n parcours - nom parcours 0,n

parties (1,1) - n partie - date

0,n

participer

golfeurs 0,n - n golfeur - nom golfeur - handicap

0,n trous

- n trou dans obtenir faire partie (1,1) parcours 0,n - score - par - distance

Fig. 39 Reprsentation des identiants relatifse De mme, sur le graphe de couverture minimal, nous introduisons une nouvelle notation (`che enee pointills) pour reprsenter le caract`re relatif des identiants (gure 40).eee

numro de partie sur un parcours numro de golfeur

nom du golfeur handicap

date score numro de parcours nom du parcours par distance numro de trou dans un parcours

Fig. 40 Reprsentation des identiants relatifs sur le graphe de couverture minimalee Si les `ches taient pleines, les numros de trou dans un parcours et de partie sur un parcourseee gureraient dans des entits spares et rduites ` leur identiant (` viter).e e eeaae

COMPLEMENTS Discussion autour de la numrotation des exemplairese

37

5.2.3

e eDans un magasin de location de vidos, le grant peut vouloir numroter sparment les exemplaireseee de chaque vido (gure 41 colonne de gauche), alors que le concepteur de la base de donnes auraitee tendance ` vouloir numroter globalement lensemble des exemplaires (colonne de droite).ae
titre date dacquisition numro dexemplaire
emprunt

titre numro de vido

date dacquisition numro dexemplaire


emprunt

numro de vido

numro de membre date detlphone rservation nom traductio n

date demprunt

numro de membre date detlphone rservation nom traductio n

date demprunt

vidos - n vido - titre 0,n

exemplaires correspondre exemplaire (1,1) - n - date acquisition - date emprunt

0,n 0,1 membres emprunterrserver 0,n - n membre 0,n - date rservation- nom - tlphone traductio n

1,1 - n exemplaire - date acquisition - date emprunt 0,1 0,n membres emprunter rserver 0,n - n membre 0,n - date rservation- nom - tlphone - n vido 0,n - titre

vidos

exemplaires correspondre

traductio n

vidos - n vido - titre -

exemplaires # n vido n exemplaire date acquisition #n membre date emprunt

vidos - n vido - titre

exemplaires - # n vido (non vide) - n exemplaire - date acquisition - #n membre - date emprunt

rservations - # n vido - # n membre - date rservation

membres - n membre - nom - tlphone

rservations - # n vido - # n membre - date rservation

membres - n membre - nom - tlphone

Fig. 41 Numrotations alternatives des exemplairese La seule dirence entre les deux solutions est lentre ou non de la colonne numro vido dans la cleeeee primaire de la table exemplaire. Linconvnient majeur de la solution avec identiant relatif (colonne dee gauche), est le traitement de lincrment automatique du numro dexemplaire, car il faut un compteuree pour chaque vido et non pas un compteur pour lensemble des vidos, contrairement ` la solution deeea la colonne de droite. Le concepteur devrait donc retenir sa solution pour la base de donnes et proposere une colonne supplmentaire avec la numrotation du grant, an de lui faire plaisir.eee

COMPLEMENTS

38

5.3

Hritagee

Enn, il est parfois utile de factoriser les attributs communs ` plusieurs entits au sein dune entitaee m`re.e 5.3.1 Sous-entite

Considrons lexemple suivant : les factures dune entreprise font lobjet dun r`glement par ch`queeee ou par carte. Cette entreprise souhaite conna pour chaque r`glement la date, le montant et :tree le numro et le nom de la banque des ch`ques ;ee ou le numro et la date dexpiration des paiements par carte.e

On a donc une entit gnrique r`glements et deux entits spcialises ch`ques et paiements pare e eeeeee carte. Ces deux sous-entits de lentit r`glements ont des attributs propres mais pas didentiantee e propre. Au niveau logique objet, on retrouve la notion dhritage.e Conformment aux notations objets, sur le schma entits-associations, on reprsente le lien qui uniteeee une sous-entit ` son entit gnrique par une `che creuse (gure 42 au centre). Ce lien remplace une as-eae e ee sociation ^tre de type 1 : 1 (un ch`que (( est un )) r`glement et un paiement par carte (( est un )) r`glement).eeee
numro de facture date de facture et montant total numro de rglement date de rglement et montant traductio n chques factures - n facture 0,n - date facture - montant total rglements correspondre 1,1 - n rglement - date rglement - montant traductio n - n chque - nom banque numro de rglement numro de rglement numro de chque nom de la banque numro de carte date dexpiration

paiements par carte - n carte - date dexpiration

chques rglements n rglement date rglement montant #n facture (non vide) - #n rglement - n chque - nom banque paiements par carte - #n rglement - n carte - date dexpiration

factures - n facture - date facture - montant total

Fig. 42 Reprsentation des sous-entitsee Toutefois, il ne faut pas voir dhritage ` chaque fois que lon peut dire (( est un ) car il faut enea), plus que lentit m`re ne poss`de que les attributs communs de ses entits lles. Par exemple, un cerclee eee ( est mathmatiquement un ) ovale. Mais lentit cercles (avec les attributs centre et rayon) nest pas(e)e

COMPLEMENTS

39

une sous-entit de lentit ovales car celle-ci poss`de davantage dattributs (centre, rayon principal,eee rayon secondaire et rotation). La traduction des sous-entits au niveau logique relationnel fait intervenir une cl primaire identiqueee a` celle de lentit m`re, mais dans les sous-entits la cl primaire est aussi trang`re (gure 42 en bas).e eeeee Sur le graphe de couverture minimale (gure 42 en haut), lidentiant dont dpendent les attributse communs est volontairement dupliqu autant de fois que ncessaire pour les attributs spcialiss. Nouseeee pouvons alors remarquer que les attributs qui dpendent dun mme identiant peuvent tre regroupseeee avec des (( et )) logiques tandis que d`s quil est ncessaire de faire appel ` un ( ou )) logique, cest le signeeea( dune spcialisation.e Sur la gure 42, il est tentant de traduire directement le graphe de couverture minimale en le schmae relationnel, car il en est beaucoup plus proche que le schma entits-associations. Cest une techniqueee licite, ` condition de traduire correctement les associations de type 1 : 1 (tape 4 page 17).ae 5.3.2 Utilisation de lhritage pour sparer les informations complmentaireseee

Lhritage peut tre utilis mme lorsquil ny a quune entit spcialise. Cest utile pour stockereee ee ee dans une table spare des informations complmentaires.e ee Considrons la table clients dans laquelle nous stockons dj` le numro, le nom et le code pos-eeae tal. Nous souhaitons dsormais stocker galement le numro de tlphone, ladresse courier et ladresseeeeee lectronique. La premi`re ide consiste ` ajouter trois colonnes supplmentaires dans la table clients.eeeae Mais pour les clients qui ont dj` t saisis dans la table, ces trois colonnes seront vides.eaee Pour gagner de la place, ces trois colonnes peuvent constituer une nouvelle table annuaire clients dont la cl primaire rfrence celle de la table clients (gure 43). Formellement, annuaire clients esteee issue dune sous-entit de lentit clients.ee

clients numro de client nom code postal tlphone numro de client adresse email traduction - n client - nom - code postal traduction -

clients - n client - nom - code postal

annuaire clients - tlphone - adresse - email

annuaire clients # n client tlphone adresse email

Fig. 43 Sparation des informations complmentaires par hritageeee La conguration dhritage sur le schma relationnel (gure 43 ` droite) constituera une occasioneea dcrire des requtes SQL avec des jointures externes (cest-`-dire facultatives).eea

COMPLEMENTS Spcialisation des associationse

40

5.3.3

La notion dhritage est valable galement pour les associations. Nous pouvons donc faire appel `eea des sous-associations avec des attributs spciques et des associations gnriques qui contiennent lesee e attributs communs. Mais sans aller jusqu` lintroduction de sous-associations, d`s quun schma entits-aeee associations fait appel ` des sous-entits, il est frquent que les associations concernes par ces sous-entit saeeee soient elles-mmes spcialises .eee Considrons une entreprise artisanale qui vend non seulement des articles produits en srie ` prixeea unitaire xe, mais aussi des articles fait sur mesure et dont le prix unitaire est calcul ` partir de lae a dure de confection et dun taux horaire. Dans ce cas, non seulement lentit articles est spcialiseeeee en articles en srie et articles sur mesure, mais en plus, lassociation concerner entre les entitsee commandes et article est spcialise selon quil sagit dun article en srie ou sur mesure (gure 44 aueee centre).

numro darticle dsignation tra du ct i on

numro darticle numro darticle dure

prix unitaire de vente

quantit

numro de commande

taux horaire de facturation

articles en srie - prix unitaire de vente 0,n

concerner (1) - quantit commande 1,n

articles - n article - dsignation

commandes

articles sur mesure - taux horaire de facturation - dure 1,1 concerner (2)

- n commande 1,n - date commande

articles en srie - #n article - prix unitaire de vente articles sur mesure - #n article - taux horaire de facturation - dure - #n commande (non vide)

lignes de commandes - #n commande - #n article - quantit commande

on du c ti tr a

articles - n article - dsignation

commandes - n commande - date commande

Fig. 44 Spcialisation des associations en prsence de sous-entitseee Le fait davoir volontairement ddoubler lidentiant commun des entits en hritage, permet dutili-eee ser chaque identiant dupliqu dans lassociation qui le concerne.e Sur le schma relationnel (gure 44 en bas), les associations spcialises sont traduites de mani`reeeee ` charge ensuite pour le dveloppeur du formulaire de facturation, deectuer la runion desclassique. Aee articles commands.e

CONCLUSION

41

Conclusion
Avec la pratique, vient un moment o` le concepteur peut se passer du mod`le entits-associationsuee et produire directement des schmas relationnels corrects. Pourtant, continuer de travailler ` un niveauea conceptuel plutt qu` un niveau logique reste une tactique payante pour lui, dans la mesure o` lesoau donnes pourtant stockes sous une forme relationnelle, doivent de nos jours tre accdes par des appli-eeee e cations orientes objet. Le mod`le conceptuel permet de faire le lien entre dune part la reprsentationeee objet des donnes et dautre le stockage relationnel des mmes donnes.eee Par exemple, on peut tr`s bien imaginer quun schma entits-associations soit dun ct traduit eneeeoe un schma relationnel puis implment dans une base de donnes Oracle ; tandis quen parall`le, il esteeeee traduit en un diagramme de classe (mod`le logique objet), lui-mme implment dans un ensemble deeeee classes Java. Ces classes Java permettent ensuite aux dveloppeurs de construire des applications clientese orientes objet et qui attaquent de mani`re transparente les donnes de la base Oracle. Il sagit duneeee solution de passage entre la modlisation oriente objet (pertinente pour dvelopper des interfaces gra-eee phiques) et la modlisation relationnelle (pertinente pour grer les donnes).eee

Par ailleurs, la mthodologie Merise est certes typiquement franaise, mais en Grande-Bretagne, laec mthodologie standard sappelle SSADM (Structured Systems Analysis ans Design Method) et reposee sur les mmes principes. Les nord-amricains quant ` eux utilisent ce quon appelle des diagrammes deeea ux, dont les principes sont repris par la version 2 de Merise. Aujourdhui, ce sont les modlisations objets et leur unication UML (Unied Modeling Language,e autrement dit langage uni de modlisation) qui se placent ` la pointe de ltat de lart. Malheureuse-eeae ment, UML nest quun ensemble de notations (dailleurs moins intuitives que celles des schmas entits-ee 7 ). La connaissance de ce langage ne permet donc pas au concepteur de faire lconomie duneassociationse mthodologie de conception. Voil` pourquoi il nest pas anachronique de r-diter en 2005 un documenteaee sur des mthodes qui auront bientt 30 ans ;-)eo

Rfrencesee
[Akoka et Comyn-Wattiau] Akoka, J. et Comyn-Wattiau I. Conception de bases de donnes relation-e nelles. Vuibert Informatique. Ce livre tr`s didactique contient de bon exercices sur la phase de conception dun syst`me din-ee formation. [Gabay] Gabay, J. Apprendre et pratiquer Merise. Masson, 1989. Ce livre tr`s synthtique permet de sexercer sur la mthode.eee [Matheron] Matheron, J.-P. Comprendre Merise. Eyrolles, 1994. Cet ouvrage tr`s accessible permet vraiment de comprendre la mthode.ee [Nanci et al.] Nanci, D., Espinasse, B., Cohen, B. et Heckenroth, H. Ingnierie des syst`mes din-ee formation avec Merise. Sybex, 1992. Cet ouvrage complet dtaille la mthode dans son ensemble.ee [Panet et al.] Panet, G., Letouche, R. et Tardieu, H. Merise/2 : Mod`les et techniques Merisee avancs. Edition dorganisation, 1994.e Ce livre dcrit la version 2 de la mthode.ee [Tardieu et al.] Tardieu, H., Rochfeld, A. et Coletti, R. La mthode Merise. Principes et outils.e Edition dorganisation, 1986. Il sagit-l` du livre de rfrence par les auteurs de la mthode.aeee

7. qui sont facilement traduisibles en schmas UML, grce ` certains outils automatiquesea a

TABLE DES FIGURES

42

Table des gures


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Entits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .e 4 Associations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Attributs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Identiants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Cardinalits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .e 6 Associations plurielles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Association rexive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .e 7 Entit remplaable par une association ternaire . . . . . . . . . . . . . . . . . . . . . . . .ec 8 Contre-exemple : lentit dparts nest pas remplaable par une association ternaire . . .e ec 9 Exemple dentit quaternaire ou 4-aire . . . . . . . . . . . . . . . . . . . . . . . . . . . . .e 9 Contre-exemples de la normalisation des noms . . . . . . . . . . . . . . . . . . . . . . . . . 10 Contre-exemples de la normalisation des attributs . . . . . . . . . . . . . . . . . . . . . . . 11 Normalisation des attributs des associations . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Cardinalit 1,1 et attributs dune association . . . . . . . . . . . . . . . . . . . . . . . . .e 12 Contre-exemples de la normalisation des associations . . . . . . . . . . . . . . . . . . . . . 13 Application de la premi`re forme normale : il peut y avoir plusieurs auteurs pour un livree donn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .e Application de la troisi`me forme normale de Boyce-Codd . . . . . . . . . . . . . . . . . .e Dpendance fonctionnelle non lmentaire, mais directe . . . . . . . . . . . . . . . . . . .eee Graphe de couverture minimale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Identication des entits et des associations sur un graphe de couverture minimale . . . .e 15 Schma entits-associations normalis obtenu ` partir du graphe de couverture minimale .eeea 16 Sans historisation des emprunts, pas de probl`me . . . . . . . . . . . . . . . . . . . . . . .e 17 Mme pour une entit historise, il vaut mieux viter que la date nentre dans lidentianteeee 17 Dpendances fonctionnelles commentes . . . . . . . . . . . . . . . . . . . . . . . . . . . .ee 18 Utilisation dune dpendance non lmentaire et sans enfant sur un graphe de couvertureeee 18 minimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Schma relationnel simple entre deux tables . . . . . . . . . . . . . . . . . . . . . . . . . .e 20 Traduction dune association de type 1 : n . . . . . . . . . . . . . . . . . . . . . . . . . . . Traduction dune association de type n : m . . . . . . . . . . . . . . . . . . . . . . . . . . . Traduction dune association de type 1 : 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . Traduction alternative dune association de type 1 : 1 . . . . . . . . . . . . . . . . . . . . . 20 Traduction dune association ternaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Sacrice de la troisi`me forme normale . . . . . . . . . . . . . . . . . . . . . . . . . . . . .e 24 Tables particuli`res en rtro-conception . . . . . . . . . . . . . . . . . . . . . . . . . . . .ee 25 Association binaire de type 1 : n (monter), lie ` une association binaire de type n : me a 25 (participer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Association ternaire remplace par deux associations binaires . . . . . . . . . . . . . . . .e 26 Association binaire de type n : m (parier), lie ` une autre association binaire de type n : me a 27 Agrgation et entits de codication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ee 29 Utilisation de cls primaires partiellement trang`res . . . . . . . . . . . . . . . . . . . . .eee Reprsentation des identiants relatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . .e Reprsentation des identiants relatifs sur le graphe de couverture minimale . . . . . . . .e Numrotations alternatives des exemplaires . . . . . . . . . . . . . . . . . . . . . . . . . .e Reprsentation des sous-entits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ee 31 Sparation des informations complmentaires par hritage . . . . . . . . . . . . . . . . . .eee 32 Spcialisation des associations en prsence de sous-entits . . . . . . . . . . . . . . . . . .eee 33 34 35 36 36 37 38 39 40

17 18 19 20 21 22 23 24 25

26 27 28 29 30 31 32 33 34

35 36 37 38 39 40 41 42 43 44

INDEX

43

Index
transitive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aternaire. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 8 5 . 16 attribut . . .

diagramme de calculable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 factorisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ux .. .38. . . . . . . . . . . . . . . . . . . . . . . . . . 41 ... .. agrgation. . . . .exemplaires .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .11 .30e .. en plusieurs . . . . . . . . . doublon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . chier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 .....5 eeimaginaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . aspiration . . . .pleine. ou . . .pointills . . . . . . . . . . . . . . . . . . . . 36 12 . 12, 20 `che . . . . . . en . . . . . . . association . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . forme normale 4 4-aire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 deuxi`me . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . enregistrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15e . . . 22 premi`re . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . binaire . . 14e eede type 1 : cardinalit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6, 24e 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 entier auto-incrment . . . . . . .de. Boyce-. . . . . . . . . . . .11 troisi`me . . . . . . ede type 1 : n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Codd . . . . . . . . . . . . . . . . . . . 15e 24 maximale .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .14 . . . 4 entit . . . .. de codication fusion . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 34. . . . 10 .. de type . : . minimale n . .m.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .2514 6, question. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 de rf rence . . . ..........................................................34ee . . . . 9 ternaire .... en plusieurs exemplaires . . . . . . . . . . . . . . . . . . . . 13 gnricit des . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38e ee dates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 cle fantme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13o graphe de couverture minimale . . . . . . . . . . . . . . . . remplaable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 . . 10c trang`re . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23ee plurielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29e ..7 particuli`re primaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...6 eCodasyl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . redondante . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .13. . . . . . . . . . . 38 . . . . . . 22 hritage . erexive . . . . . . . . . . . . . . . . . . . . . . ecoh . . . . . . .. .. .. .. .. .. .. .. .. .7. exemplaires (numrotation) .. .. .. 5,. 27 .hirarchique. . . 37e . .. ......... rence ...................... spcialise ... (SGBD) . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .22e . . . . . . . .40 exhaustif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21ee. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 colonne . . historisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 ee ecommentaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 homognit .....................................4 contrainte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 conversion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27 identiant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5, 11 relatif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 edate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 incohrence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10, 11, 15 eDBMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 incrmentation automatique . . . . . . . . . . . . . . . . . . . . 11 dclencheur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14, 32 index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27e ee eedpendance fonctionnelle . . . . . . . . . . . . . . . . . . . . . . . 16 intgrit rfrentielle . . . . . . . . . . . . . . . . . . . . . . . . . . . 23e edirecte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 intitul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 enon l mentaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 itration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21ee vers un identiant. . . . . . . . . . . . . . . . . . . . . . . .30 non lmentaireee sans enfant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 jointure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 externe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39plurielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 rexive. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20e

G H

INDEX

44

L. . . 41 ..
. . . . . 23 lien identiant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

SSADM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . symbole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

synonyme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 ligne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 syst`me dinformation . . . . . . . . . . . . . . . . . . . . . . . table3e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 .... .. dinformations complmentaires . . . . . . . . . . . . lisibilit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31e 39e MCD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 de codication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Merise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 41 de jonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 25 version 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 de rf rence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34ee normalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 MLD . . . . . . . des associations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 des des . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 dates attributs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . des . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 . MLDR . associations . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 . 22 . des. cardinalits .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. unicit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25, MPD . . . . . . . . . .14e. 27 .. des . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10, . . taille .entits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28e . . 27 . 19e traduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . des identiants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 . 17, 18 vacuit des noms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... . . . .transitivit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25e . ........ 10. . 16e .. vide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NULL . . . . . . . (SGBD) . . . . . . . . . . . . . . . . . . . . . . . . . . 22 .type. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . navigationnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .23 23 . . . . .27

U V

O P

optimisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 orient objet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22, 41e performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 polys`me . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21e

redondance . . . . . . . . . . . . . . . . . . . . . . 10, 13, 15, 21, 27 rfrence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23ee relation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 requte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22e rseau (SGBD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22e rtro-conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28e schmae reverse engineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . entits-associations . . . . . . . . . . . . . . . . . . . . . . . . . . 28 6e relationnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 SGBD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 22 SGBDR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 sous-entit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38e spcialisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38, 40e SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22