Académique Documents
Professionnel Documents
Culture Documents
La mŽthode MERISE
2 : MCD Ð MOD Ð MLD Ð MPD
DŽnormalisation - Optimisation
Bertrand LIAUDET
SOMMAIRE
SOMMAIRE 1
MCD :
MODELE CONCEPTUEL DES DONNEES
1. Rappels
LE CYCLE DÕABSTRACTION
Niveaux DONNEES TRAITEMENTS
CONCEPTUEL MCD MCT
Mod•le conceptuel des donnŽes Mod•le conceptuel des traitements
QUOI Signification des informations sans ActivitŽ du domaine sans prŽciser les
contraintes techniques, ressources et leur organisation
organisationnelles ou Žconomiques.
Mod•le entitŽ Ð association
ORGA- MOD MOT
NISATIONNEL Mod•le organisationnel des donnŽes Mod•le organisationnel des traitements
Signification des informations avec Fonctionnement du domaine avec les
QUI, OU, QUAND contraintes organisationnelles et ressources utilisŽes et leur organisation
Žconomiques. (RŽpartition et (rŽpartition des traitements sur les postes
quantification des donnŽes ; droit des de travail)
utilisateurs)
LOGIQUE MLD MLT
Mod•le logique des donnŽes Mod•le logique des traitements
COMMENT Description des donnŽes tenant compte Fonctionnement du domaine avec les
de leurs conditions dÕutilisation ressources et leur organisation
(contraintes dÕintŽgritŽ, historique, informatique.
techniques de mŽmorisation).
Mod•le relationnel
PHYSIQUE MPD MPT
Mod•le physique des donnŽes Mod•le physique des traitements
COMMENT Description de la (ou des) base(s) de Architecture technique des programmes
donnŽes dans la syntaxe du Syst•me de
Gestion des donnŽes (SG.Fichiers ou
SG Base de DonnŽes)
Optimisation des traitements
(indexation, dŽnormalisation, triggers).
DÕapr•s ISIM, p. 37
La modŽlisation
La modŽlisation est lÕactivitŽ qui consiste ˆ produire un mod•le.
Un mod•le est ce qui sert ou doit servir dÕobjet dÕimitation pour faire ou reproduire quelque
chose.
On sÕintŽresse ici ˆ la modŽlisation des donnŽes.
Un mod•le des donnŽes est une reprŽsentation de lÕensemble des donnŽes. Cette reprŽsentation
prend en compte un outil de reprŽsentation (un langage) et un niveau de prŽcision (des contraintes
mŽthodologiques).
Il existe plusieurs mod•les de reprŽsentation des donnŽes : hiŽrarchique, relationnel, entitŽ-
association, objet, ensembliste, etc.
Les deux mod•les dominant actuellement sont : le mod•le relationnel : MR (qui correspond aux
SGBD-R) et le mod•le entitŽ-association : MEA (qui est indŽpendant du type de SGBD utilisŽ).
Ces deux mod•les correspondent ˆ 2 langages diffŽrents.
Les schŽmas entitŽ-relation et les diagrammes de classe UML peuvent •tre utilisŽs comme autres
langages ˆ peu pr•s Žquivalents au MEA.
La mŽthode MERISE, utilisŽe quasi-exclusivement en France, distingue entre 3 types de mod•les
selon des crit•res mŽthodologiques : le mod•le conceptuel des donnŽes : MCD, le mod•le
logique des donnŽes : MLD et le mod•le physique des donnŽes : MPD. LÕusage tend ˆ rendre
Žquivalents MCD et MEA, MLD et MR, MPD et SQL.
Le MCD est du niveau de lÕanalyse fonctionnelle et est adaptŽ ˆ la ma”trise dÕouvrage (MOA).
Le MLD est du niveau de lÕanalyse organique et est adaptŽ ˆ la ma”trise dÕÏuvre (MOE).
MCD
Toutefois, quand on parle du MCD, le plus souvent, on parle du mod•le concret rŽalisŽ pour
intŽgrer les contraintes conceptuelles dŽfinies par Merise (donc on parle dÕun mod•le EntitŽ-
Association).
Toutefois, quand on parle du MLD, le plus souvent, on parle du mod•le concret rŽalisŽ pour
intŽgrer les contraintes organisationnelles et logiques dŽfinies par Merise (donc on parle dÕun
mod•le relationnel).
Principe gŽnŽral
Le MCD modŽlise les donnŽes (les informations) sans tenir compte des contraintes
¥ techniques,
¥ organisationnelles,
¥ Žconomiques.
Concr•tement, cela veut dire quÕau niveau du MCD :
¥ Aucune contrainte technique ne sera prise en compte : on nÕutilise pas nŽcessairement un
SGBD relationnel.
¥ Toutes les donnŽes de lÕentreprise seront prises en compte (pas de rŽpartition selon les sites
ou les applications : pas de contraintes organisationnelles).
¥ Aucune limitation de moyens financier ne sera prise en compte.
3 forme normale : un attribut non clŽ ne doit pas dŽterminer dÕautres attributs non clŽ.
•me
Exemple :
On Žvite les identifiants numŽrotŽs sÕils peuvent •tre remplacŽs par intitulŽs relevant du
vocabulaire du mŽtier. Par exemple dans une table de catŽgorie, le nom de la catŽgorie est
lÕidentifiant, il nÕy a pas besoin de numŽro.
On Žvite dÕavoir des tables avec un seul attribut si elles ne sont reliŽes quÕˆ une seule autre table.
Par exemple une table des catŽgories contenant uniquement lÕintitulŽ de la catŽgorie peut •tre
supprimŽe si la catŽgorie ne se trouve que dans la table des produits, par exemple.
Principe
La grille de cohŽrence MCD / MCT permet de vŽrifier toutes les corrŽlations entre les donnŽes
et les traitements. On valide ainsi que chaque entitŽ et chaque association gŽnŽrant une table sera
bien crŽŽ et consultŽ, et Žventuellement modifiŽ et supprimŽ.
LÕidŽe est de valider une simulation intellectuelle de tout le syst•me.
Cette grille peut aussi sÕappliquer aux niveaux du MOD, du MLD ou du MPD. Elle peut aussi
sÕappliquer au niveau du MOT.
Elle peut aussi sÕappliquer avec en croisant le MCD avec un diagramme de cas dÕutilisation.
Technique
Dans un tableau Ç traitement / entitŽs-associations È, on va noter lÕusage fait des donnŽes en
terme de lecture (L : select), crŽation (C, insert), modification (M : update), suppression (S :
delete).
On peut aussi prŽciser, surtout en cas de modification, quel attribut est modifiŽ.
A noter que ce tableau est ˆ corrŽler avec la valorisation des attributs.
EntitŽs ou associations
Traitement 1 Traitement 2 Traitement 3 É É
EntitŽ 1 L CM
Usages, É
OpŽrations Association 1 C M L
ou T‰ches
É
Ainsi, on peut simuler le syst•me : vŽrifier que tous les usages ou opŽrations ou t‰ches analysŽs
manipulent toutes les entitŽs et associations du MCD.
Remarque
LÕanalyse du MCD, tout comme celle du MCT ou du diagramme des cas dÕutilisation est une
analyse rapide.
En suivant la mŽthode MERISE, et gr‰ce ˆ la grille de cohŽrence, on peut arriver rapidement ˆ
une simulation compl•te du SI.
MOD
MODELE ORGANISATIONNEL DES DONNEES
Il est facile de dŽcrire la mŽthode MERISE de lÕanalyse organisationnelle, encore que son
application exige ˆ coup sžr savoir et pratique.
La modŽlisation organisationnelle des donnŽes va prendre en compte des ŽlŽments relevant de
lÕutilisation des ressources de mŽmorisation :
Il sÕagit de distinguer, ˆ partir des informations formalisŽes sur le MCD, celles qui devront •tre
mŽmorisŽes informatiquement dans le syst•me dÕinformation informatisŽ (SII), et les autres.
On va analyser au niveau du MOD la rŽpartition concr•te des donnŽes entre les unitŽs
opŽrationnelles de lÕentreprise ou plus concr•tement entre les diffŽrents Ç poste de travail È.
Dans le cas des donnŽes non informatisŽes, il faudra prŽciser leur localisation.
Dans le cas des donnŽes informatisŽes, on va prŽciser les droits des diffŽrents utilisateurs : les
droits des diffŽrents acteurs (au sens de lÕUML ou du MOT).
Ces droits peuvent •tre :
¥ Lecture
¥ ƒcriture
¥ CrŽation
¥ Suppression
Chacun de ces droits sÕappliquant aux entitŽs, aux attributs, aux associations et ˆ leurs
occurrences.
PrŽsentation
La quantification prend en compte deux notions :
¥ Le volume : taille et nombre de chaque ŽlŽment.
¥ La durŽe de vie : statistiques sur le nombre minimum, maximum et moyen dÕoccurrences
concr•tes pour chaque entitŽ et chaque association.
Cycle de vie
Pour analyser le cycle de vie des informations, on part du MCT, et on regarde, pour chaque
opŽration, quelles sont les donnŽes qui sont crŽŽes et quelles sont celles qui sont modifiŽes.
Dans lÕexemple de la grande surface :
A chaque commande de produit, on va ajouter des ŽlŽments dans la table des produits
commandŽs.
Ces ŽlŽments pourront •tre dŽtruits d•s la rŽception de la commande, ou •tre dŽtruits apr•s un
temps ˆ dŽterminer, ou conservŽs en permanence dans une logique dÕarchivage.
Tableau de quantification
Pour chaque entitŽ et pour chaque association, on calcule le volume thŽorique dÕune occurrence,
ˆ partir du volume thŽorique dÕune occurrence dÕun attribut.
Pour toutes les entitŽs et les associations, on dŽtermine le nombre minimum, maximum et moyen
dÕoccurrences.
On regroupe lÕensemble des informations dans un tableau.
Vol Nb min Nb max Nb moy Vol min Vol max Vol moyen
EntitŽ 1 145 10 1000 100 1450 145000 14500
EntitŽ 2
É
Association 1
Association 2
É
Totaux Som Som Som Som Som Som Som
MLD :
MODéLE LOGIQUE DES DONNƒES
1. PrŽsentation
Le MLD est une reprŽsentation du MCD et du MOD compatible avec lÕŽtat de lÕart technique
qui sera mis en Ïuvre sur le projet.
La BD relationnelle est lÕusage le plus courant. Toutefois on voit que •a nÕest pas le seul et que
quelle que soit la technique, •a nÕemp•che pas de faire un MCD !
Principe
En gŽnŽral, il existe des r•gles de passage du MCD au MLD quel que soit la technique finalement
choisi (fichier, XML, BD-R, BD-OO, etc.).
On rappelle ici les 6 r•gles de passage du MEA au MR
MPD :
MODELE PHYSIQUE ET OPTIMISATION
1. Principes du MPD
Le MPD sÕintŽresse ˆ :
¥ La description de la (ou des) base(s) de donnŽes dans la syntaxe du Syst•me de Gestion des
donnŽes (SG.Fichiers ou SG Base de DonnŽes) utilisŽ : cÕest donc le code SQL concret en
cas dÕutilisation dÕun SGBD-R.
¥ LÕoptimisation des traitements (indexation, dŽnormalisation, triggers).
2. Optimisation et dŽnormalisation
PrŽsentation
LÕoptimisation des donnŽes va consister ˆ concevoir un MPD qui modifie le MLT de telle sorte
que certains traitements soient accŽlŽrŽs.
LÕoptimisation va toujours consister ˆ Ç dŽnormaliser È les tables relationnelles pour
accŽlŽrer les traitements.
Le choix des optimisations est liŽ ˆ lÕusage que lÕon fait du syst•me : par exemple, si on sait
quÕil y aura beaucoup dÕinterrogations du syst•me dÕinformation (de la base de donnŽes) et peu
de crŽation de nouveaux ŽlŽments, alors on privilŽgiera les optimisations qui favorisent
lÕinterrogation (comme la crŽation dÕindex, ou la crŽation dÕattribut calculŽ).
Elle est liŽe aussi aux possibilitŽs du SGBD utilisŽ ainsi quÕˆ lÕenvironnement matŽriel en gŽnŽral
et aux usages du syst•me.
CÕest pour •a quÕelle rel•ve du niveau physique.
Principe
La dŽnormalisation est une optimisation en vue dÕaccŽlŽrer les traitements de consultation pour
amŽliorer les temps de rŽponse pour lÕutilisateur.
La dŽnormalisation consiste ˆ Ç casser È le mod•le relationnel normalisŽ des donnŽes.
Cožt
La dŽnormalisation a toujours un cožt :
¥ Soit en terme de sŽcuritŽ : lÕintŽgritŽ des donnŽes est moins bien garantie
¥ Soit en terme de performance : ce quÕon gagne en consultation, on le perdra en CMD.
Justification
La dŽnormalisation, comme toute optimisation de la BD, doit •tre justifiŽe par lÕusage rŽel du
syst•me : Žtant donnŽ les machines utilisŽes, le nombre de tuples dans la BD, le nombre
dÕutilisateurs du syst•me, la dŽnormalisation peut se justifier.
La dŽnormalisation ne doit jamais •tre justifiŽe par lÕintŽr•t du programmeur !
Passage du MEA au MR
Table de type
On peut crŽer une table pour gŽrer un type et choisir de mettre une clŽ primaire numŽrotŽe ou
pas.
Indexation
Un index est une table crŽŽe ˆ partir dÕun attribut dÕune autre table, et de sa clŽ primaire.
Cette table est triŽe dans lÕordre de lÕattribut indexŽ : elle permet de faire des recherches plus
rapides (recherche dichotomique)
A (A, A1, É, Ai, ÉAn)
Si on indexe lÕattribut Ai, on crŽe la table Aidx(Ai, A) triŽe et maintenue triŽe sur Ai.
Attributs calculŽs
PrŽsentation
Un attribut calculŽ est un attribut dont on peut calculer la valeur ˆ partir dÕautres attributs.
Un tel attribut prŽsente le dŽfaut de dupliquer une information dŽjˆ prŽsente dans la BD.
Les attributs calculŽs peuvent •tre gŽrŽs par des vues : leur rŽalitŽ nÕest donc que virtuelle.
Ils peuvent aussi •tre gŽrŽs en crŽant rŽellement un nouvel attribut.
LÕintŽr•t est de ne pas le recalculer ˆ chaque fois quÕon en a besoin. Le dŽfaut est quÕil faut faire
attention ˆ ce quÕil soit toujours ˆ jour : on peut se protŽger des incohŽrences ˆ lÕaide de triggers.
Exemple
Ø Version normalisŽe
Disques(ND, titre, dateSortie, maisonDisque)
Chansons(NC, titre, durŽe, dateCrŽation)
Composer(#ND, #NC)
Un disque est composŽ de plusieurs chansons. Une chanson peut appartenir ˆ plusieurs disques.
Ø Version optimisŽe
Disques(ND, titre, dateSortie, maisonDisque, durŽeDisque)
Chansons(NC, titre, durŽe, dateCrŽation)
Composer(#ND, #NC)
Ç durŽeDisque È est fonction de la durŽe de chaque chanson du disque. Il faudra le gŽrer avec un
trigger.
PrŽsentation
On peut aussi crŽer un lien de transitivitŽ : si on a A(A, Ax, #B) et B(B, Bx, #C) et C(C, Cx). On
peut dŽcider dÕajouter #C dans A : A(A, Ax, #B, #C).
Un lien direct est une clŽ Žtrang•re qui relie deux tables qui sont par ailleurs reliŽes par une ou
plusieurs clŽs Žtrang•res passant par une ou plusieurs tables intermŽdiaires.
LÕintŽr•t de ce lien est de limiter le nombre de jointures lors des requ•tes.
Il faudra vŽrifier la cohŽrence des donnŽes avec des triggers.
Exemple
Ø Version normalisŽe
EmployŽs(NE, nom, dateEmbauche, salaire, #NB)
Bureaux(NB, Žtage, surface, #ND)
DŽpartements(ND, nomDept, villeDept)
Ø Version optimisŽe
EmployŽs(NE, nom, dateEmbauche, salaire, #NB, #ND)
Bureaux(NB, Žtage, surface, #ND)
DŽpartements(ND, nomDept, villeDept)
Duplication dÕattributs
La duplication dÕattributs consiste ˆ violer les formes normales 2 ou 3.
CÕest une forme rŽduite de la fusion des tables : on ne fusionne quÕune partie de la table.
LÕintŽr•t de cette duplication est dÕŽviter dÕavoir ˆ faire des jointures lors des requ•tes.
Il faudra vŽrifier la cohŽrence des donnŽes avec des triggers.
Exemple 1
Ø Version normalisŽe
EmployŽs(NE, nom, dateEmbauche, salaire, #ND)
Departements(ND, nomDept, villeDept)
Ø Version optimisŽe
EmployŽs(NE, nom, dateEmbauche, salaire, ND, nomDept)
Departements(ND, nomDept, villeDept)
La table EmployŽs nÕest pas en 3 forme normale car ND -> nomDept
•me
Exemple 2
Ø Version normalisŽe
Factures(NF, dateFacture, montantFacture)
R•glements(NR, dateR•glement, montantR•glement, #NF)
Un r•glement concerne une facture et une seule.
Une facture donne lieu ˆ 0 ou 1 r•glement.
Ø Version optimisŽe
Factures(NF, dateFacture, montantFacture, #NR)
R•glements(NR, dateR•glement, montantR•glement, #NF)
Fusion de tables
PrŽsentation
Si on a A(A, Ax, #B) et B(B, Bx), et que B nÕest rŽfŽrencŽ que par A, alors, on pourra
Žventuellement crŽer : A(A, Ax, B, Bx), avec lÕattribut B obligatoire. On aura alors supprimŽ la
table B.
La fusion des tables consiste ˆ violer les formes normales 2 ou 3.
LÕintŽr•t de cette fusion est dÕŽviter dÕavoir ˆ faire des jointures lors des requ•tes.
Il faudra vŽrifier la cohŽrence des donnŽes avec des triggers.
Exemple
Ø Version normalisŽe :
EmployŽs(NE, nom, dateEmbauche, salaire, #ND)
Departements(ND, nomDept, villeDept)
Ø Version optimisŽe :
EmployŽs(NE, nom, dateEmbauche, salaire, ND, nomDept, villeDept)
Cette table nÕest pas en 3 forme normale car ND -> nomDept, villeDept.
•me
4. Questions de cours
¥ Quels sont les 4 niveaux du cycle dÕabstraction des donnŽes. QuÕest-ce qui caractŽrise
chaque niveau ?
¥ Quelle relation y a-t-il entre le MCD et le MEA ?
¥ Quelle relation y a-t-il entre le MLD et le mod•le relationnel (MR).
¥ Citez deux autres possibilitŽs pour rŽaliser un MLD en dehors du mod•le relationnel (MR).
¥ Quelles sont les 4 r•gles de base de passage du MEA au MR ?
¥ Quelle est la principale mŽthode dÕoptimisation ?
¥ Citez deux autres mŽthodes dÕoptimisation. Donnez un exemple.