Sunteți pe pagina 1din 15

.

Les travaux de Peter CHEN et d'Hubert TARDIEU


Le modle entit-association est un outil (et une technique) d'analyse permettant de construire des schmas
thoriques de raisonnement sur des applications tournant avec les bases de donnes relationnelles. Pour mettre
en uvre cette technique, en connatre les possibilits et les limites, il n'est pas ncessaire de possder une
base

de

donne.

Bien connatre les rgles simples des schmas entits-associations (aussi appel entits-relations) permet
d'affiner petit petit une application apparemment simple, sans avoir besoin de la programmer, et par
consquent 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 schmas entits-associations et d'en analyser les
consquences logiques, puis de construire les tables associes aux modles de manire entirement
automatique. Ces logiciels sont appels AGL (atelier de gnie logiciel) ou CASE suivant leur puissance. Les
logiciels TRAMIS, AMC*Designor, SELECT... en sont des exemples.
Le modle entit-association est apparu dans les travaux des chercheurs, entre 1972 et 1975 lors des travaux
du franais MOULIN puis de TARDIEU, TEBOUL... etc. Il a t rendu clbre dans le monde entier par
l'amricain Peter CHEN, la suite d'une publication intitule "The Entity-Relationshionship Model" (ACM,
Transaction

on

Database

Systems,

1976).

A ce jour tous les spcialistes franais et/ou latins du domaine de l'analyse oriente base de donnes se servent
de ce modle comme outil de communication des applications SGBDR. Il est prsent de manire transparente
ou plus visible, dans la plupart des logiciels de construction d'applications de bases de donnes comme
ACCESS,

PARADOX,

ORACLE,

SQL

Server,

Informix,

Ingres,

Sybase

Il n'est en revanche pas adapt aux bases de donnes purement objet comme O2 de Ardent Softwae mme si
l'on admet la nouvelle drive de MERISE oriente objet!

2. Du vocabulaire et comment on le reprsente graphiquement


Le modle entit-association est constitu de deux lments de base :

Les

entits,

qui

sont

des

regroupements

d'informations,

et

possdent

des

attributs

(caractristiques)

Les associations qui sont les liens logiques entre les entits (et sont quantifies par des
cardinalits)

2.1. Les entits (des ensembles)


Ce sont des regroupements d'informations. Les informations contenues dans les entits (informations que l'on
appelle "attributs") doivent tre des informations variables, mais communes une mme classe d'objets.
Par exemple, si l'on considre l'entit "tre humain" les informations communes aux tre humains peuvent
tre :

le nom

le ou les prnoms

la date de naissance

le lieu de naissance

le sexe

l'adresse

etc...
On considre souvent qu'il s'agit de "classes" d'entits.
Une

entit

donne

peut

elle-mme

tre

constitue

de

sous-classes.

Par exemple, un tre humain donn peut habiter au mme endroit qu'un autre (si deux personnes vivent sous
le mme toit parce qu'ils sont maris). Dans ce cas, l'adresse constitue une sous-classe de l'entit "tre
humain", c'est dire une nouvelle entit part entire.
D'un autre ct, il arrive souvent que plusieurs personnes rsident au mme endroit, sans mme se connatre
(cas d'un immeuble collectif par exemple). Dans ce cas on peut considrer l'adresse, comme une entit et la
dcrire de la manire suivante :

Pays

Rgion

Dpartement

Rue

etc...
On schmatise une entit par un rectangle.

Exemple :

2.2. Les attributs (des caractristiques)


Les attributs sont les caractristiques dcrivant les entits et doivent tre reprsents comme une liste de
mots, la plus simple possible, dans le cadre de l'entit correspondante. On devra prciser le type des donnes
attendues pour chaque attribut.

Exemple :

Les types associs aux attributs sont les suivants :


D

Date

Annn

Caractres de longueur nnn

BL

Boolen (vrai / faux)

Temps

DT

Date Temps

Nombre

(Smallint) entier court

(Integer) entier

etc...

2.3. Les associations (ou relations)


Ce

sont

Elles

peuvent

des
tre

liaisons
de

nature

logiques
factuelle,

ou

entre

les

entits.

de

nature

dynamique.

Par exemple, une personne peut acheter un objet (action d'acheter), mais si l'on considre qu'une personne est
propritaire d'un objet, alors l'association entre l'objet et cette personne est purement factuelle.
Les associations se reprsentent dans une ellipse (ou un rectangle aux extrmits rondes), relie par des traits
aux entits qu'elles lient logiquement.

Exemple :

2.4. Les cardinalits (ou "combien" ?)


Les cardinalits, au sens arithmtique du terme, permettent de dnombrer les lments de l'entit d'arrive en
relation avec un lment de l'entit de dpart, et vice versa.

Exemple :
Considrons le cas de l'association "habite" et les deux entits "tre humain" et "appartement" du schma
prcdent, les cardinalits 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 modlisation un tre humain rside dans un appartement et un seul la fois,
mais

qu'un

appartement

peut

se

trouver

vide

ou

tre

pourvu

de

plusieurs

rsidents.

Bien entendu tout tre humain ne rside pas forcment dans un appartement, ce peut tre dans une maison,
l'htel ou la belle toile (SDF). Mais il convient de se concentrer sur ce que l'on doit modliser et non sur
l'univers

entier.

En outre nous avons convenu qu'un mme tre humain ne pouvait rsider dans plusieurs appartements la fois
(notion de rsidence principale par exemple).

On note les cardinalits de chaque ct de l'association, sur les traits faisant la liaison entre l'association et
l'entit.

Ds cet instant, on peut en dduire 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 dduire le type d'une relation, il suffit de rcuprer les cardinalits maximales des deux cts 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 mathmatiques ensemblistes, bien connus
de

ceux

qui

ont

pratiqus

les

maths

modernes

ds

leur

plus

jeune

ge...

Entrent alors en jeu les notions de bijection, interjection, surjection...

Attention ! Des relations diffrentes entre mmes entits peuvent possder des cardinalits diffrentes; c'est
mme souvent le cas.

Exemple :

La

relation

loue

La

relation

rside

est
est

de
de

type
type

n:m.
1:n.

La relation possde est de type n:m.

2.5. Clef d'une entit (la base de la relation)


C'est un attribut (ou un ensemble d'attributs) qui permet (tent) de distinguer un lment de l'entit de manire
unique et sans aucune ambigut par rapport l'ensemble des autres lments, et l'univers de tous les
lments qui peuvent entrer un jour ou l'autre dans cette entit.
Par exemple la clef de l'entit "tre humain" pourrait tre le nom. Mais comme le cas d'homonymie est assez
frquent, surtout lorsque l'on manipule des fichiers volumineux, alors cet attribut constitue une mauvaise clef
en gnral.
En revanche, il n'est pas impossible que la clef d'une entit soit compose de plusieurs attributs. Par exemple,
la clef de l'entit "tre humain" pourrait tre le nom et le prnom. Cependant il n'est toujours pas impossible
d'avoir deux perosnnes dont le nom et le prnom soient identiques...
On note qu'un attribut est une clef en le soulignant dans le schma entit association. Si c'est une clef
compose, alors plusieurs entits seront soulignes.

Exemple :

On voit ici que dans le cas de l'entit "appartement" tous les attributs sont utiliss pour composer la clef. Cette
clef naturelle n'tant pas pratique, il est plus judicieux de crer un nouvel attribut qui servira expressment de
clef l'association.
Pour l'entit "tre humain, on pourrait se servir du numro de scurit sociale (plus exactement du numro
INSEE) , comme clef de l'entit. En revanche, pour ce qui est de l'entit "appartement" il est conseill de crer
un nouvel attribut clef qui serait, par exemple, un numro.

Exemple :

Pour une entit de type Voiture il pourrait tre fait usage de l'immatriculation du vhicule comme clef de
l'entit.

MAIS... lisez attentivement ce qui suit !


2.5.1. Discussion sur la qualit d'une clef
De manire gnrale il convient de limiter les clefs composes. Chaque fois que l'on aura le choix entre la
cration d'une clef numrique, et une clef naturelle mais compose, il sera prfrable de crer une
clef

numrique,

de

trs

rares

exceptions

prs.

En effet les SGBDR sont plus l'aise lorsqu'ils ont manipuler des clefs purement numrique. De plus une
clef

est

un

concept

purement

informatique.

Par exemple le n de scurit sociale est une mauvaise clef en gnrale : un individu tranger qui arrive sur le
sol franais est dot d'une immatriculation provisoire et ne connat son numro dfinitif que plusieurs mois
aprs

avoir

rempli

les

conditions

requises

par

l'administration.

Par exemple l'immatriculation d'un vhicule est une mauvaise clef : en effet, du fait de la fiscalit sur les
vhicules moteur (et en particulier les vignettes), les socits n'hsitent pas faire immatriculer leur parc de
vhicules dans le dpartement o les taxes sont les moins leves (le 51). Cette immatriculation peut donc tre
amene

changer.

Or toute clef volutive est un danger pour le systme informatique : si la valeur de la clef change, nous verrons
qu'il faut la modifier dans tous les fichiers dans laquelle elle est rfrence. Il est vrai que certains SGBDR
autorise automatiquement ce genre de manuvre, mais cette automatisation trs contraignante pnalise
lourdement

le

fonctionnement

du

SGBDR.

On veillera donc prendre une clef totalement indpendante des attributs ordinaires de l'entit.
De plus une clef a intrt tre la plus courte possible afin que son stockage soit limit quelques octets dans
les fichiers et donc le temps de recherche le plus rapide possible.
Le plus simple consiste donc introduire dans le descriptif de l'entit une clef strictement informatique qui
se rsumera en gnral un numro (entier long) que l'on pourra incrmenter automatiquement.
Parfois, il arrive qu'une clef ait t cre spcifiquement pour les besoins des systmes informatiques. C'est en
particulier le cas des indicatifs tlphoniques (33 pour la France) ou des code de pays (F pour France). Dans ce
dernier cas on devra alors utiliser la clef commune, comme clef de l'entit.

2.5.2. La technique de la double clef


Une technique prouve consiste introduire une double clef dans toutes les tables : la clef informatique et
une

clef

utilisateur

La clef informatique est l'index primaire de la table et doit possder les caractristiques suivantes :

purement numrique (par exemple un entier long)

unique bien entendu

obligatoire

sans mise jour en cascade

avec intgrit rfrentielle

gnre automatiquement

invisible pour l'utilisateur

La clef utilisateur doit tre assez souple , c'est dire possder dans la mesure du possible, les
caractristiques suivantes :

Index secondaire unique

Obligatoire

Utiliser un jeu de caractre rduit s'il s'agit d'un format alpha (par exemple les 26
lettres majuscules de l'alphabet et les chiffres de 0 9)

Limit une faible taille (16/32 octets - 16 caractres maximum)

La prsentation des donnes devant toujours s'effectuer suivant l'ordre tablis par la clef utilisateur dfaut
d'autre spcification.

3. La forme des liens


La plupart des associations sont de nature binaire, c'est dire composes de deux entits mise en relation par
une

ou

plusieurs

associations.

C'est le cas par exemple de l'association "est propritaire" mettant en relation "tre humain" et "appartement".
Cependant il arrive qu'une association concerne plus de deux entits (on dit alors qu'il s'agit d'association "naires").

Exemple :

Mais dans ce cas il y a de grandes difficults pour exprimer les cardinalits.


On aura tout intrt essayer de transformer le schma de manire n'obtenir que des associations binaires.

Exemple :

4. Attributs d'associations, pour aller plus loin


Il

arrive

parfois

que

l'on

soit

oblig

de

munir

d'attributs

des

associations.

considrons par exemple, que nous voulons modliser les relations existant entre les entits "client",
"commande" et "article" :

Exemple :

Mais comment dans ce schma introduire l'attribut "quantit" et plus encore l'attribut "rduction" dont on
voudrait

qu'il

puisse

s'appliquer

chacun

des

articles

d'une

commande

de

manire

diffrente

En effet si l'on introduit l'attribut quantit l'entit COMMANDE, chaque ligne de la commande se vera dote de
la

mme

quantit...

D'autre part si l'on introduit l'attribut quantit l'entit ARTICLE alors chacun des article se vera dot de la
mme quantit quelque soit la commande...
La solution est de pourvoir l'association "compose" des attributs "quantit" et "rduction" :

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 chance ou dans la dure (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 possde souvent un seul attribut, mais dans
le cas ou elle possde plusieurs attributs (anne, 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".

. De la thorie la pratique
Ce que nous venons de voir concerne l'analyse conceptuelle des donnes, c'est dire un niveau d'analyse qui
s'affranchi de toutes les contraintes de la base de donnes sur lequel va reposer l'application. Une fois dcrit
sous forme graphique, ce modle est couramment appel MCD pour "Modle Conceptuel des Donnes".

Ds lors, tout MCD peut tre tansform en un MPD ("Modle Physique des Donnes") c'est dire un modle
directement exploitable par la base de donnes que vous voulez utiliser...
Tout l'intrt de cet outil d'analyse est de permettre de modliser plus aisment les relations existant entre les
entits et d'automatiser le passage du schma muni d'attributs aux tables de la base de donnes pourvues de
leurs champs.
Voici maintenant les rgles de base ncessaire une bonne automatisation du passage du MCD au MPD :

5.1. Transformation des entits (passer de l'entit la table)


Rgle n1 : toute entit doit tre reprsente par une table.

5.1.1. Relation de type 1:1 (la voix de la simplicit)


Rgle n2 : Dans le cas d'entits relies par des associations de type 1:1, les tables doivent avoir la
mme clef.

Exemple :

NOTA : on aurait pu choisir l'autre clef comme clef commune, savoir le n d'appartement.
Bien que certains systmes proposent une autre solution :

Dans ce cas une tude approfondie de la solution adopter est ncessaire, mais ce type de relation est en
gnral assez rare et peu performante...

5.1.2. Relation de type 1:n (matre et esclave)


Rgle n3 : Dans le cas d'entits relies par des associations de type 1:n, chaque table possde sa
propre clef, mais la clef de l'entit ct 0,n (ou 1,n) migre vers la table ct 0,1 (ou 1,1) et devient
une clef trangre (index secondaire).

Exemple :

5.1.3. Relation de type n:m (plusieurs plusieurs)


Rgle n4 : Dans le cas d'entits relies par des associations de type n:m, une table intermdiaire
dite table de jointure, doit tre cre, et doit possder comme clef primaire une conjonction des
clefs primaires des deux tables pour lesquelles elle sert de jointure.

Exemple :

5.2. Ou placer les attributs d'association ?

Rgle n5 : Cas des associations pourvues d'au moins un attribut :

si le type de relation est n:m, alors les attributs de l'association deviennent des
attributs de la table de jointure.

si le type de relation est 1:n, il convient de faire glisser les attributs vers l'entits
pourvue des cardinalits 1:1.

si le type de relation est 1:1, il convient de faire glisser les attributs vers l'une ou
l'autre des entits.

Pour synthtiser toutes ces rgles, voici un exemple de modlisation d'une application. En l'occurrence il s'agit
d'un service commercial dsirant modliser les commandes de ses clients.

Exemple :

6. Conseils divers ( ... et gnreux pour aller plus loin)


6.1. Gnralisation (hritage) (ramifier les espces)
Dans le schma ci-dessous, les entits "Personne physique" (des tres humains) et "Personne morale" (des
socits,

associations,

collectivits,

organisations)

sont

gnralises

dans

l'entit

"Propritaire".

On dit aussi que l'entit "Propritaire" est une entit parente et que les entits "Personne morale" et "Personne
physique" sont des entits enfants, car il y a une notion d'hritage...

Exemple :

Par exemple une entit "Etre humain" est une gnralisation pour toute entit faisant appel une personne,
comme

les

entits

"Etudiant",

"Client",

"Artiste",

"Souscripteur",

"Patient",

"Assujetti"...

On les appelle aussi "entits-gnriques".


Certains ateliers de modlisation reprsentant les donnes sous la forme d'entits encapsuls .

Exemple :

6.2. Personnalisation (ou les sous-modles)


Une personnalisation est un regroupement dans une super entit de plusieurs entits munies d'une ou de
plusieurs associations.
Par exemple, une compagnie d'aviation proposant des vols peut modliser le planning des pilotes par le schma
suivant :

6.3. Regroupement d'entits (un truc connatre pour viter la redondance)


Comme toute technique, le schma entit-association possde des limites et des contraintes que seuls
l'exprience et le bon sens peuvent permettre d'liminer.
Il arrive parfois que certaines entits apparaissent comme redondantes. Dans ce cas, et pour gagner de la place
en matire de stockage de l'information, il convient de regrouper ces entits dans une seule et mme table du
SGBDR en ajoutant un champ supplmentaire cette table de manire permettre de distinguer les entits du
schma thorique.
Par exemple si l'on dsire modliser une gestion de compact-disc on peut crer une entit "Compositeur" et une
entit "Interprte". Mais on constate qu'une grande majorit de compositeurs sont leurs propres interprtes, ce
qui signifie qu'une mme personne peut se trouver prsente dans les deux entits. Pour rsoudre ce problme il
suffit de construire une seule table pour les deux entits (par exemple une table "MUSICIEN") et d'y ajouter un
champ permettant de distinguer le type de "musicien" : compositeur ou interprte ou les deux.

7. Exemples de MCD pour mieux comprendre


7.1. Agence de location de films vido

Lors de la ralisation de la base de donnes, les entits RALISATEUR et ACTEUR peuvent tre regroupes en
une seule table car il y a un nombre non ngligeable de ralisateurs qui sont acteurs, et vice-versa. Dans ce
cas, un champ d'un seul caractre permettra de faire la diffrence entre un ralisateur pur, un acteur pur et un
acteur

ralisateur.

Notez aussi les cardinalits entre les entits ACTEUR et FILM, en effet, un film d'animation ne possde aucun
acteur.
Dans l'entit EXEMPLAIRE figure un attribut "dispo" permettant de savoir si l'exemplaire nX d'un film est
disponible ou en cours d'emprunt.

7.2. Location d'appartements pour une agence immobilire

NOTA : pour simplifier l'criture, ne figurent dans ce schma que les attributs clefs ou les attributs
d'associations.

8. Divers
8.1. Bibliographie

La mthode MERISE, principes et outils (Tome 1 & 2) - TARDIEU, ROCHFELD, COLLETTI - Les
ditions d'organisation 1986

Conception de bases de donnes : du schma conceptuel au schma physique - GALACSI Dunod 1989

Modlisation dans la conception des systmes d'information - ACSIOME - Masson 1990

Apprendre et pratiquer MERISE - J. GABAY - Masson 1993

Matriser les bases de donnes - Georges GARDARIN - Eyrolles 1993

Concepts fondamentaux de l'informatique - Alfred AHO, Jeffrey ULLMAN - Dunod 1993

Bases de Donnes et Modles de Calcul - Outils et Mthodes pour l'Utilisateur - Jean-Luc


HAINAUT - InterEditions 1994

MERISE, vers une modlisation oriente objet - Jos MOREJON - Les Editions d'Organisation
1994

AMC*Designor, mise en uvre de MERISE - Gilles GUEDJ - Eyrolles 1996

Introduction aux bases de donnes, 6e dition- Chris J. DATE - Thomson International


Publishing 1998

De UML SQL - Christian SOUTOU - Eyrolles 2002

8.2. Outils de modlisation


DataBase Design Studio de Chili Source Software

http://www.chillisource.com/

DeZign for DataBases de Datanamic

http://www.datanamic.com/

ERWin de Computer Associates

http://www3.ca.com/Solutions/Product.asp?ID=260

Mega Suite de Mega International

http://www.mega.com/

PowerDesigner de PowerSoft (ex AMC*Designor)

http://www.sybase.com/products/enterprisemodeling/powe
rdesigner

RoboCase de DB Logic Inc

http://www.dblogic.com/

Visible Analyst de Visible Systems Corporation

http://www.visible.com/Products/Analyst/overview.html

Win'Design de Cecima

http://www.win-design.com/fr/index.htm

xCase de Resolution

http://www.xcase.co.il/

DataArchitect de theKOMPANYcom

http://www.thekompany.com/products/dataarchitect/

Rational Rose de Rational Software

http://www.rational.com/

Studio 2 de CaseStudio

http://www.casestudio.com

ER Studio de Embarcadero

http://www.embarcadero.com/

Visio de Microsoft (ex infomodeler de Synactics)

http://www.microsoft.com/office/visio/

Silverrun de Magna solutions

http://www.silverrun.com/

System Architect de Popkin

http://www.popkin.com/products/sa2001/systemarchitect.h
tm

Designer 2000 d'Oracle (mono base)

http://www.oracle.com/ (???)

Casewise

http://www.casewise.com/

QuickUML de Excel (Linux et Windows) de Excel Software

http://excelsoftware.com/quickumllinuxnews100.html

MacA&D / WinA&D de Excel Software

http://excelsoftware.com/richdatamodel.html

Select d'Aonix

http://www.aonix.com/

S-ar putea să vă placă și