Vous êtes sur la page 1sur 22

GUIDE

PRATIQUE
MODLE CONCEPTUEL
DES DONNES
MODLE LOGIQUE
DES DONNES STANDARD
MODLE LOGIQUE
DES DONNES OPTIMIS

D. ALESSANDRA - Guide pratique de Merise

Page 1/22

Prsentation thorique de Merise


Objectifs

A partir des deux principes de sparation de lanalyse des donnes et de


lanalyse des traitements dune part, et dune dmarche en trois tapes, on
obtient les questions se poser dans le tableau suivant :

Dfinir, analyser, concevoir et spcifier tout projet dorganisation dun systme


dinformation

Ni mthode de conduite de projet, ni mthode de programmation ou dalgorithmique

En aval du schma directeur, en amont de la ralisation

Principes

Niveau
conceptuel
Niveau
logique
Niveau
physique

Analyse des donnes

Analyse des traitements

Quelles informations
manipule-t-on ?

Que veut-on faire ?

Comment structurer ces Qui fait quoi, o, quand ?


donnes ?
O les stocker ?

Comment ?

A chacune de ces six questions, il sagira damener des rponses. Le tableau


suivant prsente les documents que la mthode Merise produit pour y rpondre.
Analyse des donnes

Analyse des traitements

Niveau
conceptuel

Modle conceptuel des


donnes (M.C.D.)

Modle conceptuel des


traitements (M.C.T.)

Niveau
logique

Modle logique des


donnes (M.L.D.)

Modle organisationnel
des traitements (M.O.T.)

Niveau
physique

Tables et index

Procdures

Approche globale, intgrant tous les sous-systmes

Conception descendante, partant des finalits de chaque activit

Etude indpendante des donnes et des traitements, puis rapprochement pour valider
ltude des donnes avec les rsultats de ltude des traitements, et rciproquement.

Approche par tapes (Conceptuelle, puis logique, enfin oprationnelle)

Recherche des invariants du systme dinformations

Utilisation dun formalisme facilitant la lecture et la communication

D. ALESSANDRA - Guide pratique de Merise

Dans le cadre de lutilisation dun S.G.B.D., le concepteur est dcharg de


limplantation physique des tables. Dautre part, Merise ne guide pas le
concepteur dans la production des procdures, car elles sont dpendantes du
choix du systme, des outils et des machines. Les seuls niveaux analyss sont
donc les niveaux conceptuel et logique.
Lexprience ma amen douter de lefficacit de lanalyse des traitements
(M.C.T et M.O.T)). De plus cette conception est en partie remise en cause par les
technologies objet dveloppes dans les outils modernes. Ce cours ne fera
donc queffleurer ces chapitres, et se concentrera sur les M.C.D. et M.L.D. Enfin,
les optimisations et ajustements ncessaires en fin danalyse seront tudis.
Nous passerons ainsi dun M.L.D pur un M.L.D. optimis (on pourrait presque
dire un M.L.D. perverti.

Page 2/22

Guide pratique de Merise


N.B : ce document est un support de cours, dont le but est daider structurer et mmoriser la dmarche prsente
pendant le cours. Son exploitation en tant que document autonome risque damener bien des incomprhensions.
Certaines notions (comme la dfinition prcise des termes objet du MCD, Nombre doccurences dun attribut,
acteur ou mme Donne ) ne sont donc pas dfinies dans ce document. De mme, ce document est limit un
seul exemple, prsent pendant le cours, car linteractivit entre enseignant et stagiaires parat indispensable la
comprhension de s termes employs et la mise en situation des exemples.

I - La ralisation dun M.C.D.


I.1 - Ce quon attend dun M.C.D.
But :

Il sagit de reprsenter, par un formalisme prcis et en grande partie


standardis, lensemble des informations que lon doit traiter pour rpondre aux
attentes du projet dfini en amont de lanalyse (dans le schma directeur).

principes :

IL FAUT OUBLIER LES MOYENS QUI SERONT MIS EN UVRE POUR


LA RALISATION. (il sagit uniquement de dcrire le problme traiter, et pas
du tout de prciser, simplifier ou guider les choix quon sera plus tard amens
faire)
Par moyens mis en uvre, il faut entendre machines et systmes
dexploitation, mais aussi S.G.B.D, langages, outils et aussi culture informatique
et matrise des produits par les dveloppeurs. Tous ces points doivent
imprativement tre oublis dans cette phase.
Chacune des huit tapes dcrites rpond une question lmentaire. Il ne faut
surtout pas essayer de prparer le terrain pour les tapes suivantes. Il faut
modestement se concentrer sur la seule question trairte par cette tape.

Remarques :

D. ALESSANDRA - Guide pratique de Merise

Page 3/22

I.2 - Les huit tapes de la ralisation dun M.C.D.


I.2.A - Le dictionnaire des donnes (abr : DDD)
But :

collecter lensemble des donnes (ou attributs) manipules par le systme.


Accessoirement (mais long terme cet accessoire sera souvent plus
stratgique que le DDD), faire apparaitre dans lUnivers du discours (en
abrg UDD) la liste des questions qui auront merg dans ce collectage, et
des rponses qui y ont t amenes.

Moyens :

collecter au moins deux occurence de chacun des documents, crits ou non,


manipuls par chacun des acteurs.
Pour chaque type de document, analyser lensemble de ses occurences, en
reprant chaque zone dont le contenu peut tre amen varier dune occurence
de ce document lautre.
Pour chaque type de document, analyser lensemble de ses occurences, en
reprant chaque zone dont le contenu peut tre amen varier dune occurence
de ce document lautre, et qui doit tre mmoris. Une telle zone sera
qualifie de donne. Donner un nom chacune de ces zones, et lajouter dans
le dictionnaire des donnes. Chacun de ces noms sera qualifi d attribut.

prcautions :

Il sagit uniquement de collecter des donnes. Le seul impratif est de ne pas


oublier une donne. Tout classement, toute simplification, toute optimisation est
proscrire.
Comme dans chacune des autres tapes, ne jamais se demander comment
va-t-on faire ?, mais dcrire uniquement ce quil y a.

Limites :

Ce nest qu la validation du M.C.D. laide du M.C.T. quon peut tre srs


davoir effectivement obtenu le M.C.D. correspondant au problme. Autrement
dit, cette premire tape du M.C.D. ne peut tre automatise.
On ne connat pas de moyens de dfinir dune faon non ambige lunivers du
discours (UDD), cest--dire les concepts (et par consquences les donnes)
qui font ou ne font pas partie du problme traiter.
Un MCD ne vaut que par la qualit de lUDD qui le sous-tend. Se rappeler qu
chaque question concernant lUDD, on a 5 rponses possibles chaque point
dont un se demande sil doit tre trait :
- il doit tre trait, cest suffisamment vident pour ne pas le signaler
- il est suppos tre trait, mais il est prudent de signaler quil a t intgr
- il est suppos ne pas tre trait, mais il est prudent de le signaler
- il ne doit pas tre trait, cest suffisamment vident pour ne pas le signaler
- On ne peut trancher : faire remonter la question au commanditaire, et faire
figurer dans lUDD la question et la rponse fournie.

Remarques :

D. ALESSANDRA - Guide pratique de Merise

EXEMPLE : Facturation classique


Dictionnaire des donnes :
Nom du client
N de rfrence du produit
Prnom du client
Date facture
quantit achete
N de facture
Total facture
Prix unitaire HT
Montant TVA
Prix unitaire TTC
Adresse du client
Total article
Nombre darticles
Mode rglement

Page 4/22

I.2.B - Epuration du dictionnaire des donnes


But :

Epurer lensemble des attributs obtenus ltape prcdente, en vrifiant que


chaque donne correspond un atome dinformations, indivisible et
indpendant des autres donnes.
IL NE FAUT AUCUNE REDONDANCE (DIRECTE OU INDIRECTE)
DANS UN DDD PUR.

Moyens :

Passer en revue, lun aprs lautre et sans ordre prtabli, chacun des attributs
du DDD et vrifier les points suivants :
Vrifier les synonymes : la mme donne utilise sous deux termes diffrents
par deux acteurs diffrents.
Vrifier les homonymes : deux donnes diffrentes utilises sous le mme
terme par deux acteurs diffrents.
Vrifier les dpendances directes : une donne qui peut tre obtenue partir
dautres donnes (exemple : prix unitaire HT, TVA, prix unitaire TTC : une de
ces donnes doit tre pure).
Vrifier les dpendances indirectes et les donnes calcules : une donne
obtenue comme totalisation ou comptage dautres donnes (exemple :
nombre de factures, ou chiffre daffaires dun client).
Epurer les paramtres qui ne sont pas des donnes (exemple : la date de
dbut et la date de fin dun tat rcapitulatif sur une priode).

prcautions :

La principale difficult concerne les difficults de communication. Est-on bien sr


que ce quon a entendu a le mme sens pour nous et pour notre interlocuteur ?
Se mfier des donnes du genre Nombre de ou Totalisation : elles
peuvent presque toujours tre calcules partir dautres donnes plus
lmentaires, et doivent de ce fait tre pures.

Limites :

Fondamentalement, les mmes que pour ltape 1.2.A.


On est obligs de sen remettre son bon sens pour dterminer si oui ou non
une donne est un atome dinformation indivisible dans lunivers du discours
considr.

EXEMPLE : Facturation classique


Dictionnaire des donnes pur :
Nom du client
N de rfrence du produit
Prnom du client
Date facture ->
JourMois Facture
Anne Facture
quantit achete
N de facture -> Anne Facture
N Squentiel
Total facture
Prix unitaire HT
Dsignation
Montant TVA
Taux TVA
Prix unitaire TTC
Adresse du client -> 1 ligne adresse
2 ligne adresse
CP
Ville
Total article
Nombre darticles
Mode rglement

Remarques :

D. ALESSANDRA - Guide pratique de Merise

Page 5/22

I.2.C - Mise en vidence des objets


But :

Dcouper lensemble des attributs du dictionnaire des donnes pur en diffrentes


units logiques, ici appeles Objets du M.C.D.

Moyens :

Reporter dans lbauche du M.C.D, lun aprs lautre et sans ordre prtabli, chacun
des attributs du DDD, en lattachant si possible avec lun des objets dj reconnus. Si
cela nest pas possible, crer un nouvel objet compos (pour linstant) de ce seul
attribut.
Pour savoir si un attribut peut tre attach un objet, dcrire dans un gand tableau
lensemble des occurences des diffrents attributs correspondant ltat du systme
un instant t1, un instant t2
Vrifier si le nombre doccurences de lattribut en cours de traitement est, pour chacun
de ces instants, le mme que le nombre doccurences du premier objet dj reconnu.
Si ce nest pas le cas, se poser la mme question pour le mme attribut et lobjet
suivant.

prcautions:

Faire preuve de modestie et SE FIER LA TECHNIQUE PLUTT QUAU BON


SENS : lexprience montre que celui-ci est souvent mis endfaut au cours de cette
tape, et quil peut souvent amener regrouper dans des objets des attributs ayant
un nombre doccurences plus lev que celui de lobjet, et parfois dissocier des
attributs qui ont tous le mme nombre doccurences.
Une erreur courante consiste choisir lattribut qu on analysera au lieu de prendre le
premier qui vient : ce choix innocent de lattribut traiter consiste en fait considrer
le problme du regroupement de cet attribut comme dj rgl avant mme de
lattaquer.
En fonction de lunivers du discours, une donne prenant un nombre fini et
prdtermin de valeurs distinctes pourra ne pas tre considre comme un objet
mono-attribut (cf exemple : Mode rglement).
Chaque attribut doit figurer une fois et une seule dans le M.C.D.
Une difficult particulire : deux occurences dun attribut ayant la mme valeur. Sagit-il
dune seule occurence utilise 2 fois ou de deux occurences distinctes ? A un niveau
thorique, on pourrait toujours affirmer que deux valeurs semblables concernent
toujours une seule occurence. Mais cest souvent improductif. Il faut amener cette
tponse dans le cadre de notre univers du discours, et reformuler la question de la
manire suivante : si deux occurences dun attribut A correspond la mme valeur
pour lattribut B, est-ce que, de ce fait, ces deux occurences de lattribut A
correspondra la mme valeur dun autre attribut C ? Si oui, on a affaire une seule
occurence de lattribut B, et le nombre doccurences de A et B nest donc pas le
mme (cf exemple : 2 n squentiel distincts correspond la mme anne de facturation. Mais

EXEMPLE : Facturation classique


Ebauche du M.C.D :

Nom
Prnom
1 ligne adresse
2 ligne adresse
CP
Ville

Rf. produit
Dsignation
Prix unitaire HT

Qantit

Mode rglement
JourMois facture
Anne facture
N squentiel

ceci nimpose aucune valeur commune aux autres attributs du dictionnaire. On peut donc
considrer quon a deux occurences distinctes de Anne de facturation qui se trouvent avopir la
mme valeur, et donc que le nombre doccurences de n squentiel est le mme que le nombre
doccurences de Anne de facturation
VOIR SYNOPTIQUE PAGE SUIVANTE POUR SAIDER DANS C ETTE TAPE.

Limites :
Remarques :

pas de limites : A partir de cette tape commence une dmarche rigoureuse, qui nous
permettra de systmatiser lanalyse. A partir dun dictionnaire des donnes pur
exact, tout merisien pourra obtenir un M.C.D, puis un M.L.D juste.

D. ALESSANDRA - Guide pratique de Merise

Page 6/22

SYNOPTIQUE DE REGROUPEMENT DES ATTRIBUTS


Problmatique

Un attribut A a dj t plac (seul ou regroup avec dautres attributs) dans lbauche du MCD. On veut savoir si lattribut B, quon est en train de traiter, peut tre regroup dans le mme objet
que A. Nous pourrons avoir 6 questions poser (5 questions diffrentes) pour obtenir la rponse.

Question 1: est-ce que pour une occurrence de A, j'ai un moyen logique dassocier une occurrence et une seule de B ?
(souvent, ce moyen sil existe, sera la prsence dune occurence de chacun de ces deux attributs A et B dans le mme document ou sur le mme objet physique)
Question 2: est-ce que pour une occurrence de B, j'ai un moyen logique dassocier une occurrence et une seule de A ?
(idem question 1) NB : si la rponse lune de ces deux questions est Non, la suite du processus dcrit ici est inapplicable. Cette remarque est de un dfaut constat de
commencer ce processus la question 3
Question 3: A deux occurrences diffrentes de A, est-ce qu'on peut associer la mme valeur pour B ?
(Si la rponse est non, on ne pourra jamais supposer que deux occurences de A partagent la mme occurence de B, cette question nempche pas le regroupement de A et B)
Question 4: est-ce que de ce fait d'autres attributs en dpendent ?
(Si la rponse est oui, alors obligatoirement il y a une seule occurence de B pour deux occurences de A : le regroupement est impossible)
(Si la rponse est non, alors rien ne nous empchera de dire quon a deux occurences de B, prenant par hasarh la mme valeur, le regroupement reste possible)
Question 5: A deux occurrences diffrentes de B, est-ce qu'on peut associer deux occurrences de A prenant a la mme valeur ?
(idem question 3)
Question 4: est-ce que de ce fait d'autres attributs en dpendent ?

Q1

Oui

Non

Q2

Oui

Q3

Non
Oui

Objets
diffrents

Q5

Non

Non

Mme
objet

Non
Oui

Objets
diffrents

Q4

Exemple :

Non

Nom
Dupont
Dupont
Durand

Prnom
Alfred
Jean
Alfred

Peut-on regrouper Nom et Prnom dans


le mme objet ?

Q4

Oui

Oui

Objets
diffrents

Objets
diffrents

Il est facile de rpondre Oui la questions 1 en considrant les personnes physiques : chaque fois quil apparat une occurence de Nom dans le systme, on peut lassocier une personne
physique, et donc au prnom de cette personne. Mme raisonnement pour la question 2.
L rponse la question 3 est Oui : Deux occurences de Nom (corespondant deux personnes diffrentes) peuvent tre associes au mme prnom (ex : Dupont Alfred et Durand Alfred). Il est
donc ncessaire de poser la question 4 : deux noms diffrents, sils sont associs au mme prnom, auront-ils dautres lments en commun ? La rponse nest jamais vidente, elle dpend
videmment de lunivers du discours, et donc du dictionnaire des donnes retenu. Si on gre juste un fichier dinterlocuteurs, il se peut que le partage dun prnom par deux personnes nait pas
de consquences, et on pourra affirmer que chacune cde ces deux personnes a son propre prnom, et que leur valeur commune nest que le fruit du hasard. Mais si, dans notre U.D.D., nous
avons prcis que la date de fte doit tre mmorise (par exemple pour envoi de mail de souhait de bonne fte au jour dit) il est vident que deux personnes partageant le mme prnom
pourront tre amenes, DE CE FAIT, partager dautres informations, ici la date de fte. Selon la rponse cette question, en tudiant les contraintes de lgalit des prnoms sur chacun des
autres attributs du D.D.D
NB : Se rappeler que chaque question technique pose dans cette dmarche peut faire merger une question importante de lUDD. Dans cet exemple, la question 5 nous amne se demander
si deux prnoms (et donc deux personnes) ayant le mme nom pourront, de ce fait, avoir dautres choses en commun . On fait ainsi merger la question des familles : sil sagit de constituer un
fichier Client, ngligera-t-on on intgrera-t-on cette notion de famille ? Tout raccourci consistant regrouper logiquement nom et prnom dans le mme objet aurait pour consquence doublier
des questions parfois fondamentales.

D. ALESSANDRA - Guide pratique de Merise

Page 7/22

I.2.D - Reconnatre ET IDENTIFIER les entits


But :

Moyens :

prcautions :

Reconnatre ceux qui, parmi les objets obtenus ltape prcdente, peuvent
tre identifis en interne, cest--dire tous les objets dont les occurences
pourront tre repres sans ambigut par le simple examen des occurences
de leurs attributs.
Pour quun objet soit identifiable, il faut et il suffit qu il ne puisse pas y avoir
deux occurences de cet objet pour lesquelles tous les attributs auront les
mmes valeurs (on pourra donc reconnatre chaque occurence en examinant les
valeurs portes par ses attributs puisque lensemble de ces valeurs est distinct
dune occurence lautre).
Un objet identifiable partir de ses attributs est appel une entit. Choisir un
nom pour cette entit. Lentourer dun rectangle surmont du nom choisi.
Pour cette entit, il faudra ensuite dterminer un sous-ensemble le plus limit
possible de ses attributs (sous-ensemble souvent, mais non ncessairement
limit un seul attribut), sur lequel deux occurences de lobjet ne pourront avoir
des valeurs distinctes (voir exemples). La concatnation de cas attributs pourra
donc servir identifier chaque occurence de lentit. Cette concatnation sera
appele Identifiant. Le ou les attributs omposant cet identifiant seront
souligns et placs en dbut dentit.
Ici aussi, SE FIER LA TECHNIQUE PLUTT QUAU BON SENS : il arrive
quun choix didentifiant paraisse vident et soit erronn.

Remarques :

D. ALESSANDRA - Guide pratique de Merise

EXEMPLE :
Ebauche du M.C.D :

ARTICLE
Rf. produit
Dsignation
Prix unitaire HT

Nom
Prnom
1 ligne adresse
2 ligne adresse
CP
Ville
Qantit

FACTURE
Anne facture
N Squentiel
JourMois facture

Mode
Mode Reglt

Page 8/22

I.2.E - identifier les autres objets


But :
Moyens :

prcautions :

Reconnatre les dpendances entre objets qui permettront didentifier les


objets qui ne peuvent ltre par eux-mmes.
Ltape prcdente a permis de dfinir un identifiant pour chaque entit. Parmi
les objets non identifis, il faudra reconnatre ceux qui seraient identifiables si on
essayait, laide dune redondance, de leur adjoindre un ou des identifiants dj
reconnus.
Trois cas de figure se prsentent :
- Lobjet est identifiable par deux ou plusieurs identifiants externes : lobjet
est alors une relation porteuse de donnes. On reconnat cette proprit
de la manire suivante : si lon dupliquait ces identifiants externes dans
lobjet considr, il y aurait, pour chaque occurence de lobjet, une seule
occurence de chaque identifiant externe, et lensemble de ces identifiants
externes est discriminant i.e : il ny a pas deux occurences de lobjet pour
lesquelles lensemble de ces identifiants prend les mmes valeurs).
Pour nommer cette relation, on choisit un verbe correspondant laction qui
lie les entits ayant fourni les identifiants de la relation. On surmonte la
relation de son nom, puis on lentoure dun cercle, et on relie cette relation
chacune des entits ayant fourni leur identifiant.
- Lobjet est identifiable par la combinaison dun identifiant externe, et un ou
plusieurs attributs internes : lobjet est alors une entit relative ( la fois une
entit et une relation), quon nomme, et quon entoure dun rectangle en
pointills, reli lentit identifiante par une flche partant de la sous-entit.
La reconnaissance de la part externe de lidentifiant se fait comme pour
lalina prcdent (cf exemple en I.2.I ci-dessous). Cas particulier : lobjet
est identifiable partir dun seul identifiant externe : il existe alors une
relation (0,1) (1,1) entre cet objet et un objet dj identifi : cf I.2.J.a cidessous
- Lobjet nest pas identifiable : il faut alors ajouter un identifiant (un n de
code) dans le dictionnaire des donnes et recommencer partir de
ltape 1.2.B.
Ne crer didentifiant supplmentaire dans le DDD que dans le cas o il est
impossible didentifier un objet ni en interne, ni en externe.
Bien vrifier quil nexiste quune occurence dun identifiant externe pour une
occurence de lobjet.
Dans le cas o plusieurs objets ne sont identifiables ni en interne, ni en externe,
ne pas crer plus dun identifiant la fois dans le DDD (car un identifiant cr
peut servir identifier en externe dautres objets que celui dans lequel il a t
intgr).
A chaque ajout didentifiant, il est indispensable de refaire lpuration du
dictionnaire des donnes, car lidentifiant cr peut rendre caducs certains
attributs initialement retenus.

EXEMPLE :
Ebauche du M.C.D avant ajout du code client :
ARTICLE
Rf. produit
Dsignation
Prix unitaire HT

Nom
Prnom
1 ligne adresse
2 ligne adresse
CP
Ville

APPARA
T
Quantit
FACTURE

Mode

Anne facture
N Squentiel
JourMois facture

Mode Reglt

Ebauche du M.C.D aprs ajout du code client et reprise des tapes 1.2.B 1.2.E
(il ny a pour linstant pas de cas dentit relative) :
CLIENT

ARTICLE
Rf. produit
Dsignation
Prix unitaire HT

Code client
Nom
Prnom
1 ligne adresse
2 ligne adresse
CP
Ville

APPARA
T
Quantit
FACTURE
Anne facture
N Squentiel
JourMois facture

Mode
Mode Reglt

Remarques :

D. ALESSANDRA - Guide pratique de Merise

Page 9/22

I.2.F - Dfinir les autres relations de dpendance entre les objets


But :
Moyens :

prcautions :

Dcrire lexistence dautres relations, non porteuses de donnes, dcrivant la


dpendance, en particulier les contraintes dexistence, entre les entits.
Raliser un tableau carr prsentant en absisse et en ordonne la liste des
entits. Pour chaque case de ce tableau, dterminer les relations de
dpendances susceptibles dexister entre ce couple dentits.
Choisir un verbe pour reprsenter chaque relation reconnue. Placer la relation
dans le M.C.D, et la relier chacune des entits mises en jeu dans cette
relation.
Lorsquon a mis en lumire lexistence dune relation entre deux objets, vrifier
sil en existe une autre entre ces deux mmes objets.
Sil existe la fois une relation entre un objet A et un objet B, entre B et C et
entre A et C, vrifier :
- si lune des relations peut tre une consquence immdiate des deux
autres. Dans ce cas, la supprimer.
- si lon est en prsence dune seule relation entre trois entits.
- ou sil existe bien deux manires diffrentes dassocier des occurences de
C des occurences de A, auquel cas il existera une boucle dans le MCD.
(NB : cette boucle ncessitera probabvement dtre exploite par des
requtes faisant appel des auto-jointures, par exemple :
Select C1.Type, C2.Type, A.Nom
From A, B, C C1, C C2
Where B.CleA=A.Id
And C1.CleB=B.Id
And C2.CleA=A.Id)

EXEMPLE :

CLIENT
Code client
Nom
Prnom
1 ligne adresse
2 ligne adresse
CP
Ville

ARTICLE
Rf. produit
Dsignation
Prix unitaire HT
APPARA
T

CONCERNE

Quantit
FACTURE
Anne facture
N Squentiel
JourMois facture

Rgle

Mode
Mode Reglt

Remarques :

D. ALESSANDRA - Guide pratique de Merise

Page 10/22

I.2.G - Cardinalits
But :

Dcrire la nature de chaque relation.

Moyens :

Etudier tour de rle chaque patte de chaque relation, cest dire chaque patte
reliant une relation une entit (ou une entit relative une entit).
Pour chaque patte, poser les deux questions :
- Pour nimporte laquelle des occurences de lentit, peut-il y avoir 0
occurences de la relation, ou doit-il y en avoir au moins une ?
- Pour nimporte laquelle des occurences de lentit, peut-il y avoir n
occurences de la relation, ou doit-il y en avoir au plus une ?
surmonter chaque patte du couple de rponses apportes : selon le cass,
(0,1) ou (0,n) ou (1,1) ou (1,n).

prcautions :

Ne pas oublier les entits relatives.


Ne pas pervertir les questions pour en faire par exemple Pour nimporte
laquelle des occurences de lentit, peut-il y avoir 0 occurences de lautre entit
(ou des autres entits) concourant la relation, ou doit-il y en avoir au moins une
?
Ne pas oublier que souvent les cardinalits minimum ne se trouvent tre que
des indications de traitement, sans grande importance structurelle. Par contre les
cardinalits maximum ont une imortance capitale dans lestimation du poids du
projet (ceci sera dtaill dans le passage au logique).
En pratique : remettre en cause toutes les relations nayant aucun n comme
cardinalit maximale (en thorie, ceci peut exister, mais en pratique, il y aura
souvent intrt remplacer cette relation par la notion de sous-entit - voir
exemples du cours). En consquence, on pourra en pratique se permettre de
ngliger les cardinalits minimum. Une relation deux pattes ayant une patte
(0,1) ou (1,1) et une patte (0,n) ou (1,n) sera dite relation 1-N. Une relation
deux pattes ayant deux pattes (0,n) ou (1,n) sera dite relation N-N.
Sauf cas trs tatillons de relations ayant des cardinalits (0,1) (0,1) remis en
cause dans lalina prcdent, une relation porteuse de donnes aura toujours
des cardinalits maximum de n sur toutes ses pattes (sinon, les attributs de la
relation auraient pu tre reports dans lentit relie par cette patte). La
rciproque nest pas vraie : une relation non porteuse de donnes peut tre du
type 1-N ou N-N

EXEMPLE :

CLIENT
Code client
Nom
Prnom
1 ligne adresse
2 ligne adresse
CP
Ville

ARTICLE
Rf. produit
(0,n) Dsignation

(0,n)

Prix unitaire HT
APPARA
T

CONCERNE

Quantit
(1,1)

(1,n)

FACTURE
Anne facture
N Squentiel
JourMois facture

Mode
(1,1)

Rgle

Mode Reglt
(0,n)

Remarques :

D. ALESSANDRA - Guide pratique de Merise

Page 11/22

I.2.H - Simplification laide des contraintes dintgrit fonctionnelle


But :

Modifier la prsentation des relations les plus simples afin de reprsenter


MIEUX et plus vite la complexit relle du M.C.D.

Moyens :

En thorie : Toute relation deux pattes ayant sur une patte une cardinalit (1,1)
sera remplace par une simple flche partant de lentit relie par la patte (1,1)
et aboutissant lautre entit concourant la relation. Chacune de ces relations
est appele contrainte dintgrit fonctionnelle, ou CIF.
En pratique : Toute relation deux pattes ayant sur une patte une cardinalit
(0,1) ou (1,1) sera remplace par une simple flche partant de lentit relie par
la patte (0,1) ou (1,1) et aboutissant lautre entit concourant la relation.

prcautions :

Ne pas oublier les entits relatives.


Ne pas pervertir les questions pour en faire par exemple Pour nimporte
laquelle des occurences de lentit, peut-il y avoir 0 occurences de lautre entit
(ou des autres entits) concourant la relation, ou doit-il y en avoir au moins une
?.

Remarques :

D. ALESSANDRA - Guide pratique de Merise

EXEMPLE :

CLIENT

ARTICLE
Rf. produit

Code client
Nom
Prnom
1 ligne adresse
2 ligne adresse
CP
Ville

(0,n) Dsignation

Prix unitaire HT
APPARA
T
Quantit
(1,n)

FACTURE
Anne facture
N Squentiel
JourMois facture

Mode
Mode Reglt

Page 12/22

I.2.I - une 9 tape : Vrification de la rsistance au temps


But :

Sassurer que le modle obtenu a bien tenu compte des volutions


susceptibles dvoluer dans le temps.

Moyens :

Vrifier, pour chaque attribut de chaque objet, sil y a conjonction des deux
points suivants :
- La valeur dune occurence au moins de cet attribut peut tre modifie au
cours de la vie du systme.
- Il faudra avoir accs la fois lancienne valeur et la nouvelle valeur de
cette occurence
Sil existe des attributs pour lesquels la rponse ces deux questions est
simultanment positive, nous sommes en prsence dun M.C.D. qui ne rsiste
pas au temps, et qui est donc bas sur un DDD erronn. Les corrections
apporter peuvent tre de deux ordres :
- Il existe une donne cache qui na pas t repre dans le DDD (par
exemple, la donne Date de modification de lattribut concern). Il faut
alors ajouter cette donne cache dans le DDD et refaire tout le processus
1.
prtir de ltape 1.2.B (en effet, lajout de ce nouvel attribut peut amener
purer dautres attributs devenus redondants). cf exmeple 1 en regard
- Le nombre doccurences de lattribut a t sous-valu : les valeurs
diffrentes attribues cet attribut au cours du temps sont en fait des
occurences diffrentes de cet attribut. Il faut alors reconsidrer le
regroupement des attributs de ltape 1.2.C
Vrifier, pour chaque cardinalit maximale gale 1, si la prise en compte des
variations dans le temps pourrait amener reconsidrer cette cardinalit
maximum n : dans ce cas, il conviendra dajouter une date de changement,
porte par une entit relative de lentit du ct 1. L relation 1-n estr alors
dplace partir de lentit relative.cf exmeple 2 en regard
Vrifier, pour chaque cardinalit maximale gale n, si la prise en compte des
variations dans le temps pourrait amener ajouter une date de prise en compte
dans la relation : dans ce cas, il conviendra dajouter une date de changement, et
la relation n-n deviendra une entit relative aux deux entits concourrant la
relation, avec cette date comme partie interne de lidentifiant. cf exmeple 3 en
regard
En rsum, un problme de rsistance au temps se rsoud presque
systmatiquement par lajoutdune entit relative, ou la transformation dune
relation en entit relative, et dans tous les cas la date de prise en compte
comme partie interne de lidentifiant de cette entit relative.

prcautions :

Il ne faut pas de remise en cause du M.C.D. obtenu une rponse positive


seulement la premire des deux questions (i.e. La valeur dune occurence au
moins de lattribut variera au cours du temps) : si une valeur change mais quon
na pas besoin daccder lancienne valeur, on a alors une seule occurence de
lattribut.

Remarques :

EXEMPLE 1 : On veut grer la rsistance au temps du prix des articles (on considre arbitrairement
que les changements de taux de TVA ne font pas partie de lunivers du discours) : ceci nous amne
introduire une donne cache (non visible dans les documents manipuls) Date changement de prix
darticle. Ltape 3 nous amne crer un nouvel objet Fiche Prix qui contient les attributs Prix
unitaire HT et date de changement de prix. Ltape 5 nous amne identifier cet objet la fois avec
le code article (externe) et la date (interne) : on a donc affaire une entit relative.
CLIENT
ARTICLE
Code client
Nom
Prnom
1 ligne adresse
2 ligne adresse
CP
Ville

0,n
APPARAT
1,n

Rf. produit
Dsignation

FICHE PRIX

Quantit

Date change
Prix unitaire HT

FACTURE
Mode

Anne facture
N Squentiel
JourMois facture

Mode Reglt

EXEMPLE 2 : On veut ajouter la gestion des fournisseurs, et le prix dachat des articles au
fournisseur. On suppose que chaque article a un et un seul fournisseur. Une premire analyse a
nglig le fait que le prix peut changer : on avait alors une 1-n entre article et fournisseur. Les
vrifications de la rsistance au temps contredisent ce point, et la 1-n est remplace par une relative,
avec dplacement de la relation 1-n :
FOURNISSEUR
ARTICLE
ARTICLE
FOURNISSEUR
FOURNIT
DEVIENT :
N Fournisseur
Rf. produit
Rf. produit
N Fournisseur
Date
change
Nom...
Dsignation
Dsignation
Nom...
PU Achat
PU achat
PU achat
EXEMPLE 3 : On veut ajouter la gestion des fournisseurs, et le prix dachat des articles au
fournisseur. On suppose que chaque article a plusieurs fournisseurs, chacun avec son propre
PUachat. Une premire analyse a nglig le fait que le prix peut changer : on avait alors une n-n entre
article et fournisseur. Les vrifications de la rsistance au temps contredisent ce point, et la n-n est
remplace par une relative :
FOURNISSEUR 0,n

N Fournisseur
Nom...

FOURNIT

1,n

PU achat

ARTICLE
Rf. produit
Dsignation
PU achat

DEVIENT :
FOURNISSEUR

N Fournisseur
Nom...

FOURNIT
Date change
PU Achat

ARTICLE
Rf. produit
Dsignation
PU achat

NB: noter que ces deux derniers exemples semblent arriver des rsultats presque identiques : la
diffrence tient dans lidentification, et donc, dans les futurs M.L.D, dans les cls uniques : la table
rsultant de Fournit sera, dans les deux cas, compose de Ref Produit, Date Change, N
Fournisseur, et PU Achat. Mais dans lexemple 2, la cl unique sera compose de Ref Produit et
Date Change, alors que dans lexemple 3, elle sera compose de Ref Produit, N Fournisseur
et Date Change.

D. ALESSANDRA - Guide pratique de Merise

Page 13/22

EXEMPLE :
On veut grer les interlocuteurs dune chane dtablissements commerciaux des fins de mailing.
Les commandes et factures ne sont pas gres. Ces interlocuteurs sont des prospects ou des
clients. Tous les clients commencent par etre des prospects. Pour chaque prospect, sont saisis les
nom, adresse, tl, date de cration, et est attribu un n dinterlocuteur. Est galement mmoris le
commercial qui a cr la fiche prospect. Lorsquun prospect devient client, on mmorise dans sa
fiche ses coordonnes bancaires, la date de sa premire commande, son montant, le site sur lequel
cette commande a t passe, et le commercial layant suivie. Une analyse rigoureuse de ces
donnes fournirait les MCD et MLD suivants (cf pages 16 et suivantes pour la ralisation du MLD) :

I.2.J - Cas particuliers


On peut, dans certaines tudes, se trouver confronts des cas limites, qui ne seraient pas traits
dune manire assez efficace par la mthode prsente ci-dessus :

1.2.J.a : Sous-entits :

MCD

COMMERCIAL
Code
Nom
Prnom
adresse
Date cra
CommCrea

1
co
m
m
an
de

Nom
...

la
CLIENT

Nom
...

SITE

CLIENT

SITE

Ville
...

Code
Date 1 comm
Montant
Commerc
Ville

Ville
...

Date 1 comm
Montant

Noter que le client est entirement identifi par UN seul identifiant externe, do une entit relative
sans lment didentification interne. On constate dans le MLD que la jointure Interloc-Client est
improductive. Une sous-entit se prsentera de la manire suivante :

Date 1 comm
Montant

Tr
ai
te

SITE

Tr
ai
te
CLIENT

Nom
...

CLIENT

Ville
...

ou

Date 1 comm
Montant

Cre Nom
...

Code
Nom
Prnom
adresse
Date cra

la

la

1
co
m
m
an
de

Code
Nom
Prnom
adresse
Date cra

COMMERC

INTERLOC

SITE

1
co
m
m
an
de

Nom
...

Cre

CLIENT

Ville
...

SITE

la

Cre

COMMERC

Date 1
Montant

ou

Tr
ai
te

INTERLOC

COMMERC

1
co
m
m
an
de

INTERLOC
Code
Nom
Prnom
adresse
Date cra

Remarques :

Cre

Code
Nom
Prnom
adresse
Date cra

INTERLOC

MLD

COMMERCIAL

INTERLOC

Tr
ai
te

Lorsquil existe entre deux entits une relation dont les cardinalits sont (0,1)
(1,1), on ne peut pas, en thorie regrouper ces deux objets en un seul (on ne
peut faire ce regroupement que lorsque les cardinalits sont (1,1) (1,1), et en
principe on obtient un seul objet ds ltape 3)
Lorsquon a reconnu une entit E1, identifie par un attribut A1, et quon a un
objet non identifiable E2, dont lidentification est externe, et compltement
ralise en associant lidentifiant A1 lobjet E2, on a alors une entit relative
sans identifiant interne, et les cardinalits de la relation identifiante sont alors
(1,1) (0,1)
Dans ces deux cas, il est peu rentable de manipuler deux entits et une relation,
alors quen fait il suffirait de regrouper malgr tout ces deux objets en un seul, en
prcisant que les attributs du 2 objet ne seront pas toujours renseigns (au prix
dune contrainte : Tous les attributs provenant de ce deuxime objets devront
tre simultanment renseigns ou non)
Sur le terrain, je ralise systmatiquement cette optimisation au niveau du MLD,
mais ON NE PEUT PAS OPTIMISER UN MCD.
Cest ici quon peut faire apparatre la notion de sous entit : on dit que E2 est une
sous-entit de E1, sans identifiant. UN SGBD intgrant le concept dhritage
pourra manipuler les occurences de E1 qui ne correspondent aucune occurence1.
de E2 dans une table E1, et les occurences de E1 qui correspondent une (et
donc une seule) occurence de E2 dans une table enrichie E1+E2.
Ceci correspond peu prs la notion denregistrement avec partie variante du
langage Pascal : Record ...Case...)

Ville
...

Personnellement, cest LA SEULE DERIVE QUE JE MAUTORISE AU NIVEAU DU MCD :


COMMERCIAL

INTERLOC
Code
Nom
Prnom
adresse
Date cra
Date 1 comm*
Montant*

1.

D. ALESSANDRA - Guide pratique de Merise

Cre

Nom
...

* : ces champs, si nuls, le seront simultanment. De


plus, dans ce cas, les relations
traite la 1 commande et Est sur ne seront pas
valorises

nde
ma
m
co
la 1
e
t
i
Tra
SITE
Est sur
Ville
0,1
...

0,1

Page 14/22

EXEMPLE :

1.2.J.b : Contraintes entre relations :


Dans certains cas, on peut avoir des dpendances logiques entre deux relations distinctes :
INCLUDE, AND et XOR.
par exemple, imaginons une relation R1entre deux entits E1 et E2, et une autre relation R2
entre deux entits E1 ( nouveau) et E3. Supposons quune occurence de R1 ne peut exister
que si, pour la mme occurence de E1, il nexiste aucune occurence de la relation R2 (cas du
XOR) ou au contraire si loccurence de R1 ne peut exister que sil existe simultanment une
occurence de R2 (cas du INCLUDE), ou si loccurence de R1 ne peut exister que sil existe
simultanment une occurence de R2 et rciproquement (cas du AND)
On peut faire figurer ces contraintes dans un MCD

NB : ceci ne concerne que les traitements, et je prfre de loin allger mon MCD et surtout mon
MLD en ne faisant pas figurer ce genre dinformations. En effet, ceci alourdit la lecture, sans aider
llaboration des requtes. Pour moi, il faut donc limiter ces indications aux AGL proposant des
applications gnres qui mettront en uvre les triggers ou les contraintes dintgrit
correspondant ces restrictions logiques. Dans tous les cas, il faudra pouvoir travailler au quotidien
en exploitation sur un MLD dans lequel toutes ces informations sont filtres.

D. ALESSANDRA - Guide pratique de Merise

Page 15/22

NomCad
Prix cur

Lidentification, au cours de ltape 5, des relations porteuses de donnes, peut masquer des
liens non identifiants entre cette relation et dautres entits. La technique dcrite ici ne permet pas
de faire merger ces liens. Mais la nature mme de ces liens est diffrente des liens dj
prsents. Il faut donc pouvoir dcrire des pattes non identifianrtes dans des relations multipattes.

ENFANT
(0,n)

NomCad
Prix cur

CHOISIT
NatureChoix

CADEAU

Nom
Prnom
Date naiss

NomCad
Prix cur

ENFANT
Nom
Prnom
Date naiss

ARBRE

ARBRE

Anne arbre
Budget Max

ENFANT

(0,n)

NomCad
Prix cur

(0,n)
CHOISIT

NatureChoix

Nom
Prnom
Date naiss

(0,n)

ENFANT

CADEA
U

CHOISIT

NomCad
Prix cur

Nom
Prnom
Anne arbre
NomCad

ARBRE
Anne arbre
Budget Max
Puis, ltape 6, vrifier sil existe des liens entre les objets du MCD, que ces objets soient des
entits, des entits relatives, OU des relations porteuses de donnes. Sil existe un lien entre une
relation porteuse de donnes et une entit (ou une entit relative), il faudra utiliser lune des deux
reprsentations suivantes.
ENFANT
ENFANT

(0,n)

Nom
Prnom
Date naiss

CADEAU
NomCad
Prix cur

(0,n)

CHOISIT

CHOISIT

NatureChoix

NatureChoix

(0,n)

Cette reprsentation est incomplte, car il manque le fait quun choix concerne un cadeau. Mais la
reprsentation suivante, quon peut pourtant facilement deviner, est fausse :
CADEAU

NatureChoix

ARBRE

Anne arbre
Budget Max

do le MLD

CHOISIT

NomCad
Prix cur

NatureChoix

(0,n)

Nom
Prnom
Date naiss

CADEAU

CHOISIT

Nom
Prnom
Anne arbre

(0,n)

(0,n)

EXEMPLE :
Pour un arbre de nol dun comit dentreprise, chaque enfant concern reoit chaque anne un
cadeau, choisi soit par le parent salari, soit par le gestionnaire du systme (donne boolenne
reprsente par Nature choix). Les entits Enfant, Anne et Cadeau ont dj t identifies
(grce des lments de lunivers du discours non reports ici).
La technique prsente en tape 5 donne cette bauche, la nature choix tant pleinement
identifie par lenfant et lanne (un seul choix possible par enfant et par an, et une nature de choix
et une seule par choix. Dautre part, on ne peut identifier le choix par Enfant et Cadeau, car le
mme enfant paut recevoir le mme cadeau deux annes diffrentes) :
CADEAU

ENFANT

CADEAU

1.2.J.c : Agrgats :

NomCad
Prix cur

Nom
Prnom
Date naiss

ARBRE

Anne arbre
Budget Max

qui fourniront le MDL suivant :


CADEA
U

(0,n)

Anne arbre
Budget Max

ENFANT
CHOISIT

Nom
Prnom
Anne arbre
NomCad

Nom
Prnom
Date naiss

NatureChoix

ARBRE

NatureChoix

ARBRE

ARBRE

Anne arbre
Budget Max
do le MLD

Anne arbre
Budget Max

1.

Dans ce modle, on affirme quune natureChoix est identifie par Enfant, Anne ET cadeau. Ce
systme entrane quun choix NEST PAS PLEINEMENT IDENTIFI par Enfant et Anne, donc
quun enfant ne peut pas avoir le mme cadeau plusieurs fois la mme anne, mais il permet quil
ait plusieurs cadeaux la mme anne, condition quils soient diffrents.

Anne arbre
Budget Max

Ce MLD ressemble beaucoup au 2 MLD de la page prcdente. La diffrence est pourtant


importante : NomCad ne fait plus partie de la cl primaire de CHOISIT, et le risque de doublons
dcrit plus haut nexiste plus.
NB1 : ce genre derreurs ne se rvle souvent que longtemps aprs la mise en service, il est donc coteux en
maintenance, car il est parfois difficile de se plonger dans danciens dveloppements.
NB2 : Certains designers (WinDesign par exemple) ne savent pas reprsenter ces liens. Il faudra donc retoucher
manuellement le MLD pour obtenir un systme prenne.

La solution consiste conserver les seules pattes identifiantes ltape 5 :

D. ALESSANDRA - Guide pratique de Merise

Nom
Prnom
Date naiss

Page 16/22

II - La ralisation dun M.L.D. standard

II.1 - Ce quon attend dun M.L.D. standard

But :

Il sagit de reprsenter, par un formalisme prcis et standardis, lensemble


des tables quil faudrait crer pour raliser le projet dcrit dans le M.C.D, dans le
cas o lon aurait disposition une machine, des quipes de dveloppement et
des outils de programmation de puissance et de capacit infinies.

Ladaptation lenvironnement concret sera fait en aval de cette opration. Ainsi,


tout changement de systme, dquipe ou doutils de dveloppement pourra
sappuyer sur le M.L.D. sans remettre en cause le travail ralis en amont.

D. ALESSANDRA - Guide pratique de Merise

Page 17/22

EXEMPLE :

II.2 - Le passage au logique.

M.C.D.

II.2.A - La transformation des entits

ARTICLE
(0,n)

CLIENT
But :
Moyens :

prcautions :

Il sagit de dterminer les tables ncessaires au stockage des informations


relatives une entit.
En langage rigoureux : Une entit est reprsente par une table, dont le nom
est le mme que le nom de lentit, dont les colonnessont en correspondance
bi-univoque avec les attributs de lentit et en rcupremnt les noms, et dont la
cl primaire est compose de la concatnation des colonnes correspondant aux
attributs participant lidentifiant.
En pratique : Une entit devient une table. Un identifiant devient une cl
primaire.

Code client
Nom
Prnom
1 ligne adresse
2 ligne adresse
CP
Ville

APPARAT
Quantit

FICHE PRIX
Date change
Prix unitaire HT

(1,n)

FACTURE
Anne facture
N Squentiel
JourMois facture

Mode
Mode Reglt

Il faut ici admettre que le systme parfait susceptible daccueillir ce M.L.D.


permet de raliser un index sur plusieurs colonnes.

Remarques :

Rf. produit
Dsignation

M.L.D.
ARTICLE
Rf. produit
Dsignation

CLIENT
Code client
Nom
Prnom
1 ligne adresse
2 ligne adresse
CP
Ville

FACTURE
Anne facture
N Squentiel
JourMois facture

Mode
Mode Reglt

D. ALESSANDRA - Guide pratique de Merise

Page 18/22

II.2.B - La transformation des relations 1-N

EXEMPLE :

M.C.D.
But :
Moyens :

prcautions :

Il sagit de dterminer les colonnes et liaisons ncessaires au stockage des


informations relatives une relation 1-N.
Une relation 1-N est reprsente par deux lments :
- La cration dune colonne dans la table dcoulant de lentit situe du ct
1 de la relation.Cette colonne est compose de lidentifiant de lentit
situe du ct N de la relation. Cette colonne est dite cl trangre , elle
sera souligne en pointills.
- une liaison entre lintitul de la table dcoulant de lentit situe du ct N
de la relation et cette cl trangre.

CLIENT
Code client
Nom
Prnom
1 ligne adresse
2 ligne adresse
CP
Ville

Si lidentifiant de lentit situe du ct N de la relation est compos de la


concatnation de plusieurs attributs, la partie de lidentifiant rcupre dans la
table qui dcoule de la relation le sera aussi.
Attention : lesens des flches du M.L.D est invers par rapport au sens des
flches des CIF du MCD.

Remarques :

ARTICLE
(0,n)

APPARAT

Rf. produit
Dsignation

Quantit

FICHE PRIX
(1,n)

Date change
Prix unitaire HT

FACTURE
Anne facture
N Squentiel
JourMois facture

Mode
Mode Reglt

M.L.D.

ARTICLE
CLIENT
Code client
Nom
Prnom
1 ligne adresse
2 ligne adresse
CP
Ville

Rf. produit
Dsignation
FACTURE
Anne facture
N Squentiel
JourMois facture
Code client
Mode Rglt
Mode
Mode Reglt

D. ALESSANDRA - Guide pratique de Merise

Page 19/22

II.2.C - La transformation des relations N-N

EXEMPLE :

M.C.D.
But :

Il sagit de dterminer les tables ncessaires au stockage des informations


relatives une relation N-N.

Moyens :

Une relation N-N est reprsente par trois lments :


- La cration dune table contenant les attributs ports par la relation (sil y en
a), laquelle on ajoute les identifiants des entits concourant la relation.
La concatnation de ces identifiants fournit la cl primaire de cette table. Le
nom de la relation (qui est un verbe) est souvent remplazc par un nom
mieux adapt une table.
- une liaison entre lintitul des tables dcoulant des entits concourant la
relation et la partie de lidentifiant de la table dcoulant de la relation.

prcautions :

Si lidentifiant dune entit N est compos de la concatnation de plusieurs


attributs, la partie de lidentifiant rcupre dans la table qui dcoule de la
relation le sera aussi.
Si la relation a plus de deux pattes, on procde de mme avec chacune des
pattes ayant une cardinalit maximale gale n.
Lordre dans lequel les identifiants des entits sont rcuprs pour fournir la cl
unique de la table dcoulant de la relation na pas dimportance structurelle. Il
sagira tout au plus dune optimisation dans la taille ou lefficacit des index en
dcoulant (voir exemples du cours).

ARTICLE
(0,n)

CLIENT
Code client
Nom
Prnom
1 ligne adresse
2 ligne adresse
CP
Ville

APPARAT

Rf. produit
Dsignation

Quantit

FICHE PRIX
(1,n)

Date change
Prix unitaire HT

FACTURE
Anne facture
N Squentiel
JourMois facture

Remarques :
M.L.D.

ARTICLE
CLIENT
Code client
Nom
Prnom
1 ligne adresse
2 ligne adresse
CP
Ville

Rf. produit
Dsignation
FACTURE
Anne facture
N Squentiel
JourMois facture
Code client
Mode Reglt

LIGNE
Anne facture
N Squentiel
Rf. produit
Quantit

Mode
Mode Reglt

D. ALESSANDRA - Guide pratique de Merise

Page 20/22

II.2.D - La transformation des entits relatives

EXEMPLE :

M.C.D.
But :

Il sagit de dterminer les attributs et tables ncessaires au stockage des


informations relatives une entit relative.

Moyens :

Une entit relative est reprsente comme une entit et une relation. Pour cela,
il faut raliser tois actions :
- La cration dune table dcoulant de lentit relative.
- La cration dune cl trangre, comme pour toute relation, cest--dire
lajout de lidentifiant de lentit pointe par lentit relative dans la table
dcoulant de cette entit et de la liaison entre la table dcoulant de lentit
pointe et cette cl trangre.
- Lutilisation de cette cl trangre comme composant de lidentifiant de la
table dcoulant de lentit relative.

prcautions :

Si lidentifiant dune entit N est compos de la concatnation de plusieurs


attributs, la partie de lidentifiant rcupre dans la table qui dcoule de la
relation le sera aussi.
Si la relation a plus de deux pattes, on procde de mme avec chacune des
pattes ayant une cardinalit maximale gale n.
Lordre dans lequel les identifiants des entits sont rcuprs pour fournir la cl
unique de la table dcoulant de la relation na pas dimportance structurelle. Il
sagira tout au plus dune optimisation dans la taille ou lefficacit des index en
dcoulant (voir exemples du cours).

Remarques :

ARTICLE

(0,n)

Rf. produit
Dsignation

CLIENT
Code client
Nom
Prnom
1 ligne adresse
2 ligne adresse
CP
Ville

APPARAT
Quantit

FICHE PRIX

(1,n)

Date change
Prix unitaire HT

FACTURE
Anne facture
N Squentiel
JourMois facture

M.L.D.

CLIENT
Code client
Nom
Prnom
1 ligne adr.
2 ligne adr.
CP
Ville

ARTICLE
FACTURE
Anne facture
N Squentiel
JourMois facture
Code client
Mode Reglt

LIGNE
Anne facture
N Squentiel
Rf. produit
Quantit

Rf. produit
Dsignation
FICHE PRIX
Rf. produit
Date change
Prix U. HT

Mode
Mode Reglt

D. ALESSANDRA - Guide pratique de Merise

Page 21/22

III - La ralisation dun M.L.D. optimis


III.1 - Ce quon attend dun M.L.D. optimis

But :

Il sagit de dfinir les modifications apporter au M.C.D. afin de le rendre mieux


adapt lenvironnement concret dans lequel il sera implment.

III.2 - Optimisations systmatiques


Toutes les colonnes dont le nombre de lignes est au plus gal 1 seront
regroupes dans une table de paramtres.
Les tables dont le nombre de colonnes est gal 1, et qui sont cibles de liens
(dans la reprsentation CODASYL du M.L.D.) sans tre origines de liens
seront pures (ces tables correspondent en gnral des attributs pouvant
prendre un nombre fini et prdtermin de valeurs distinctes. Ces tables
peuvent souvent tre pures ds le M.C.D. voir exemple, table Mode ).
On placera systmatiquement un index sur la cl primaire de chaque table.

III.3 - Optimisations courantes


Dans un S.G.B.D. acceptant les valeurs NULL, les tables dcoulant des sousentits seront intgres dans les tables dcoulant de lentit principale.
On envisagera de placer des index sur les cls trangres. En particulier,
lorsque des crans interactifs font apparatre des listes incluses, il sera
important dindexer les colonnes reprsentant la cl trangre.
Dans un S.G.B.D. ne permettant pas la dfinition dun index sur plusieurs
colonnes, il y aura cration dune colonne calcule comme concatnation des
colonnes indexer. Si possible, cette rgle de calcul sera dfinie par un trigger.
Cest cette colonne calcule qui sera indexe.
Remettre en cause les cls composes dont les composants discrets ne
reprsentent pas dintrt (c.f. exemple : le dcoupage anne Facturation+n
squentiel est finalement peu intressant).

D. ALESSANDRA - Guide pratique de Merise

III.4 - Pistes pour dautres optimisations


TOUTES LES OPTIMISATIONS PROPOSES DANS CE PARAGRAPHE PEUVENT TRE
REMISES EN CAUSE.
Les tables issues de relations N<->N ont toujours une cl primaire composite,
dont chaque lment est aussi une cl trangre. Il faudra donc indexer la
concatnation des colonnes identifiantes, mais il sera aussi souvent ncessaire
deavoir un accs index aux cls trangres . Il sera intressant de ne pas
indexer la premire des cls trangres concatnes dans la cl primaire, et de
se servir de la cl primaire comme de cette cl trangre en ngligeant la fin de
cette cl (voir exemple).
Eviter les colonnes calcules partir dautres colonnes de la mme table, sauf en
cas dindex : en gnral, les temps de calcul seront toujours ngligeables devant
les temps daccs.
Il est en gnral peu intressant de crer une colonne redondante pour viter
lxcution une boucle : par exemple, il est peu intressant de mmoriser un
cumul dune colonne dans une table lie directement, car le recalcul de ce cumul
est gnralement assez rapide (par exemple, pour visualiser une facture, le
montant total dune facture na pas besoin dtre mmoris dans la table Facture).
Il est en gnral intressant de crer une colonne redondante pour viter
lxcution de deux boucles imbriques : par exemple, il est intressant de
mmoriser un cumul dune colonne dans une table lie directement, lorsque ce
total doit tre affich dans chaque ligne dune liste utilise frquemment (par
exemple, pour visualiser la liste des factures, le montant total dune facture doit
tre mmoris dans la table Facture si on veut un affichage frquent de la liste des
factures). En particulier, si une requte doit tre lance lintrieur dune boucle, les
temps de rponse seront contraignants.
Lorsquune entit estlie deux autres par deux liens N N, envisager la cration
dune table redondante de liens croiss.
Etudier lintrt dindex sur les identifiants utilisateur (nom, dsignation) ou sur les
codes externes (code postal).
Etudier les optimisations rseau et les tables rparties :
- Les optimisations lies lorganisation, dcoupage vertical (certaines tables
sur un site, dautres sur un autre).
- Les optimisations lies la charge, dcoupage horizontal (certaines lignes
dune table sur un site, dautres sur un autre).
Envisager la suppression de tables dnumration et de les remplacer par des
fonctions (codage en dur), ou chargement de ces tables dans des tableaux de
variables (initialisations)

Page 22/22

Vous aimerez peut-être aussi