Petit Guide de La Méthode MERISE
Thèmes abordés
Petit Guide de La Méthode MERISE
Thèmes abordés
L'analyse des données constitue le point de passage obligé de toute conception d'application
mettant en œuvre un SGBDR (système de gestion de base de données relationnelle).
La méthode MERISE, basée sur le modèle entité-association, est un outil simple et efficace, très
répandu chez les développeurs français. La plupart des bases de données micro pour PC (dBase,
Paradox, Foxpro, Access...) sont imprégnées de cette technique pour montrer les relations entre
les tables au sein d'une base.
Dans ce cours, nous allons découvrir les bases et principes fondamentaux de MERISE à l'aide
d'exemples et de cas concrets.
Petit guide de la méthode MERISE
Plan
Petite histoire de la méthode MERISE les travaux de Peter CHEN et d'Hubert
TARDIEU
A Agence de location de films vidéo ou encore pour les prêter à des copains
Location d'appartements pour une agence
B immobilière
sérieux, s'abstenir !
Bien connaître les règles simples des schémas entités-associations (aussi appelé entités-relations) permet
d'affiner petit à petit une application apparemment simple, sans avoir besoin de la programmer, et par
conséquent d'économiser du temps de conception tout en obtenant une plus grande souplesse au niveau de
l'analyse.
Il existe des logiciels permettant de construire des schémas entités-associations et d'en analyser les
conséquences logiques, puis de construire les tables associées aux modèles de manière entièrement
automatique. Ces logiciels sont appelés AGL (atelier de génie logiciel) ou CASE suivant leur puissance. Les
logiciels TRAMIS, AMC*Designor, SELECT... en sont des exemples.
Le modèle entité-association est apparu dans les travaux des chercheurs, entre 1972 et 1975 lors des travaux du
français MOULIN puis de TARDIEU, TEBOUL... etc. Il a été rendu célèbre dans le monde entier par
l'américain Peter CHEN, à la suite d'une publication intitulée "The Entity-Relationshionship Model" (ACM,
Transaction on Database Systems, 1976).
A ce jour tous les spécialistes français et/ou latins du domaine de l'analyse orientée base de données se servent
de ce modèle comme outil de communication des applications SGBDR. Il est présent de manière transparente
ou plus visible, dans la plupart des logiciels de construction d'applications de bases de données comme
ACCESS, PARADOX, ORACLE, SQL Server, Informix, Ingres, Sybase…
Il n’est en revanche pas adapté aux bases de données purement objet comme O2 de Ardent Software… même si
l’on admet la nouvelle dérive de MERISE orientée objet !
• Les entités, qui sont des regroupements d'informations, et possèdent des attributs (caractéristiques)
• Les associations qui sont les liens logiques entre les entités (et sont quantifiées par des cardinalités)
A Les entités
Ce sont des regroupements d'informations. Les informations contenues dans les entités (informations que l'on
appelle "attributs") doivent être des informations variables, mais communes à une même classe d'objets.
Par exemple, si l'on considère l'entité "être humain" les informations communes aux être humains peuvent être :
• le nom,
• le ou les prénoms,
• la date de naissance,
• le lieu de naissance,
• le sexe,
• l'adresse, etc.
• Pays
• Région
• Département
• Rue etc.
B Les attributs
Les attributs sont les caractéristiques décrivant les entités et doivent être représentés comme une liste de mots,
la plus simple possible, dans le cadre de l'entité correspondante. On devra préciser le type des données
attendues pour chaque attribut.
Exemple :
D Date
Annn Caractères de longueur nnn
BL Booléen (vrai / faux)
T Temps
DT Date Temps
N Nombre
S (Smallint) entier court
I (Integer) entier
Etc.
C Les associations
Ce sont des liaisons logiques entre les entités.
Elles peuvent être de nature factuelle, ou de nature dynamique.
Par exemple, une personne peut acheter un objet (action d'acheter), mais si l'on considère qu'une personne est
propriétaire d'un objet, alors l'association entre l'objet et cette personne est purement factuelle.
Les associations se représentent dans une ellipse (ou un rectangle aux extrémités rondes), reliée par des traits
aux entités qu'elles lient logiquement.
Exemple :
D Les cardinalités
Les cardinalités, au sens arithmétique du terme, permettent de dénombrer les éléments de l'entité d'arrivée en
relation avec un élément de l'entité de départ, et vice versa.
Exemple : considérons le cas de l'association "habite" et les deux entités "être humain" et "appartement" du
schéma précédent :
les cardinalités minimales et maximales sont les suivantes :
sens "être humain" vers "appartement" : 1 (minimum) et 1 (maximum)
sens "appartement" vers "être humain" : 0 (minimum) et n (maximum
Ce qui signifie que dans cette modélisation un être humain réside dans un appartement et un seul à la fois, mais
qu’un appartement peut se trouver vide ou être pourvus de plusieurs résidents.
Bien entendu tout être humain ne réside pas forcément dans un appartement, ce peut être dans une maison, à
l’hôtel ou à la belle étoile (SDF…). Mais il convient de se concentrer sur ce que l’on doit modéliser et non sur
l’univers entier.
En outre nous avons convenu qu’un même être humain ne pouvait résider dans plusieurs appartements à la fois
(notion de « résidence principale » par exemple).
On note les cardinalités de chaque côté de l'association, sur les traits faisant la liaison entre l'association et
l'entité.
Dès cet instant, on peut en déduire le type de relation parmi les types suivants : : 1/1, 1/n ou n/1 ou encore n/m.
Ici c’est une relation de type 1,n.
Pour déduire le type d’une relation, il suffit de récupérer les cardinalités maximales des deux côtés de
l’association, sans tenir compte de leur valeur exacte.
On peut s’y aider à l’aide des diagrammes de Wen et des notions de mathématiques ensemblistes, bien connus
de ceux qui ont pratiqués les maths modernes dès leur plus jeune âge…
Attention ! Des relations différentes entre mêmes entités peuvent posséder des cardinalités différentes; c'est
même souvent le cas.
Exemple :
Exemple :
On voit ici que dans le cas de l'entité "appartement" tous les attributs sont utilisés pour composer la clef. Cette
clef naturelle n'étant pas pratique, il est plus judicieux de créer un nouvel attribut qui servira expressément de
clef à l'association.
Pour l'entité "être humain, on pourrait se servir du numéro de sécurité sociale (plus exactement du numéro
INSEE) , comme clef de l'entité. En revanche, pour ce qui est de l'entité "appartement" il est conseillé de créer
un nouvel attribut clef qui serait, par exemple, un numéro.
Exemple :
Pour une entité de type « Voiture » il pourrait être fait usage de l’immatriculation du véhicule comme clef de
l’entité.
Exemple :
Exemple :
Attributs d'association
Il arrive parfois que l'on soit obligé de munir d'attributs des associations.
Exemple : considérons par exemple, que nous voulons modéliser les relations existant entre les entités "client",
"commande" et "article" :
Mais comment dans ce schéma introduire l'attribut "quantité" et plus encore l'attribut "réduction" dont on
voudrait qu'il puisse s'appliquer à chacun des articles d'une commande de manière différente ?
En effet si l'on introduit l'attribut quantité à l'entité COMMANDE, chaque ligne de la commande se vera dotée
de la même quantité...
D'autre part si l'on introduit l'attribut quantité à l'entité ARTICLE alors chacun des article se vera doté de la
même quantité quelque soit la commande...
La solution est de pourvoir l'association "composée" des attributs "quantité" et "réduction" :
Il arrive dans certains cas que l'attribut "date" soit d'une importance capitale, notamment dans les applications
SGBDR portant sur la signature de contrats à échéance ou dans la durée (assurance par exemple).
Il n'est pas rare alors que le seul attribut "date" constitue à lui seul une entité.
Exemple :
On appelle alors cela une entité temporelle. Une entité temporelle possède souvent un seul attribut, mais dans le
cas ou elle possède plusieurs attributs (année, mois, jour, heure, minute, seconde...), l'ensemble de ces attributs
constitue alors la clef de l'entité.
Mais dans ce cas on peut aussi retirer cette entité et introduire la date en tant qu'attribut de l'association
"souscrit".
Dès lors, tout MCD peut être tansformé en un MPD ("Modèle Physique des Données") c'est à dire un modèle
directement exploitable par la base de données que vous voulez utiliser...
Tout l'intérêt de cet outil d'analyse est de permettre de modéliser plus aisément les relations existant entre les
entités et d'automatiser le passage du schéma muni d'attributs aux tables de la base de données pourvues de
leurs champs.
Voici maintenant les règles de base nécessaire à une bonne automatisation du passage du MCD au MPD :
Règle n°2 : Dans le cas d'entités reliées par des associations de type 1:1, les tables doivent
avoir la même clef.
Exemple :
NOTA : on aurait pu choisir l'autre clef comme clef commune, à savoir le n° d'appartement.
Dans ce cas une étude approfondie de la solution à adopter est nécessaire, mais ce type de relation est en
général assez rare et peu performante...
Règle n°3 : Dans le cas d'entités reliées par des associations de type 1:n, chaque table
possède sa propre clef, mais la clef de l'entité côté 0,n (ou 1,n) migre vers la table côté 0,1
(ou 1,1) et devient une clef étrangère (index secondaire).
Exemple :
Règle n°4 : Dans le cas d'entités reliées par des associations de type n:m, une table
intermédiaire dite table de jointure, doit être créée, et doit posséder comme clef primaire
une conjonction des clefs primaires des deux tables pour lesquelles elle sert de jointure.
Exemple :
Exemple : Pour synthétiser toutes ces règles, voici un exemple de modélisation d'une application. En
l'occurrence il s'agit d'un service commercial désirant modéliser les commandes de ses clients.
Conseils divers
A Généralisation (héritage)
Dans le schéma ci-dessous, les entités "Personne physique" (des êtres humains) et "Personne morales" (des
sociétés, associations, collectivités, organisations…) sont généralisées dans l'entité "Propriétaires".
On dit aussi que l'entité "Propriétaire" est une entité parente et que les entités "Personne morale" et "Personne
physique" sont des entités enfants, car il y a une notion d’héritage...
Exemple :
Par exemple une entité "Etre humain" est une généralisation pour toute entité faisant appel à une personne,
comme les entités "Etudiant", "Client", "Artiste", "Souscripteur", "Patient", "Assujetti"...
Certains atélier de modélisation représentant les données sous la forme d’entités « encapsulés ».
Exemple :
B Personnalisation
Une personnalisation est un regroupement dans une super entité de plusieurs entités munies d'une ou de
plusieurs associations.
Par exemple, une compagnie d'aviation proposant des vols peut modéliser le planning des pilotes par le schéma
suivant :
C Regroupement d'entités
Comme toute technique, le schéma entité-association possède des limites et des contraintes que seuls
l'expérience et le bon sens peuvent permettre d'éliminer.
Il arrive parfois que certaines entités apparaissent comme redondantes. Dans ce cas, et pour gagner de la place
en matière de stockage de l'information, il convient de regrouper ces entités dans une seule et même table du
SGBDR en ajoutant un champ supplémentaire à cette table de manière à permettre de distinguer les entités du
schéma théorique.
Par exemple si l'on désire modéliser une gestion de compact-disc on peut créer une entité "Compositeur" et une
entité "Interprète". Mais on constate qu'une grande majorité de compositeurs sont leurs propres interprètes, ce
qui signifie qu'une même personne peut se trouver présente dans les deux entités. Pour résoudre ce problème il
suffit de construire une seule table pour les deux entités (par exemple une table "MUSICIEN") et d'y ajouter un
champ permettant de distinguer le type de "musicien" : compositeur ou interprète ou les deux.
Exemples de MCD
A Agence de location de films vidéo
Lors de la réalisation de la base de données, les entités RÉALISATEUR et ACTEUR peuvent être regroupées
en une seule table car il y a un nombre non négligeable de réalisateurs qui sont acteurs, et vice-versa. Dans ce
cas, un champ d'un seul caractère permettra de faire la différence entre un réalisateur pur, un acteur pur et un
acteur réalisateur.
Notez aussi les cardinalités entre les entités ACTEUR et FILM, en effet, un film d'animation ne possède aucun
acteur.
Dans l'entité EXEMPLAIRE figure un attribut "dispo" permettant de savoir si l'exemplaire n°X d'un film est
disponible ou en cours d'emprunt.
NOTA : pour simplifier l'écriture, ne figurent dans ce schéma que les attributs clefs ou les attributs
d'associations.
BIBLIOGRAPHIE
• Bases de Données et Modèles de Calcul - Outils et Méthodes pour l’Utilisateur - Jean-Luc
HAINAUT - InterEditions 1994
• Conception de bases de données : du schéma conceptuel au schéma physique - GALACSI -
Dunod 1989
• La méthode MERISE, principes et outils (Tome 1 & 2) - TARDIEU, ROCHFELD, COLLETTI -
Les éditions d'organisation 1986
• Modélisation dans la conception des systèmes d'information - ACSIOME - Masson 1990
• Apprendre et pratiquer MERISE - J. GABAY - Masson 1993
• MERISE, vers une modélisation orientée objet – José MOREJON – Les Editions
d’Organisation 1994
• Maîtriser les bases de données – Georges GARDARIN – Eyrolles 1993
• Introduction aux bases de données, 6e édition– Chris J. DATE – Thomson International
Publishing 1998
• Concepts fondamentaux de l’informatique – Alfred AHO, Jeffrey ULLMAN – Dunod 1993
• AMC*Designor, mise en œuvre de MERISE – Gilles GUEDJ – Eyrolles 1996
WEBOGRAPHIE
• Memo Merise (toute la théorie de MERISE, incluant les modèles de traitement de données et
les formes normales) :
o http://perso.wanadoo.fr/matthieu.vidal/default.htm