Vous êtes sur la page 1sur 534

Conception

de bases
de donnes avec

UML

Presses de LUniversit dU QUbec


Le delta i, 2875, boulevard Laurier, bureau 450
Qubec (Qubec) G1v 2M2
tlphone : 418-657-4399 tlcopieur : 418-657-2096
courriel : puq@puq.ca internet : www.puq.ca
diffusion / distribution :
CANADA et autres pays

Prologue inc.
1650, boulevard Lionel-bertrand
boisbriand (Qubec) J7H 1n7
tlphone : 450-434-0306 / 1 800 363-2864
FRANCE
AFPu-diFFuSion
SodiS

BElgIqUE
PAtrimoine SPrl
168, rue du noyer
1030 bruxelles
belgique

SUISSE
ServidiS SA
chemin des chalets
1279 chavannes-de-bogis
suisse

La Loi sur le droit dauteur interdit la reproduction des uvres sans autorisation des
titulaires de droits. Or, la photocopie non autorise le photocopillage sest gnralise,
provoquant une baisse des ventes de livres et compromettant la rdaction et la production
de nouveaux ouvrages par des professionnels. Lobjet du logo apparaissant ci-contre
est dalerter le lecteur sur la menace que reprsente pour lavenir de lcrit le dveloppement
massif du photocopillage .

Conception
de bases
de donnes avec

UML
Gilles Roy

2009
Presses de lUniversit du Qubec
Le Delta I, 2875, boul. Laurier, bur. 450
Qubec (Qubec) Canada G1V 2M2

Catalogage avant publication de Bibliothque


et Archives nationales du Qubec et Bibliothque et Archives Canada
roy, Gilles, 1951conception de bases de donnes avec UML
comprend des rf. bibliogr. et un index.
isbn 978-2-7605-1500-0
1. bases de donnes - conception. 2. UML (informatique). 3. Modles
entit-association. 4. bases de donnes relationnelles. 5. structures de donnes
(informatique). i. titre.
QA76.9.d26r69 2007

005.74

c2007-940915-6

nous reconnaissons laide financire du gouvernement du canada


par lentremise du Programme daide au dveloppement
de lindustrie de ldition (PAdie) pour nos activits ddition.
La publication de cet ouvrage a t rendue possible
grce laide financire de la socit de dveloppement
des entreprises culturelles (sOdec).

Mise en pages : i nFoScAn c ollette-Qubec


couverture : r ichArd hodgSon

1 2 3 4 5 6 7 8 9 PUQ 2009 9 8 7 6 5 4 3 2 1
Tous droits de reproduction, de traduction et dadaptation rservs
2007 Presses de lUniversit du Qubec
dpt lgal 3 e trimestre 2007
bibliothque et Archives nationales du Qubec / bibliothque et Archives canada
imprim au canada

Table des matires


RemeRciements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

XIII

AvAnt-pRopos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.qui.sadresse.cet.ouvrage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Autres.ouvrages.relatifs.au.sujet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Guide.de.lecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modlisation.et.conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lapproche.du.livre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Outils.sur.le.march. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Conventions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

XV
XVI
XVI
XVIII
XVIII
XVIII
XIX
XIX

intRoduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Applications.des.bases.de.donnes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le.commerce.lectronique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les.affaires.lectroniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La.gestion.lectronique.des.documents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le.support..la.dcision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Notions.fondamentales.en.matire.de.gestion.de.donnes.. . . . . . . . . . . . . . . .
Donne.et.information. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1
3
3
3
4
5
6
6

VIII

Conception de bases de donnes avec UML

Caractristiques.des.systmes.de.gestion.de.bases.de.donnes.(SGBD). . . . . .
Indpendance.entre.les.donnes.et.les.applications. . . . . . . . . . . . . . . . . . .
Contrle.centralis.des.donnes.pour.viter.toute.redondance. . . . . . . . . .
Partage.des.donnes.et.accs.concurrents . . . . . . . . . . . . . . . . . . . . . . . . . .
Gestion.de.la.cohrence.et.de.lintgrit.des.donnes. . . . . . . . . . . . . . . . .
Description.des.donnes.stockes.sous.forme.de.mtadonnes. . . . . . . . . .
Gestion.de.la.scurit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Origine.et.volution.des.SGBD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les.systmes.bass.sur.des.fichiers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les.bases.de.donnes.hirarchiques.et.rseaux . . . . . . . . . . . . . . . . . . . . . .
Les.bases.de.donnes.relationnelles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les.bases.de.donnes.orientes.objets.et.les.autres . . . . . . . . . . . . . . . . . . .
Environnement.de.bases.de.donnes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les.niveaux.dabstraction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le.niveau.externe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le.niveau.interne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le.niveau.conceptuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Langages.de.bases.de.donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Architecture.des.SGBD.multiutilisateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8
8
9
9
9
11
11
12
12
14
15
16
17
18
18
18
19
19
22

Chapitre 1
Le modLe conceptueL de donnes. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Concepts.de.base.du.formalisme.entit-association . . . . . . . . . . . . . . . . . . . . . .
Entit,.attribut.et.association. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Contraintes.sur.les.attributs.et.les.associations. . . . . . . . . . . . . . . . . . . . . . . .
Contraintes.de.domaine.des.attributs .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .
Dpendance.fonctionnelle.des.attributs..lidentifiant. . . . . . . . . . . . . . . . . .
Choisir.les.entits,.les.associations.et.les.attributs . . . . . . . . . . . . . . . . . . . . . . .
Principes.suggrs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comment.choisir.les.donnes..modliser.?. . . . . . . . . . . . . . . . . . . . . . . . .
Comment.faire.la.diffrence.entre.un.attribut.et.une.entit.?. . . . . . . . . . .
Quelles.sont.les.erreurs.communes..viter.?. . . . . . . . . . . . . . . . . . . . . . . .
Comment.nommer.une.entit,.un.attribut.ou.une.association.?.. . . . . . . .
Concepts.avancs.du.formalisme.entit-association. . . . . . . . . . . . . . . . . . . . . .
Associations.de.degr.suprieur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dcomposition.des.associations.de.degr.suprieur. . . . . . . . . . . . . . . . . . .
Associations.spcialises. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

29
31
32
35
39
42
55
55
55
56
61
66
67
67
72
81

Table des matires

La.composition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lhritage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Contraintes.entre.les.associations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Contrainte.de.partition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Contrainte.dexclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Contrainte.dinclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Contrainte.de.simultanit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Contrainte.de.partition.sur.une.association.dhritage. . . . . . . . . . . . . . . .
Contrainte.dexclusion.sur.une.association.dhritage. . . . . . . . . . . . . . . . .
Contrainte.de.totalit.sur.une.association.dhritage. . . . . . . . . . . . . . . . . .
Cas.avancs.de.modlisation.conceptuelle.des.donnes. . . . . . . . . . . . . . . . . . .
Recherche.des.structures.de.donnes.dans.un.document. . . . . . . . . . . . . . . .
volution.des.notations.pour.la.modlisation.conceptuelle.des.donnes. . . . .
Notation.de.Chen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Notation.de.Merise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Notation.UML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La.prochaine.tape. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Avant.de.franchir.cette.tape.:.assurer.la.validation.du.MCD. . . . . . . . . . . . . . .
Exercices.de.modlisation.conceptuelle.des.donnes. . . . . . . . . . . . . . . . . . . . .
Solution.des.exercices.de.modlisation.conceptuelle.des.donnes. . . . . . . . . . .
Chapitre 2
Le modLe Logique de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Origine.et.terminologie.de.lapproche.relationnelle. . . . . . . . . . . . . . . . . . . . . .
Un.peu.dhistoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les.fondements.thoriques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Terminologie.de.lapproche.relationnelle. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le.modle.relationnel.de.donnes.:..
une.reprsentation.graphique.du.schma.de.la.BD. . . . . . . . . . . . . . . . . . . . . . .
Notation.UML.et.modle.relationnel.de.donnes. . . . . . . . . . . . . . . . . . . . . .
Rgles.de.drivation.des.relations..partir.dun.modle..
conceptuel.de.donnes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le.cas.des.entits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Drivation..partir.dune.entit.dassociation . . . . . . . . . . . . . . . . . . . . . . .
Drivation..partir.des.entits.dune.composition. . . . . . . . . . . . . . . . . . . .
Les.associations.binaires. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Association.binaire.un..un . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

IX
81
83
86
87
87
88
89
89
91
91
92
92
115
115
118
121
122
123
125
133
143
144
144
145
146
150
151
153
153
153
156
158
159

Conception de bases de donnes avec UML

Association.binaire.un..plusieurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Association.binaire.plusieurs..plusieurs . . . . . . . . . . . . . . . . . . . . . . . . . . .
Priorit.dapplication.des.rgles.de.drivation . . . . . . . . . . . . . . . . . . . . . . .
Association.rflexive. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les.associations.de.degr.suprieur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lassociation.dhritage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les.contraintes.inter-associations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cas.de.modlisation.logique.des.donnes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modle.relationnel.de.donnes.normalis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Optimisation.du.modle.relationnel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Association.binaire.avec.multiplicits.1 . .1..1 . .1.. . . . . . . . . . . . . . . . . . . . . . .
Association.binaire.avec.multiplicits.0 . .1..1 . .1 . . . . . . . . . . . . . . . . . . . . . . .
Simplification.des.cls.primaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Utilisation.dune.cl.primaire.simple.avec.gnration.automatique..
de.valeurs.squentielles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table.drive.dune.association.plusieurs..plusieurs..
ou.dune.association.de.degr.suprieur. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table.dont.la.cl.primaire.simple.est.de.type.texte. . . . . . . . . . . . . . . . . . .
Consquences.de.lapplication.des.techniques.doptimisation. . . . . . . . . . . . .
Validation.du.modle.relationnel.de.donnes. . . . . . . . . . . . . . . . . . . . . . . . .
Exercices.de.modlisation.logique.des.donnes. . . . . . . . . . . . . . . . . . . . . . . .
Solutions.des.exercices.de.modlisation.logique.des.donnes. . . . . . . . . . . . .

161
161
163
164
168
172
175
175
210
213
214
215
221

222
224
225
226
227
228

Chapitre 3
Le modLe physique de donnes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SQL.comme.langage.de.dfinition.de.donnes. . . . . . . . . . . . . . . . . . . . . . . . . .
Cration.de.tables.avec.SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table.avec.cl.primaire.simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table.avec.cl.primaire.compose. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table.avec.cl.trangre.compose. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Syntaxe.formelle.de.linstruction.CREATE.TABLE. . . . . . . . . . . . . . . . . . . . . .
Cl.primaire.simple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cl.trangre.simple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cl.secondaire.compose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cl.trangre.compose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Contraintes.gnrales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Contraintes.gnrales.de.type.1.ou.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

239
240
242
242
252
254
256
258
259
260
260
260
261

221

Table des matires

Syntaxe.formelle.de.linstruction.ALTER.TABLE . . . . . . . . . . . . . . . . . . . . . . .
Syntaxe.formelle.de.linstruction.CREATE.INDEX . . . . . . . . . . . . . . . . . . . . .
Ralisation.du.modle.physique.en.SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ralisation.du.modle.physique.en.SQL.avec.MS.Access. . . . . . . . . . . . . . . . . .
Ralisation.limite.du.modle.physique.sans.faire.appel..SQL. . . . . . . . . . . . .
Temps.1.:.Cration.de.chaque.table.en.mode.Cration.de.table . . . . . . . . . .
Temps.2.:.Liaison.des.cls.trangres.aux.cls.primaires..
des.tables.rfrences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Validation.du.modle.physique.de.donnes. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercices.de.modlisation.physique.des.donnes. . . . . . . . . . . . . . . . . . . . . . . .
Solutions.des.exercices.de.modlisation.physique.des.donnes. . . . . . . . . . . . .
Chapitre 4
AnALyse, conception et RALisAtion
dune AppLicAtion de bAse de donnes . . . . . . . . . . . . . . . . . . . . . . . .
Lanalyse.des.besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le.recensement.des.donnes.persistantes. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Une.approche.descendante.:.le.modle.de.fonctionnement..
du.systme.dinformation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le.ct.graphique.dun.diagramme.de.cas.dutilisation. . . . . . . . . . . . . . . .
Difficults.rencontres.dans.la.ralisation.du.modle..
de.fonctionnement.dun.systme.dinformation. . . . . . . . . . . . . . . . . . . . .
Inventaire.des.documents.exploits.dans.le.systme.dinformation.
et.recensement.des.donnes.persistantes. . . . . . . . . . . . . . . . . . . . . . . . . . .
Une.approche.ascendante.:.le.modle.de.fonctionnement.de.lapplication. . . .
Difficults.rencontres.dans.la.ralisation.du.modle..
de.fonctionnement.dune.application . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La.nature.des.similitudes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La.nature.des.diffrences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ralisation.du.modle.conceptuel.de.donnes.sur.la.base..
du.recensement.des.donnes.persistantes . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La.phase.de.conception.et.de.ralisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les.tapes.de.la.phase.de.conception.et.de.ralisation . . . . . . . . . . . . . . . . . .
Excercices.danalyse.de.besoins.et.de.conception.dune.application..
de.base.de.donnes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

XI
264
266
267
296
305
306
310
313
315
316

347
349
351
353
354
359
376
397
399
421
421
422
432
433
440

XII

Conception de bases de donnes avec UML

Chapitre 5
outiLs de gnRAtion AutomAtique des modLes. . . . . . . . . . . . . .
PowerAMC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dmarrage.et.fixation.des.paramtres.de.PowerAMC . . . . . . . . . . . . . . . . . . .
Cration.dun.modle.conceptuel.de.donnes.avec.PowerAMC. . . . . . . . . . .
Cration.dune.entit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cration.dune.association.binaire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cration.dune.association.dhritage.ou.de.composition. . . . . . . . . . . . . .
Cration.dune.association.de.degr.suprieur. . . . . . . . . . . . . . . . . . . . . . .
Gnration.dun.modle.logique.de.donnes.avec.PowerAMC. . . . . . . . . . . .
Ajustements.mineurs.au.modle.logique. . . . . . . . . . . . . . . . . . . . . . . . . . .
Ajustements.majeurs.au.modle.logique . . . . . . . . . . . . . . . . . . . . . . . . . . .
Gnration.du.modle.physique.et.cration.de.la.BD. . . . . . . . . . . . . . . . . . .
Cration.des.tables.et.des.index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cration.des.contraintes.dintgrit.rfrentielle. . . . . . . . . . . . . . . . . . . . .
Le.bilan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WinDesign. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ralisation.dun.modle.conceptuel.de.donnes.avec.WinDesign. . . . . . . . .
Cration.dune.entit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cration.dune.association.binaire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cration.dune.association.dhritage.ou.de.composition. . . . . . . . . . . . . .
Cration.dune.association.de.degr.suprieur. . . . . . . . . . . . . . . . . . . . . . .
Gnration.dun.modle.logique.de.donnes.avec.WinDesign . . . . . . . . . . .
Ajustements.mineurs.au.modle.logique. . . . . . . . . . . . . . . . . . . . . . . . . . .
Gnration.du.modle.physique.et.cration.de.la.BD. . . . . . . . . . . . . . . . . . .
Le.bilan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
En.guise.de.conclusion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

447
448
449
450
454
458
460
461
464
467
471
474
474
476
478
479
480
487
490
492
493
495
498
500
502
502

RfRences. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

505

index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

507

Remerciements
Merci.tout.dabord..mes.amis.et.collgues.de.lUniversit.du.Qubec..
Rimouski.(UQAR),.Campus.de.Lvis,.qui.ont.notamment.collabor..sa.
relecture.et.fait.des.suggestions.toujours.pertinentes ...Didier.Urli.pour.
des.discussions.fructueuses.portant.sur.les.processus.de.conception.des.
systmes. dinformation,. les. approches. de. modlisation. des. donnes. et.
les. dfis. que. posent. lenseignement. des. techniques. et. mthodes.
sous-jacentes .
Merci. . Daniel. Pascot. de. lUniversit. Laval,. expert. de. renomme.
internationale.en.matire.de.modlisation.de.donnes,.pour.sa.banque.
de.cas.de.modlisation.raliss.avec.la.notation.Merise.dans.le.contexte.
de.la.mthode.Datarun ..Certaines.tudes.de.cas.labores.par.M ..Pascot.
et.ses.collaborateurs.nous.ont.servi.dinspiration.pour.produire.de.nouvelles.tudes.de.cas.et.des.exercices.qui.mettent.en.valeur.la.puissance.
dexpression. de. la. notation. UML. pour. la. modlisation. des. donnes. et.
lanalyse.des.besoins ..Ces.tudes.de.cas.portent.la.mention.DP.(Daniel.
Pascot) .
Un.merci.bien.particulier..mes.tudiantes.et..mes.tudiants.qui.
ont.t.appels..faire.les.tudes.de.cas.et..raliser.les.exercices ..Leurs.
commentaires.mont.permis.de.combler.quelques.lacunes.et.de.corriger.
les.erreurs.qui.sy.taient.glisses .

Avant-propos
Cet. ouvrage. est. le. fruit. de. mon. exprience. dans. lenseignement. de. la.
conception.des.bases.de.donnes.et.notamment.de.la.modlisation.des.
donnes. depuis. bientt. une. vingtaine. dannes .. Il. est. laboutissement.
dune. longue. rflexion. sur. lapproche. la. plus. approprie. pour. assurer.
linitiation. . une. discipline. qui. de. lavis. de. plusieurs. est. presque. aussi.
ardue.que.lapprentissage.des.mathmatiques .
Lanalogie.avec.les.mathmatiques.nest.pas.dnue.de.pertinence ..
La.modlisation,.tout.comme.les.mathmatiques,.tente.de.formuler.une.
reprsentation.du.monde.rel..un.trs.haut.niveau.dabstraction,.particulirement.sur.le.plan.smantique ..Le.non.initi.est.confront..deux.
grandes.difficults.lorsquil.sagit.de.formuler.un.modle.de.donnes.:.la.
comprhension. du. problme. ou. du. domaine. tudi. dune. part. et. la.
matrise.du.langage.graphique.(qui.sexprime..laide.dun.formalisme.et.
dune.notation).permettant.de.formuler.une.reprsentation.du.problme.
et.du.domaine ..
Cette.reprsentation,.dabord.ramene..lessentiel.puis.enrichie.de.
manire.incrmentielle,.devrait.tenir.lieu.de.rfrence.pour.une.comprhension.commune.du.domaine.entre.les.acteurs.impliqus.dans.un.projet.
de.ralisation.dune.base.de.donnes.et.des.applications.qui.lexploitent,.
quils.soient.utilisateurs,.concepteurs.ou.administrateurs.de.celles-ci .

XVI

Conception de bases de donnes avec UML

La.thse.que.sous-tend.cet.ouvrage.est.que.leffort.didactique.est.trop.
souvent.mis.en.aval.de.la.dmarche.de.conception.et.de.ralisation.des.bases.
de.donnes.(modle.relationnel,.algbre.relationnelle,.normalisation,.langage.
SQL,.etc .).au.dtriment.de.la.modlisation.conceptuelle.des.donnes..lorigine.de.tout.projet.de.conception.de.base.de.donnes ..Un.modle.conceptuel.
de.donnes,.sil.est.ralis.suivant.des.rgles.de.construction.et.de.validation.
prcises.et.bien.comprises,.peut.facilement.conduire,.avec.un.outil.appropri,.
au. schma. physique. de. la. base. de. donnes. rpondant. totalement. aux.
.exigences.du.modle .
Cest.la.raison.pour.laquelle.nous.consacrons.par.ailleurs.un.chapitre.
entier. au. choix. et. . lutilisation. des. outils. qui. permettent. cette. transition.
directe. par. la. gnration. de. scripts .. De. plus,. de. manire. . valider. conceptuellement.la.dmarche.propose,.nous.lillustrons.par.des.exemples.concrets.
danalyse,.de.conception.et.de.ralisation.dune.base.de.donnes.mettant.en.
lumire.la.ralisation.incrmentielle.de.lapplication .

qui sAdResse ceT ouvRAge


Louvrage.sadresse..toute.personne.qui.souhaite.tre.initie..la.modlisation.
des.donnes.et..la.conception.des.bases.de.donnes..travers.un.processus.
rigoureux.valorisant.les.activits.en.amont ..
Les.tudiants,.dont.cest.le.premier.cours.sur.la.conception.des.bases.de.
donnes,.y.trouveront.des.rgles.et.des.astuces.permettant.de.produire.de.
bons.modles.conceptuels.de.donnes,.ainsi.que.de.nombreux.exemples.
illustrant.ces.rgles .
Les.familiers.de.la.modlisation.conceptuelle.des.donnes.qui.souhaitent.
dcouvrir.comment.la.notation.UML.permet.de.supporter.le.formalisme.
entit-association. avec. une. capacit. de. reprsentation. comparable. .
Merise/2.et.suprieure.aux.diagrammes.de.Chen .
Les.adeptes.de.la.pro-ingnierie.(forward engineering).y.trouveront.une.dmonstration.patente.de.lapplication.de.ce.principe..la.conception.des.bases.de.
donnes..laide.de.certains.outils.particulirement.efficaces .

AuTRes ouvRAges RelATifs Au sujeT


Sil. est. vrai. quil. existe. de. nombreux. ouvrages. en. franais. qui. traitent. des.
systmes.de.gestion.de.bases.de.donnes,.particulirement.sur.les.bases.de.
donnes.relationnelles,.bien.peu.dentre.eux.consacrent.une.part.importante.

Avant-propos

XVII

aux. aspects. mthodologiques,. notamment. . lanalyse. des. besoins. et. . la.


conception. des. bases. de. donnes,. ainsi. quaux. divers. niveaux. de. modles.
de.donnes.proposs.notamment.par.lAmerican.National.Standards.Institute.
(ANSI) .
Ladaptation.en.franais.des.ditions.rcentes.des.ouvrages.amricains.
Conception et architecture des bases de donnes,.de.Ramez.Elmasri.et.Shamkant.
Navathe.[RamN.04].et.Systmes de bases de donnes,.de.Thomas.Connolly.et.
Carolyn.Begg.[ConB.05].a.donn.aux.lecteurs.francophones.deux.excellents.
ouvrages..caractre.didactique.sur.la.conception.des.bases.de.donnes .
Le.premier.ne.consacre.quun.seul.chapitre.aux.aspects.mthodologiques.
o.il.propose.une.dmarche.de.conception.base.sur.les.trois.niveaux.dabstraction.des.modles.de.donnes ..Il.introduit.la.notation.UML.mais.le.formalisme.
entit-association. ny. est. pas. trait .. On. y. voque. brivement. lexistence.
doutils. de. modlisation,. dont. le. Data. Modeler. de. Rational,. dans. le. seul.
contexte.de.la.ralisation.dun.modle.logique.de.donnes .
Le.deuxime.ouvrage.consacre.plus.despace.aux.techniques.danalyse.
et.de.conception,.au.formalisme.entit-association,..la.notation.UML.et.aux.
cas.dutilisation.pour.la.dfinition.des.besoins.en.matire.de.systme.dinformation ..Bien.que.les.auteurs.voquent.lexistence.de.piges.lors.de.llaboration.dun.modle.conceptuel,.qui.puissent.conduire..des.modles.incorrects.
ou.incomplets,.ils.ne.proposent.pas.de.rgles.prcises.ou.dastuces.permettant.
aux.dbutants.dviter.de.tels.cueils ..On.ny.traite.pas.des.outils.de.modlisation.disponibles.sur.le.march .
Ct. qubcois. un. troisime. ouvrage. sest. impos. lui. aussi. par. son.
caractre. didactique.:. Systme de gestion de bases de donnes par lexemple. de.
Robert. Godin. [GOD. 03] .. Il. offre. certaines. similitudes. avec. louvrage. de.
Connolly.et.Begg ..Comme.ce.dernier.il.introduit.la.notation.UML.pour.la.
construction.de.modle.conceptuel.et.de.modle.logique.de.donnes.ainsi.
que. llaboration. des. cas. dutilisation .. Louvrage. comporte. de. nombreux.
exemples.mais.nintroduit.aucune.rgle.pour.faciliter.au.dbutant.la.matrise.
du.formalisme.entit-association ..Un.seul.outil.de.modlisation.est.voqu,.
soit.ERD.de.Oracle.Designer,.pour.la.construction.de.modles.conceptuels .
Ct. franais,. De UML SQL : Conception de bases de donnes. crit. par.
Christian.Soutou.[SOU.02].fut.notre.source.principale.dinspiration.pour.la.
rdaction.de.cet.ouvrage ..Notamment.pour.tablir.sa.facture ..Chaque.chapitre.
traite.dun.niveau.particulier.de.modle.de.donnes.(conceptuel,.logique.et.
physique).fidle.en.cela.avec.la.mthode.Merise/2 ..Les.rgles.de.passage.dun.
modle..lautre.y.sont.traites.abondamment.et.un.chapitre.entier.est.consacr. . la. comparaison. des. outils. du. march. qui. automatisent. le. passage ..
Lauteur. a. cependant. voulu. mettre. en. parallle. la. notation. UML. avec. la.

XVIII

Conception de bases de donnes avec UML

notation.utilise.dans.Merise/2.pour.la.reprsentation.du.modle.conceptuel ..
Cela.est.particulirement.utile.pour.le.modlisateur.qui.est.dj.familier.avec.
lune. des. notations. et. qui. souhaite. comprendre. lautre .. Mais. ceci. pose. une.
difficult.supplmentaire.au.dbutant. qui.ne.possde.ni.la.matrise.du.formalisme. entit-association,. ni. de. lune. des. notations. utilises .. Soutou. ne.
propose.pas.de.processus.danalyse.et.de.conception,.ni.de.rgles.formelles.
pour. llaboration. de. modle. conceptuel .. Par. ailleurs. chaque. chapitre. est.
truff.dastuces.et.de.conseils.personnels.qui.sont.lgamment.mis.en.vidence.
grce.aux.conventions.de.mise.en.page.de.louvrage.dont.nous.apprcions.
la.grande.pertinence.et.le.ct.pratique ..

guide de lecTuRe
Cet.ouvrage.sorganise.en.cinq.chapitres ..Lintroduction.dveloppe.cet.avantpropos ..Les.chapitres.1.et.2.traitent.de.modlisation.des.donnes ..Le.chapitre.3.
est.consacr..la.ralisation.de.la.base.de.donnes..partir.du.modle.logique.
de.donnes ..Le.chapitre.4.propose.une.mthode.systmatique.danalyse.et.
de.conception.dune.application.de.base.de.donnes ..Le.chapitre.5.fait.une.
tude.comparative.des.outils.logiciels.du.march .

Modlisation et conception
lapproche du livre
Notre.approche.de.la.modlisation.est.essentiellement.didactique ..On.expose.
au.chapitre.1.des.rgles.prcises.de.modlisation.conceptuelle.et.des.astuces.
que. le. modlisateur. novice. peut. utiliser. pour. le. guider. dans. ses. choix .. Les.
rgles.sont.illustres.par.de.nombreux.exemples.et.des.tudes.de.cas.adoptant.
la.notation.UML.exclusivement ..Ces.rgles.ont.notamment.pour.objectif.de.
raliser.un.modle.conceptuel.de.donnes.dont.le.modle.relationnel.driv.
est.normalis ..Llaboration.de.ce.modle.de.haut.niveau.est.ainsi.mise.en.
valeur .
. Il. en. va. de. mme. pour. la. drivation. du. modle. relationnel. . partir.
dun.modle.conceptuel.telle.qutudie.au.chapitre.2 ..Des.rgles.de.drivation. prcises. sont. proposes. et. illustres. dexemples. et. dtudes. de. cas .. La.
notation.UML.est.aussi.utilise.pour.la.reprsentation.graphique.du.modle.
relationnel,. assurant. ainsi. une. transition. sans. heurts. vers. la. matrise. des.
concepts. du. modle. relationnel. sans. devoir. faire. appel. aux. arcanes. dune.
autre.notation .

Avant-propos

XIX

La.ralisation.physique.dune.base.de.donnes.est.traite.au.chapitre.3.
en. faisant. appel. au. SGBD. MS. Access,. un. logiciel. bien. adapt. au. dbutant.
qui.possde.les.caractristiques.essentielles.dun.SGBD.relationnel ..Le.chapitre.4.propose.une.dmarche.systmatique.de.ralisation.dapplications.de.
base.de.donnes.sinspirant.des.meilleures.mthodes.dites.orientes objets tout.
en.les.simplifiant.de.manire..ce.quelles.puissent.tre.suivies.par.le.dbutant .. Des. exemples. complets. illustrent. la. mthode .. Chaque. tude. de. cas.
dbute.par.une.analyse.des.besoins.en.matire.de.donnes,..partir.de.laquelle.
ltudiant. est. guid. . travers. les. phases. subsquentes. de. conception. et. de.
ralisation.de.lapplication.avec.MS.Access .

outils sur le march


Le. chapitre. 5. permet. de. voir. comment. deux. outils. du. march. Sybase.
. owerAMC.et.WinDesign.permettent.de.raliser.un.modle.conceptuel.de.
P
donnes,.den.driver.automatiquement.le.modle.relationnel,.doptimiser.
ce.dernier.et.den.tirer.le.script.ncessaire.pour.raliser.le.modle.physique.
tout.en.mettant.en.vidence.la.conformit.de.loutil.aux.rgles.de.modlisation.et.de.drivation.introduites.aux.chapitres.1.et.2 .

convenTions
Cet.ouvrage.souligne.certains.lments.cls,.quils.sagissent.des.objectifs.dun.
chapitre,.dune.dfinition,.dune.rgle,.dune.astuce,.dun.principe.ou.mme.
dune. mise. en. garde .. Le. lecteur. trouvera. en. marge. gauche. un. mot. cl. o.
une.icne.prcisant.la.nature.de.ce.que.lauteur.souhaite.mettre.en.relief.et.
dans.le.corps.du.texte,.lobjet.de.cette.mise.en.vidence .
Lorsquil.sagit.dune.dfinition,.le.terme.dfini.est.rdig.en.gras.et.si.
le. contenu. de. la. dfinition. rfre. . un. autre. terme. dfini. ailleurs. dans.
louvrage,. ce. terme. sera. aussi. imprim. en. gras .. De. plus. une. dfinition. est.
toujours. suivie. du. terme. anglais. quivalent. place. entre. parenthses .. Tous.
les. termes. ainsi. dfinis. se. retrouvent. par. ailleurs. dans. lindex .. Voici. par.
exemple.le.format.dune.dfinition .

Modle de } Un modle est une reprsentation simplifie dune ralit. Un modle de donnes
donnes est une reprsentation abstraite des donnes dun systme dinformation. Cette

reprsentation est gnralement exprime laide dun langage graphique appel

Formalisme (Data model).

introduction
Objectifs
Les principes fondamentaux lis la conception et lutilisation
des bases de donnes.

Comment les systmes de gestion de bases de donnes ont volu


pour permettre une gestion efficace et cohrente des donnes.

Comment les organisations conoivent les bases de donnes


et en assurent lexploitation.

Pourquoi est-il si important pour les organisations dlaborer


des modles de donnes divers niveaux dabstraction ?
Quon.le.veuille.ou.non,.les.bases.de.donnes,.tout.comme.les.technologies. de. linformation. de. manire. gnrale,. sont. omniprsentes. dans.
les.diverses.activits.de.lHomme.moderne ..Nous.dbutons.ce.chapitre.
en.voquant.un.certain.nombre.dapplications.des.bases.de.donnes.non.
seulement.pour.illustrer.leur.importance.centrale.dans.le.fonctionnement.
de.la.socit.et.des.organisations.mais.aussi.pour.montrer.les.soins.particuliers.que.leurs.concepteurs.doivent.appliquer.lors.de.leur.planification.
et.de.leur.ralisation,.afin.de.servir.efficacement.les.utilisateurs .

Conception de bases de donnes avec UML

Il.est.hors.de.question.de.faire.ici.un.inventaire.exhaustif.des.domaines.
dapplication. des. bases. de. donnes .. Lexercice. serait. long. et. fastidieux .. Il.
nous.importe.cependant.de.mentionner.des.exemples.particulirement.significatifs.dapplications.conues.pour.servir.tant.les.individus.que.les.organisations ..Avant.de.les.aborder,.nous.introduisons.trois.concepts.pour.lesquels.
nous.proposons.les.dfinitions.qui.suivent ..Ces.concepts.sont.sous-jacents.
.lillustration.que.nous.comptons.faire.dans.cette.section .

Base } Ensemble structur dlments dinformation, souvent agencs sous forme de


de donnes tables, dans lesquels les donnes sont organises selon certains critres en vue
(BD) de permettre leur exploitation pour rpondre aux besoins dinformation dune

organisation (Database).

Une.institution.universitaire.pourrait.par.exemple.exploiter.une.seule.
base. de. donnes. permettant. de. grer. ladmission. des. candidats,. dassurer.
loffre.de.cours..chaque.session,.dinscrire.les.tudiants,.de.percevoir.les.frais.
dinscription,.de.compiler.les.rsultats.et.dmettre.les.bulletins.de.notes ..

Application } Utilisation de moyens informatiques pour rpondre un besoin dtermin en


de bases faisant appel de manire importante une ou plusieurs bases de donnes
de donnes travers un systme de gestion de bases de donnes (SGBD) (Database application).
Pour.poursuivre.avec.lexemple.de.linstitution.universitaire,.une.application.de.bases.de.donnes.pourrait.tre.labore.uniquement.pour.la.gestion.
du. volet. comptable. des. frais. de. scolarit .. Cette. application. serait. conue.
notamment.pour.mettre.les.factures.pour.les.frais.de.scolarit.et.autres.frais.
affrents,.pour.percevoir.les.paiements,.rembourser.ltudiant..la.suite.dun.
abandon,.suspendre.une.inscription.pour.dfaut.de.paiement.et.le.reste .

Systme } Logiciel, le plus souvent produit par un diteur commercial, qui gre et contrle
de gestion laccs une base de donnes, assurant ainsi une interface normalise entre les
de bases applications et les bases de donnes (Database management system).
de donnes
Plusieurs. SGBD. sont. des. logiciels. commerciaux. offerts. . grand. prix,.
(SGBD)
sous.forme.de.licences.dutilisation.sur.un.serveur,.par.des.diteurs.de.logiciel.
tels.que.IBM,.Oracle,.Microsoft,.Sybase.pour.ne.nommer.que.les.plus.importants. qui. proposent. des. SGBD. conus. pour. exploiter. les. bases. de. donnes.
de.grande.envergure ..Ces.SGBD.sont.le.DB2.de.la.socit.IBM,.Oracle10i.
de.la.socit.Oracle.ou.le.Microsoft SQL Server ..Certains.diteurs.offrent.
par.ailleurs.des.SGBD.bas.de.gamme,.peu.coteux,.destins.aux.applications.
de.base.de.donnes.de.petites.envergures ..Microsoft Access.est.peut.tre.le.
mieux.connu.et.le.plus.utilis.des.SGBD.de.cette.catgorie,.souvent.appels.
SGBD.bureautique ..Il.existe.aussi.des.SGBD.dans.le.monde.du.logiciel.libre ..

Introduction

Le.plus.populaire.est.sans.aucun.doute.MySQL.qui.est.opr.sous.le.systme.
dexploitation.Linux. MySQL.na.rien..envier.aux.SGBD.commerciaux.au.
plan.des.capacits.et.des.performances .

ApplicATions des bAses de donnes


le commerce lectronique
Lutilisation. des. bases. de. donnes. a. connu. un. essor. considrable. dans. le.
contexte.du.dveloppement.des.changes.commerciaux.sous.forme.lectronique ..Les.entreprises.de.commerce.de.dtail.offrent.de.plus.en.plus..leurs.
clients. la. possibilit. de. consulter. leur. catalogue. de. produits. par. le. biais. de.
lInternet. de. manire. . diffuser. le. prix. et. la. disponibilit. de. leurs. produits.
et.permettre..ces.derniers,.le.cas.chant,.de.procder..un.achat.en.ligne ..
Laccs.au.catalogue,.la.possibilit.de.complter.une.transaction.dachat.avec.
autorisation.de.paiement.par.carte.de.crdit.ne.sauraient.tre.mis.en.uvre.
sans. lutilisation. de. plusieurs. bases. de. donnes. gres. soit. par. lentreprise,.
soit. par. une. institution. financire. partenaire .. Lorsque. le. niveau. de. stock.
pour. un. produit. atteint. un. seuil. de. rupture,. le. systme. informatique. du.
commerant. peut. mettre. sur-le-champ. une. commande. auprs. dun. fournisseur.par.voie.lectronique ..L.encore,.une.base.de.donnes.du.ct.fournisseur. va. permettre. de. recevoir. et. de. donner. suite. . la. commande. en.
confirmant. une. date. de. livraison,. puis. en. procdant. . la. facturation. le.
moment.venu ..
Certaines. entreprises. comme. eBay. offrent. aux. consommateurs. la.
. ossibilit. de. faire. des. changes. commerciaux. entre. eux. selon. la. formule.
p
dune. enchre. lectronique .. La. mise. en. vente. ou. la. gestion. des. offres. en.
temps.rel.ne.saurait.tre.possible.sans.une.application.de.base.de.donnes.
sophistique.qui.assure.limpartialit.du.processus .

les affaires lectroniques


Les. affaires. lectroniques. prcdent. et. prolongent. les. changes. purement.
transactionnels. lis. au. commerce. lectronique. pour. lachat,. la. vente. et. le.
paiement.des.biens.et.services ..Leur.domaine.dapplication.est.plus.large.que.
le. commerce. lectronique .. Il. concerne. aussi. bien. lorganisation. du. travail.
dans. une. organisation. que. sa. faon. de. communiquer. et. dchanger. des.
donnes. avec. ses. clients,. ses. sous-traitants,. ses. fournisseurs. et. ses.
partenaires ..

Conception de bases de donnes avec UML

Les.institutions.financires.ont.t.particulirement.innovatrices.sur.ce.
plan.mais.leurs.initiatives.nauront.t.possibles.quen.adoptant.des.solutions.
exploitant.de.larges.bases.de.donnes ..Lintroduction.des.guichets.automatiques. par. les. banques. concide. avec. ladoption. de. nouvelles. technologies.
de.communication,.dune.part,.et.de.systmes.de.gestion.de.larges.bases.de.
donnes. distribues,. dautre. part,. qui. permettent. au. client. deffectuer. des.
transactions.sur.ses.divers.comptes.bancaires.sans.gard.au.propritaire.et..
la.localisation.du.guichet.utilis .
Les. mmes. bases. de. donnes,. accessibles. traditionnellement. via. un.
guichet.automatique,.le.sont.aussi.par.lInternet.ou.par.des.services.tlphoniques.automatiss .
La. plupart. des. socits. dassurance. offrent. . la. clientle. la. possibilit.
dobtenir.en.ligne.une.proposition.pour.une.police.dassurance.de.dommages.
sur. leurs. biens .. Elles. mettent. alors. en. uvre. des. applications. de. bases. de.
donnes.qui.dans.un.premier.temps.recueillent.auprs.du.client.des.donnes.
sur. la. nature. des. biens. et. des. couvertures. souhaites. pour. ces. derniers .. En.
accdant. . des. donnes. provenant. de. sources. diverses,. tels. que. des. bases.
de. donnes. sur. la. tarification. ou. lhistorique. des. rclamations. du. client,.
lapplication.produit.sur-le-champ.une.soumission.et,.si.le.client.accepte.la.
proposition,.une.police.dassurance.sera.mise .
Les.institutions.publiques.et.parapubliques.ne.sont.pas.en.reste.sur.ce.
plan ..Le.citoyen.peut.soumettre.son.rapport.dimpt,.payer.ses.taxes.scolaires.
ou.municipales.par.voie.lectronique,.informer.le.gouvernement.dun.changement.dadresse.qui.sera.connu.de.tous.les.organismes.gouvernementaux.
concerns ..Des.initiatives.dites.de.gouvernement.en.ligne.devraient.permettre.
.terme.au.citoyen.de.traiter.avec.le.gouvernement.grce..un.seul.guichet.
lectronique .. Ces. initiatives. ne. sont. possibles. que. par. la. mise. en. uvre.
dchanges.de.donnes.entre.les.centaines.de.milliers.de.bases.de.donnes.
administres. par. les. multiples. agences,. organismes,. socits. du. secteur.
public .

la gestion lectronique des documents


Ce.domaine.dapplication.des.bases.de.donnes.concerne.la.gestion,.par.des.
moyens.informatiques,.du.cycle.de.vie.complet.dun.document.lectronique,.
quil.soit.de.nature.textuelle,.graphique,.sonore,.vido.ou.logicielle ..Ce.cycle.
va.de.sa.cration..sa.destruction,.en.passant.par.sa.modification,.sa.publication,. sa. diffusion .. Cela. en. vue. doptimiser. laccs. . ce. document,. .
.linformation.quil.contient.ainsi.qu.dautres.documents.apparents .

Introduction

Dans. un. tel. contexte. les. bases. de. donnes. assurent. le. stockage. et. la.
diffusion.de.donnes.multimdia,.souvent.qualifies.de.donnes non structures .. La. gestion. lectronique. des. documents. a. men. au. dveloppement. de.
SGBD objet ..Ce.type.de.systme.de.gestion.de.bases.de.donnes.se.distingue.
des.SGBD relationnels.utiliss.traditionnellement.par.les.organisations.pour.
le.stockage.de.donnes.structures.sous.forme.de.tables ..Il.sera.question.un.
peu.plus.loin.des.caractristiques.de.ces.divers.types.de.SGBD .
Les.bases.de.donnes.dites.objet.sont.centrales.au.fonctionnement.des.
organisations.qui.oeuvrent.dans.le.secteur.des.communications,.notamment.
les.entreprises.du.monde.de.ldition,.de.la.production.audio-visuelle.et.de.
la.diffusion ..La.plupart.des.chanes.de.tlvision.offrent..leurs.auditeurs.la.
consultation,. . partir. de. leur. portail. Internet,. dun. large. ventail. de. documents.lectroniques ..On.peut.y.retrouver.notamment.la.copie.textuelle.de.
la. retranscription. dune. mission,. des. extraits. audio. ou. vido. de. la. mme.
mission.ou.encore.lmission.dans.sa.version.originale.intgrale ..Tout.cela.
est.rendu.possible.efficacement.par.la.mise.en.uvre.de.bases.de.donnes.
multimdia. grs. par. un. SGBD objet. ou. de. type. hybride. communment.
appel.SGBD relationnel-objet .

le support la dcision
La. dcennie. quatre-vingt-dix. a. vu. apparatre. une. catgorie. de. systmes.
. information. permettant. la. recherche. active. et. lexploitation,. sur. le. plan.
d
dcisionnel,.de.lensemble.des.renseignements.stratgiques.essentiels.quune.
entreprise.doit.possder.si.elle.veut.faire.face..la.concurrence.et.occuper.la.
premire. place. dans. son. secteur. dactivit .. Ce. type. dapplication. appel.
systme de veille stratgique. (connu. en. anglais. sous. le. vocable. de. business
intelligence.system).fait.appel..une.masse.considrable.de.donnes,.provenant.
de. sources. multiples. recueillies. sur. une. large. chelle. de. temps,. regroupes.
dans.une.base.de.donnes.que.lon.appelle.entrept de donnes .

Entrept } Base de donnes spcialise dans laquelle est centralis un volume important
de donnes de donnes consolides partir des diffrentes sources de renseignement dune

entreprise (notamment les bases de donnes internes) et qui est conue de


manire ce que les personnes intresses aient accs rapidement linformation
stratgique dont elles ont besoin (Data warehouse).

Un. important. brasseur. amricain. recueille. quotidiennement,. . partir.


de. milliers. de. points. de. vente,. des. donnes. sur. la. vente. de. ses. produits. et.
ceux. de. ses. concurrents .. Ces. donnes. sont. consolides. dans. un. entrept.
de.donnes.qui.contient.de.plus.une.foule.de.donnes.dmographiques.et.

Conception de bases de donnes avec UML

socioconomiques.provenant.du.bureau.du.recensement ..Les.analyses.menes.
quotidiennement.sur.ces.donnes..laide.de.modles.mathmatiques.sophistiqus.permettent.au.brasseur.de.cibler.la.clientle.pour.un.nouveau.produit.
dans. une. rgion. donne,. dtablir. le. moment. opportun. pour. lancer. une.
campagne. de. promotion. sur. certains. produits,. de. proposer. aux. dtaillants.
une.prsentation.de.leurs.produits.favorisant.les.achats.croiss ..Cette.forme.
dexploitation.des.bases.de.donnes.est.en.pleine.expansion.non.seulement.
dans.le.secteur.du.commerce.au.dtail.mais.aussi.dans.les.secteurs.industriels.
et.financiers .

noTions fondAMenTAles en MATiRe de gesTion de donnes


Nous.allons.aborder.dans.cette.section.certains.concepts.fondamentaux.du.
domaine. de. la. gestion. de. donnes .. Il. importe. notamment. de. dfinir. les.
termes.du.vocabulaire.courant.qui.dans.le.contexte.du.traitement.lectronique.
des.donnes.prennent.une.signification.prcise ..

donne et information
Les. termes. donne. et. information,. bien. que. considrs. comme. des. quasi.
s. ynonymes.dans.le.vocabulaire.de.tous.les.jours,.seront. traits.de.manire.
fort.diffrente.dans.cet.ouvrage ..

Donne } Reprsentation dun lment dinformation, tel quun chiffre ou un fait, cod

dans un format permettant son stockage et son traitement par ordinateur


(Data).

Lorsquun.client.se.prsente..un.point.de.vente.pour.payer.un.produit,.
la.lecture.du.code.barre.donne.accs..des.donnes.lies..ce.produit,.dont.
son.prix.et.son.nom ..Dans.ce.cas.le.code.barre.est.une.donne.au.sens.dfini.
ci-dessus. puisquil. sagit. de. la. reprsentation. code. dune. suite. de. chiffres,.
le. code universel de produit. (CUP) .. Par. ailleurs. le. prix. et. le. nom. du. produit.
auxquels.correspond.le.CUP.sont.aussi.des.donnes.qui.sont.codes.dans.un.
format.faisant.appel..une.norme.largement.adopte.en.matire.de.codage.
binaire.des.donnes.pour.leur.traitement.par.des.ordinateurs ..Cette.norme.
porte.le.nom.ASCII.(American Standard Code for Information Interchange) ..Le.
format.de.codage.dune.donne.dpend.de.son.type .

Introduction

Type } Nature du codage utilis pour reprsenter une donne lmentaire et les
de donne oprations applicables cette donne. Les types les plus courants sont : entier,

rel, texte, date, image, etc. (Data type).

Une.donne.est.une.reprsentation ..Cest.pourquoi.dans.sa.dfinition.
on.rfre..la.codification,.donc..la.syntaxe ..Une.information.est.davantage.
une. interprtation. de. donnes. dans. un. contexte. particulier .. Sa. dfinition.
fait.plutt.rfrence..la.signification.dune.donne.mais.plus.gnralement.
dun.ensemble.de.donnes,.cest--dire..la.smantique,.comme.le.montre.la.
dfinition.suivante .

Information } Une information est une donne ou un ensemble de donnes qui a ou ont t

interprte(s) (Information).

Les.deux.concepts.sont.intimement.lis ..Dans.lexemple.prcdent.nous.
rfrions. aux. donnes. dune. transaction. de. vente .. La. transaction,. en. plus.
du.nom.du.produit,.de.son.prix.et.de.son.CUP,.pourrait.comporter.le.numro.
du.magasin.o.lachat.a.t.effectu ..Si.toutes.les.transactions.de.vente.dune.
grande.chane.de.magasins.sont.enregistres.dans.une.mme.base.de.donnes,.
il.sera.possible.en.faisant.un.traitement.statistique.sur.ces.donnes.de.savoir.
quels.produits.se.vendent.le.mieux.dans.les.divers.magasins.de.la.chane ..Le.
rsultat. de. ce. traitement. et. linterprtation. quen. donneront. les. dirigeants.
reprsentent.de.linformation ..Cette.information.pourrait.mener..des.dcisions,.notamment.de.retirer.de.ses.tablettes.certains.produits.dans.certains.
magasins.pour.faire.place..des.produits.qui.se.vendent.mieux ..Nous.dirions.
en. conclusion. que. linformation. induit. assez. souvent. une. action,. soit. une.
dcision.dans.lexemple.qui.nous.occupe ..Une.masse.de.donnes,..moins.
quelle.ne.subisse.un.traitement.appropri.et.quon.en.retire.de.linformation,.
induit. rarement. une. action .. Par. analogie. nous. pourrions. conclure. que. les.
donnes. constituent. la. matire. brute. . partir. de. laquelle. linformation. est.
produite .
La.vocation.premire.dune.base.de.donnes.est.le.stockage.des.donnes ..
Il. sagit. donc. dassurer. par. le. biais. de. cette. technologie. la. persistance. des.
donnes. dans. le. temps .. Les. systmes. informatiss. qui. sont. mis. en. uvre.
pour.le.traitement.des.donnes.peuvent.tre.de.simples.outils.de.cueillette.
de.donnes..la.source ..On.les.appelle.systmes de traitement de transactions.
(STT) ..De.plus,.ils.peuvent.tre.des.systmes.qui.traitent.les.donnes.recueillies.
par.les.STT.pour.produire.des.informations.utiles..la.prise.de.dcision ..Cette.
deuxime.catgorie.de.systme.fait.appel.tant..des.ressources.informatiques.
(quipement,.logiciel,.donnes).qu.dautres.types.de.ressources.telles.que.
du.personnel.ou.des.procdures.administratives ..De.tels.systmes.portent.le.

Conception de bases de donnes avec UML

nom. de. systme dinformation,. ou. encore. de. systme dinformation organisationnel lorsque.le.systme.est.conu.pour.rpondre.aux.besoins.en.matire.
dinformation.pour.lorganisation.dans.son.ensemble .

Systme } Systme constitu des ressources humaines, des ressources informatiques (quipe
dinformation ment, logiciel, donnes) et des procdures permettant dacqurir, de stocker, de
organisationnel traiter et de diffuser les lments dinformation pertinents au fonctionnement

dune entreprise ou dune organisation (Management information system).

Les.systmes.dinformation.modernes.exploitent.tous.une.ou.plusieurs.
larges.bases.de.donnes..laide.dun.ou.de.plusieurs.systmes.de.gestion.de.
base.de.donnes ..Les.donnes.stockes.dans.ces.bases.de.donnes.assurent.
le.lien.entre.dune.part.les.ressources.non.informatiques.que.sont.les.utilisateurs.et.les.procdures.quils.doivent.appliquer..lintrieur.du.systme.et.
dautre.part.les.ressources.informatiques ..Les.donnes.agissent..la.manire.
dun.pont.qui.relie.les.ressources.informatiques.et.non.informatiques.dun.
systme.dinformation .

caractristiques des systmes de gestion de bases de donnes (sgbd)


On.sentend.gnralement.pour.dire.quun.logiciel.de.gestion.de.donnes,.
pour.quil.puisse.porter.le.nom.de.systme de gestion de bases de donnes,.doit.
possder. un. certain. nombre. de. caractristiques. fondamentales .. Nous. les.
regroupons.ici.en.six.catgories .

indpendance entre les donnes et les applications


Comme. nous. le. verrons. . la. section. suivante,. qui. traite. des. origines. et. de.
lvolution. des. SGBD,. les. premires. applications. informatiques. exploitant.
de.grande.quantit.de.donnes.taient.bases.sur.des.fichiers ..Les.programmes.
informatiques.devaient.dans.ce.contexte.comporter.une.description.dtaille.
des.donnes.stockes.dans.ces.fichiers,.par.exemple.le.type.dune.donne,.
sa.taille.ou.son.format ..Les.applications.taient.alors.fortement.dpendantes.
de.la.structure.des.donnes.des.divers.fichiers.quelles.utilisaient ..Un.SGBD.
doit.permettre..un.programmeur.de.dvelopper.une.application.sans.avoir.
.encoder.dans.les.programmes.les.aspects.structurels.des.fichiers.dune.base.
de. donnes .. De. la. sorte,. si. la. structure. de. la. base. de. donnes. devait. tre.
change,.les.programmes.nauront.pas..tre.modifis.et,.si.cela.tait.ncessaire,. les. modifications. ne. seraient. que. mineures .. Cette. caractristique. des.
SGBD. permet. une. trs. grande. productivit. du. personnel. qui. ralise. des.
.applications.de.base.de.donnes .

Introduction

contrle centralis des donnes pour viter toute redondance


Le.SGBD.doit.intgrer.dans.un.mme.espace.de.stockage.plusieurs.fichiers,.
de. manire. . viter. toute. redondance,. cest--dire. courir. le. risque. quune.
mme.donne.se.retrouve.dans.deux.ou.plusieurs.fichiers ..Il.nest.pas.souhaitable.quune.donne,.par.exemple.ladresse.dun.client,.se.retrouve.duplique.
dans.plusieurs.fichiers ..Une.telle.situation.pose.des.problmes.au.moment.
o.la.donne.doit.tre.mise..jour ..Si.ladresse.dun.client.devait.changer,.il.
y.a.un.risque.que.le.changement.ne.soit.enregistr.que.dans.un.seul.fichier ..
Comment. savoir. alors. quelle. est. ladresse. la. plus. rcente,. celle. conserve.
dans.le.fichier.A.ou.dans.le.fichier.B.?.Mme.si.le.changement.dadresse.tait.
enregistr. dans. tous. les. fichiers. o. elle. est. stocke,. cela. pose. un. problme.
au.plan.de.la.performance.:.pourquoi.faire.plusieurs.fois.ce.qui.logiquement.
ne.devrait.tre.fait.quune.seule.fois.?

partage des donnes et accs concurrents


Le.besoin.de.centraliser.le.stockage.des.donnes.de.manire..assurer.lunicit.
de.la.saisie.et.de.la.validation.des.donnes.a.pour.corollaire.la.mise.en.place.
de.mcanismes.techniques.qui.vont.assurer.aux.utilisateurs.un.partage.quitable.de.ces.donnes,.sans.risque.de.concurrence,.mais.qui.vont.aussi.empcher.les.accs.non.autoriss ..Le.SGBD.doit.possder.un.mcanisme.daccs.
concurrents. . une. base. de. donnes. par. plusieurs. utilisateurs. autoriss .. Ce.
mcanisme. doit. viter. que. des. oprations. simultanes. mnent. . des. incohrences ..Considrons.par.exemple.deux.utilisateurs.qui.tentent.de.modifier.
le.solde.dun.compte.client ..Le.SGBD.doit.identifier,.sur.la.base.du.principe.
.premier.arriv.premier.servi.,.quel.utilisateur.aura.la.priorit.pour.faire.la.
lecture.du.solde ..Il.permettra.au.second.utilisateur.la.lecture.du.solde.quand.
le.premier.utilisateur.aura.complt.sa.modification ..Ce.mcanisme.porte.le.
nom. de. verrou .. Il. interdit. tout. accs. . une. donne. ou. . un. ensemble. de.
donnes,.tant.quun.autre.utilisateur.procde..leur.traitement ..

gestion de la cohrence et de lintgrit des donnes


Les.SGBD.doivent.pouvoir.grer.le.processus.de.mise..jour.dun.ensemble.
de. donnes. comme. un. tout. indissociable. pour. garantir. la. cohrence interne.
de.la.base.de.donnes ..Dans.le.contexte.de.la.gestion.des.comptes.clients,.
supposons. que. lapplication. doive. conserver. dans. la. base. de. donnes. . la.
fois. les. donnes. de. la. transaction. affectant. le. solde. du. client. ainsi. que. la.
donne. sur. le. nouveau. solde. lui-mme .. Il. est. hors. de. question. que,. par.
suite. dune. panne. de. lordinateur,. les. donnes. de. la. transaction. aient. t.

10

Conception de bases de donnes avec UML

enregistres. mais. que. le. solde. nait. pu. tre. recalcul .. Ou. . linverse. que. le.
nouveau.solde.ait.t.stock.mais.que.les.donnes.de.la.transaction.naient.
pu.tre.conserves ..Un.SGBD.doit.offrir.un.mcanisme.qui.fait.en.sorte.que,.
si.une.tape.dune.opration.ne.peut.tre.complte,.toute.lopration.doit.
tre.annule.automatiquement ..Il.est.du.ressort.du.programmeur.de.lapplication.de.dterminer.quelles.sont.les.tapes.indissociables.dune.mme.opration.et.dappliquer.le.mcanisme.appropri ..Ce.mcanisme.assure.latomicit
dune transaction ..Cest--dire.qu.la.manire.dun.atome,.toutes.les.composantes.dune.opration,.ou.dune.transaction,.doivent.tre.considres.comme.
un.tout.indissociable ..Tout.comme.lapplication.dun.verrou.sur.une.donne,.
le.mcanisme.est.totalement.transparent..lutilisateur.car.il.est.mis.en.uvre.
par.le.programmeur .
Lintgrit des donnes. rfre. . la. ncessit. de. voir. appliquer. automatiquement.par.le.SGBD.des.contraintes.sur.la.validit.dune.donne ..L.encore,.
il. sagit. dune. responsabilit. qui. incombe. aux. concepteurs. dune. base. de.
donnes .

Contrainte } Ensemble de rgles, dfinies par le concepteur dune base de donnes, qui devront
dintgrit en tout temps tre respectes par les donnes de la base de donnes. Ces
des donnes rgles sont gres par le SGBD qui en assure lapplication et informe lutilisateur

lorsque lune delles est transgresse (Integrity contraint).

Des. contraintes dintgrit des donnes. sont. dfinies. au. moment. de. la.
conception.dune.base.de.donnes.afin.dcarter,.ds.leur.saisie,.les.valeurs.
juges.inacceptables ..Ces.contraintes.permettent.donc.de.mettre.en.uvre.
une. validation. automatique. des. donnes .. Le. concepteur. dune. base. de.
donnes.peut.non.seulement.tablir.pour.une.donne.son.type.ou.sa.taille,.
mais.fixer.par.ailleurs.une.plage.de.valeurs.acceptables,.une.limite.infrieure,.
ou. enfin. une. limite. suprieure .. Ces. exemples. de. contraintes. sont. du. type.
contrainte dintgrit smantique. car. elles. concernent. la. signification. dune.
donne,.donc.linterprtation.unique.et.non.ambigu.qui.doit.tre.accorde.
.cette.donne ..Il.existe.un.autre.type.de.contrainte.dite.contrainte dintgrit
rfrentielle. qui. concerne. les. valeurs. que. peuvent. prendre. deux. donnes.
associes. dans. la. mme. base. de. donnes .. Les. SGBD. relationnels,. comme.
nous.le.verrons.plus.loin,.peuvent.assurer.la.satisfaction.de.contraintes.dintgrit. rfrentielle. en. faisant. en. sorte. que. la. valeur. prise. par. une. donne.
place. dans. un. champ. dune. premire. table. doit. tre. obligatoirement. une.
des.valeurs.prises.par.un.des.champs.dune.deuxime.table .

Introduction

11

description des donnes stockes sous forme de mtadonnes


La.structure.dune.base.de.donnes,.telle.que.dfinie.spcifiquement.par.le.
concepteur. pour. tre. prise. en. charge. par. un. SGBD,. est. appele. le. schma
physique.de.la.base.de.donnes ..

Schma } Collection des composants constitutifs de la structure dune BD, notamment


physique les proprits des donnes, les domaines des donnes (types de donnes), les
dune BD fichiers, les contraintes dintgrit, associs dune manire ou dune autre les
uns aux autres. Ce schma est dfini par le biais dun langage de dfinition de
donnes faisant partie intgrante du SGBD (Database physical schema).
Le.schma.physique.est.conserv.dans.la.base.de.donnes.sous.forme.
de. mtadonnes. au. mme. titre. que. les. donnes. elles-mmes .. Cest. prcisment.la.nature.rflexive.ou.autodescriptive.des.SGBD.qui.assure.lindpendance. entre. les. donnes. et. les. applications. dont. nous. traitions. plus. haut ..
Un.SGBD.doit.pouvoir.en.effet.grer.non.seulement.des.donnes.mais.aussi.
des.mtadonnes .

Mtadonnes } Donnes propos des donnes qui sont stockes dans une BD (Metadata).

gestion de la scurit
La.scurit.dans.les.SGBD.possde.plusieurs.facettes ..La.premire.concerne.
les.privilges.daccs.aux.donnes.accords.aux.utilisateurs ..Un.SGBD.doit.
permettre. daccorder. des. privilges. aux. utilisateurs. jusquau. niveau. dune.
donne. pour. des. oprations. de. lecture,. dinsertion,. de. mise. . jour. ou. de.
suppression ..Toutefois,.en.pratique,.les.privilges.sont.gnralement.accords.
pour. un. groupe. dutilisateurs,. . un. ensemble. de. donnes,. soit. en. lecture.
(accs),. soit. en. criture. (ajout. et. modification). cest--dire. pour. les. deux.
modes.daccs.principaux.aux.enregistrements ..Ces.privilges.sont.accords.
par.la.personne..laquelle.lorganisation.a.confi.le.rle.dadministrateur de
bases de donnes .. Les. privilges. sont. conservs. sous. forme. de. mtadonnes.
dans.la.BD.et.sont.rattachs.au.code.daccs.et.au.mot.de.passe.que.ladministrateur.a.attribu..lutilisateur .

Administrateur } Personne responsable de la ralisation physique de la BD sous forme de schma


de bases physique, du contrle de la scurit et de lintgrit, de la maintenance du SGBD
de donnes et de la garantie de performance des applications de bases de donnes qui doit
(ADB) tre assure aux utilisateurs (Database administrator).

1

Conception de bases de donnes avec UML

Il.est.aussi.de.la.responsabilit.de.ladministrateur.de.bases.de.donnes.
de.dterminer.quelles.seront.les.donnes.qui.devront.tre.chiffres,.cest.dire.
rendues.illisibles..ceux.qui.se.seraient.procur.frauduleusement.des.codes.
daccs.et.pourraient.en.faire.un.usage.inappropri ..Il.va.de.soi.que.toutes.
les.mtadonnes.relatives.aux.droits.daccs,.aux.codes.dutilisateur,.pour.ne.
mentionner.que.ceux.l,.doivent.tre.stocks.chiffrs.dans.la.BD .
Un.deuxime.volet.de.la.scurit.concerne.la.sauvegarde.de.copies.de.
scurit. dune. BD. et. la. rcupration. des. donnes. . la. suite. dune. panne ..
Certains.SGBD.maintiennent.en.tout.temps.une.copie miroir.dune.BD.et.ce.
.la.vole ..Cest..dire.que.tout.changement..une.BD.est.reflt.en.temps.
rel.dans.une.deuxime.BD.qui.maintient.une.copie.de.la.premire.souvent.
sur.un.site.physiquement.distant ..La.copie.miroir.peut.par.ailleurs.tre.gnre.
en.diffr.par.un.mcanisme.appel.synchronisation ..Il.sagit.dalimenter,.en.
temps. opportun,. une. BD. miroir. incluant. tous. les. changements. effectus.
depuis.la.dernire.synchronisation,.par.exemple.au.cours.de.la.nuit.quand.
les.oprations.sont.suspendues .
Enfin,.un.SGBD.doit.pouvoir.conserver.une.trace.de.toutes.les.oprations.
effectues. sur. une. BD,. sous. forme. dun. journal de transactions .. Ce. journal.
complt.automatiquement,.donc.sans.intervention.humaine,.va.permettre.
de.reprendre.le.cas.chant.certaines.transactions.qui.nont.pu.tre.compltes.
. cause. dune. panne,. et. ce,. en. toute. transparence. pour. les. utilisateurs .. Le.
mme.journal.est.aussi.un.outil.de.vrification.et.de.contrle.pour.ladministrateur.de.la.base.de.donnes .

origine et volution des sgbd


les systmes bass sur des fichiers
On.ne.saurait.parler.de.lorigine.des.SGBD.sans.voquer.les.premiers.systmes.
de.traitement.lectronique.des.donnes.bass.sur.des.fichiers ..Cela.pour.trois.
raisons.principales.:
Ces. systmes. ont. permis. de. dfinir. certains. concepts. toujours. en. usage.
mme.dans.le.contexte.des.SGBD.les.plus.volus,.les.notions.de. fichier
de donnes,.denregistrement,.de.champ.et.de.type de donnes .
Bien. que. cette. approche. soit. maintenant. obsolte,. il. existe. encore. de.
nombreux. systmes. de. ce. genre. dans. les. organisations. quil. serait. trop.
coteux. de. remplacer. par. des. applications. de. base. de. donnes .. On. les.
appelle. systmes hrits. (ou. en. anglais. legacy systems). car. ils. nous. sont.
lgus. par. des. technologies. de. premire. gnration,. dpasses. bien. sr,.

Introduction

1

mais.quil.faut.continuer.dutiliser.tant.que.de.nouveaux.systmes.en.cours.
de.dveloppement,.ou.prvus..lintrieur.dun.plan.directeur.de.dveloppement,.ne.les.auront.pas.dfinitivement.remplaces .
Les.systmes.bass.sur.des.fichiers.comportaient.de.nombreuses.lacunes.
qui. ont. permis. dtablir. de. manire. empirique. les. caractristiques. fondamentales. des. SGBD. modernes. dont. nous. avons. fait. tat. . la. section.
prcdente .

Systme } Ensemble de programmes dapplication qui exploitent ses propres fichiers de


bas sur donnes pour rpondre aux besoins spcifiques dun groupe dutilisateurs finaux
des fichiers (File-based system).
Les.premiers.grands.systmes.de.traitement.lectronique.des.donnes.
labors. dans. les. annes. 1950. et. 1960,. tels. que. les. systmes. de. traitement.
de.la.paie,.les.systmes.de.gestion.financire.et.comptable.ou.les.systmes.
de.gestion.des.ressources.humaines,.taient.des.systmes.bass.sur.des.fichiers ..
Ces.systmes.taient.conus.pour.les.besoins.spcifiques.dune.unit.administrative. et. consquemment. les. programmes. dapplication. et. les. fichiers.
taient.gnralement..lusage.exclusif.du.personnel.de.lunit ..Applications.
et.fichiers.formaient.un.ensemble.fortement.intgr.dont.lexploitation.tait.
rserve..un.groupe.exclusif.dutilisateurs ..Les.concepteurs.de.ces.applications.faisaient.ds.lors.appel..des.technologies.bases.sur.un.certain.nombre.
de.concepts.dont.nous.ferons.ici.tat .
Les.fichiers.sont.constitus.denregistrements.eux-mmes.dcomposables.
en.champs,.chaque.champ.permettant.le.stockage.dune.donne ..Ces.concepts.
fondamentaux.sont.explicits..travers.les.dfinitions.qui.suivent .

Fichier } Ensemble denregistrements identifi par un nom, qui constitue une unit logique
de donnes de stockage de donnes pour un ordinateur (Data file).

Enregistrement } Groupe de donnes apparentes, structur et considr comme un tout. Chaque


donne du groupe occupe un champ de lenregistrement. Un champ est dfini
par son nom, une position dans lenregistrement et le type de donnes quil
permet de stocker (Record).
Un. fichier. est. gnralement. reprsent. dans. les. ouvrages. techniques.
sous.forme.dun.tableau.comportant.en.en-tte.une.suite.dintituls.donnant.
le.nom.des.champs,.sous.lequel.sont.inscrits.les.enregistrements ..La.figure.0-1.
illustre. un. petit. fichier. appel. Vhicule. comportant. trois. enregistrements.
forms.de.cinq.champs.:. No de srie,. Fabricant,. Modle,. Anne,. Immatriculation .. Chaque. enregistrement. possde. une. donne. par. champ. et,. pour. un.
champ.en.particulier,.son.type.de.donnes.et.sa.taille.sont.systmatiquement.

1

Conception de bases de donnes avec UML

les.mmes.quel.que.soit.lenregistrement ..Dans.cet.exemple,.le.champ.Anne.
ne. stocke. que. des. valeurs. numriques. entires. de. quatre. chiffres .. Chaque.
ligne.du.tableau.reprsente.un.enregistrement.et.tous.les.enregistrements.ont.
la.mme.structure.dfinie.par.les.proprits.des.champs.qui.le.composent .
figuRe 0-1

Fichier Vhicule

No de srie
YG100P9065QZ84
JK92876T6753W9
PK8750927GH786

Fabricant
Ford
Nissan
BMW

Modle
Taurus
Pathfinder XE
320 SI

Anne
2005
2004
2002

Immatriculation
WWP 657
KDF 324
BGH 629

les bases de donnes hirarchiques et rseaux


Les.problmes.lis..lexploitation.des.systmes.bass.sur.des.fichiers,.notamment.la.forte.intgration.des.applications.et.des.fichiers,.la.redondance.des.
donnes,.la.difficult.de.partager.les.donnes.et.dassurer.leur.intgrit,.enfin.
la.pitre.scurit.des.donnes,.ont.donn.lieu..un.nouveau.paradigme.en.
matire.de.gestion.des.donnes,.le.systme.de.gestion.de.bases.de.donnes .
Une. premire. gnration. de. SGBD. est. ne. de. travaux. de. recherche.
mens. dans. les. annes. 1960. pour. le. compte. de. la. NASA. dans. le. cadre. du.
projet.Apollo.et.commercialiss.dans.les.annes.1970.par.la.socit.IBM.sous.
le.nom.IMS.(Information.Management.System) ..Le.SGBD.tait.bas.sur.le.
concept.que.les.enregistrements.conservs.dans.divers.fichiers.pouvaient.tre.
lis. selon. une. certaine. hirarchie. et. constituer. un. assemblage. arborescent ..
On.a.appel.structure hirarchique.cette.forme.de.liaison.entre.des.enregistrements.de.fichiers.distincts ..En.vertu.de.ce.modle.dorganisation.des.donnes,.
un.enregistrement.peut.tre.le.pre.de.plusieurs.enregistrements.qui..leur.
tour.peuvent.avoir.des.fils ..Par.exemple.un.fichier.appel.tudiant.contenant.
des.donnes.sur.les.tudiants.peut.tre.li..un.autre.fichier,. Cours inscrits,.
contenant.des.donnes.sur.les.cours.suivis.par.les.tudiants.et.le.cas.chant.
le.rsultat.obtenu ...laide.dun.langage.dit.de navigation.entre.les.fichiers,.
le.programmeur.accdant..un.enregistrement.du.fichier tudiant.peut.reprer.
automatiquement.les.enregistrements.fils.du.fichier.Cours inscrits ..Un.SGBD.
hirarchique.possde.un.avantage.indniable.sur.les.systmes.bass.sur.des.
fichiers ..Il.permet.en.effet.dtablir.des.liens.un plusieurs.entre.les.fichiers.
dune.base.de.donnes.:.un.enregistrement.pre.peut.tre.li..plusieurs.enregistrements.fils .
Dans.la.mme.priode,.des.chercheurs.de.la.socit.amricaine.General.
Electric. eurent. lide. de. gnraliser. lapproche. des. SGBD. hirarchiques. en.
proposant. un. modle. dorganisation. des. donnes. permettant. des. liens.

Introduction

1

. lusieurs plusieurs.entre.les.fichiers ..La.hirarchie.pre-fils.nexiste.pas.dans.


p
ce.modle,.car.un.enregistrement.peut.avoir.plusieurs.successeurs.de.mme.
que.plusieurs.prdcesseurs ..Les.fichiers.sont.lis.en.rseau maill..la.manire.
des. rseaux. dgout. o. . un. point. du. rseau. convergent. des. connecteurs.
effluents.et.des.connecteurs.affluents ..Ces.SGBD.sont.dits.de type rseau.(ou.
simplement.SGBD rseau)et.permettent.de.reprsenter.des.associations.complexes.entre.les.fichiers ..Cette.catgorie.de.SGBD.a.suscit.beaucoup.dintrt.
dans.la.communaut.des.chercheurs.et.des.utilisateurs.intresss.par.les.bases.
de.donnes ..Cela.a.donn.lieu,..la.fin.des.annes.1960,..la.cration.dun.
groupe.de.travail.visant..dfinir.des.normes.pour.le.SGBD.de.type.rseau.
portant.sur.les.caractristiques.requises.pour.assurer.la.cration.des.bases.de.
donnes.ainsi.que.la.manipulation.de.donnes ..Ces.normes,.connues.sous.
le. vocable. CODASYL,. dcrivent. en. quelque. sorte. lenvironnement. requis.
pour. la. conception. et. lexploitation. des. bases. de. donnes. rseaux .. Elles.
reconnaissaient.pour.la.premire.fois.de.manire.formelle.limportance.du.
schma physique.de.la.base.de.donnes,.le.rle.cl.de.la.personne.responsable.
de.sa.construction.et.de.son.entretien,.cest--dire.ladministrateur de base de
donnes (ABD) ..La.norme.met.en.vidence.la.ncessit.de.mettre..la.disposition.de.lABD.un.langage.pour.la.construction.de.schma.physique.appel.
le.langage de dfinition de donnes.ainsi.que.doffrir.au.programmeur.un.langage.
pour.exploiter.les.donnes,.le.langage de manipulation de donnes .
Les.SGBD.hirarchiques.et.rseau.constituent.la.premire gnration.de.
SGBD ..Malheureusement.ils.comportaient.certaines.lacunes.notamment.au.
plan.des.fondements.thoriques ..De.plus.ils.ne.permettaient.pas.en.pratique.
dassurer.lindpendance.tant.souhaite.entre.les.applications.et.les.donnes ..
En. effet,. comme. le. lien. entre. deux. enregistrements. tait. implant. . laide.
dun.pointeur,.soit.une.sorte.dadresse.permettant.de.reprer.un.enregistrement.associ,.cela.donnait.lieu..des.programmes.complexes.mme.pour.des.
.requtes.simples ..Les.SGBD.de.premire.gnration.auront.nanmoins.permis.
de. dfinir. de. manire. dtaille. les. spcifications. de. lenvironnement. des.
bases.de.donnes.dont.nous.allons.traiter..la.section.suivante .

les bases de donnes relationnelles


Le.dbut.des.annes.1970.a.t.marqu.par.une.avance.importante.dans.le.
domaine.des.SGBD ..E ..J ..Codd,.chercheur.au.laboratoire.de.recherche.IBM.
de.San.Jose.en.Californie,.sinspirant.de.lalgbre.relationnelle,.proposa.un.
mode.dorganisation.des.donnes.ne.ncessitant.pas.de.pointeurs.pour.lier.
les. enregistrements .. Non. seulement. ce. modle. avait. ses. fondements. thoriques.solidement.tablis.dans.lalgbre.relationnelle,.mais.il.tait.aussi.dune.
grande. simplicit .. La. structure. dun. fichier. est. dfinie. comme. une. relation.
entre.des.donnes.provenant.dun.nombre.fini.de.domaines ..Les.enregistrements.

1

Conception de bases de donnes avec UML

sont.des.tuples,.et.constituent.des.occurrences.de.la.relation ..Les.liens.sont.
assurs.entre.deux.enregistrements.sur.la.base.dun.champ.de.mme.type,.
commun. aux. deux. enregistrements .. Si. les. champs. communs. possdent. la.
mme.valeur,.les.enregistrements.sont.logiquement.lis ..Il.nest.ds.lors.plus.
ncessaire. de. grer. des. pointeurs. physiques. pour. assurer. ces. liens .. De. physiques. qutaient. les. liens. dans. les. SGBD. hirarchiques. ou. rseau,. les. liens.
sont. dornavant. logiques,. bass. sur. les. valeurs. des. champs,. ce. qui. rend. la.
navigation.entre.les.enregistrements.beaucoup.plus.souple ..Nous.reviendrons.
au. chapitre. 2. sur. le. modle. relationnel. pour. y. faire. tat. de. ses. nombreux.
avantages. et. traiter. des. concepts. de. cl. primaire. et. de. cl. trangre. qui.
.permettent.de.raliser.les.liens ..
Ce.mode.dorganisation.des.donnes.a.donn.naissance..une.plthore.
de. SGBD relationnels. commerciaux. et. non. commerciaux. dont. DB2. dIBM,.
Oracle10,. Microsoft Access,. MySQL,. pour. ne. nommer. que. les. mieux.
connus ..Les.SGBD.relationnels.sont.de.deuxime.gnration.et.ils.ont.tous.
en. commun. intrinsquement. un. langage. appel. SQL. (Structured. Query.
.Language) ..SQL.agissant..la.fois.comme.langage.de.dfinition.et.langage.de.
manipulation.de.donnes .
Malgr.leurs.nombreuses.qualits,.les.SGBD.relationnels.ont.un.certain.
nombre.de.lacunes.pour.lexpression.de.modles.de.donnes..un.haut.niveau.
dabstraction,.ce.que.nous.dfinirons.au.chapitre.1.comme.le.modle.conceptuel. de. donnes .. Un. effort. considrable. de. recherche. et. de. rflexion. a. t.
fait. au. cours. des. vingt. dernires. annes. pour. dvelopper. des. mthodes. et.
des.formalismes.permettant.dexprimer.un.modle.de.donnes.dpouill.des.
contraintes.du.modle.relationnel.mais.qui.puisse.se.traduire.assez.directement.dans.un.SGBD.relationnel ..Cest.lobjectif.premier.de.cet.ouvrage.que.
de. montrer. comment. . laide. de. mthodes. et. doutils. appropris. on. peut.
construire.des.modles.de.donnes.qui.soient.indpendants.du.type.de.SGBD.
dans.lequel.ils.seront.raliss .

les bases de donnes orientes objets et les autres


Le.dveloppement.de.langages.orients.objets.tels.que.Smalltalk.et.C++.a.
conduit..la.mise.au.point.de.SGBD.devant.assurer.la.persistance des objets,.
soit.le.stockage.permanent.sur.un.support.de.mmoire.auxiliaire.des.objets.
crs..laide.de.tels.langages ..Ce.SGBD.dit.orient objet ou.simplement.SGBD.
objet,. qui. a. connu. un. essor. somme. toute. limit. appartient. . la. troisime
gnration .. Le. SGBD. Gemstone. par. exemple. est. une. extension. du. langage.
Smalltalk .. Le. dveloppement. des. SGBD. objet. a. t. frein. par. des. SGBD.
hybrides.incorporant.le.modle.relationnel.et.le.stockage.dobjets ..Les.objets.
peuvent.tre.soit.de.type.structur.comme.ceux.crs.par.un.langage.orient.

Introduction

1

objet.ou.de.type.non.structur.telles.que.des.images,.de.la.vido,.des.trames.
sonores ..Le.type.non.structur.est.aussi.appel.BLOB.(Binary.Large.OBject) ..
On.donne.le.nom.SGBD.relationnel-objet..cette.forme.hybride.car.il.combine.
les. proprits. du. SGBD. relationnel. et. du. SGBD. objet .. Lditeur. amricain.
Informix.a.t.un.prcurseur.en.matire.de.SGBD.relationnel-objet.pour.tre.
suivi. et. vite. dpass. par. Oracle. et. IBM. avec. leur. produit. Oracle8. et. DB2
Universal Database System.respectivement .
.laube.du. xxie.sicle.on.parle.dune.quatrime gnration.de.SGBD ..Il.
sagit.dune.catgorie.htrogne.de.SGBD.conus.avant.tout.pour.des.applications. spcialises,. comme. par. exemple. et. non. exclusivement,. les. SGBD.
OLAP.(On Line Analytical Processing).largement.utiliss.pour.lentreposage.des.
donnes. et. lexploration. des. donnes,. les. SGBD. XML. pour. les. applications.
Web,.ou.enfin.les.SGBD.de.contraintes.pour.les.applications.doptimisation .

enviRonneMenT de bAses de donnes


Comme.nous.lavons.vu..la.section.relatant.les.caractristiques.des.SGBD,.
une. base. de. donnes. est. par. dfinition. partage. par. plusieurs. utilisateurs.
finaux ..Elle.doit.en.consquence.satisfaire.leurs.besoins.en.information.quel.
que.soit.lutilisateur ..Lutilisateur final.est.un.lment.central.de.lenvironnement.dune.base.de.donnes.car.il.en.est.de.fait.le.client ..Mais.il.nest.pas.
la.seule.personne.jouant.un.rle.majeur.dans.cet.environnement ..Nous.avons.
voqu.plus.tt.le.rle.jou.par.ladministrateur de bases de donnes ..Notons.
brivement.le.rle.dautres.individus.qui.interviennent.dans.lenvironnement.
dune.base.de.donnes .
Les concepteurs de bases de donnes..Leur.rle.consiste..laborer.le.design.
dune. base. de. donne .. Ils. traitent. directement. avec. les. utilisateurs. dans.
une. organisation. pour. identifier. les. donnes. et. les. contraintes. sur. les.
donnes.qui.devront.tre.conserves.dans.une.BD ..Les.concepteurs.sont.
aussi.appels.des.modlisateurs de donnes car.leur.travail.consiste.en.outre.
.laborer.des.modles de donnes,.soit.des.plans.de.plus.en.plus.dtaills.
des.donnes.et.des.contraintes.sur.les.donnes.de.la.BD ..Comme.nous.le.
verrons. plus. loin,. leur. travail. consiste. . laborer. des. modles. du. plus.
gnral.au.plus.spcifique ..Le.modle.le.plus.gnral.est.le.modle conceptuel
des donnes,. indpendant. du. type. de. SGBD. cible .. Il. ne. fait. tat. que. des.
entits,.leurs.attributs,.des.associations.et.contraintes.sur.les.donnes ..Les.
contraintes.sur.les.donnes.sont.gnralement.exprimes.sous.forme.de.
rgles de gestion.des.donnes ..Un.modle.de.donnes.plus.spcifique.est.le.
modle logique de donnes.qui.est.labor.en.fonction.dun.type.de.SGBD.

1

Conception de bases de donnes avec UML

tel.que.relationnel,.rseau,.hirarchique.ou.objet ..Enfin.le.modle physique


de donnes.est.la.transposition.dun.modle.logique.dans.le.SGBD.adopt.
pour.implanter.la.BD.et.lapplication.de.base.de.donnes .
Les dveloppeurs dapplications ..Il.sagit.essentiellement.des.personnes.qui.
interviennent.pour.dfinir.larchitecture.et.raliser.les.programmes.dapplication.qui.vont.fournir.aux.utilisateurs.les.fonctionnalits.pour.accder..
la.base.de.donnes.dont.le.modle.physique.vient.dtre.ralis ..Ce.sont.
les.architectes,.les.analystes.et.les.programmeurs .
De.manire..supporter.efficacement.le.travail.des.concepteurs.de.BD.
et.les.dveloppeurs.dapplication.de.base.de.donnes,.bon.nombre.dditeurs.
doutils.de.dveloppement.ou.de.SGBD.commerciaux.adoptent.une.proposition.faite.par.un.organisme.de.normalisation.amricain,.lANSI.(American
National Standards Institute),.qui.prconise.une.approche..trois.niveaux.pour.
raliser. le. design. dune. base. de. donnes .. Bien. quil. ne. sagisse. pas. dune.
norme.en.bonne.et.due.forme,.ce.dcoupage.fait.dsormais.rfrence.en.la.
matire. et. nous. ladoptons. demble. dans. cet. ouvrage. pour. structurer. la.
dmarche. de. conception. dune. base. de. donnes .. Voyons. en. quoi. consiste.
cette. proposition. qui. a. fait. lobjet. dun. premier. rapport. en. 1975,. autour.
duquel.un.large.consensus.sest.dvelopp .

les niveaux dabstraction


le niveau externe
En.vertu.de.la.proposition.de.lANSI,.les.donnes.dune.base.de.donnes.sont.
dcrites.selon.trois.niveaux.dabstraction ..La.faon.dont.un.utilisateur.peroit.
les. donnes. sappelle. une. vue .. Chaque. utilisateur,. selon. ses. besoins. et. ses.
prrogatives,.peut.avoir.une.vue.diffrente.sur.les.donnes.stockes.dans.une.
BD ..Ce.niveau.dabstraction.est.appel.le.niveau externe ..Il.sagit.du.plus.haut.
niveau.dabstraction ..

le niveau interne
Au. plus. bas. niveau. dabstraction. se. situe. le. niveau interne .. Il. reprsente. la.
manire.dont.le.SGBD.peroit.les.donnes.stockes.dans.une.BD ..La.description.des.donnes.au.niveau.interne.est.donne.par.deux.modles.:.le.schma
logique des donnes.et.le.schma physique des donnes ..Ces.modles.sont.fortement.dpendants.du.type.de.SGBD.choisi.pour.mettre.en.uvre.la.base.de.
donnes ..

Introduction

1

le niveau conceptuel
De.manire..assurer.une.totale.indpendance.de.la.description.des.donnes,.
soit. en. regard. dun. groupe. dutilisateurs. soit. dun. SGBD. en. particulier,. une.
couche.intermdiaire.doit.exister.et.on.lappelle.le.niveau conceptuel ...ce.niveau.
le.schma conceptuel de donnes.va.dcrire.un.domaine.de.donnes..prendre.
en.charge.par.une.BD.sans.gard..un.utilisateur.en.particulier.et.il.sera.relativement.stable.dans.le.temps ..Cela.signifie.quun.changement..lorganisation.
physique.dune.BD.ou.encore.le.choix.dun.autre.SGBD.naura.aucun.impact.
sur.les.vues.dj.offertes.aux.utilisateurs ..Par.ailleurs.lajout.de.nouvelles.vues.
ou.dun.nouveau.groupe.dutilisateurs.avec.de.nouvelles.vues.ne.devrait.avoir.
aucun.impact.sur.lorganisation.physique.des.donnes ..Le.niveau.conceptuel.
assure.ainsi.une.couche.disolation.entre.les.besoins.des.utilisateurs.et.lorganisation. physique. de. la. BD .. Chaque. vue. est. en. fait. un. sous-ensemble. du.
schma.conceptuel.et.est.quelques.fois.appele.un.sous-schma ..
La.figure.0-2.prsente.les.trois.niveaux.dabstraction.sur.les.donnes.tels.
que.proposs.par.lANSI ..Nous.aurons.le.loisir.de.revenir.aux.cours.des.trois.
prochains.chapitres.sur.la.nature.prcise.de.ces.divers.niveaux.dabstraction.
ainsi. que. sur. les. modles. qui. les. supportent .. Notons. en. passant. que. pour.
rester. cohrent. avec. de. nombreuses. mthodes. de. conception. de. bases. de.
donnes,.nous.utiliserons.dornavant.les.termes.modle conceptuel de donnes,.
modle logique de donnes.et.modle physique de donnes.pour.parler.des.schmas.
proposs.par.lANSI ..En.somme.dans.le.cadre.de.notre.ouvrage.le.terme.schma,.
tel.que.dfini.dans.le.rapport.de.lANSI,.est.synonyme.de.modle .
Les.trois.niveaux.dabstraction.et.les.modles.qui.en.dcoulent.offrent.
un.cadre.rigoureux.de.description.des.donnes.pour.les.concepteurs.dune.
base.de.donnes ..Llaboration.du.modle.physique.de.donnes.et.la.ralisation.des.applications.de.base.de.donnes.exigent.par.ailleurs.des.outils.et.
des. langages. dont. les. dveloppeurs. font. usage .. Les. travaux. du. groupe.
CODASYL. ont. permis. didentifier. deux. types. de. langage,. destins. surtout.
aux.dveloppeurs.mais.aussi.aux.utilisateurs.experts,.qui.devraient.tre.prsents. dans. lenvironnement. dune. base. de. donnes .. Il. sagit. du. langage de
dfinition de donnes (LDD).et.du.langage de manipulation de donnes (LMD) .

langages de bases de donnes


En.pratique.cependant.on.ne.retrouve.dans.un.SGBD.quun.seul.langage.qui.
comporte..la.fois.des.instructions.pour.la.dfinition.de.donnes.et.dautres.
pour.la.manipulation.des.donnes ..Ce.langage.est.en.quelque.sorte.constitu.
de.deux.ensembles.dinstructions.ayant.leur.vocation.propre ..De.plus,.bien.
que.les.instructions.crites.dans.ce.langage.puissent.tre.excutes.directement.

0

Conception de bases de donnes avec UML

figuRe 0-2 Les trois niveaux dabstraction de lANSI

Domaine modliser

Niveau externe

Niveau conceptuel

Niveau interne

Vue externe:
Utilisateur 1

Vue externe:
Utilisateur 2

Vue externe:
Utilisateur N

Schma
conceptuel

Schma
logique

Schma
physique

BD
Organisation physique
des donnes

par. le. SGBD. par. lintermdiaire. dun. module. appel. interprte,. elles. sont.
gnralement. enchsses. par. le. programmeur. dans. un. programme. ralis.
avec. un. langage. de. haut. niveau. tel. que. C,. C#,. C++,. Java. ou. Visual. Basic,.
puis. compiles. avec. les. autres. instructions. du. programme. pour. produire. le.
programme.dapplication.excutable .

Langage } Langage qui permet au concepteur du schma physique ou ladministrateur de


de dfinition la base de donnes de nommer les entits, les attributs et associations constituant
de donnes la structure de la BD, ainsi que les contraintes dintgrit et de scurit associes
(LDD) (Data Definition Language).

Introduction

1

Le. schma. physique. est. dcrit. . laide. dun. script,. cest--dire. une.
squence.dinstructions.du.LDD.ne.comportant.ni.conditions,.ni.itrations.
contrairement. aux. programmes. crits. dans. un. langage. de. haut. niveau .. Le.
LDD.est.donc.par.dfinition.non procdural ..Le.script.suivant,.crit.pour.un.
SGBD. relationnel. dans. le. langage. SQL,. permet. de. crer. lentit. Ami. (une.
table.dans.le.modle.relationnel).avec.ses.attributs.et.dajouter.une.contrainte.
sur.lattribut. RfAmi.qui.en.fait.la.cl.primaire.de.la.table .
CREATE TABLE Ami
([RfAmi] integer,
[Nom] varchar (30),
[Prnom] varchar (30),
[DateNaissance] date,
[Tlphone] varchar (10),
[Remarques] memo,
CONSTRAINT [Index1] PRIMARY KEY ([RfAmi]);
La.compilation.des.instructions.dun.script.de.LDD.produit.des.mtadonnes.qui.seront.conserves.avec.la.BD.dans.ce.quil.est.convenu.dappeler.
le.catalogue systme .

Langage de } Langage qui fournit un ensemble doprations lmentaires de manipulation de


manipulation donnes telles que linsertion, la modification, la recherche, lextraction et la
de donnes suppression de donnes contenues dans une base de donnes (Data Manipulation
(LMD) Language).
Alors.que.le.langage.de.dfinition.de.donnes.est.rserv.aux.spcialistes,.
concepteurs.ou.administrateurs,.le.langage.de.manipulation.de.donnes.est.
trs.souvent.utilis,.directement.ou.indirectement,.par.les.utilisateurs.finaux ..
Les. instructions. du. LMD. qui. permettent. la. recherche. et. lobtention. de.
donnes.constituent.un.langage de requte.(query language) ..On.rserve.gnralement. le. terme. requte. pour. une. instruction. crite. dans. un. langage. de.
requte. pour. la. recherche. et. lextraction. de. donnes. dans. une. BD .. Cette.
distinction.peut.paratre.tonnante.au.novice.car.le.langage.SQL.(Structured
Query Language),. malgr. ce. que. laisse. croire. son. nom,. est. un. langage. qui.
combine. . la. fois. des. instructions. de. dfinition. et. de. manipulation. de.
donnes ..Sur.le.plan.de.la.manipulation.de.donnes,.il.se.prsente.non.seulement.comme.un.langage.de.requte.au.sens.strict.mais.offre.de.plus.des.
instructions.pour.la.suppression,.linsertion.ou.la.modification.des.donnes ..
SQL.est.donc.un.LMD.complet,.coupl.dun.LDD .
Voici. exprim. dans. le. langage. SQL. une. instruction. pour. la. recherche.
et.lextraction.des.enregistrements.de.la.table. Ami.dont.la.valeur.du.champ.
DateNaissance.est.strictement.suprieure.au.premier.janvier.2000 .



Conception de bases de donnes avec UML

SELECT Ami.*
FROM Ami
WHERE (((Ami.DateNaissance)>#1/1/2000#)) ;
Plusieurs.SGBD.relationnels.offrent.dsormais.une.interface.graphique.
pour.faciliter..lutilisateur.la.tche.de.rdaction.dune.requte ..Il.sagit.en.
fait.de.vritables.langages.de.requte.qui.permettent.de.construire.une.requte.
par. lexemple .. Un. reprsentant. bien. connu. de. cette. catgorie. est. le. QBE.
(Query-by-Example).intgr.au.SGBD.Microsoft.Access ..
Ainsi,.la.requte.exprime.ci.haut.en.SQL.peut.tre.aussi.dfinie..travers.
une. grille. comme. le. montre. la. figure. 0-3 .. Tout. comme. SQL,. QBE. permet.
aussi.de.formuler.des.requtes.pour.la.suppression,.linsertion.ou.la.modification.denregistrements ..Lutilisateur.na.donc.plus..se.plier..une.syntaxe.
souvent.rbarbative.pour.formuler.sa.requte ..Sa.tche.consiste.alors.essentiellement..complter.les.paramtres.de.la.requte..travers.une.grille ..
figuRe 0-3 Requte de slection exprime graphiquement avec QBE

Architecture des sgbd multiutilisateurs


La.premire.architecture.mise.en.uvre.pour.permettre..plusieurs.utilisateurs.
daccder.concurremment..une.base.de.donnes.est.celle.du.tltraitement ..
Ce. terme. met. en. vidence. le. fait. que. toute. la. capacit. de. traitement. des.
donnes. est. centralise. sur. un. ordinateur. central. auquel. les. utilisateurs.
.accdent.par.le.biais.de.simples.terminaux ..Ces.terminaux.sont.du.type.passif.
car.ils.ninterviennent.nullement.dans.le.traitement.des.donnes,.ne.servant.
qu.transmettre,.recevoir.et.disposer..lcran.les.donnes.reues ..



Introduction

Une. telle. architecture. impose. . lordinateur. central. une. charge. de.


t. raitement. considrable. car. ce. dernier. doit. supporter. non. seulement. les.
tches.daccs..la.base.de.donnes.et.dexcution.de.lapplication.de.base.
de.donnes.mais.en.outre.celle.de.mettre.en.forme.des.donnes.transmises.
aux.terminaux.qui.nauront.qu.les.afficher.selon.les.directives.reues ..Cette.
architecture. impose. aux. organisations. lexploitation. et. lachat. coteux.
.dordinateurs.de.grande.taille .
La. figure. 0-4. illustre. cette. architecture. qualifie. aussi. de. traitement
centralis .
figuRe 0-4 Architecture de traitement centralis

Terminal 1

Terminal 2

Terminal 3

BD
Ordinateur central

Le. dveloppement. des. ordinateurs. personnels. peu. coteux. ainsi. que.


des. rseaux. de. communication. . haut. dbit. a. permis. llaboration. dune.
nouvelle.architecture.misant.sur.la.capacit.de.traitement.dvolue.localement.
aux. postes de travail. des. utilisateurs .. La. capacit. de. traitement. nest. plus.
dsormais.lapanage.de.lordinateur.central ..Les.utilisateurs.disposent.alors.
de.postes.de.travail.qui.prennent.en.charge.en.tout.ou.en.partie.le.traitement.
des.donnes ..Cette.architecture.est.dite..traitement distribu.par.opposition.
.la.forme.traditionnelle.de.traitement.centralis ..La.forme.la.plus.connue.
de.traitement.distribu.est.larchitecture client-serveur .

Architecture } Spcification dun systme informatique dans lequel un processus appel le


client-serveur serveur agit comme fournisseur de ressources pour dautres processus qui
demandent ces ressources, soit les processus clients. Le processus client et le
processus serveur sexcutent le plus souvent sur des machines diffrentes
relies au mme rseau (Client-Server Architecture).



Conception de bases de donnes avec UML

Larchitecture.client-serveur.vise..dcharger.lordinateur.central.du.plus.
grand. nombre. de. tches. possible .. La. forme. la. plus. simple. que. prend. cette.
architecture. est. le. modle. . deux. niveaux. (en. anglais. two-tier). illustr. . la.
figure.0-5 ..Dans.les.applications.de.base.de.donnes,.on.retrouve.gnralement.trois.composants.principaux.:.la.logique de prsentation (interface utilisateur),.la.logique applicative.aussi.appele.la.logique.mtier.et.la.logique daccs
aux donnes ..
La.logique.de.prsentation.est.responsable.de.la.gestion.de.linterface.
utilisateur.notamment.la.prsentation.des.donnes..lcran.et.linteraction.
avec. lutilisateur .. La. logique. applicative. prend. en. charge. les. traitements.
propres. . lapplication,. soit. les. rgles. daffaires. dun. mtier,. la. nature. des.
calculs.qui.doivent.tre.effectus ..La.logique.daccs.aux.donnes.est.relative.
.lexcution.des.requtes.par.le.SGBD.pour.fournir..la.logique.applicative.
les.donnes.dont.elle.a.besoin.pour.excuter.les.processus.du.mtier .
En.vertu.de.larchitecture.client-serveur. deux niveaux,.le.poste.de.travail.
de.lutilisateur,.appel.le.poste client,.prend.en.charge.tous.les.traitements.lis.
. la. fois. . la. logique. de. prsentation. et. . la. logique. applicative .. La. logique.
daccs.est.dvolue..un.serveur.qui.agit.comme.serveur.de.donnes.exclusivement ..Le.poste.client.compose.des.requtes,.dans.le.langage.SQL.par.exemple,.
selon. les. besoins. en. donnes. de. lapplication. qui. sexcute. sur. le. poste .. Il.
transmet.ensuite.la.requte..travers.le.rseau.au.serveur.qui.lexcute..son.
tour.et.retourne.en.rponse.au.poste.client.le.rsultat.de.son.excution .
figuRe 0-5 Architecture client-serveur deux niveaux

Premier niveau
Interface utilisateur
Logique applicative

Poste client 1

Poste client 2

Poste client 3

Rseau

Deuxime niveau
Accs la base de
donnes

BD
Serveur avec SGBD

Introduction



Une.telle.architecture.permet.aux.organisations.de.se.doter.de.ressources.
informatiques.centrales.de.taille.modeste.tout.en.misant.sur.les.ordinateurs.
personnels.des.utilisateurs,.par.ailleurs.utiliss.pour.des.tches.de.bureautique,.
pour.lexcution.dapplications.de.base.de.donnes ..Cet.avantage.est.obtenu.
au.prix.dune.administration.beaucoup.plus.lourde.du.parc.dquipement,.
dune. plus. grande. complexit. des. applications. et. en. consquence. de. frais.
dentretien.et.de.mise..jour.plus.levs .
De.manire..simplifier.lentretien.et.la.mise..jour.de.la.logique.applicative,. un. autre. modle. client-serveur. a. t. mis. au. point. permettant. de.
dlester. le. poste. client. de. ce. composant .. Il. sagit. de. larchitecture. clientserveur. trois niveaux.(three-tier) ..Dans.ce.modle.la.logique.applicative.est.
prise.en.charge.par.un.deuxime.serveur,.ne.laissant.au.poste.client.que.les.
tches. lies. . la. gestion. de. linterface. utilisateur .. Cest. ainsi. quest. n. le.
concept.de.client lger,.lger.dans.le.sens.que.le.poste.client.ne.ncessite.plus.
de.ressources.aussi.importantes.en.matire.despace.de.mmoire.principale.
et. de. vitesse. dexcution. que. demandait. le. modle. . deux. niveaux .. Dans.
certaines.applications.client-serveur..trois.niveaux,.la.gestion.de.linterface.
utilisateur. se. fait. avec. un. simple. navigateur. Web .. Avec. pour. consquence.
une.administration.considrablement.simplifie.des.mises..jour.des.applications.ct.client ..Lentretien.de.la.logique.applicative.ne.concerne.dsormais.
quune.seule.machine.que.lon.appelle.le.serveur dapplication ..La.figure.0-6.
illustre.cette.deuxime.forme.darchitecture.client-serveur .
La.facilit.dadministration.des.mises..jour.nest.pas.le.seul.avantage.
dun. modle. . trois. niveaux .. Il. est. en. revanche. dune. grande. souplesse .. Il.
permet. par. exemple. dassurer. aux. utilisateurs. un. service. sans. interruption.
en. cas. de. panne .. En. mettant. en. uvre. ce. modle. avec. plusieurs. serveurs.
dapplication,.offrant.tous.la.mme.logique.applicative,.la.panne.dun.serveur.
a.peu.dimpact.sur.les.utilisateurs.car.les.autres.serveurs.pourront.prendre.la.
relve.en.tout.temps.mme.si.la.performance.globale.sen.trouvera.lgrement.
dgrade ..De.plus,.le.serveur.dapplication.peut.communiquer.avec.dautres.
serveurs.dapplications.pour.obtenir.des.ressources.et.des.services.spcialiss ..
Dans.une.application.de.commerce.lectronique.par.exemple,.le.serveur.qui.
prend.en.charge.la.transaction.du.client.peut.faire.appel..un.autre.serveur,.
spcialis.dans.le.traitement.du.paiement.par.carte.de.crdit,.de.manire..
complter. lachat .. Le. commerant. peut. se. procurer. ce. service. auprs. dun.
fournisseur,.sans.avoir..dvelopper.ou..excuter.sur.ses.propres.quipements.
ce.composant.du.systme .
Nous. concluons. cette. section. avec. une. illustration. prsente. . la.
figure.0-7. qui. schmatise. lenvironnement. des. bases. de. donnes. que. nous.
venons. de. dcrire .. Cet. ouvrage. met. en. lumire. les. mthodes. et. les. outils.
exploits.par.les.modlisateurs.et.les.administrateurs.pour.la.conception.des.



Conception de bases de donnes avec UML

figuRe 0-6 Architecture client-serveur trois niveaux

Premier niveau
Interface utilisateur

Poste client 1

Poste client 2

Poste client 3

Rseau
Deuxime niveau
Logique applicative

Serveur dapplication
Troisime niveau
Accs la base de
donnes
BD
Serveur de donnes avec SGBD

bases.de.donnes ..Les.chapitres.1..3.portent.sur.ce.sujet.en.rpondant.aux.
prescriptions.de.lANSI.en.ce.qui.a.trait.aux.modles.quils.doivent.produire.
et.lordre.dans.lequel.ceux-ci.doivent.ltre ..Au.chapitre.4,.nous.illustrerons.
la.nature.et.limportance.de.ces.modles.dans.le.contexte.de.la.ralisation.
dune.application.de.base.de.donnes .
Les.trois.premiers.chapitres.traitent.respectivement.de.la.modlisation.
conceptuelle,. logique. et. physique. des. donnes .. Toutes. les. mthodes. de.
conception.de.base.de.donnes.suggrent.la.production.de.ces.modles.dans.
cet. ordre .. Le. lecteur. y. trouvera. une. description. dtaille. des. rgles. et. des.
formalismes. dont. font. usage. les. modlisateurs. pour. raliser. ces. modles,.
ponctue.de.nombreux.exemples.qui.peuvent.servir.de.modles.gnriques ..
Bien. quil. existe. des. outils. qui. permettent. dappliquer. automatiquement.
certaines. rgles,. notamment. les. rgles. de. passage. dun. modle. conceptuel.
au.modle.logique,.ou.encore.la.gnration.dun.schma.physique.de.donnes.
.partir.dun.modle.logique,.il.nous.apparat.impratif.que.tout.modlisateur.
de.donnes.possde.une.bonne.comprhension.de.ces.rgles.pour.pouvoir,.



Introduction

figuRe 0-7

Environnement de bases de donnes

Modlisateur de donnes

Administrateur de BD

diteur de
schma
physique

Outils de
modlisation

SGBD
Interprte
du LDD

Architecte, analyste
programmeur

Utilisateur final

Outils de
conception et
de
programmation

Logique
applicative
Rseau

valuateur
de requte

Base de donnes
Catalogue systme

le.cas.chant,.modifier.les.modles.produits,.afin.doptimiser.la.performance.
de. la. BD. notamment,. sans. compromettre. la. cohrence. globale. des. divers.
modles ..

Chapitre

le modle conceptuel
de donnes
Objectifs
Concepts fondamentaux lis au formalisme entit-association (EA).
Rgles et principes assurant llaboration dun modle conceptuel
complet et cohrent.

Dtail de la formulation dun modle conceptuel dans la notation


UML.

Notations pour exprimer un modle conceptuel laide


du formalisme EA.
Ce. chapitre. dcrit. la. premire. tape. dans. la. ralisation. dune. base. de.
donnes.:.llaboration.dun.modle conceptuel de donnes ..Chaque.tape.
de.la.mthode.prconise.dans.cet.ouvrage.produit.un.modle.de.donnes.
qui.sera.affin..ltape.suivante,.jusqu.la.spcification.finale.de.tous.
les.dtails.dimplantation.de.la.BD.pris.en.charge.par.un.SGBD .

0

Conception de bases de donnes avec UML

Modle } Un modle est une reprsentation simplifie dune ralit. Un modle de donnes
de donnes est une reprsentation abstraite des donnes dun systme dinformation. Cette

reprsentation est gnralement exprime laide dun langage graphique appel

Formalisme (Data model).

Le. modle. conceptuel. de. donnes. est. le. seul. modle. qui. ne. dcoule.
daucun.autre.modle ..Il.est.ralis.dans.le.cadre.dune.analyse.des.besoins.
portant.sur.les.donnes.requises.pour.assurer.le.bon.fonctionnement.dune.
organisation.ou.dun.secteur.spcifique.de.lorganisation ..Cette.analyse.des.
besoins.est.mene.auprs.des.principaux.utilisateurs.du.systme.dinformation.
et.vise..formuler.une.comprhension.commune.de.la.nature.des.donnes,.
de.leur.smantique.(cest--dire.leur.signification).et.de.leur.utilisation.dans.
une.organisation ..Le.modle.conceptuel.de.donnes.est.en.consquence.un.
modle.non.technique.comprhensible.par.tous ..Il.sagit.dun.outil.de.communication.pour.assurer.une.interprtation.commune.des.besoins.exprims .

Modle } Un modle conceptuel de donnes est une reprsentation des besoins en matire
conceptuel de donnes pour un systme dinformation. Il met en vidence les entits, leurs
de donnes attributs, les associations et contraintes entre ces entits pour un domaine

donn. Cette reprsentation, de nature smantique, ne comporte aucune indi


cation concernant la structure de mmorisation des donnes associes aux
entits. Le modle conceptuel est gnralement reprsent laide du Formalisme
entitassociation (Conceptual model).

Formalisme } Un ensemble de rgles de reprsentation permettant de formuler un modle

graphiquement. Il comporte un certain nombre de concepts de base permettant


dexprimer un modle. La reprsentation graphique des concepts dpend de la
Notation employe (Formalism).

Plusieurs.formalismes.ont.t.proposs.pour.raliser.un.modle.conceptuel.
de.donnes,.par.exemple.le.rseau.smantique.de.J .-F ..Sowa.[SOW.84],.mais.
seul.le.formalisme.entit-association.fait.lobjet.dun.rel.consensus.en.cette.
matire.et.est.une.composante.essentielle.de.la.plupart.des.outils.de.conception.de.base.de.donnes ..Malheureusement,.ce.qui.ne.fait.gure.consensus,.
cest.la.notation.utilise.pour.reprsenter.graphiquement.les.lments.de.base.
du.formalisme ..Comme.nous.le.verrons.plus.loin.dans.cette.section,.plusieurs.
notations. existent. en. parallle. . travers. divers. outils. de. modlisation .. En.
revanche,.lutilisation.de.la.notation.propose.dans.le.langage.de.modlisation.UML.(Unified Modeling Language).gagne.de.nombreux.adeptes.parmi.les.
diteurs.de.logiciels.pour.la.ralisation.de.systme.dinformation,.en.particulier.pour.la.formulation.dun.modle.conceptuel.de.donnes ..Cest.la.raison.

Le modle conceptuel de donnes

1

premire.pour.laquelle.la.notation.UML.a.t.adopte.dans.le.cadre.de.cet.
ouvrage .. Nous. reviendrons. plus. loin. sur. les. autres. raisons. qui. justifient. ce.
choix .

Notation } Convention de reprsentation graphique des concepts lis un formalisme,


propose par un ou plusieurs auteurs. Un mme Formalisme, tel que le formalisme

entitassociation, peut faire appel diverses notations. Le choix de la notation


est laiss la discrtion du modlisateur mais il est souvent impos par loutil
employ par ce dernier pour raliser le modle (Notation).
Avant.de.nous.attarder.aux.arcanes.de.la.notation.UML,.revenons.aux.
concepts.de.base.du.formalisme.entit-association .

concepTs de bAse du foRMAlisMe enTiT-AssociATion


Le.formalisme entit-association.(EA),.initialement.appel.entit-relation.(entityrelationship).par.son.auteur.P ..Chen.[CHE.76],.sest.vite.impos..travers.diverses.
mthodes.de.conception.de.bases.de.donnes.comme.le.formalisme.de.choix.
pour.exprimer.un.modle.conceptuel.de.donnes ..La.mthode.Merise.propose.
par.H ..Tardieu.et.ses.collaborateurs.en.France.[TAR.83].comporte.une.dfinition.
prcise.du.formalisme.et.des.rgles.de.construction.dun.bon.modle.conceptuel .. On. attribue. gnralement. . lquipe. de. Tardieu. le. choix. des. termes.
.entit-association..pour.nommer.le.formalisme,.plutt.que..entit-relation.,.
pour.viter.toute.ambigut.avec.le.concept.de.relation.provenant.de.lalgbre.
relationnelle,. un. concept. fondamental. des. bases. de. donnes. relationnelles.
mais.qui.a.un.tout.autre.sens.dans.le.formalisme.EA .
Le. formalisme. entit-association. fait. appel. . trois. concepts. premiers,.
soit.entit,.association,.et.attribut.qui.sont.relatifs..la.smantique.des.donnes.
et. trois. concepts. accessoires,. identifiant. occurrence. et. multiplicit,. pour. lexpression.des.contraintes.dintgrit.des.donnes.du.modle ..La.modlisation.
conceptuelle. est. un. processus. progressif. et. descendant. o. le. concepteur.
sattarde.dabord..identifier.les.donnes.importantes,.qualifies.de.vitales,.
regroupes.sous.forme.dentits,.puis.y.ajoute.les.associations.pertinentes.entre.
ces.entits ..Sur.la.base.de.cette.bauche.du.modle,.des.dtails.supplmentaires.
sont.ajouts.tels.que.les.donnes.qui.doivent.tre.conserves..propos.des.entits.
et.des.associations,.appels.les.attributs,.ainsi.que.dautres.lments.imposant.
des.contraintes.sur.les.donnes,.soit.les.identifiants.et.les.multiplicits .
Dcrivons. maintenant. chacun. des. ces. concepts,. leur. reprsentation.
graphique.grce..la.notation.UML.et.la.smantique.sous-jacente .



Conception de bases de donnes avec UML

entit, attribut et association


Entit } Objet concret ou abstrait du monde rel au sujet duquel une organisation est

susceptible de conserver des donnes (Entity).

Une. entit. concrte. possde. une. existence. physique. cest. le. cas. dun.
client,. dun. quipement,. dun. produit. par. exemple .. Une. entit. abstraite. a.
une.existence.conceptuelle,.par.exemple.une.transaction,.un.tarif,.lannulation.dun.vol.davion ..Le.client. Jean. Dupond est.une.entit,.la.commande.
COM0001. est. aussi. une. entit,. la. premire. concrte,. lautre. abstraite .. Bien.
quune. commande. puisse. prendre. la. forme. dun. document. papier,. ce. qui.
intresse.le.modlisateur.cest.laspect.conceptuel.de.la.transaction.car.elle.
peut.ne.pas.exister.sur.papier ..Elle.sera.donc.considre.avant.tout.comme.
un.objet.abstrait .
Toute.entit.possde.des.proprits,.appels.attributs,.et.lensemble.des.
entits. qui. ont. les. mmes. attributs. est. reprsent. graphiquement. par. une.
entit type,. soit. un. rectangle. comportant. dans. la. case. au. haut. le. nom. de.
lentit. type. et. dans. la. case. du. bas. la. liste. des. attributs. de. lentit. type .. Il.
sagit.du.moule.dans.lequel.toute.entit.de.ce.type.est.forme .

Attribut } Donne lmentaire qui sert caractriser une proprit des entits et des

associations dans un modle conceptuel de donnes (Attribute).

La.figure.1-1.montre.lentit.type.Client.qui.dcrit.la.structure.commune.
pour.lensemble.des.entits.Client.notamment.les.attributs.que.chaque.entit.
de.ce.type.possde.:. No client,. Nom client,. Prnom client.et. Adresse client ..
Dans.le.langage.UML.le.rectangle.peut.reprsenter.divers.concepts,.par.
exemple.une.classe.dobjets.dans.un.diagramme.de.classes ..Cest.pourquoi.
il.est.prescrit.par.le.langage.dajouter.une.tiquette.au.haut.du.rectangle.qui.
permet.dtablir.de.quel.concept.il.sagit.(Ici.le.mot..entit.) ..
En. matire. de. modlisation. conceptuelle. avec. la. notation. UML,. le.
r. ectangle.ne.peut.que.reprsenter.des.entits,.cest.pourquoi.tout.au.cours.
de. ce. chapitre. ltiquette. .entit.. sera. omise. pour. viter. dalourdir. les.
figuRe 1-1

Reprsentation graphique de lentit type Client


entit
Client
No client
Nom client
Prnom client
Adresse client



Le modle conceptuel de donnes

modles ..De.plus,.pour.simplifier.notre.expos,.le.terme.gnral.entit.sera.
utilis.pour.parler.dune.entit type.prsente.dans.un.modle.conceptuel ..On.
crira.par.exemple..Lentit.Client.possde.quatre.attributs..plutt.que..Lentit.
type. Client. possde. quatre. attributs.. car. cette. formulation. ne. comporte.
aucune.ambigut .
Si.le.terme.entit.peut.reprsenter.lensemble.des.entits.de.mme.type,.
on. utilisera. frquemment. les. termes. occurrences dune entit. pour. faire. rfrence..un.lment.de.cet.ensemble .

Occurrence } lment particulier dune entit type, identifiable de faon unique. (Instance)
dentit
.propos.du.modle.conceptuel.de.la.figure.1-1.o.une.entit.Client.est.
prsente,.on.dira.que.lentit.dont.le.No client.est.CLI0002.est.une.occurrence.
de.cette.entit .

Association } Lien smantique qui existe entre deux entits ou plus. Elle reprsente souvent

la mmoire dun vnement qui a permis dtablir un lien logique entre ces
entits (Relationship).

Tout. comme. une. entit. appartient. . une. entit. type,. une. association.
appartient..une.association type.illustre.par.un.arc.entre.des.entits.types.
dans.un.modle.conceptuel ..En.gnral.le.terme.association.sera.utilis.pour.
faire.rfrence..une.association.type.dans.un.modle.conceptuel ..
La. figure. 1-2. prsente. un. modle. o. les. entits. Client. et. Commande.
sont.lies.par.une.association.portant.le.nom. Effectue ..On.notera.que.lassociation.est.identifie..laide.dun.verbe.daction,.quune.flche.donne.une.
direction..la.lecture.du.modle.(ici.de.la.gauche.vers.la.droite),.ce.qui.permet.
de.faire.une.lecture.de.lassociation.comme.sil.sagissait.dune.phrase.comportant. un. sujet,. un. verbe. et. un. complment .. Cette. association. est. dite.
binaire.car.elle.met.en.cause.deux.entits ..Comme.nous.le.verrons.plus.loin.
.la.section.portant.sur.les.concepts.avancs,.il.existe.aussi.des.associations.
sur. plus. de. deux. entits,. dites. de.degr suprieur,. qui. sont. beaucoup. moins.
frquentes.mais.dont.limportance.mrite.que.lon.sy.attarde ..Nous.aurons.
loccasion.dy.revenir .
figuRe 1-2

Association entre lentit Client et lentit Commande


Client
No client
Nom client
Prnom client
Adresse client

Commande
Effectue4

No commande
Date commande
Date prvue livraison
Total commande



Conception de bases de donnes avec UML

Le. modle. de. la. figure. 1-2. est. une. reprsentation. abstraite. qui,. par.
analogie,.pourrait.correspondre.intuitivement..deux.bacs.de.fiches,.le.premier.
portant.le.nom. Client.et.lautre.le.nom. Commande ..Certaines.fiches.du.bac.
Client.sont.relies..des.fiches.du.bac. Commande.par.une.ficelle ..Dans.cette.
analogie.les.deux.bacs.correspondent.aux.deux.entits ..Les.fiches.reprsentent.
des.occurrences.de.chacune.des.entits ..Les.inscriptions.sur.les.fiches.sont.
les.valeurs.des.attributs.pour.une.occurrence.dentit ..Enfin,.on.assimile.les.
ficelles.aux.associations ..Cette.analogie.est.illustre..la.figure.1-3.o,.pour.
des.raisons.de.simplification,.les.valeurs.pour.les.attributs.des.entits.ne.sont.
pas. toutes. montres .. Seules. les. valeurs. des. trois. premiers. attributs. le. sont.:.
No.client,.Prnom.client.et.Nom.client ..
Nous.devons..Daniel.Pascot.de.lUniversit.Laval.au.Qubec.lide.de.
cette.analogie .
figuRe 1-3

Analogie pour le modle conceptuel de la figure 1-2

rd
Lo
r
es ruge
Yv
K
;
an
07 Don
0
Je
;
I0
arc Huet
CL 0006
M
I
;
l
i
05
au
ior
CL
nt
;P
I00
nF
po
CL 0004
ea
Du
;J
I
b
3
n
L
0
a
C
Du
0
e
J
0
e
I
;
n
CL
02
An
0
;
0
1
I
0
CL
I00
CL

ie
Cl

nt

06
/2 0
06
4/1
/20
1
;2
06
/
5
2
0
2
/20
0
;
1
0/
06
04
M0
;2
20
00
3
CO
M
06
/1/
00
20
15
CO
M0
/1/
2;
O
2
0
1
0
C
;
0
1
M
00
CO
M0
CO

Co

an

de

En. consultant. la. figure. 1-3,. le. lecteur. comprendra. toute. limportance.
dune. association. dans. un. modle. conceptuel .. Sur. le. plan. smantique,. la.
prsence.dune.association.entre.deux.occurrences.dentits.(une.ficelle).nous.
assure. qu. partir. dune. occurrence. il. est. possible. davoir. accs. . lautre.
occurrence.associe.en.suivant.cette.ficelle.et.vice.versa .
Une.association.peut.mettre.en.cause.des.occurrences.de.la.mme.entit ..
On.parle.alors.dassociation rflexive ..Pour.illustrer.la.notion.de.mariage.entre.
deux. personnes,. on. peut. faire. appel. . une. association. rflexive. comme. le.
montre. la. figure. 1-4 .. Le. modle. illustre. le. fait. quun. bac. comportant. des.



Le modle conceptuel de donnes

figuRe 1-4

Une personne est associe une autre personne lorsquelle lpouse


Personne

0..*

0..*

pouse

fiches.sur.des.personnes.pourrait.comporter.des.ficelles.qui.relient.des.fiches.
places.dans.le.mme.bac.pour.mmoriser.un.vnement,.soit.ici.le.mariage.
entre.deux.personnes .

contraintes sur les attributs et les associations


Lanalogie. des. bacs. . fiches. met. aussi. en. vidence. la. ncessit. didentifier.
chaque.fiche.dans.un.bac,.donc.chaque.occurrence.dune.entit,.pour.pouvoir.
facilement.les.reprer ..Pour.ce.faire,.il.doit.exister.un.attribut,.ou.un.groupe.
dattributs,.qui.fournit.une.identification.unique..chaque.occurrence.dune.
entit ..Cet.attribut.ou.ce.groupe.dattributs.est.appel.identifiant.dans.le.formalisme.entit-association ..Lidentifiant.est.la.cl.pour.reprer.une.fiche ..Par.
analogie,.lidentifiant.pourrait.servir..trier.les.fiches.dun.bac.et..faciliter.
le.dpistage.dune.fiche.si.la.valeur.de.son.identifiant.est.connue .

Identifiant } Attribut ou groupe dattributs permettant didentifier chaque occurrence dune

entit (Identifier).

Pour.ce.qui.est.du.modle.conceptuel.de.la.figure.1-2,.on.peut.dduire.
sans.risque.de.se.tromper.que.lattribut.No client.serait.un.bon.choix.comme.
identifiant. de. lentit. Client. et. que. le. No commande. pourrait. jouer. ce. rle.
pour. lentit. Commande .. On. en. conclut. que. chaque. numro. de. client. et.
chaque. numro. de. commande. est. unique,. ce. qui. permet. de. reprer. une.
fiche.dans.le.bac.correspondant.si.son.identifiant.est.connu ..Limportance.
de.lidentifiant.implique.que.chaque.fiche.possde.une.valeur.pour.lidentifiant.et.que.les.fiches.soient.classes.selon.lordre.croissant.de.la.valeur.de.
lidentifiant .
La. plupart. des. notations. utilisent. le. soulignement. pour. marquer. un.
identifiant ..Dans.la.notation.UML.cependant,.il.en.va.autrement ..Lattribut.
est.marqu.dune.contrainte,.place..la.suite.du.nom.de.lattribut,.qui.indique.
que.la.valeur.de.cet.attribut.est.unique,.cest--dire.quelle.ne.peut.tre.prise.
par.deux.occurrences.de.la.mme.entit ..En.UML.une.contrainte.est.inscrite.
entre. accolades. comme. le. montre. la. figure. 1-5 .. Ici. la. contrainte. {Unique}.
marque.lattribut.agissant.comme.identifiant ..



Conception de bases de donnes avec UML

Il. sagit. dun. premier. type. de. contrainte. applicable. . un. attribut. qui.
doit. obligatoirement.avoir.une.valeur.pour.chaque.occurrence.de.lentit ..
Par. ailleurs,. les. valeurs. doivent. tre. toutes. diffrentes. dune. occurrence. .
lautre ..La.prsence.dune.contrainte.{Unique}.sur.un.attribut.a.pour.corollaire.
que.la.valeur.de.cet.attribut.ne.peut.tre.inconnu,.ou.nul ..Cette.contrainte.
nest.pas.expressment.exprime.dans.le.modle.sous.la.forme.{Unique.;.Non.
nul}.mais.elle.est.implicite.pour.lattribut.choisi.comme.identifiant ..La.prsence. dun. identifiant. marqu. de. la. contrainte. {Unique}. pour. une. entit.
reprsente.une.contrainte dintgrit dentit .

figuRe 1-5

Modle conceptuel dont les identifiants sont marqus


Client

Commande

No client : {Unique}
Nom client
Prnom client
Adresse client

Effectue

No commande : {Unique}
Date commande
Date prvue livraison
Total commande

Lorsquun.identifiant.est.form.dun.seul.attribut.on.le.qualifie.didentifiant simple ..Sil.savre.quun.identifiant.doive.comporter.plusieurs.attributs,.


une.contrainte.{Unique}.sera.place.avant.tous.les.attributs.de.lentit.indiquant.en.cela.quels.sont.les.attributs.qui.forment.lidentifiant ..On.parle.alors.
dun.identifiant.compos .
La.figure.1-6.montre.une.entit.avec.identifiant.compos ..Comme. No
client. nest. pas. prsent. dans. lentit. Client,. la. combinaison. du. Nom. et. du.
Prnom.du.client.a.t.choisi.comme.identifiant.dans.la.mesure.o.on.peut.

tre.assur.que.deux.clients.nauraient.jamais..la.fois.le.mme.nom. et.le.
mme.prnom ..Si.on.ne.peut.tre.assur.de.cela,.il.vaut.mieux.envisager.un.
nouvel.attribut,. No client,.comme.le.montre.lentit. Client.de.la.figure.1-5 .

figuRe 1-6

Modle conceptuel avec identifiant compos


Client
{Unique Nom client, Prnom client}
Nom client
Prnom client
Adresse client

Le modle conceptuel de donnes

1-1
Rgle
didentit



Bien quil ne sagisse pas dune rgle absolue, il est peu recommand davoir des
identifiants composs dans un modle conceptuel sil est destin tre traduit en
un modle logique. Nous verrons au chapitre 2 que la prsence didentifiants composs rend inutilement complexe un modle logique. Si le modlisateur ne peut
trouver pour une entit un attribut naturel qui puisse convenir comme identifiant, il
aura toujours le loisir de crer un attribut artificiel qui va jouer ce rle. Ainsi, par
exemple, dans une organisation qui reoit des c.v. pour les postes affichs, mme
si les c.v. sont conservs traditionnellement dans un dossier pour chacun des postes,
et ce, en ordre alphabtique selon le nom des candidats, le modlisateur peut facilement convenir avec les utilisateurs du systme dvelopper que lon utilisera un
attribut artificiel tel que No CV ou No candidat pour identifier chaque c.v. reu.

Toute entit prsente dans un modle conceptuel de donnes doit comporter


obligatoirement un identifiant. Chaque occurrence de lentit doit possder une
valeur pour cet attribut. La valeur de lattribut identifiant devra tre stable, cest--dire
quau cours de la vie dune occurrence de lentit cette valeur ne pourra changer. De
plus deux occurrences de lentit ne pourraient avoir la mme valeur pour leur identifiant. La mme valeur accorde plus dune fois un identifiant reprsente un
doublon. Les doublons sont inacceptables pour un identifiant.

La. rgle. didentit. prescrit. quun. identifiant. est. obligatoire,. stable. et.
sans.doublon ..Dans.le.cas.de.lentit.Client,.au.del.du.fait.que.le.choix.dun.
identifiant.compos.nest.pas.recommand,.lutilisation.du.nom.et.du.prnom.
du.client.ne.peut.garantir.la.stabilit.de.lidentifiant,.car.une.personne.pourrait.changer.de.nom ..De.plus.comme.nous.lavons.voqu.plus.tt,.la.prsence.
de.doublons.est.fort.probable..moins.que.lon.ne.dcide.dcarter.tout.client.
potentiel.qui.soit.lhomonyme.dun.client.existant.!.!.!
Un.autre.type.de.contrainte.doit.tre.ajout.au.modle.conceptuel.ds.
lors.que.les.identifiants.des.entits.associes.sont.tablis ..Il.sagit.des.contraintes
de multiplicit.qui.prcisent..la.fois.que.la.participation.dune.entit..lassociation. est. obligatoire. ou. non,. et. le. cas. chant,. le. nombre. doccurrences.
dune.association.auxquelles.elle.peut.participer .

Multiplicit } Contrainte inscrite chaque extrmit dune association binaire comportant


(association un couple de valeurs (minimummaximum) qui tablit, pour chaque entit de
binaire) lassociation, les nombres minimum et maximum doccurrences de lautre entit

qui peuvent lui tre associes (Multiplicity).



Conception de bases de donnes avec UML

Les.contraintes.de.multiplicit.dpendent.fortement.des.rgles.daffaires.
(business rules).dune.organisation ..Il.est.fondamental.que.le.modlisateur.et.
lensemble.des.utilisateurs.du.systme.aient.une.comprhension.commune.
de. ces. rgles. pour. que. les. contraintes. de. multiplicit. soient. valables. et.
.savrent.en.consquence.pertinentes .
Le. tableau. 1-1. donne. les. quatre. combinaisons. de. base. du. couple. de.
valeurs .. Le. premier. chiffre. (0. ou. 1),. indique. quil. sagit. dune. association.
optionnelle.(0).ou.dune.association.obligatoire.(1) ..Le.deuxime.chiffre.indique.
le. nombre. maximum. doccurrences. des. associations. auxquelles. une. entit.
participe.:.une.(1).ou.strictement.plus.dune,.cest--dire.plusieurs.(*) ..Lastrisque.reprsente.en.effet.la.valeur.plusieurs .
TAbleAu 1-1

Codification des multiplicits

Multiplicit UML
0..1
1..1 (ou 1)
0..* (ou *)
1..*

Signification
Au plus un
Un seul
Un nombre indtermin
Au moins un

Si. nous. reprenons. le. modle. de. la. figure. 1-4. et. tentons. dtablir. les.
multiplicits.de.lassociation.binaire.Effectue,.il.suffit.de.consulter.lanalogie.
de.la.figure.1-3.pour.arriver..les.dduire .
Considrons.les.occurrences.de. Client,.soit.par.analogie.les.fiches.dans.
le. bac. Client .. Nous. notons. que. certains. clients. ne. sont. lis. . aucune. commande,. cest. le. cas. dAnne. Dub .. Lassociation. avec. Commande. est. donc.
optionnelle.(0).pour. Client ..Par.ailleurs,.certains.clients.sont.lis..plusieurs.
commandes.(*),.cest.le.cas.de.Paul.Huet ..On.en.dduit.donc.la.multiplicit.
0 . .*.qui.sera.place.sur.lassociation.du.ct.de. Commande .
En. consultant. les. occurrences. de. Commande,. soit. les. fiches. du. bac.
Commande,.on.constate.quelles.sont.toutes.lies..un.client ..Lassociation.
avec.Client.est.donc.obligatoire.(1) ..De.plus.une.commande.nest.jamais.lie.

.plus.dun.client.(1) ..On.en.dduit.la.multiplicit.1 . .1.qui.sera.place.sur.


lassociation.du.ct.de. Client,.car.une.commande.ne.peut.tre.lie.qu.un.
seul. Client .
Le.modlisateur.expriment.ne.fait.pas.ncessairement.la.rflexion.sur.
les.multiplicits..laide.de.lanalogie.du.bac ..Il.va.tablir.assez.aisment,.en.
analysant. le. fonctionnement. de. lorganisation,. quun. client. peut. effectuer.



Le modle conceptuel de donnes

un.nombre.indtermin.de.commandes.(0 . .*).et.quune.commande.ne.peut.
tre.lie.qu.un.seul.client.(1 . .1) ..En.toute.logique,.une.commande.ne.peut.
en.effet.provenir.de.deux.clients ..
La.figure.1-7.montre.un.modle.conceptuel.maintenant.complet.avec.
les.deux.contraintes.de.multiplicit.places.de.part.et.dautre.de.lassociation ..
Toute.association.binaire.comporte.deux.multiplicits.car.une.association.se.
lit.dans.les.deux.directions.avec.des.multiplicits.qui.peuvent.tre.diffrentes ..
Dans. le. modle. de. la. figure. 1-7. le. modlisateur. a. t. tenu. de. rpondre. .
deux.questions.qui.ont.conduit..deux.rponses.diffrentes.:.
1 ...Un. client. est-il. obligatoirement. li. . une. commande. et. . combien. au.
maximum.?.
2 ...Une.commande.est-elle.obligatoirement.lie..un.client.et..combien.au.
maximum.?.
figuRe 1-7

Modle conceptuel avec multiplicits


Client
No client : {Unique}
Nom client
Prnom client
Adresse client

Commande
Effectue
1..1

0..*

No commande : {Unique}
Date commande
Date prvue livraison
Total commande

contraintes de domaine des attributs


Un.modle.conceptuel,.dans.sa.premire.version,.doit.prsenter.les.entits.
avec.leur.identifiant.et.leurs.autres.attributs,.ainsi.que.les.associations.avec.
leurs. multiplicits .. Dautres. contraintes. peuvent. par. ailleurs. apparatre. sur.
le. modle. dans. sa. version. finale. pour. assurer. la. transition. vers. le. modle.
logique .. Ces. contraintes,. appeles. contraintes de domaine de lattribut,. vont.
fixer.le.type.de.donnes.de.lattribut.et.les.valeurs.admissibles.de.lattribut .
Tous. les. outils. de. modlisation. permettent. dinscrire. ces. contraintes.
dans.ce.qui.est.souvent.appel.le.dictionnaire de donnes.du.modle ..En.revanche,.elles.ne.sont.pas.toujours.affiches.dans.les.entits.pour.viter.dalourdir.
le.modle .
Lorsquelles.sont.affiches,.elles.apparaissent..la.suite.du.nom.de.lattribut,.
prcdes. du. deux-points. (:) .. Leur. formulation. peut. tre. libre. ou. donne.
grce..un.langage.spcialis.tel.que.OCL.(Object Constraint Language) ..
Les.types.de.donnes.de.base.proposs.par.le.langage.OCL.sont.donns.
dans.le.tableau.1-2 ..

0

TAbleAu 1-2

Conception de bases de donnes avec UML

Types de donnes pour spcifier le domaine des attributs

Type
Integer
Real
String
Date
Boolean
enum{}

Signification
Valeur numrique entire
Valeur numrique relle
Chane de caractres
Date du calendrier
Valeur Vrai ou Faux
Liste de valeurs admissibles

On.y.retrouve.les.types.de.base.pris.en.charge.par.la.plupart.des.SGBD ..
Le.type.enum.est.utilis.pour.numrer,.sil.y.a.lieu,.les.valeurs.admissibles.
du.domaine.de.lattribut ..Le.domaine.dun.attribut.peut.en.effet.tre.contraint.
. la. fois. . un. type. de. donnes. et. . une. liste. de. valeurs. admissibles. de. ce.
type ..Nous.avons.plac.dans.le.tableau.le.type.Date..cause.de.son.importance.dans.les.bases.de.donnes.bien.quil.ne.sagisse.point.dun.type.prescrit.
par.OCL ..En.effet,.sur.le.plan.technique.une.date.est.un.cas.particulier.du.
type.Real ..
Sil.y.a.lieu,.le.type.de.donnes.sera.suivi.dune.contrainte.indiquant.
une.restriction.sur.les.valeurs.que.lattribut.pourra.prendre ..Cette.contrainte.
est.inscrite.entre.accolades.et.formule.selon.les.exigences.du.langage.OCL ..
La.figure.1-8.reprend.le.modle.conceptuel.de.la.figure.1-7.o.deux.attributs.
ont.t.ajouts..lentit.Client.afin.dillustrer.le.type.enum.et.le.type.Boolean ..
Chaque.attribut.possde.maintenant.son.type.de.donnes ..Les.attributs.Nom
client,. Prnom Client,. Adresse Client,. Total commande.possdent.par.ailleurs.
une.contrainte.sur.la.valeur.de.lattribut ..En.vertu.de.ces.contraintes,.tout.
client. doit. avoir. . la. fois. un. nom,. un. prnom. et. une. adresse .. Le. sexe. du.
client,.sil.est.connu.est.dtermin.par.les.mots.Masculin.ou.Fminin ..Le.client.
peut.tre.ou.non.mauvais.payeur ..Le.total.dune.commande.doit.tre.strictement.suprieur..zro .
figuRe 1-8

Modle conceptuel avec contraintes de domaine des attributs


Client

No client : String {Unique}


Nom client : String {Non nul}
Prnom client : String {Non nul}
Adresse client : String {Non nul}
Sexe : enum{Masculin, Fminin}
Mauvais payeur? : Boolean

Commande
Effectue
1..1

0..*

No commande : String {Unique}


Date commande : Date
Date prvue livraison : Date
Total commande : Real {Total commande>0}

1

Le modle conceptuel de donnes

Pour.le.reste.de.ce.chapitre,.nous.allons.omettre.de.montrer.dans.nos.
modles.conceptuels.les.contraintes.de.domaine.des.attributs ..Cela.na.pas.
pour. but. de. rduire. leur. importance. car. ces. contraintes. appartiennent. de.
plein. droit. au. niveau. conceptuel,. au. mme. titre. que. les. identifiants. et. les.
associations ..Elles.ne.sont.cependant.pas.essentielles ..Si.le.modlisateur.fait.
appel. . un. outil. de. modlisation,. elles. ne. sont. gnralement. pas. affiches.
dans.les.entits.afin.dallger.la.prsentation.puisquelles.peuvent.tre.consultes. dans. le. dictionnaire. de. donnes. du. modle .. Le. lecteur. comprendra.
quelles.sont.en.gnral.sous-jacentes.aux.modles.conceptuels.prsents .
Tous.les.types.de.donnes.du.tableau.1-2.sont.des.types.simples,.cest-dire.que.lattribut.qui.en.est.dot.ne.peut.prendre.quune.seule.valeur.dans.
une.occurrence ..Le.sexe.du.client.est.Masculin.ou.Fminin,.jamais.les.deux.
.la.fois .. Mauvais payeur ?.a.une.seule.valeur.soit.Vrai,.soit.Faux ..Notons.au.
passage.quun.attribut.de.type.boolen.porte.souvent.un.nom.suivi.du.point.
dinterrogation ..Il.ne.sagit.pas.dune.rgle.stricte.de.modlisation.conceptuelle.mais.une.simple.convention.permettant.de.les.reprer.facilement .
La.valeur.de.lattribut. Adresse client.est. une seule.suite.de.caractres,.
incluant.les.espaces,.ne.comportant.aucune.structure.impose.par.le.type.de.
donnes. String .. Si. le. modlisateur. veut. imposer. une. structure. . ladresse.
du.client.il.devra.identifier.autant.dattributs.que.ncessaire.pour.dfinir.les.
composants.de.ladresse,.par.exemple.No civique,.Rue,.Ville,.Province ou tat,.
Pays,. Code postal ..Lattribut. Adresse client.devient.alors.inutile ..
La.figure.1-9.montre.un.modle.conceptuel.o.la.structure.de.ladresse.
est.dfinie.explicitement .
figuRe 1-9

Modle conceptuel avec des attributs structurant ladresse


Client
No client : {Unique}
Nom client
Prnom client
No civique
Rue
Ville
Province ou tat
Pays
Code postal
Sexe
Mauvais payeur?

Commande
Effectue
1..1

0..*

No commande : {Unique}
Date commande
Date prvue livraison
Total commande



Conception de bases de donnes avec UML

La. ncessit. de. faire. appel. . un. type. de. donnes. simple. pour. chaque.
attribut.du.modle.nous.conduit..proposer.une.nouvelle.rgle.incontournable.
en.matire.de.modlisation.conceptuelle.des.donnes ..Cette.rgle.impose.que.
dans.une.occurrence.chaque.attribut.ne.peut.avoir.simultanment.plusieurs.
valeurs ..La.valeur.associe..un.attribut.dune.occurrence.sera.donc.en.toute.
circonstance.une.donne.lmentaire.non.dcomposable.et.unique .

1-2
Rgle de
description

Chaque attribut dune entit prsente dans le modle conceptuel ne peut prendre
quune seule valeur la fois pour son occurrence. Cette valeur doit provenir du
domaine dcrit par les contraintes de domaine de lattribut.

dpendance fonctionnelle des attributs lidentifiant


Une.grande.difficult.de.la.modlisation.conceptuelle.des.donnes,.surtout.
pour.le.modlisateur.novice,.est.de.faire.en.sorte.que.chaque.attribut.dans.
une.entit.reprsente.une.proprit.qui.nappartient.strictement.qu.cette.
entit .
Pour.guider.le.modlisateur.dans.sa.tche,.deux.nouvelles.rgles.sont.
proposes .

1-3
Rgle de non
redondance

Chaque attribut du modle conceptuel est unique, il ne peut y apparatre plus dune
fois travers plusieurs entits du modle.

La.figure.1-10.illustre.une.erreur.frquente.commise.par.le.modlisateur.
novice ..Un.attribut.est.cr.dans.une.entit.qui.ne.reprsente.pas.une.proprit. de. lentit .. No client. est. une. proprit. qui. appartient. strictement. .
figuRe 1-10 Modle conceptuel avec un attribut redondant
Client
No client : {Unique}
Nom client
Prnom client
No civique
Rue
Ville
Province ou tat
Pays
Code postal
Sexe
Mauvais payeur?

Commande
No commande : {Unique}
Date commande
Date prvue livraison
Total commande
No client



Le modle conceptuel de donnes

lentit.Client.et.ne.peut.apparatre.dans.une.autre.entit ..Le.modlisateur.a.
probablement.voulu.souligner.quil.y.a.un.lien.entre.une.commande.et.un.
client ..Il.eut.mieux.valu.quil.cre.une.association.pour.mettre.en.vidence.
ce.fait,.comme.le.montre.la.figure.1-9,.plutt.que.de.crer.un.attribut.redondant,.ce.qui.transgresse.la.rgle.1-3 .

1-4
Rgle de
construction

Une entit ne peut en contenir une autre. En particulier, une entit ne peut contenir
un attribut dune autre entit.

La.figure.1-11.montre.une.entit. Commande.comportant.des.attributs.
qui. dcrivent. une. autre. entit .. En. effet,. No article. et. Nom article. sont. visiblement.des.attributs.dune.autre.entit.qui.a.une.existence.propre.:. Article ..
De.plus,.Prix unitaire ngoci.et.Quantit commande.relvent.manifestement.
davantage.de.larticle.que.de.la.commande .
La.rgle.de.construction.est.ici.transgresse,.car.deux.entits.types.sont.
. ssimiles. . une. seule .. Par. ailleurs,. en. vertu. de. la. rgle. de. description,. le.
a
modle.nous.indique.quune.commande.ne.peut.comporter.quun.seul.article ..
La. rgle. de. description. le. prescrit. formellement.:. pour. une. occurrence. de.
Commande,. No article.ne.doit.avoir.quune.seule.valeur ..Lentit. Commande.
est.non.seulement.mal.construite,.mais.elle.est.invalide,.car.elle.ne.reflte.
pas.la.ralit.:.une.commande.pourrait.comporter.plus.dun.article .
figuRe 1-11

Modle conceptuel transgressant la rgle de construction


Commande
No commande : {Unique}
Date commande
Date prvue livraison
No article
Nom article
Prix unitaire ngoci
Quantit commande
Total commande

Une.premire.version.dun.modle.conceptuel.permettant.de.respecter.
les. rgles. de. description. et. de. construction. est. donne. . la. figure. 1-12 .. Il.
montre.une.sparation.nette.entre.les.attributs.qui.dcrivent.une.commande.
et. les. attributs. qui. dcrivent. un. article. avec. une. association. qui. tablit. un.
lien.entre.ces.entits ..Les.multiplicits.montrent.quune.commande.comporte.
au.moins.un.article.et.quun.article.peut.apparatre.dans.un.nombre.indtermin.de.commandes .



Conception de bases de donnes avec UML

figuRe 1-12 Modle conceptuel rvis, premire version


Commande
No commande : {Unique}
Date commande
Date prvue livraison
Total commande

Article
Comporte
0..*

1..*

No article : {Unique}
Nom article
Prix unitaire ngoci
Quantit commande

Une.notion.thorique.importante.est..la.base.de.la.rgle.de.construction.:.
la dpendance fonctionnelle ..Pour.que.la.rgle.de.construction.soit.respecte,.
il. faut. que. chaque. attribut. autre. que. lidentifiant. dpende fonctionnellement.
de. lidentifiant .. On. se. souviendra. quune. fonction. mathmatique. assure.
quun. lment. dans. un. ensemble. mne. . un. et. un. seul. lment. dans. un.
autre. ensemble .. Llment. du. deuxime. ensemble. est. dit. dpendant. fonctionnellement. de. llment. du. premier. ensemble .. Dans. le. contexte. dun.
modle.conceptuel,.tout.attribut.autre.que.lidentifiant.doit.dpendre.fonctionnellement.de.lidentifiant.intgralement,.mme.lorsque.lidentifiant.est.
compos .. Exprim. diffremment,. la. rgle. de. construction. stipule. quune.
valeur.de.lidentifiant.dtermine.une.et.une.seule.valeur.pour.chaque.attribut.
autre.que.lidentifiant .
On.peut.tre.assur.quune.commande,.la.commande.avec.lidentifiant.

COM0001. par. exemple,. mne. . (ou. dtermine). une. seule. valeur. pour. Date
commande,.une. Date prvue livraison.et.un.seul. Total commande ..Cest.bien.

le.cas.et.on.en.conclut.que.ces.trois.attributs.dpendent.tous.fonctionnellement.de.lidentifiant ..Ils.peuvent.donc.tre.considrs.comme.des.attributs.
propres..lentit. Commande ..La.rgle.de.construction.est.ds.lors.satisfaite .

Quant..lentit. Article,.il.va.de.soi.que. No article.dtermine.la.valeur.


de. Nom article .. Connaissant. le. numro. de. larticle,. le. nom. de. larticle. est.
identifiable.et.unique ..
On.peut.en. revanche.douter.que.le.numro.dun.article.puisse.dterminer.la.quantit.commande ..En.effet,.un.article.peut.tre.command.en.
quantit.diffrente.dune.commande..lautre ..Il.en.va.de.mme.pour. Prix
unitaire ngoci.qui.nest.probablement.pas.systmatiquement.le.mme.pour.
un. article. donn,. par. exemple. une. bote. de. papier. mouchoir,. car. sil. est.
ngoci.avec.le.client.il.pourrait.varier.dune.commande..lautre,.selon.le.
client .. On. en. conclut. que. No article. ne. dtermine. ni. Prix unitaire ngoci,.
ni. Quantit commande .. En. fait. ces. deux. attributs. dpendent. fonctionnellement.de.larticle.et.de.la.commande ..Un.attribut.qui.dpend.fonctionnellement. de. deux. entits. ou. plus. doit. tre. considr. comme. un. attribut de
lassociation ..

Le modle conceptuel de donnes



Les.attributs.dune.association.sont.reprsents.en.UML..laide.dune.
entit.rattache..lassociation.par.une.ligne.pointille ..On.pourrait.qualifier.
cette.entit.dentit dassociation ..Il.peut.tre.ncessaire.de.dfinir.des.entits.
dassociation. pour. regrouper. des. attributs. qui. ne. peuvent. appartenir. ni. .
lune.ni..lautre.des.entits.associes.et.viter.ainsi.de.transgresser.la.rgle.
de.construction ..Bien.quil.sagisse.sur.le.plan.smantique.dune.entit,.son.
identifiant.ny.est.gnralement.pas.inscrit.car.il.rsulte.implicitement.de.la.
combinaison.des.identifiants.des.entits.associes ..Une.entit.dassociation.
est.en.fait.ce.que.les.modlisateurs.appellent.une.entit faible ..

Entit faible } Type dentit dont lexistence dpend de deux ou plusieurs entits. Son identifiant
se dfinit en fonction des identifiants des entits dont elle dpend. Elle ne possde
pas dattribut qui puisse servir didentifiant et qui lui appartienne en propre.
Une. entit. faible. est. dfinie. par. opposition. aux. entits. dites. fortes,.
entits. qui. possdent. un. ou. des. attributs. pouvant. constituer. un. bon.
identifiant .
Une.entit.dassociation.doit.respecter.toutes.les.rgles.de.modlisation.
conceptuelles.prsentes.plus.tt,.incluant.la.rgle.didentit ..Le.modlisateur.
doit.prendre.garde.de.crer.une.entit.dassociation.non.justifie ..Ce.risque.
est.grand.lorsque.les.multiplicits.maximales.de.lassociation.sont.toutes.les.
deux.plusieurs.(*) ..Si.la.combinaison.des.identifiants.des.entits.associes.ne.
dtermine.pas.chaque.attribut.de.lentit.dassociation,.le.modlisateur.devra.
se.rendre..lvidence.que.les.attributs.de.lassociation.sont.en.fait.les.attributs.dune.entit.forte.et.quil.ne.peut.sagir.dune.association.avec.attributs ..
Nous.aurons.le.loisir.dans.le.cadre.de.ltude.de.cas.1-3.traite.plus.loin.de.
montrer.comment.une.entit.dassociation.peut.tre.un.mauvais.choix.dans.
certains.cas .
La.figure.1-13.montre.un.modle.conceptuel.qui.respecte..la.fois.les.
rgles. de. description. et. de. construction. grce. . lemploi. dune. entit.
dassociation .
Le.choix.dun.nom.qui.soit.pertinent.pour.une.entit.dassociation.nest.
pas.une.tche.facile ..Il.doit.permettre.de.reprsenter.fidlement.le.concept.qui.
donne.lieu..des.attributs.propres..lassociation ..Le.modle.de.la.figure.1-13.
permet.de.voir.que.le.modlisateur.a.clairement.distingu.le.concept.Article.
dune.part,.pour.faire.rfrence..larticle.du.catalogue,.et.dautre.part.larticle.
prsent.dans.une.commande.soit. Article command ..Son.identifiant.est.ici.
implicite,.il.est.compos.de. No commande.et. No article ..Il.est.valide.car.un.
numro.darticle.donn,.par.exemple.larticle. 10007,.napparatra.probablement. quune. fois. dans. une. commande .. La. combinaison. No commaNde-No



Conception de bases de donnes avec UML

figuRe 1-13 Modle conceptuel final avec une entit dassociation : Article command
Client
No client : {Unique}
Nom client
Prnom client
No civique
Rue
Ville
Province ou tat
Pays
Code postal
Sexe
Mauvais payeur?

Commande
Effectue
1..1

0..*

No commande : {Unique}
Date commande
Date prvue livraison
Total commande

Comporte
0..*

1..*

Article
No article : {Unique}
Nom article

Article command
Quantit commande
Prix unitaire ngoci

article.mne.en.effet..une.seule.occurrence.de. Article command ..Celle-ci.

est. ds. lors. considre. comme. une. entit. faible. et. le. modlisateur. a. donc.
fait.un.bon.choix.en.la.considrant.comme.une.entit.dassociation ..

Revenons..lanalogie.du.bac ..Une.occurrence.dune.entit.dassociation.
peut. tre. considre. comme. une. tiquette. attache. . la. ficelle. tenant. lieu.
dassociation .. Cette. tiquette. contient. les. valeurs. des. attributs. de. lentit.
dassociation.et.elle.est.indissociable.de.la.ficelle.qui.la.retient .
On. peut. voir. . la. figure. 1-14. une. reprsentation. visuelle. du. modle.
conceptuel.de.la.figure.1-13 ..Le.lecteur.comprendra..laide.de.cette.reprsentation.la.distinction.que.le.modlisateur.a.voulu.faire.sur.le.plan.smantique. entre. une. commande,. un. article. et. un. article. command .. Tous. ces.
concepts. sont. videmment. associs. mais. aucun. ne. vhicule. de. donnes.
redondantes .
Les.ficelles.qui.relient.une.fiche.du.bac. Commande..une.fiche.du.bac.
Article.possdent.toutes.une.tiquette.o.apparaissent.deux.valeurs.:.la.quan-

tit. de. larticle. command. et. son. prix. unitaire. ngoci .. Cest. bien. ce. que.
reflte.le.modle.conceptuel.avec.lentit.dassociation. Article command.et.
ses. deux. attributs .. Chaque. attribut. de. ltiquette. na. quune. seule. valeur.
(rgle.de.description) ..Chaque.tiquette.a.une.identit.donne.par.la.combinaison.du.numro.darticle.et.du.numro.de.commande.(rgle.didentit) ..
Les. valeurs. des. tiquettes. sont. dtermines. par. lidentifiant. (rgle. de.
construction) ..
Considrons.par.exemple.la.combinaison.COM0005-10007..titre.de.
valeur. de. lidentifiant. pour. une. occurrence. de. lentit. dassociation. Article
command ..Il.ne.rfre.qu.une.seule.occurrence.de.cette.dernire.qui.a.par.
ailleurs.la.seule.et.unique.valeur. 90.pour. Quantit commande .



Le modle conceptuel de donnes

figuRe 1-14 Analogie pour le modle conceptuel de la figure 1-13

ord
s L ger
ve
u
; Y n Kr
7
an
0
o
Je
;D
I00
t
rc
a
CL 0006
ue
I
;M
lH
ri
L
5
u
0
a
C
Fio
nt
;P
I00
an
po
CL 0004
e
Du
;J
I
b
3
n
L
0
a
C
Du
0
e
J
0
e
I
2;
nn
CL
00
;A
0
1
I
0
CL
I00
CL

ie
Cl

nt

06
20
06
/1 /
20
24
06
/1/
5;
2
0
/2 0
0
;2
1
0
/
4
0
06
M
2
00
O
;
0
/20
6
C
M
03
00
5/1
00
CO
;1
1/2
M
/
2
12
00
CO
;
0
1
M
00
CO
M0
CO
202; 0,30$

Co

90; 0,51$
50; 1$

an

de

20; 1,20$

100; 0,50$

100; 0,20$
rb e
ba
oir
a s s se
R
u
7;
nt
Mo
00
isa
tte
10 06;
ell
0
ne
av
on
10
;J
ing
v
5
a
e
po
S
00
;
m
fric
0
oir
4
a
1
n ti
ch
00
Sh
de
ou
10
3;
e
t
0
0
rm
P
e
i
10
;
p
2
Pa
00
1;
10
00
10

ti
Ar

cl

Les.rgles.fondamentales.proposes.dans.cette.section.pour.raliser.des.
modles.conceptuels.smantiquement.corrects..laide.du.formalisme.entitassociation.nassurent.aucunement.que.les.modles.produits.soient.valides .
Un. modle. conceptuel. est. valide. sil. reflte. une. ralit. et. rpond. de.
manire. adquate. aux. besoins. en. information .. Comme. un. modle. est. une.
simplification.de.la.ralit,.il.nest.jamais.quun.reflet.de.cette.ralit ..Cette.
ralit.est.perue.selon.une.perspective.particulire.(nous.dirions.un.point.de.
vue),.quelquefois.biaise,.celle.du.modlisateur .
La.section.qui.suit.prsente.quelques.cas.simples.de.modlisation.illustrant.
les. concepts. et. les. rgles. noncs. plus. haut .. Elle. est. suivie. dun. expos. de.
lignes.directrices.permettant.au.modlisateur.de.faire.un.choix.adquat.des.
entits,. des. associations. et. de. leurs. attributs,. dans. le. cadre. particulier. de.
lanalyse.des.besoins.pralables..la.ralisation.dun.systme.dinformation .
Il.est.recommand.au.lecteur.de.tenter.de.produire.son.propre.modle.
conceptuel. . partir. de. la. description. de. chaque. cas. avant. de. consulter. le.
modle.propos..titre.de.solution.par.lauteur .



Conception de bases de donnes avec UML

cAs siMples de ModlisATion concepTuelle des donnes


Cas 1-1 SOCIT ET DPARTEMENT
Crer avec le formalisme entit-association un modle conceptuel de donnes qui illustre la
situation suivante :
1) Chaque socit contrle des dpartements appartenant une seule socit ;
2) Chaque dpartement emploie un ou plusieurs employs et chaque employ travaille pour
un seul dpartement ;
3) Un employ peut avoir aucun ou plusieurs subalternes et chaque subalterne est sous les
ordres dun seul employ.
Contrle

Socit
Nom socit : {Unique}

1..1

Dpartement

1..*

No dpartement : {Unique}

1..1
Employ dans
1..*
Employ

1..1

No employ : {Unique}
0..*

Sous les ordres de

Le modlisateur a fait appel une association rflexive, Sous les ordres de, pour
traduire la notion de subalterne. Comme on le constate, une notion ou un concept ne se
traduit pas automatiquement en entit. Le lecteur notera que toutes les associations sont
obligatoires (les multiplicits minimales ont la valeur 1) sauf une : lassociation Sous les
ordres de est obligatoire dans une direction et pas dans lautre. En effet dans une direction
on lit quun employ est obligatoirement sous les ordres dun autre employ et un seul. Dans
lautre direction un employ peut ne pas tre associ des subalternes.
Le modle est bien construit. Chaque entit possde au moins un attribut, chaque
entit possde son identifiant et chaque association binaire possde deux multiplicits. De
plus les contraintes de multiplicit stipulent les rgles daffaires suivantes conformes aux
exigences du cas :
une socit contrle au moins un dpartement

Le modle conceptuel de donnes

un
un
un
un
un

dpartement relve dune seule socit


employ est employ dans un seul dpartement
dpartement emploie au moins un employ
employ est sous les ordres dun seul employ
employ dirige un nombre indtermin demploys (0 ou plusieurs)



0

Conception de bases de donnes avec UML

Cas 1-2 LOCATEUR DABRIS


(DP) Crer avec le formalisme entit-association un modle conceptuel de donnes qui dcrit
les exigences de donnes pour cette entreprise :
1) Une entreprise de location dabris pour automobiles propose ses clients des abris
modulaires. Le client signe un contrat pour la location dun ou plusieurs modules de divers
types qui peuvent tre combins pour rpondre ses besoins spcifiques.
2) Tout client possde un numro de client, un nom et un prnom. Un contrat peut comporter
des modules de types diffrents et un nombre indtermin de modules du mme type.
3) Chaque type de module possde un code et un prix de location propre. Il est constitu
de divers composants standards. Le mme type de composant peut tre prsent en
plusieurs exemplaires dans un mme module et dans plusieurs modules diffrents.
4) Le composant possde un code de composant et une description. Un composant pourrait
tre un boulon de 2 cm par exemple.
5) Lentreprise se procure les composants auprs dun certain nombre de fournisseurs attitrs.
Un fournisseur possde un numro unique et un nom.
Composition module

Nombre module

Nombre composant

0..* Comporte 1..*

Contrat
No contrat : {Unique}
1..*
Sign par

Contenu contrat

Module
Code module : {Unique}
Prix location

Constitu de
0..*

1..*

Composant
Code composant : {Unique}
Description composant
1..*

1..1
Client

No client : {Unique}
Nom client
Prnom client

Offert par
1..*
Fournisseur
No fournisseur : {Unique}
Nom fournisseur

Le modle reflte la structure des modules : ils sont constitus dun certain nombre de
composants standards obtenus de divers fournisseurs. Le Nombre de composant est
dtermin la fois par le Code composant et le Code module. Ce ne peut tre quun
attribut de lassociation Constitu de qui permet de rattacher un type de module ses
divers composants. Lentit dassociation Composition module est une entit faible car
lidentifiant implicite combinant Code module-Code composant est valide : un code module
donn et un code composant donn dtermine un et un seul nombre de composants. Chaque
contrat possde des types de modules dont le nombre, pour un module donn, varie dun
contrat lautre. Nombre module ne peut tre quun attribut de lassociation liant le contrat

Le modle conceptuel de donnes

aux types de modules requis par le client. Contenu contrat est aussi une entit faible. On
notera enfin les multiplicits minimales 0 pour la lecture de droite gauche des associations
Comporte et Constitu de. En effet, un type de module peut exister sans ne jamais avoir
fait lobjet dun contrat et de la mme manire, un type de composant peut exister sans quil
nait encore t utilis dans un module.

1



Conception de bases de donnes avec UML

Cas 1-3 VIDO CLUB


(DP) Crer avec le formalisme entit-association un modle conceptuel de donnes qui dcrit
les exigences de donnes pour cette socit :
1) Une socit de location de cassettes vido compte plusieurs magasins dans tout le pays.
Chaque magasin possde une adresse constitue du numro civique, de la rue, de la
ville, du code postal et dun numro de tlphone. Le magasin reoit un numro dagence,
unique pour lensemble de la socit.
2) Chaque magasin embauche son propre personnel, dont un grant. Les donnes qui
concernent un employ sont son nom, son prnom, son poste et son salaire. Chaque
employ reoit un numro unique pour lensemble de la socit.
3) Chaque magasin possde un stock de cassettes vido. Les donnes mmorises propos
dune cassette sont le numro de la cassette, le numro de catalogue du film, le titre du
film, sa catgorie, le montant de location quotidien, le prix dachat de la cassette, ltat
(lou ou non), les noms des principaux acteurs et du ralisateur du film. Le numro de
catalogue identifie chaque film, mais puisquil existe plusieurs copies du mme film, le
numro de la cassette est unique chaque cassette.
4) Le film fait partie dune catgorie parmi les suivantes : action, famille, drame, comdie,
horreur, fantastique, science-fiction ou adulte. Ltat indique si la cassette est disponible
en location.
5) Avant de pouvoir louer une cassette dans un magasin de location, un client doit sinscrire
comme membre auprs dun magasin de location. Les donnes mmorises concernant
le client sont son nom et son prnom, son adresse et la date dinscription du membre.
Chaque membre reoit un numro de membre unique parmi tous les magasins de location
de la socit.
6) Les donnes sur chaque cassette loue sont un numro de location, le nom du membre,
le numro de la cassette, le titre du film, les dates de location et de restitution. Le numro
de location est unique pour lensemble de la socit.
Le modle montre deux associations entre Magasin et Employ, une premire
permettant de rattacher lemploy un magasin et une deuxime permettant dtablir quel
employ agit comme grant dun magasin. Poste est un concept qui a son existence propre,
ce qui justifie den faire une entit de plein droit mme si elle ne possde quun seul attribut.
Cassette et Film sont nettement deux entits, dautant quun film pourrait tre enregistr
sur plusieurs cassettes. Une location existe dans le contexte de lemprunt dune cassette
par un membre, ses attributs dpendent la fois de Membre et de Cassette.



Le modle conceptuel de donnes

Magasin
No agence : {Unique}
No civique
Rue
Ville
Code postal
No tlphone

Employ
Embauche
1..1
0..1

No employ : {Unique}
Nom employ
Prnom employ
Salaire employ

1..*

Occupe
0..*

1..1

Poste
Nom fonction : {Unique}

Gr par
1..1

1..1
Possde

Ralisateur

Acteur

Nom ralisateur : {Unique}

Nom acteur : {Unique}

Location

Membre
No membre : {Unique}
Nom membre
Prnom membre
No civique
Rue
Ville
Code postal
Date d'inscription

0..*

1..*
Comporte

1..1

No location : {Unique}
Date location
Date restitution

1..*

Ralise
1..*

0..*
Relative

Effectue
1..1
1..1

0..*

Cassette
Film
No cassette : {Unique} Enregistre
No catalogue : {Unique}
Montant location
Catgorie
Prix d'achat
0..* 1..1 Titre film
Lou?

Le modlisateur aurait pu tomber dans le pige faisant de Location une entit


dassociation sur la simple base que Date location ou Date restitution dpendent la
fois de No membre et No cassette. Mais il ne sagit pas dune dpendance fonctionnelle.
En effet un numro de membre combin un numro de cassette peut mener plusieurs
dates de location puisquun membre pourrait thoriquement louer la mme cassette plus
dune fois. Location est une entit forte, elle possde son propre identifiant : No location.
Lutilisation dune entit dassociation telle quillustre ci-aprs est doublement injustifie
pour lier Membre Cassette. Le modlisateur a vit ce pige.
Location
Membre
No membre : {Unique}
Nom membre
Prnom membre
No civique
Rue
Ville
Code postal
Date d'inscription

No location : {Unique}
Date location
Date restitution
Cassette
Loue
0..*

0..*

No cassette : {Unique}
Montant location
Prix d'achat
Lou?



Conception de bases de donnes avec UML

Le modlisateur a judicieusement donn lattribut Catgorie au film, non pas la


cassette. Il sagit strictement dun attribut du film. Le type de donnes de Catgorie aurait
pu tre inscrit la suite du nom de lattribut sous la forme enum{action, famille, drame,
comdie, horreur, fantastique, science-fiction, adulte}, mais le modlisateur a choisi
de ne pas le faire apparatre sachant quil pourra le faire par le biais du dictionnaire de
donnes du modle.

Le modle conceptuel de donnes



choisiR les enTiTs, les AssociATions eT les ATTRibuTs


Le.modle.conceptuel.de.donnes.est.une.reprsentation.visuelle.des.entits.
dont.les.attributs.tablissent.quelles.sont.les.donnes.dont.il.faudra.assurer.
ventuellement. la. persistance. dans. une. base. de. donnes .. Puisquune. base.
de.donnes.met.en.uvre.une.varit.et.une.quantit.finie.de.donnes.persistantes,. le. modlisateur. devra. faire. une. slection. parmi. les. donnes. qui.
feront.lobjet.dune.reprsentation.visuelle.dans.un.modle ..Pour.ce.faire,.il.
sera.guid.par.un.certain.nombre.de.principes .
tant.donn.que.le.systme.dinformation.qui.doit.tre.ralis.aura..
rpondre.aux.besoins.en.information.dune.organisation.ou.dun.secteur.cible.
de.lorganisation,.le.travail.premier.du.modlisateur.est.de.dterminer.quelles.
sont.les.donnes.qui.sont.vitales.au.fonctionnement.du.secteur.vis .
Nous.aurons.loccasion.au.chapitre.4.de.proposer.une.dmarche.danalyse.
et.de.conception.de.bases.de.donnes.qui.sappuie.sur.la.notion.de.donne.
vitale ..Pour.linstant.nous.nous.en.tiendrons..voquer.et.illustrer.ces.principes.
qui.savrent.utiles.dans.la.phase.danalyse.des.besoins.en.information .

principes suggrs
comment choisir les donnes modliser ?

Principe RepReR les donnes vitales. Une stratgie qui a fait ses preuves pour

identifier les donnes modliser repose sur la notion de donne vitale. Une
donne vitale est une donne sans laquelle une organisation ne pourrait grer ses
oprations correctement. Cela signifie que si lorganisation ne dispose pas de cette
donne, sa mission et latteinte de ses objectifs pourraient tre compromises.
Lidentification.des.donnes.vitales.doit.se.faire.par.le.modlisateur.avec.
le.concours.des.utilisateurs.du.systme.dinformation ..Cette.dmarche.doit.
permettre. de. distinguer. les. donnes. essentielles. (celles. dites. vitales). et. les.
donnes. accessoires. dans. lorganisation .. Le. travail. de. modlisation. devrait.
dbuter.avec.le.reprage.des.donnes.vitales .
Une.mme.donne.peut.tre.juge.vitale.dans.une.organisation.et.non.
vitale.par.une.autre ..Par.exemple.si.toutes.les.organisations.devraient.conserver. des. donnes. sur. leurs. employs,. il. nest. pas. ncessairement. vital. de.
conserver. la. taille. des. employs. dans. un. systme. dinformation,. . moins.
quil.ne.sagisse.dune.agence.de.mannequins.pour.laquelle.cette.donne.est.
en.effet.indispensable ..



Conception de bases de donnes avec UML

On.considre.quune.donne.pouvant.tre.drive.dune.autre.donne,.
ou.dun.ensemble.de.donnes,.nest.pas.vitale ..Par.exemple,.si.nous.disposons.
de.la.date.de.naissance.de.lemploy,.il.nest.pas.vital.davoir.aussi.son.ge,.
ce.dernier.pouvant.tre.driv.de.la.date.de.naissance.si.la.date.de.naissance.
est. juge.vitale .. Dans.dautres. circonstances,.une.donne.drive.peut.tre.
vitale ..Ainsi.le.total.dune.commande,.bien.quil.puisse.tre.driv.du.nombre.
darticles,.de.leur.prix.respectif.et.des.taxes,.sera.gnralement.considr.vital.
pour.des.raisons.contractuelles ..Le.total.de.la.commande.calcul.au.moment.
de.la.commande.est.celui.qui.devra.tre.pay.mme.si,.quelques.jours.aprs.
la. transaction,. le. prix. dun. article. de. la. commande. devait. tre. major. de.
10.%.dans.le.catalogue.du.fournisseur .

Principe RepReR les donnes vitales dans les documents existants. Une

source importante de donnes vitales provient du systme dinformation dune


organisation (ses formulaires, ses bordereaux, ses procdures et ses ressources)
et, sil est informatis, des fichiers ou des bases de donnes du systme.

. travers. les. nombreux. exemples. ainsi. que. les. cas. de. modlisation.
proposs.dans.cet.ouvrage,.il.sera.fait.couramment.usage.de.cette.stratgie.
pour.illustrer.divers.aspects.de.la.modlisation.conceptuelle ..Cest.notamment.
le.cas.dans.la.dernire.partie.de.cette.section.o.des.tudes.de.cas.sont.menes.
.partir.de.documents.et.de.formulaires.utiliss.par.un.systme.dinformation.
existant .

comment faire la diffrence entre un attribut et une entit ?


Une.entit.reprsente.gnralement.un.groupe.de.donnes.vitales ..Un.attribut.
reprsente.une.donne.vitale.de.type.simple.ou.lmentaire.:.un.chiffre.(entier.
ou.rel),.une.chane.de.caractres,.une.date,.un.boolen ..

Principe distingueR entit et attRibut suR la base de leuR stRuctuRe. Un

attribut ne peut prendre quune valeur lmentaire. Une entit aura une structure
complexe, soit au moins un attribut, mme si initialement le modlisateur ne lui
reconnat quun seul attribut : son identifiant.

En. modlisant. les. donnes. pour. la. gestion. de. son. personnel,. une.
. rganisation.pourrait.juger.vital.de.modliser.le.poste.occup.par.lemploy ..
o
Le. modlisateur. devra. prendre. garde. de. confondre. le. tout. avec. une. partie.
du.tout ..Lemploi.du.mot. Poste.pour.parler.du. Titre du poste.est.une.ambigut. du. discours. que. le. modlisateur. devra. rsoudre .. Le. Titre du poste,.



Le modle conceptuel de donnes

puisquil. reprsente. une. chane. de. caractres,. par. exemple. .Prpos. .


.lentretien.,.est.manifestement.un.attribut ..Poste.est.dautre.part.une.structure.
plus.complexe,.un.objet.abstrait .
Le. concept. de. Poste. occup. par. un. employ. reprsente. en. effet. bien.
plus.que.le.Titre du poste ..Un.poste.peut.comporter.par.ailleurs.dautres.proprits.qui.seront.peut-tre.considres.vitales.au.cours.du.processus.danalyse.
des.besoins ..Cest.le.cas.des.attributs. Traitement annuel minimum,. Traitement
annuel maximum,. Catgorie.(Bureau,.Technicien,.Professionnel,.Cadre) ..
Titre du poste.doit.tre.un.attribut,.alors.que. Poste.est.forcment.une.
entit.puisquil.se.dcline.avec.plusieurs.proprits ..La.rgle.de.construction.
interdit.de.faire.de.Titre du poste un.attribut.de.lentit.Employ.pour.illustrer.
le. fait. quun. employ. occupe. un. poste .. Titre du poste. est. strictement. un.
attribut.de. Poste.et.le.modlisateur.doit.faire.usage.dune.association.pour.
marquer.le.fait.que.lemploy.occupe.un.poste ..Lexemple.1-15.montre.quun.
employ.occupe.un.poste.auquel.plusieurs.employs.peuvent.tre.affects,.
par.exemple.commis comptable .
figuRe 1-15 Un employ occupe un seul poste, occup par plusieurs employs
Employ
NAS : {Unique}
Nom employ
Prnom employ
Date de naissance

Occupe
0..*

Poste
1..1

Titre du poste : {Unique}

Dans.le.contexte.o.le.modlisateur.juge.vital.de.conserver.la.priode.
durant.laquelle.lemploy.a.occup.le.poste,.avec.les.attributs. Date dbut.et.
Date fin,.les.attributs.devront.tre.lis..lassociation.car.ils.dpendent..la.
fois.de.lemploy.et.du.poste ..De.plus,.une.multiplicit.0 . .*.du.ct.de.Poste.
serait.probablement.plus.pertinente.si.on.souhaite.reprsenter.dans.le.modle.
des.donnes.relatives..tous.les.postes.occups.par.un.employ,.pas.seulement.
le.dernier.en.date .
figuRe 1-16 Un employ occupe plusieurs postes dans sa carrire
Employ
NAS : {Unique}
Nom employ
Prnom employ
Date de naissance

Occupe
0..*

Poste
1..*

Priode occupation
Date dbut
Date fin

Titre du poste : {Unique}



Conception de bases de donnes avec UML

Principe choisiR les entits suR la base de catgoRies pRdfinies. Pour

faciliter le choix des entits, il est utile de consulter un rpertoire des sources
principales de donnes dans une organisation ainsi que des objets dintrt
gnral pour une organisation.

Le. tableau. 1-3. fait. tat. de. diverses. catgories. dentits. pertinentes. au.
fonctionnement.dune.organisation ..Ces.catgories.reposent.sur.un.modle.
thorique.qui.veut.que.lenvironnement.dune.organisation.recle.des.entits.
qui. mritent. dtre. prises. en. compte,. appeles. entits. externes,. vitales. au.
fonctionnement. de. celle-ci .. Ce. modle. montre. de. plus. quelle. ralise. des.
transactions. avec. ces. entits. externes. et. que. de. telles. transactions. doivent.
tre. mmorises .. Lorganisation. dispose. par. ailleurs. de. ressources. internes.
pour. mener. ses. oprations. appeles. composants. du. systme. oprant .. Ces.
composants.doivent.tre.inventoris ..Les.biens.et.services.rsultant.des.oprations.mritent.que.lon.conserve.des.donnes..leur.sujet ..Enfin.les.oprations. internes. conduisent. . des. transactions. internes. et. . des. dcisions.
devant.tre.conserves ..
TAbleAu 1-3

Catgories principales des entits

Catgorie
Entit prsente dans lenvironnement
de lorganisation incluant des systmes
externes
Transaction avec une entit
de lenvironnement
Bien ou service offert par lorganisation
Composant du systme oprant :
personnel, rle du personnel, quipement
de production, de livraison, lieu de
production, dentreposage, ressource
financire
Transaction lintrieur du systme
oprant
Rsultat dune dcision

Exemples
Client, Fournisseur, Partenaire, Systme
dautorisation pour paiement, Catalogue
du fournisseur
Achat, Vente, Commande, Facture, Paiement,
Rservation, Livraison, Rception, Transfert
lectronique de fonds, Paie
Article, Prt hypothcaire, Pice, Vol davion,
Menu de restaurant, Prestation de service
Caissier, Employ, Machine outil, Poste employ,
Pilote davion, Robot, Atelier, Magasin, Entrept,
Comptoir, Caisse enregistreuse, Avion, Aroport,
Actif financier, Camion de livraison
Contrle qualit, Lot de production, Absence
de personnel
Budget, Marge de crdit, Planning de travaux,
Tarification, Horaire

Ces.catgories.sont.notamment.proposes.dans.la.mthode.DATARUN.
[PAS. 90] .. Elles. reprsentent. un. cadre. danalyse. fort. utile. pour. reprer. les.
entits. dun. domaine. ou. dun. mtier .. Il. incombe. au. modlisateur. et. . ses.
collaborateurs. dtablir. la. pertinence. de. faire. apparatre. dans. le. modle.

Le modle conceptuel de donnes



conceptuel.une.entit.appartenant..lune.ou.lautre.de.ces.catgories,.mais.
la.dmarche.de.la.mthode.DATARUN.favorise.aussi.le.reprage.des.entits.
pertinentes ..Elle.suggre.danalyser.tout.dabord.lenvironnement.de.lorganisation.et.didentifier.les.entits.avec.lesquelles.lorganisation.effectue.des.
transactions ..Ainsi,.les.entits.refltant.les.principales.transactions.externes.
sont. dfinies .. Les. transactions. externes. sont. gnralement. associes. . des.
entits.relatives.aux.produits.et.services.offerts.par.lorganisation ..Les.entits.
dcrivant.les.composants.du.systme.oprant.qui.permettent.de.produire.les.
biens.et.services.seront.associes..ces.derniers ..Enfin.les.transactions.internes.
et. les. dcisions. prises. dans. le. cadre. des. oprations. courantes. donnent. lieu.
aux.entits.pertinentes.restantes .
Le. modle. de. la. figure. 1-17. montre. certaines. entits. et. associations.
tires. de. lanalyse. des. besoins. en. information. dune. socit. de. transport.
arien ..Le.modle.est.dlibrment.simplifi.et.il.est.forcment.incomplet ..
Il.ne.vise.qu.illustrer.des.entits.pertinentes.appartenant..lune.ou.lautre.
des.catgories.du.tableau.1-3 ..Elles.refltent.par.leurs.attributs.et.leurs.associations. un. certain. nombre. de. donnes. vitales. au. fonctionnement. dune.
entreprise.de.transport.arien .
La.mise.en.page.de.ce.modle.a.permis.de.regrouper.visuellement.les.
entits.par.catgorie ..Les.entits.externes.dans.la.zone.du.haut,.les.transactions.internes.(Paiement,.Rservation,.Billet,.Enregistrement).sont.regroupes.
immdiatement.en.dessous ..Les.composants.du.systme.oprant,.un.produit.
(Vol). et. une. seule. transaction. interne. (Retard). apparaissent. dans. la. mme.
zone ..Cest.un.regroupement.naturel.car.les.transactions.internes.concernent.
gnralement. lun. ou. lautre. des. composants. du. systme. oprant. ou. les.
produits.et.services ..Enfin,.tout.en.bas.on.peut.voir.les.entits.reprsentant.
le.rsultat.de.dcisions,.ici. Tarif.et. Annulation .
Aucune.mthode,.aucune.rgle.nimpose.en.revanche.une.telle.prsentation .. Le. modlisateur. a. le. loisir. de. disposer. les. entits. et. les. associations.
selon.le.mode.le.plus.appropri ..La.seule.rgle.qui.doit.le.guider.est.la.facilit.
de. lecture. du. modle. car. un. modle. conceptuel. est. aussi. un. outil. de.
communication .
Lexemple.1-17.comporte.des.associations.qui.impliquent.plus.de.deux.
entits,. on. les. appelle. des. associations de degr suprieur .. Nous. navons. pas.
insist.jusquici.sur.ce.type.dassociation.dont.le.nombre.est.habituellement.
limit.dans.un.modle.conceptuel ..Les.symboles.pour.illustrer.les.associations.
de. cette. nature. particulire,. les. grands. losanges,. feront. lobjet. dtude. . la.
section.portant.sur.les.concepts.avancs.du.formalisme.entit-association..
la. fin. de. ce. chapitre .. Il. en. sera. de. mme. pour. le. petit. losange. noir. et. le.
triangle.qui.modlisent.dautres.associations.spcialises .

0

Conception de bases de donnes avec UML

figuRe 1-17 Entits et associations pertinentes un transporteur arien

Entits
externes
Client

Passager

Bagage

1..1

Effectue

1..1

No passager : {Unique}
Nom passager
Prnom passager
Concerne Sexe
1..*

No bagage : {Unique}

1..1

No client : {Unique}
Nom client
Prnom client

1..1
Rservation

0..1

1..1

No rservation : {Unique}
Date rservation
Prix total
Paiement effectu?

0..*

Confirme par 0..*

Paiement

Transactions
externes

mis pour

1..*

1..1
met

Billet

No paiement : {Unique}
Date paiement
Montant paiement
Mode de paiement
0..*

1..*

No billet : {Unique}

1..*

Comporte

Enregistrement bagage
Enregistre

No enregistrement : {Unique}
1..1 Date
Heure

Fait par

Aroport
0..1

Produit

Code d'aroport : {Unique}


Ville

Quitte
1..1

No carte : {Unique}
Expiration
Nom du titulaire

Arrive

Vol
1..1

Composants
du systme
oprant

No du vol : {Unique}
Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive
1..1

0..*
0..*
0..*

Fait appel

1..*
Employ
No employ : {Unique}
Date embauche

Responsabilit

0..*

Possde
Suivi de

Assur par

Type de responsabilit
Pilote

1..1

Transaction
interne
0..1

1..1

1..1

1..
*

1..*

Carte de crdit

0..1

Retard

Avion

No retard : {Unique}
Minutes au dpart
Minutes l'arrive
Raison

No appareil : {Unique}
Fabricant
Modle
Date acquisition
Nombre de siges

Tarif

Annulation

Code de tarif : {Unique}


Conditions

No annulation : {Unique}
Raison

Dcisions

No licence : {Unique}
Date obtention licence
Sige
1

1..*

No sige : {Unique}
Classe

1

Le modle conceptuel de donnes

quelles sont les erreurs communes viter ?


Un.risque.frquent.inhrent..la.modlisation.conceptuelle.des.donnes.est.
celui. de. confondre. les. valeurs. prises. par. un. attribut. avec. des. attributs. de.
plein.droit ..
figuRe 1-18 Confusion Attribut et Valeur dattribut
Paiement
No paiement : {Unique}
Date paiement
Montant paiement
Carte de crdit?
Paiement direct?
Au comptant?

Dans.lentit.Paiement.de.lexemple.1-18.par.laquelle.on.tente.de.reflter.
les.donnes.relatives..une.transaction.de.paiement,.les.attributs. Date paiement.et.Montant paiement.sont.sans.doute.des.attributs.pertinents ..La.prsence.
de. trois. attributs. de. type. boolen. (Valeur. vrai. ou. faux),. Carte de crdit ?,.
Paiement direct ? et.Au comptant ?,.pour.spcifier.selon.quel.mode.le.paiement.
a.t.effectu,.est.en.revanche.inapproprie ..
Le.modlisateur.a.choisi.des.attributs.qui.reprsentent.chacun.une.des.
valeurs.possibles.dun.autre.attribut.quil.na.pas.su.identifier.explicitement ..
De. manire. . simplifier. son. modle,. il. aurait. d. choisir. un. seul. attribut,.
Mode de paiement,.dont.les.valeurs.sont.Carte.de.crdit,.Paiement.direct.et.
Au.comptant ..Lentit.Paiement.de.la.figure.1-19.illustre.clairement.le.modle.
voulu.et.la.prsence.du.type.de.donnes.enum.pour.lattribut.Mode de paiement.
tablit.une.distinction.nette.entre.cet.attribut.et.ses.valeurs.possibles .
figuRe 1-19 Distinction nette entre Attribut et Valeur dattribut
Paiement
No paiement : {Unique}
Date paiement
Montant paiement
Mode de paiement : enum{Carte de crdit, Paiement direct, Au comptant}

Une.autre.erreur.commise.frquemment.dans.les.modles.conceptuels.
de.donnes.consiste..y.faire.apparatre.des.associations.peu.pertinentes.ou.
des.associations.que.lon.pourrait.dduire.des.autres.associations.prsentes.
dans.le.modle.(association.redondante) .



Conception de bases de donnes avec UML

La.thorie.des.graphes.nous.indique.que.dans.un.graphe.comportant.
n. nuds,. (n*(n1))/2. associations. peuvent. tre. cres. entre. les. nuds .. Un.
modle.qui.comporterait.6.entits.pourraient.thoriquement.contenir.jusqu.
15.associations.!.Le.modlisateur.doit.donc.les.choisir.avec.parcimonie.pour.
viter.que.le.modle.ne.devienne.rapidement.incomprhensible.car.la.prsentation.graphique.du.modle.devrait.invitablement.comporter.des.croisements.entre.les.arcs.des.associations ..De.tels.croisements.doivent.tre.vits.
lorsque.la.chose.est.possible .

Principe limiteR les associations celles juges vitales. Une association est

le reflet dun vnement quil est indispensable de mmoriser et qui met en


cause une ou plusieurs occurrences dentits. La pertinence de lassociation est
directement lie limportance que revt lvnement. Ainsi lmission dun
billet par une socit arienne cre une association avec la rservation qui lui
a donn naissance et avec le passager qui pourra en bnficier. Sur le plan
conceptuel ces deux associations sont mmorables pour la socit arienne.

Dans.lexemple.1-17,.il.nexiste.pas.dassociation.entre.lentit.Paiement.
et.lentit. Client.bien.quil.semble.a.priori.important.de.savoir.quel.client.a.
fait.un.paiement.particulier ..Cest.que.cette.association.est.implicite ..Il.existe.
en. effet. une. association. indirecte. par. le. biais. de. lentit. Rservation. et. les.
associations. Confirm par et Effectue ..Notons.que. Confirm par possde.une.
multiplicit.1 . .1.du.ct.de.Rservation.et.par.ailleurs.Effectue.possde.aussi.
une.multiplicit.1 . .1.du.ct.de.Client ..Cela.signifie.qu.partir.dun.paiement,.
lassociation. Confirm par.mne..une seule rservation.et.cette.rservation.
mne..un seul.client.par.lassociation.Effectue ..On.peut.donc.tablir.quune.
association.entre.deux.entits.nest.pas.vitale,.car.redondante,.sil.existe.une.
chane.dassociations.qui.relient.indirectement.celles-ci.et.o.les.terminaisons
darrive.de.chacune.des.associations.de.la.chane.comporte.une.multiplicit.
1 . .1 ..Une.association.binaire.(i .e ..impliquant.deux.entits).peut.se.lire.dans.
les.deux.directions ..La.terminaison de dpart.provient.de.lentit..partir.de.
laquelle.on.fait.une.lecture.et.la.terminaison darrive.est.rattache..lentit.
sur.laquelle.cette.lecture.se.termine .
Cest. ainsi. que. dans. lexemple. 1-20,. lassociation. met. qui. relie. une.
occurrence.de.Facture..une.seule.occurrence.de.Reprsentant.est.redondante ..
Il.existe.en.effet.deux.associations.qui.relient.indirectement.Facture..Reprsentant. soit. Fait suite. et. Prise en charge par .. Dans. les. deux. cas,. les. terminaisons. darrive. ont. une. multiplicit. 1 . .1. (encercles. pour. les. mettre. en.
vidence) ..Cela.signifie.quune.facture.mne..une seule.commande.et.cette.
commande. mne. . un seul. reprsentant,. donc. par. transitivit. une. facture.
mne..un seul.reprsentant ..Lassociation. met.est.donc.injustifie ..Elle.est.
dautant.plus.injustifie.quelle.pourrait.donner.lieu..une.contradiction ..Si.



Le modle conceptuel de donnes

figuRe 1-20 Association binaire redondante


Fait suite

Facture
No facture : {Unique}

0..*

1..1

Commande
No commande : {Unique}
1..*
Prise en charge par

0..*

1..1

met

Redondant

Reprsentant
1..1

No reprsentant : {Unique}

le.modlisateur.avait.choisi.de.placer.une.multiplicit.1 . .*.sur.lassociation.
met. ct. Reprsentant,. cette. multiplicit. serait. en. contradiction. avec. les.
deux.autres.associations.qui.tablissent. quune. facture.est.associe..un.et.
un.seul.reprsentant .

Principe viteR les associations Redondantes. Une association qui relie direc

tement une entit A une entit B est considre redondante si transitivement


A est par ailleurs associ B par une chane dassociations dont les terminaisons
darrive sont toutes de multiplicit 1..1. Cette association redondante peut
introduire une incohrence dans le modle si la multiplicit sur sa terminaison
darrive (lecture de A vers B) est autre que 1..1.

Il. faut. se. garder. de. voir. une. association. redondante. l. o. il. ny. en. a.
pas .. Si. nous. revenons. . lexemple. 1-17,. bien. quil. existe. une. chane.
.dassociations.entre.Billet.et.Passager.par.le.biais.de.Rservation.et.des.associations.Emet.et.Concerne,.celles-ci.ne.permettent.pas.dtablir.un.lien.entre.
un.billet.et.le.passager.inscrit.sur.le.billet ..En.effet.il.existe.une.multiplicit.
maximale. plusieurs. (*). sur. la. terminaison. darrive. de. Concerne .,. car. pour.
aller.de.Billet.vers.Passager,.nous.devons.faire.la.lecture.de.cette.association.
en.partant.de.Rservation.vers.Passager ..Cest.pour.cette.raison.que.le.modlisateur.a.d.formuler.une.association. mis pour.permettant.de.lier.directement. un. billet. au. passager. pour. lequel. il. a. t. mis .. Cette. association. est.
vitale.et.non redondante.car.aucun.attribut.de.lentit.Billet.ne.rfre.au.client.
et.il.doit.en.tre.ainsi ..En.vertu.de.la.rgle.de.construction,.le.nom.du.passager.est.un.attribut.du.passager.et.non.pas.un.attribut.du.billet ..Seule.une.
association.peut.rattacher.le.passager.au.billet.mis .



Conception de bases de donnes avec UML

Ces.considrations.sur.les.associations.binaires.dites.vitales.nous.mnent.
. la. formulation. dun. nouveau. principe. qui. recommande. dviter. le. pige.
du.genre.ventilateur.pour.utiliser.la.formule.de.Connoly.et.Berg.[ConB.05] ..
Le.pige.se.pose.lorsque.trois.entits.A,.B.et.C.peuvent.tre.associes..laide.
de.deux.(2).associations.binaires ..Si.seulement.deux.associations.sont.utilises,.
il. existe. thoriquement. trois. (3). faons. dassocier. les. entits.:. A-B-C,. B-C-A.
ou.B-A-C ..Dans.le.cas.ou.plusieurs.de.ces.trois.associations.sont.logiquement.
possibles.et.refltent.toutes.trois.la.ralit.du.domaine..modliser,.il.importe.
de.choisir.celle.qui.permet.une.lecture.des.associations.avec.des.terminaisons.
darrive.dont.la.multiplicit.maximale.est.de.1.partout .
La.figure.1-21.illustre.une.situation.o.le.modlisateur.est.tomb.dans.
le.pige.du.ventilateur ..Il.tente.de.modliser.le.lien.qui.existe.entre.Employ,.
Division.et.Filiale ..Si.on.fait.la.lecture.des.associations.de.Employ.vers.Filiale,.
les.multiplicits.maximales.sont.de.1.ct. Division.et.de.*.ct. Filiale ..Cela.
signifie.que.pour.un.employ.on.peut.tablir.dans.quelle.division.il.travaille.
mais.on.se.voit.incapable.dtablir.dans.quelle.filiale.car.une.division.comporte. plusieurs. filiales .. Il. faudrait. pour. ce. faire. ajouter. une. troisime. association.entre.Employ.et.Filiale.permettant.dtablir.dans.quelle.filiale.travaille.
.lemploy ..Or.cette.troisime.association.ne.serait.pas.ncessaire.si.le.pige.
du.ventilateur.tait.vit .
figuRe 1-21

Exemple du pige du ventilateur

Employ

Emploie
1..*

Division

1..1

Contrle
1..1

Filiale

1..*

Comme.le.montre.la.figure.1-22,.en.plaant.Filiale.au.centre.de.la.chane.
des. associations,. le. modlisateur. peut. viter. le. pige. du. ventilateur .. Cette.
fois.la.lecture.des.associations.de. Employ.vers. Division.montre.deux.terminaisons.darrive.avec.multiplicit.maximale.de.1.pour.chacune ..Cela.signifie.
que.pour.un.employ,.il.sera.possible.de.dterminer.sa.filiale.qui.est.unique.
et. de. connatre. transitivement. sa. division. sans. faire. appel. . une. troisime.
association .
figuRe 1-22 Nouveau modle permettant dviter le pige du ventilateur
Division

Contrle
1..1

1..*

Filiale

Emploie
1..1

1..*

Employ



Le modle conceptuel de donnes

Principe viteR le pige du genRe ventilateuR. Dans le contexte ou deux asso

ciations binaires doivent relier trois entits, il sagit de choisir les associations
de manire ce quune des deux lectures possibles de la chane, liant la premire
entit la troisime, ait des terminaisons darrive avec multiplicit maximale
de 1 sur chaque association.
Un.autre.pige.relatif.aux.multiplicits.guette.le.modlisateur ..Il.sagit.
du.pige.de.labme ..Il.concerne.la.prsence.de.multiplicits.minimales..zro.
sur.la.chane.de.lecture.des.associations.liant.indirectement.deux.entits .

Lexemple.1-23.illustre.le.pige.de.labme ..Dans.ce.modle.il.est.impossible.de.faire.le.lien.entre.une.filiale.et.lensemble.des.proprits.administres ..
Filiale. est. associ. indirectement. . Proprit. par. le. biais. de. Employ,. or. la.
prsence.dune.multiplicit.0 . .1..la.terminaison.de.dpart.de.lassociation.
Administre.indique.que.certaines.proprits.peuvent.ne.pas.tre.administres.
par. un. employ. (multiplicit. minimale. 0) .. Cela. signifie. que,. connaissant.
une.filiale,.on.peut.retrouver.tous.les.employs.quelle.emploie.mais.comme.
certaines. proprits. ne. sont. pas. lies. . un. employ,. il. est. impossible. dans.
certains.cas.de.connatre.toutes.les.proprits.de.la.filiale .
figuRe 1-23 Modle illustrant le pige de labme
Filiale

Emploie
1..1

Employ

1..*

Administre
0..1

Proprit

0..*

Comme. on. souhaite. conserver. les. associations. Emploie. et. Administre.


qui.savrent.toutes.deux.pertinentes,.nous.navons.dautre.choix.que.dajouter. une. association. directe. entre. Filiale. et. Proprit,. comme. le. montre. le.
modle.rvis..la.figure.1-24,.de.manire..ce.que.dsormais.une.occurrence.
de. lentit. Filiale . mne. . toutes. les. occurrences. de. Proprit . quelle.
regroupe .
figuRe 1-24 Modle rvis vitant le pige de labme
Filiale

Emploie
1..1

Employ

1..*

Administre
0..1

Proprit

0..*

Regroupe
1..1

1..*



Conception de bases de donnes avec UML

Principe viteR le pige du genRe abme. Dans le contexte ou deux associations

binaires doivent relier trois entits, la prsence de la multiplicit minimale 0


sur une terminaison de dpart dune des deux associations ne permet pas de
lier une occurrence de la premire entit toutes les occurrences possibles de
la troisime entit. Il sera le cas chant ncessaire dtablir une association
directe entre la premire et la troisime entit.

comment nommer une entit, un attribut ou une association ?


Nous. avons. mentionn. plus. tt. quune. entit. ou. un. attribut. devrait. tre.
nomm.par.un.mot.ou.un.groupe.nominal ..Quant.aux.associations.binaires.
elles. devraient. tre. formules. par. un. verbe. daction. et. une. direction. de.
lecture ..Au.del.de.ces.conventions,.un.principe.fondamental.devrait.guider.
le.modlisateur.dans.le.choix.le.plus.appropri.des.termes.dun.modle ..Nous.
lappellerons..linstar.de.Craig.Larman.[LAR.05].le.principe du cartographe .

Principe nommeR les choses comme un caRtogRaphe le feRait. Tout comme

le cartographe appel faire une carte dun territoire doit nommer les lieux et
les choses en respectant les noms en usage sur le territoire, le modlisateur
doit faire appel au vocabulaire du domaine cest dire aux termes utiliss par
les acteurs du domaine.

Sil.est.dusage.de.parler.dun.bnficiaire.dans.le.domaine.de.la.sant,.
il. serait. inappropri. que. le. modlisateur. utilise. le. mot. patient. pour. faire.
rfrence. . la. personne. qui. fait. lobjet. de. soins. ou. de. services,. mme. si. .
une. poque. pas. trs. lointaine. il. sagissait. dun. terme. largement. utilis .. Il.
faut.donc.adopter.le.vocabulaire.du.domaine.et.de.son.poque .
Le.cartographe.porte.un.jugement.sur.la.pertinence.de.reprsenter.un.
lieu.ou.un.objet.sur.une.carte.en.fonction.de.limportance.que.revt.le.lieu.
ou. lobjet. pour. les. personnes. qui. habitent. le. territoire .. Il. en. va. de. mme.
pour.le.modlisateur ..Un.modle,.tout.comme.une.carte,.est.une.simplification. du. monde. rel. pour. mieux. le. comprendre .. Son. auteur. doit. carter.
volontairement.des.dtails.de.moindre.importance.pour.ne.retenir.que.les.
lments.les.plus.significatifs.et.viter.ainsi.une.surcharge.dinformation.qui.
pourrait.au.demeurant.rendre.le.modle.incomprhensible .

Le modle conceptuel de donnes



concepTs AvAncs du foRMAlisMe enTiT-AssociATion


Comme. le. montre. lexemple. du. transporteur. arien. . la. figure. 1-17,. dans.
certaines. circonstances. le. modlisateur. doit. faire. ressortir. des. associations.
impliquant.plus.de.deux.entits,.des.associations.de.degr.suprieur ..De.plus.
les.associations.peuvent.imposer.entre.les.entits.des.contraintes.dun.type.
diffrent. de. celles. vues. jusquici .. Cette. section. traite. de. concepts. qui. permettent. de. reprsenter. des. situations. ou. des. contraintes. peu. usuelles. mais.
quil.est.nanmoins.ncessaire.de.faire.voir.dans.un.modle.conceptuel .

Associations de degr suprieur


Les.associations.liant.seulement.deux.entits,.sont.dites.binaires ..Celles.liant.
plus. de. deux. entits. sont. dites. de. degr suprieur .. Ces. dernires. sont. reprsentes..laide.dun.grand.losange.o.des.arcs.reliant.les.entits.impliques.
dans.lassociation.sont.marqus.chacun.de.multiplicits ..
Une.occurrence.dune.association.de.degr.suprieur,.tout.comme.une.
occurrence.dassociation.binaire,.est.susceptible.dtre.lie..une.occurrence.
de.chacune.des.entits.associes ..Chaque.arc.doit.disposer.imprativement.
dune.multiplicit.minimale.et.dune.multiplicit.maximale .
Dterminer.les.multiplicits.dans.une.association.de.degr.suprieur.est.
un.exercice.intellectuel.plus.exigeant.que.celui.dploy.pour.une.association.
binaire .
Dans. une. association. binaire,. la. multiplicit. la. plus. prs. de. lentit.
indique.combien.doccurrences.de.cette entit.peuvent.tre.associes..une.
occurrence.de.lautre entit ..Dans.le.cas.dune.association.de.degr.suprieur.
n,.la.multiplicit.prs.dune.entit.indique.combien.doccurrences.de. cette
entit. peuvent. tre. associes. . une. combinaison. mettant. en. cause. une.
.occurrence.de.chacune.des.n1.autres.entits ..
Essayons.dclaircir.tout.cela..laide.dun.exemple .
Lexemple.1-25.est.tir.du.modle.sur.la.socit.arienne.o.il.est.stipul.
quune.rservation.comporte.des.vols.et.des.tarifs ..Pour.la.comprhension.
du. domaine,. prcisons. quune. rservation. peut. comporter. plusieurs. vols.
diffrents,.par.exemple Qubec-Montral, Montral-Paris, Paris-Toronto, TorontoQubec ..Sur.chaque.vol.de.la.rservation,.un.tarif.est.appliqu.et.celui-ci.peut.
varier. dun. vol. . lautre .. Un. tarif. est. identifi. par. un. code. qui. prcise. les.



Conception de bases de donnes avec UML

figuRe 1-25 Rservation auprs dune socit arienne


Rservation

Vol

No rservation : {Unique}
Date rservation
Prix total
Paiement effectu?

0..
*

1..
Comporte

No du vol : {Unique}
* Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive

1..1
Tarif
Code de tarif : {Unique}
Conditions

conditions. rattaches. au. prix. du. billet .. Par. exemple. le. tarif. YHJLI. pourrait.
avoir.comme.conditions.:.classe conomique, non remboursable, pay 30 jours
avant le dpart .
Les. multiplicits. sont. dtermines. en. considrant. chaque. entit. de.
lassociation..tour.de.rle .
Multiplicit.du.ct.Rservation.:.Combien.de.rservations.peuvent.tre.
associes..une.occurrence.du.couple.Tarif-Vol.?.Considrons.la.combinaison.
Code de tarif = YHJLI. avec. No du vol = AC2033,. combien. de. rservations.
peuvent.tre.faites.avec.cette.combinaison.?.Aucune.ou.plusieurs,.donc.multiplicit.0 . .* ..Pourquoi.?.Il.est.possible.quaucune.rservation.nait.t.accorde.
avec.ce.code.de.tarif.pour.ce.vol.ou.bien.plusieurs.peuvent.lavoir.t .
Multiplicit.du.ct.Tarif.:.Combien.de.tarifs.peuvent.tre.associs..une.
occurrence.du.couple.Rservation-Vol.?.Considrons.la.combinaison.No rservation = 4567725653.avec.No du vol = AC2033,.combien.de.tarifs.peuvent.tre.
appliqus. . cette. combinaison.?. Une. et. une. seule,. donc. multiplicit. 1 . .1 ..
Pourquoi.?. On. ne. retrouve. quun. seul. tarif. pour. un. vol. dans. une.
rservation .
Multiplicit.du.ct. Vol.:.Combien.de.vols.peuvent.tre.associs..une.
occurrence. du. couple. Rservation-Tarif.?. Considrons. la. combinaison. No
rservation = 4567725653.avec.Code de tarif = YHJLI,.combien.de.vols.peuvent.
tre.impliqus.dans.cette.combinaison.?.Un.ou.plusieurs,.donc.multiplicit.
1 . .* ..Pourquoi.?.Sil.existe.un.code.de.tarif.associ..une.rservation,.il.doit.
y.avoir.au.moins.un.vol.dans.la.rservation.avec.ce.tarif.ou.plusieurs ..



Le modle conceptuel de donnes

Lexercice. exige. donc. une. trs. bonne. comprhension. du. domaine. .


modliser ..De.plus.le.modlisateur.doit.pouvoir.se.faire.une.trs.bonne.image.
mentale.de.ce.que.reprsente.lassociation.dont.une.entit.a.t.exclue.ainsi.
que.de.la.nature.des.occurrences.de.cette.association ..Une.occurrence.dune.
association. doccurrences. dentits. diffrentes. est. appele. un. couple. pour.
deux. entits,. un. triplet. pour. trois. et. en. gnral. sil. sagit. de. n. entits. on.
parlera.dun.tuple ..La.notion.de.tuple.est.un.concept.mathmatique.faisant.
rfrence. prcisment. . une. association. de. divers objets. provenant. de.
.domaines.diffrents .
Ceci. nous. amne. . proposer. une. nouvelle. formulation. de. la. logique.
visant. . tablir. les. multiplicits. dune. association. de. degr. suprieur. n.:. la.
multiplicit.prs.dune.entit.indique.combien.doccurrences.de.cette entit.
peuvent.tre.associes..un tuple.mettant.en.cause.une.occurrence.de.chacune.
des.n1.autres.entits ..
Une.association.de.degr.suprieur,..linstar.dune.association.binaire,.
peut. possder. des. attributs .. Une. entit. dassociation. est. alors. rattache. au.
losange.par.un.trait.pointill ..La.figure.1-26.montre.un.modle.o.est.prsente.une.association.de.degr.4,.avec.ses.propres.attributs ..Elle.illustre.un.
modle. conceptuel. relatif. aux. priodes. de. cours. donns. par. un. professeur.
dans.un.tablissement.scolaire .
figuRe 1-26 Horaire des professeurs dans un tablissement scolaire
Professeur

Cours

.*
0.

No professeur : {Unique}

Priode de cours
Heure de dbut
Heure de fin

1..*

1..7

Sigle : {Unique}

Jour semaine
Nom du jour : {Unique}

.*
1.
Local
No local : {Unique}

La.prsence.de.lentit.dassociation.Priode de cours.est.justifie.car.il.
sagit.bien.dune.entit.faible ..En.effet,.Heure de dbut.et.Heure de fin.dune.
priode.de.cours.dpendent.tous.deux.fonctionnellement.de.la.combinaison.

0

Conception de bases de donnes avec UML

No professeur-Sigle-No local-Nom du jour ..Il.faut.faire.lhypothse.cependant.

quun.professeur.ne.donne.quune.seule.fois.un.cours.donn,.dans.un.local.
donn,.un.jour.donn ..Par.exemple.si.le.professeur.Lebrun.donne.le.cours.
SIO205.le.mardi.dans.le.local.A-200,.le.cours.ne.peut.tre.donn.par.le.professeur.Lebrun.que.dans.une.seule.priode.(avec.son.heure.de.dbut.et.son.
heure.de.fin).ce.jour.l.dans.ce.local.l ..Autrement.dit,.le.professeur.Lebrun.
ne. pourrait. donner. le. cours. SIO205. le. mardi. dans. le. local. A-200. en. deux.
priodes,.par.exemple.de.8h30..10h30.et.de.13h30..15h30 ..Cest.lhypothse.que.nous.devons.faire.pour.assurer.que.les.attributs. Heure de dbut.et.
Heure de fin. dpendent. chacun. fonctionnellement. de. la. combinaison. No
professeur-Sigle-No local-Nom du jour .
Dans.le.cas.dune.association.de.degr.suprieur.avec.attributs,.lassociation. nexige. pas. de. nom .. Le. nom. de. lentit. dassociation. sert. aussi. .
nommer.lassociation ..Dans.lexemple.1-26,.on.indique.quune.priode.de.
cours.implique.un.jour.de.la.semaine,.un.local,.un.professeur.et.un.cours ..
Pour.reprendre.lanalogie.du.bac,.quatre.bacs.sont.ici.en.cause.:. Professeur,.
Cours,. Jour semaine.et. Local.comme.le.montre.la.figure.1-27 ..La.ficelle.qui.
reprsente.une.occurrence.de.lassociation.possde.quatre.branches ..Chaque.
branche.est.attache..une.fiche.localise.dans.un.des.quatre.bacs ..Pour.que.
lassociation.existe,.elle.doit.obligatoirement.avoir.quatre.branches.avec.une.
fiche.attache..chaque.branche.provenant.dun.bac.diffrent.des.trois.autres ..
Enfin.la.ficelle.doit.tre.tiquete.de.deux.valeurs.:. Heure de dbut.et. Heure
de fin,.les.attributs.de.lassociation .
Pour.simplifier.la.reprsentation.visuelle.du.modle,.lexemple.1-27.ne.
montre.que.deux.occurrences.de.lassociation. Priode de cours ..De.plus,.les.
fiches.ne.comportent.que.la.valeur.de.lidentifiant .
Nous.compltons.la.prsentation.de.cet.exemple.avec.une.justification.
de.chacune.des.multiplicits.de.lassociation. Priode de cours .
Multiplicit.du.ct. Professeur.:.Combien.de.professeurs.peuvent.tre.
associs..une.occurrence.de. Cours-Local-Jour de semaine.?.Considrons.la.
combinaison.Cours = SIO205.avec.Local = A-033.avec.Jour de semaine = Lundi,.
combien.de.professeurs.peuvent.tre.lis..ce.tuple.?.Zro.ou.plusieurs,.donc.
multiplicit.0 . .* ..Pourquoi.?.Il.peut.bien.arriver.quaucun.professeur.nait.t.
identifi.pour.donner.le.cours.ce.jour.l,.ou.au.contraire.le.cours.est.donn.
ce. jour. l. dans. le. mme. local. par. plusieurs. professeurs,. sur. des. priodes.
.diffrentes.pour.viter.les.conflits.dhoraires .
Multiplicit.du.ct. Cours.:.Combien.de.cours.peuvent.tre.associs..
une.occurrence.de.Professeur-Local-Jour de semaine.?.Considrons.la.combinaison.Professeur = Lebrun.avec.Local = A-033.avec.Jour de semaine = Lundi,.
combien.de.cours.peuvent.tre.lis..ce.tuple.?.1.ou.plusieurs,.donc.multiplicit.

1

Le modle conceptuel de donnes

figuRe 1-27 Reprsentation visuelle du modle 1-26

C-

0
20
1
10
C-

00
B-2
0
10
B01
B-0
02
A -0
01
A-0

c
Lo
0
20
FIN 100
FIN
03
O1
00
SC
T2
K
00
M
G1
1
MQ
10
1
SIO
20
SIO

Co

al
e
ch
an di
Dim ame
i
S
red
nd
i
ud
Ve
i
Je
ed
rcr
Me
rdi
a
i
M
nd
Lu

16h00;
18h00

13h30;
15h30

de
u r i ne
o
J ma
se

rs
4
00
10

3
00
10
2
00
10

1
00
10

Pr

s
fe

se

ur

1 . .* .. Pourquoi.?. Si. une. telle. combinaison. existe,. elle. doit. exister. pour. au.
moins.un.cours.sinon.elle.na.aucun.sens ..Par.ailleurs,.elle.peut.concerner.
plusieurs. cours. car. un. professeur. pourrait. donner. plusieurs. cours. le. mme.
jour.dans.le.mme.local.pour.peu.quils.soient.tous.diffrents.et.quil.ny.ait.
pas.de.conflit.entre.les.priodes .
Multiplicit.du.ct. Jour de semaine.:.Combien.de.jours.de.la.semaine.
peuvent.tre.associs..une.occurrence.de.Professeur-Local-Cours.?.Considrons. la. combinaison. Professeur = Lebrun. avec. Local = A-033. avec. Cours =
SIO201,.combien.de.jours.de.la.semaine.peuvent.tre.lis..ce.tuple.?.1.ou.
plusieurs,.donc.multiplicit.1 . .* ..Pourquoi.?.Si.une.telle.combinaison.existe,.



Conception de bases de donnes avec UML

elle.doit.exister.pour.au.moins.un.jour.o.le.cours.est.donn.sinon.elle.na.
aucun. sens .. Dautre. part. le. cours. pourrait. tre. donn. tous. les. jours. de. la.
semaine,.jusqu.concurrence.de.7 .
Multiplicit.du.ct. Local.:.Combien.de.locaux.peuvent.tre.associs..
une.occurrence.de. Professeur-Cours-Jour de semaine.?.Considrons.la.combinaison. Professeur = Lebrun. avec. Cours = SIO201 avec. Jour de semaine =
Mardi,.combien.de.locaux.peuvent.tre.lis..ce.tuple.?.1.ou.plusieurs,.donc.
multiplicit.1 . .* ..Pourquoi.?.Si.une.telle.combinaison.existe,.elle.doit.exister.
pour.au.moins.un.local.o.le.cours.est.donn.sinon.elle.na.aucun.sens ..Rien.
ninterdit.quun.professeur.donne.le.mme.cours.le.mme.jour.sil.est.donn.
dans.des.locaux.diffrents .

Il est souvent difficile dtablir les multiplicits minimales dune association de degr
suprieur. Selon linterprtation qui est faite de la situation ou des hypothses qui
doivent tre faites, deux choix soffrent au modlisateur : 0 ou 1. En cas de doute,
ou de possibilits diverses dinterprtation de la situation, vaut mieux choisir celle
qui reprsente la contrainte la moins forte soit 0. Il en va de mme des multiplicits
maximales, plusieurs (*) reprsente une contrainte moins forte que 1. aucun
moment, cette astuce ne doit devenir une solution de facilit en faisant appel systmatiquement des multiplicits minimales valant 0 dans des associations de degr
suprieur. Dans la majorit des situations, les multiplicits peuvent tre tablies sans
ambiguts si nous disposons dune information complte de la situation. Lastuce
sapplique aussi aux associations binaires.
Il. faut. viter. de. faire. un. usage. dmesur. des. associations. de. degr.
s. uprieur ..On.estime.quelles.reprsentent.moins.de.20.%.de.toutes.les.associations. dun. modle. et. que. les. associations. de. degr. 4. sont. trs. rares .. Il.
arrive.souvent.que.le.modlisateur.non.averti.fasse.appel..une.association.
de.degr.suprieur.alors.quelle.nest.pas.requise ..En.effet.dans.bon.nombre.
de. situations,. une. association. de. degr. suprieur. peut. tre. dcompose. en.
quelques.associations.de.degr.moindre,.notamment.des.associations.binaires ..
Les. conditions. pour. exercer. la. dcomposition. dune. association. de. degr.
suprieur.font.lobjet.de.discussion.dans.la.section.qui.suit .

dcomposition des associations de degr suprieur


Il. existe. deux. situations. principales. o. une. association. de. degr. suprieur.
peut.tre.divise.en.deux.associations.de.degr.moindre ..La.premire.concerne.
une.dpendance.fonctionnelle.entre.les.identifiants.de.deux.entits.de.lassociation,.la.seconde.la.prsence.dune.multiplicit.maximale.de.1.sur.un.des.
arcs. de. lassociation .. Ces. deux. conditions. se. rencontrent. souvent. simultanment.dans.une.association.de.degr.suprieur .



Le modle conceptuel de donnes

Considrons.lexemple.1-28 ..Ce.modle.reflte.les.donnes.vitales.quun.
courtier. en. assurances. de. dommage. gre. pour. ses. clients. qui. sadressent. .
lui. pour. assurer. un. ou. plusieurs. vhicules. auprs. dune. compagnie. dassurance ..On.y.retrouve.une.association.de.degr.3,. Assurance vhicule,.comportant.ses.propres.attributs ..Comme.toute.entit.dassociation,. Assurance
vhicule.est.une.entit.faible ..Son.identifiant.implicite.est.ici.la.combinaison.
No client courtier-Immatriculation-Nom socit .
figuRe 1-28 Le client contracte une police dassurance pour ses vhicules
Assurance vhicule
No police
No vhicule sur police
Date entre en vigueur
Dure
Vhicule

1..1

Client

0..* Immatriculation : {Unique}


No srie
Fabricant
Modle

No client courtier : {Unique}

1..*
Socit d'assurance
Nom socit : {Unique}

Par.ailleurs,.puisque.le.vhicule.appartient..un.seul.propritaire,.ici.le.
client,.le.vhicule.dtermine.le.client ..Il.y.a.donc.dpendance.fonctionnelle.
entre. Immatriculation du. vhicule. et. le. No client courtier .. Cette. situation.
permet.de.retirer.lentit. Client.de.lassociation,.cette.dernire.dpend.fonctionnellement.dune.autre,.et.de.la.rattacher.directement..Vhicule.par.une.
association.binaire ..Seules.les.entits.Vhicule.et.Socit dassurance.devraient.
prendre. part. . lassociation. Assurance vhicule .. Cette. dernire. est. alors.
ramene..une.simple.association.binaire.(Figure.1-29).mais.pour.ce.faire.on.
aura.d.associer. Vhicule.et. Client .
La.prsence.dune.dpendance.fonctionnelle.entre.deux.entits.lies.
par. une. association. de. degr. suprieur. peut. facilement. tre. repre. en.
consultant. les. multiplicits. maximales. sur. les. arcs. de. lassociation .. Dans.
lexemple. 1-28,. la. prsence. dune. multiplicit. maximale. de. 1. ct. Client.
indique.que.cette.entit.pourrait.avoir.une.dpendance.fonctionnelle.envers.
une.des.deux.autres.entits,.en.loccurrence.Vhicule ..Comme.une.multiplicit.maximale.valant.1.nassure.pas.systmatiquement.une.telle.dpendance,.
il.incombe.au.modlisateur.de.sen.assurer .



Conception de bases de donnes avec UML

figuRe 1-29 Dcomposition de lassociation de degr 3 du modle 1-28


Vhicule

1..*
1..*
Assur par

Immatriculation : {Unique}
No srie
Fabricant
Modle

Socit d'assurance
Nom socit : {Unique}

Assurance vhicule

0..* Appartient

No police
No vhicule sur police
Date entre en vigueur
Dure

1..1
Client
No client courtier : {Unique}

Lexemple.1-30.illustre.un.autre.cas.o.une.dcomposition.de.lassociation.de.degr.suprieur.devrait.tre.effectue ..Il.sagit.dun.modle.dcrivant.
linstallation.des.logiciels.sur.les.ordinateurs.dans.une.organisation .
figuRe 1-30 Installation des logiciels sur les ordinateurs des dpartements
Installation
Date installation

Logiciel
Nom logiciel : {Unique}
Nombre de licences

1..*

1..*

1..1

Ordinateur
No ordinateur : {Unique}

Dpartement
Code dpartement : {Unique}
Nom dpartement

Puisque. chaque. ordinateur. est. rattach. . un seul. dpartement,. le. No


ordinateur.dtermine.le.dpartement ..Il.y.a.alors.dpendance.fonctionnelle.
entre.le.Code dpartement.et.le.No ordinateur ..La.prsence.dune.multiplicit.
maximale.de.1.ct.Dpartement.est.un.indice.de.ce.fait ..Cette.situation.permet.
dassocier.directement.lentit.Ordinateur..lentit.Dpartement,.ne.retenant.
dans.lassociation. Installation.que.les.entits. Logiciel.et. Ordinateur.
La.dcomposition.de.lassociation.Installation.permet.de.rduire.son.degr.
et.conduit..un.modle.plus.simple.(Figure.1-31).quoique.smantiquement.
quivalent.au.modle.1-30 .



Le modle conceptuel de donnes

figuRe 1-31 Version simplifie du modle 1-30


Installation
Date installation
Logiciel
Nom logiciel : {Unique}
Nombre de licences

Install sur
1..*

0..*

Ordinateur
No ordinateur : {Unique}
0..*

1..1

Rattach

Dpartement
Code dpartement : {Unique}
Nom dpartement

Installation.est.une.entit.faible.et.son.identifiant.implicite,.la.combinaison.Nom logiciel.et.No ordinateur,.respecte.la.rgle.didentit.car.Installation.


reprsente. la. premire. installation. dun. logiciel. sur. un. ordinateur. donn ..
On.fait.de.plus.lhypothse.que.la.version.fait.partie.du.nom.du.logiciel,.ce.
qui. signifie. que. deux. versions. du. mme. logiciel. sont. traites. comme. des.
logiciels.diffrents .

La prsence dune multiplicit maximale de 1 dans une association de degr suprieur


nest quun indice de dpendance fonctionnelle possible de lentit du ct de cette
multiplicit maximale de 1 envers une des autres entits associes. Il incombe au
modlisateur de vrifier quune telle dpendance existe vraiment. Si cette dpendance
peut savrer, le modlisateur doit dcomposer lassociation de degr n en introduisant
une association binaire et une association de degr n1.
Si.le.modlisateur.narrive.pas..tablir.une.dpendance.fonctionnelle.
entre.deux.entits.dune.association.comportant.une.multiplicit.maximale.
de.1,.cela.ne.signifie.point.que.lassociation.ne.puisse.tre.dcompose ..En.
effet,.la.prsence.de.la.multiplicit.maximale.de.1.dnote.par.dfinition.une.
dpendance.fonctionnelle.entre.une.entit.et.la. combinaison des autres .
Pour.illustrer.cette.situation,.considrons..nouveau.lexemple.tir.de.
la.figure.1-17.concernant.le.lien.existant.entre.une.rservation,.un.vol.et.un.
tarif.comme.illustr..la.figure.1-32 .
Bien. quune. multiplicit. maximale. valant. 1. se. trouve. ct. Tarif,. cette.
entit.ne.dpend.fonctionnellement.ni.de.Rservation,.ni.de.Vol ..En.effet.Vol.
ne.dtermine.pas.le.Tarif.car.sur.le.mme.vol.plusieurs.tarifs.sont.applicables ..



Conception de bases de donnes avec UML

figuRe 1-32 Rservation auprs dune socit arienne


Rservation

Vol

No rservation : {Unique}
Date rservation
Prix total
Paiement effectu?

0..
*

1..
Comporte

No du vol : {Unique}
* Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive

1..1
Tarif
Code de tarif : {Unique}
Conditions

La. Rservation. ne. dtermine. pas. le. tarif. car. une. rservation. comporte. des.
vols.avec.des.tarifs.diffrents ..Cependant. Tarif.dpend.fonctionnellement..
la.fois.de.Rservation.et.Vol ..La.combinaison.Rservation-Vol.mne.indubitablement..un.seul.tarif.considrant.les.multiplicit.1 . .1.du.ct.de. Tarif .
Comme.le.montre.la.figure.1-33,.lassociation.de.degr.trois.peut.tre.
thoriquement.ramene..deux.associations.binaires.:.une.premire.liant.les.
deux.entits.dont.dpend.la.troisime ..Cette.nouvelle.association.aura.une.
entit. dassociation. artificielle. sans. attribut. explicite. qui. sera. associe. . la.
troisime.entit,.soit. Tarif ..Par.ailleurs,.si.une.entit.dassociation.avait.t.
rattache..lassociation.de.degr.3.dans.le.modle.dorigine.(1-32),.la.cration.dune.entit.artificielle.naurait.point.t.requise ..Il.aurait.suffit.dassocier.
lentit. Tarif. . cette. entit. dassociation. et. de. rduire. . deux. le. degr. de.
.lassociation.initiale .
Rservation ramene deux associations binaires
figuRe 1-33 en crant une entit dassociation artificielle appele Rservation vol
Vol

Rservation
No rservation : {Unique}
Date rservation
Prix total
Paiement effectu?

Comporte
0..*

1..*

Rservation vol

Appliqu
0..*

1..1

No du vol : {Unique}
Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive
Tarif
Code de tarif : {Unique}
Conditions

Le modle conceptuel de donnes



Le.modle.1-32.et.la.dcomposition..laquelle.il.a.donn.lieu.en.1-33.
permettent. dtendre. la. stratgie. de. dcomposition. . toute. association. de.
degr.n.comme.lindique.lastuce.qui.suit .

La prsence dune multiplicit maximale de 1 dans une association de degr n


reprsente une dpendance fonctionnelle obligatoire de lentit du ct de la multiplicit maximale 1 envers la combinaison des n1 autres entits associes. Si
lassociation dispose dune entit dassociation, lentit du ct de la multiplicit
maximale de 1 peut tre lie directement par une association binaire cette entit
dassociation. Dans le cas o une telle entit dassociation nexiste gure, une entit
dassociation artificielle ne comportant aucun attribut peut tre cre pour assurer
une association binaire avec lentit du ct de la multiplicit maximale de 1.

Quelle que soit la forme de dcomposition, les multiplicits de lassociation de degr


n1 rsultante doivent tre rvalues car on ne peut tre assur que les multiplicits
demeurent les mmes pour les entits restantes.
Quen.est-il.des.associations.de.degr.suprieur.comportant.plus.dune.
multiplicit. maximale. de. 1.?. Il. suffit. de. procder. . une. premire. phase. de.
dcomposition,.dvaluer.les.multiplicits.de.lassociation.de.degr.suprieur.
rsultante.et.de.procder..une.seconde.phase.de.dcomposition.si.celle-ci.
dispose.toujours.dune.multiplicit.maximale.valant.1 .
Considrons.lexemple.1-34.o.on.note.la.prsence.dune.association.
de.degr.4.dote.dune.entit.dassociation ..Comme.nous.le.verrons,.lapplication.des.astuces.donnes.plus.haut.en.considrant..tour.de.rle,.arbitrairement,.chaque.entit.dote.dune.multiplicit.maximale.de.1.de.son.ct,.
conduit..une.dcomposition.smantiquement.quivalente.au.modle.dorigine .. Il. importe. cependant. qu. chacune. des. phases. de. dcomposition,. le.
modlisateur.rvalue.les.multiplicits.de.lassociation.rsultante .
Lexemple.1-34.illustre.les.besoins.en.information.dune.organisation.
qui.fait.la.location.de.ses.locaux..des.clients.pour.des.types.dactivits.prdtermins.qui.sinscrivent.dans.une.case.horaire.:.une.priode.donne.(Matin,.
Aprs-midi.et.Soir.comme.le.montre.le.type.de.donnes.numre).dans.un.
jour. donn .. Dans. ce. modle,. une. case. horaire. correspond. . une. priode.
dune.journe.de.calendrier,.par.exemple.le.Matin.du.06-06-2006 .
Phase.1.:.Le.modlisateur.peut.dbuter.la.dcomposition.avec.une.des.
trois.entits.dont.la.multiplicit.maximale.est.de.1 ..Dbutons.donc.arbitrairement.par.lentit. Client ..



Conception de bases de donnes avec UML

figuRe 1-34 Rservation dun local par un client


Local
No local : {Unique}

1.
.1

Rservation
Date effectue
Prix

1..1

Activit

1..*

Type activit : {Unique}

Case horaire
No case : {Unique}
Date du jour
Priode : enum{Matin, Aprs-midi, Soir}

1.
.1
Client
No client : {Unique}

Cette. entit. dpend-t-elle. fonctionnellement. dune. des. trois. autres.?.


Aucune.des.trois.autres,.prise.isolment,.ne.dtermine.le.Client ..Nanmoins,.
la.combinaison.des.trois.autres.dtermine.le.client,.ce.que.montre.la.multiplicit.1 . .1.ct.Client ..Lentit.Client.peut.donc.tre.dtache.de.lassociation.pour.tre.rattache.directement..lentit.dassociation.Rservation ..La.
figure.1-35.montre.le.modle.rsultant .
Les.multiplicits.de.lassociation.de.degr.3.qui.rsulte.de.cette.premire.
phase. de. dcomposition. diffrent. forcment. de. celle. de. degr. 4. pour. les.
entits.restantes ..Un.local..un.moment.donn.ne.peut.recevoir.quune.seule.
activit,.cest.pourquoi.la.combinaison Local-Case horaire.donne.une.multiplicit.1 . .1.ct.Activit ..Par.ailleurs,.un.local.et.un.type.dactivit.peuvent.
sinscrire.dans.plusieurs.priodes.horaires,.do.1 . .*.ct. Case horaire .
figuRe 1-35 Rservation dun local par un client, phase initiale de la dcomposition
Rservation
Activit
.1
1.

Type activit : {Unique}

Date effectue
Prix

1..*

Local
No local : {Unique}

1..*

Faite par
1..*

1..1

Client
No client : {Unique}

Case horaire
No case : {Unique}
Date du jour
Priode : enum{Matin, Aprs-midi, Soir}



Le modle conceptuel de donnes

Phase.2.:.Considrons.ensuite.lentit.Activit,.seule.entit.possdant.de.
son. ct. une. multiplicit. maximale. de. 1 .. Ni Activit,. ni. Case horaire. ne.
dtermine.le. Local ..Lentit. Local.ne.dpend.pas.fonctionnellement.individuellement.dune.de.ces.deux.entits.mais.des.deux.conjointement ..On.peut.
donc. la. dtacher. de. lassociation. pour. quelle. soit. rattache. tout. comme.
Client. . lentit. dassociation. Rservation .. Lassociation. binaire. qui. rsulte.
de. cette. dcomposition. montre. que. les. entits. Case horaire. et. Local. sont.
lies.directement.dans.un.contexte.plusieurs plusieurs ..La.figure.1-36.montre.
le. rsultat. de. la. dcomposition. complte,. en. deux. phases,. de. lassociation.
de.degr.4 .
figuRe 1-36 Rservation dun local par un client, phase finale de la dcomposition
Activit
Type d'activit : {Unique}

Comporte
1..1

0..*

Faite par
1..*

1..1

Client
No client : {Unique}

Case horaire

Mobilise

Local
No Local : {Unique}

0..*

Rservation
Date effectue
Prix

0..*

No case : {Unique}
Date du jour
Priode : enum{Matin, Aprs-midi, Soir}

Cette.section.portant.sur.les.associations.de.degr.suprieur.nous.amne.
.conclure.avec.une.rgle.encadrant.lusage.de.ce.type.dassociation .

1-5
Rgle de
multiplicit
maximale

Toute association de degr suprieur ne devrait comporter que des multiplicits


maximales * (plusieurs). Le modlisateur peut cependant dcider de conserver des
multiplicits maximales de 1 dans une association de degr suprieur sil considre
que cette reprsentation dcrit mieux le domaine, bien quune version o elle serait
dcompose soit smantiquement quivalente.

Nous.avons.dcid.dappliquer.la.rgle.au.modle.1-17.car.nous.considrons.que.les.deux.associations.de.degr.suprieur,.ayant.chacune.au.moins.
une.multiplicit.maximale.valant.1,.napportent.pas.au.modle.une.meilleure.
expression.du.domaine ..La.figure.1-37.modlise.toujours.le.mme.domaine.
mais.cette.fois. sans faire appel..des.associations.de.degr.suprieur .

0

Conception de bases de donnes avec UML

figuRe 1-37 Entits et associations pertinentes un transporteur arien

Entits
externes
Client
No client : {Unique}
Nom client
Prnom client

1..1
Concerne
1..*

Effectue

Passager

Enregistrement bagage

No passager : {Unique}
Nom passager
Prnom passager
Sexe

No enregistrement : {Unique}
Date
Heure
0..*

1..1
Appartient

1..1

0..*
Possde

Rservation
Confirme par

0..*
1..1

0..1

No rservation : {Unique}
Date rservation
Prix total
Paiement effectu?

No paiement : {Unique}
Date paiement
Montant paiement
Mode de paiement

1..1
1..*

Bagage
No bagage : {Unique}

Billet
No billet : {Unique}

1..*

Fait par

0..1

No carte : {Unique}
Expiration
Nom du titulaire

Quitte

1..1
1..1

0..*
Vol
1..1

Appliqu

0..*

No du vol : {Unique}
Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive
1..1

Arrive

0..*
0..*

1..*

Fait appel

Employ
No employ : {Unique}
Date embauche

Responsabilit

0..*

Possde
Suivi de

Type de responsabilit

Assur par

Pilote
1..1

Transaction
interne
0..1
1..1

Aroport
Code d'aroport : {Unique}
Ville

1..*

1..*
Carte de crdit

Transactions
externes

Produit

Rservation vol

Composants
du systme
oprant

Bagage vol
0..*

1..1
0..* met

Paiement

0..*

1..* mis pour

0..1

No licence : {Unique}
Date obtention licence

Retard

Avion

No retard : {Unique}
Minutes au dpart
Minutes l'arrive
Raison

No appareil : {Unique}
Fabricant
Modle
Date acquisition
Nombre de siges

Tarif

Annulation

Code de tarif : {Unique}


Conditions

No annulation : {Unique}
Raison

Dcisions

Sige
1

1..*

No sige : {Unique}
Classe

1

Le modle conceptuel de donnes

Associations spcialises
.lorigine,.le.formalisme.entit-association.ne.comportait.que.des.associations.
binaires. ou. de. degr. suprieur. avec. ou. sans. attributs .. Sous. limpulsion. de.
nouveaux.formalismes.introduits.par.la.modlisation.oriente.objet,.le.formalisme.EA.sest.enrichi.de.deux.nouvelles.formes.dassociations..vocation.
spcialise.:.la.composition.et.lhritage .

la composition
Ce. type. dassociation. est. utilis. pour. spcifier. une. dpendance. existentielle.
dune. entit. envers. une. autre .. Autrement. dit,. elle. permet. dtablir. quune.
entit.nexiste.quen.fonction.de.lexistence.dune.autre,.comme.une.partie.
est.un.lment.dun.tout.indissociable ..Une.partie.ne.peut.exister.sans.un.
tout .. Pour. utiliser. un. exemple. un. peu. macabre,. les. doigts. dune. main. ne.
peuvent. exister. isolment,. ils. nexistent. que. dans. la. main. . laquelle. ils.
appartiennent .
Lassociation.de.composition.est.symbolise.par.un.petit.losange.noir.
et.spcifie.une.relation.entre.un.composant.et.un.composite,.une.partie.et.
un.tout ..On.peut.systmatiquement.lire.lassociation.en.utilisant.les.groupes.
verbaux.Est compos de.ou.Fait partie de.selon.la.direction.emprunte.pour.
la. lecture .. Cest. la. raison. pour. laquelle. une. association. de. composition. ne.
porte.jamais.de.nom.explicite .
Lexemple.1-38.montre.une.association.de.composition.qui.impose.une.
contrainte.de.dpendance.existentielle.entre.une.commande.et.les.lignes.de.
la. commande .. Une. ligne. de. commande. schmatise. les. donnes. relatives. .

figuRe 1-38 Composition et dpendance existentielle


Commande

Composite

No commande : {Unique}
1
1..*

Composant

Ligne commande
No ligne commande : {Unique}
Quantit commande
Prix unitaire ngoci
Quantit reue

Rfre
0..*

1..1

Article
No article : {Unique}
Description article



Conception de bases de donnes avec UML

chaque. article. command .. Une. occurrence. dune. ligne. de. commande. ne.
peut. exister. sans. une. association. . une. commande .. La. disparition. dune.
commande.justifie.la.disparition.de.toutes.les.lignes.de.la.commande ..Cest.
ce.quon.entend.par.une.dpendance.existentielle.entre.ligne.de.commande.
et.commande .
Il. peut. tre. utile. de. numroter. chaque. ligne. de. la. commande. pour. y.
faire.rfrence.individuellement,.notamment.pour.savoir.combien.darticles.
ont.t.reus ..Cest.ce.que.dmontre.lexemple.1-38 .

Association de } Type dassociation reprsentant une contrainte de concidence de vie trs forte
composition entre le tout et sa partie. Lentit qui reprsente le tout est appele composite,
lentit qui reprsente une partie du tout est appele composant. La cration
dune occurrence dun composant exige quun composite existe dj pour sy
associer. La fin de vie dune occurrence de composite entrane en cascade la fin
de vie de toutes les occurrences des composants associs. (Composition)
Dans. une. association. de. composition,. la. multiplicit. du. ct. du.
c. omposite.est.systmatiquement.1 . .1,.ou.simplement.1,.car.un.composant.
doit. appartenir. . un. et. un. seul. composite .. Lidentifiant. du. composant. est.
choisi.dans.le.contexte.du.composite ..Le.choix.de.lidentifiant.dun.composant.doit.garantir.quil.sera.possible.de.distinguer.les.occurrences.du.composant.associes..la.mme.occurrence.du.composite ..Dans.lexemple.1-38.
chaque.No ligne commande.est.distinct.dans.une.mme.commande.;.il.sagit.
dun.bon.identifiant.pour.un.composant ..Cependant,.si.Commande.et.Ligne
commande. taient. associes. par. une. association. binaire. simple,. No ligne
commande.ne.serait.pas.un.bon.choix.:.la.ligne.numro.1.est.prsente.dans.
plusieurs.commandes ..Lassociation.de.composition.est.la.seule.o.la.rgle.
didentit.peut.tre.transgresse.au.niveau.de.lentit.composant.:.deux.occurrences.dune.entit.peuvent.avoir.la.mme.valeur.pour.leur.identifiant.respectif. si. et. seulement. si. elles. appartiennent. . deux. composites. diffrents ..
Thoriquement,. lidentifiant. rel. dun. composant. est. la. combinaison. de.
lidentifiant.du.composite.et.lidentifiant.apparaissant.dans.ce.composant .

Trois questions peuvent tre souleves pour dterminer si une entit B est un composant de lentit composite A : Lentit A est-elle compose de lentit B ? Si oui,
une occurrence de lentit B appartient-elle de manire exclusive une occurrence
de lentit A ? La dure de vie dune occurrence de lentit A dtermine-t-elle la dure
de vie de toutes les occurrences associes de lentit B ?



Le modle conceptuel de donnes

Ainsi,. dans. lexemple. 1-38,. Une. commande. est. forcment. constitue.


dune. ou. plusieurs. lignes. commandes .. Dautre. part. une. ligne. commande.
doit.obligatoirement.tre.associe..une.et.une.seule.commande ..Enfin,.la.
destruction. dune. commande. entrane. automatiquement. la. destruction. de.
toutes.les.lignes.de.la.commande .

lhritage
Lassociation. dhritage. est. employe. dabord. et. avant. tout. pour. assurer. le.
respect.dune.rgle.de.modlisation.appele.la.rgle dhomognit ..Nous.avons.
pris.le.parti.dintroduire.cette.nouvelle.rgle..ce.moment-ci.pour.mettre.en.
relief.lusage.particulier.dune.association.dhritage .

1-6
Rgle
dhomognit

Tous les attributs dune entit sont pertinents cette entit et ventuellement tous
doivent possder une valeur. La seule raison qui fasse quune occurrence nait pas
de valeur pour un attribut, cest que cette valeur ne sera connue que plus tard.

La.rgle.dhomognit.ne.permet.pas.quil.y.ait.un.groupe.doccurrences.
de.lentit.pour.lesquelles.un.attribut.ne.puisse.avoir.de.valeur ..Elle.interdit.
dautre.part.quune.entit.ait.des.attributs.mutuellement exclusifs,.cest--dire.
quune.occurrence.possdant.une.valeur.pour.un.attribut.ne.puisse.ds.lors.
avoir. de. valeur. pour. un. second. attribut .. La. prsence. de. valeur. chez. lun.
excluant.la.prsence.dune.valeur.chez.lautre .
Lexemple.1-39.montre.une.entit.qui.ne.respecte.manifestement.pas.
cette. rgle .. Puisque. certains. employs. ne. sont. pas. syndiqus,. notamment.
les. employs. cadres,. les. occurrences. de. lentit. reprsentant. des. employs.
non.syndiqus.ne.pourront.avoir.de.valeur.pour.No syndiqu.et.Taux cotisation
syndicale .
figuRe 1-39 Transgression de la rgle dhomognit
Employ
No matricule : {Unique}
Nom
Prnom
No syndiqu
Taux cotisation syndicale



Conception de bases de donnes avec UML

Il. ny. a. pas. homognit. du. concept. Employ .. Certaines. occurrences.


ont. des. valeurs. pour. des. attributs. pour. lesquels. dautres. occurrences. ne.
peuvent.avoir.de.valeur ..Pour.viter.de.transgresser.la.rgle.dhomognit,.
il.faut.gnralement.montrer.dans.le.modle.conceptuel.quune.entit.peut.
tre. un. cas. particulier. dune. autre,. la. forme. spcialise. de. cette. dernire ..
Lassociation. dhritage. spcifie. quune. entit. est une sorte. dautre. entit,.
donc.un.cas.particulier.de.cette.dernire ..Par.exemple.lentit. Employ syndiqu.peut.se.dfinir.comme.une sorte de. Employ ..Lhritage.est.symbolis.
par.un.petit.triangle.isocle.dont.le.sommet.pointe.sur.lentit.qui.reprsente.
le.cas.gnral,.ou.le.supertype,.et.qui,..sa.base,.est.reli.par.un.arc..lentit.
qui.reprsente.le.cas.particulier,.le.sous-type .
La.figure.1-40.montre.un.modle.comportant.deux.entits.lies.par.une.
association.dhritage ..Dans.cet.exemple,.on.peut.lire.quune.entit.Employ
syndiqu.est.une.sorte.dentit.Employ.et.quelle.hrite.de.tous.les.attributs.
de. Employ .. Dsormais,. toute. occurrence. de. Employ. possde. une. valeur.
pour. chacun. de. ses. 3. attributs. et. dans. le. cas. de Employ syndiqu chaque.
occurrence.possde.une.valeur.pour.les.5.attributs,.car.une.entit.qui.hrite.
dune. autre. entit. hrite. de. tous. ses. attributs .. Les. attributs. dun. sous-type.
sont.la.combinaison.des.attributs.de.ses.supertypes ..
figuRe 1-40 Hritage et respect de la rgle dhomognit
Employ
No matricule : {Unique}
Nom
Prnom

Employ syndiqu
No syndiqu
Taux cotisation syndicale

Lassociation. dhritage. ne. comporte. pas. de. multiplicit. car. elle. ne.
constitue. par. une. contrainte. sur. le. nombre. doccurrences. qui. y. prennent.
part,. mais. bien. sur. la. structure. des. entits .. Son. nom. tout. comme. pour. la.
composition. est. implicite.:. dans. ce. cas. ce. pourrait. tre. Est une sorte de ..
Lentit.qui.hrite.des.attributs.dune.autre.na.pas.didentifiant.qui.lui.est.
propre.car.elle.hrite.aussi.de.lidentifiant.de.son.supertype .



Le modle conceptuel de donnes

Association } Type dassociation qui dfinit la structure dune entit en fonction dune autre.
dhritage Une entit appele le supertype identifie les attributs communs, une autre

prcise les attributs spcifiques un sous-type de la premire ; le soustype


hrite la fois des attributs, dont lidentifiant, et des associations de son super
type (Inheritance).
Lexemple.1-41.montre.une.association.entre.lentit.Employ.et.lentit.
Poste .. Non. seulement. lentit. Employ syndiqu. hrite. des. attributs. de.
Employ,.elle.hrite.aussi.de.lassociation.avec. Poste ..On.pourra.dire.quun.

employ.syndiqu.est.une.sorte.demploy.et.que.tout.employ.occupe.un.
poste ..En.ce.sens. Employ syndiqu.est.un.sous-type.de.lentit. Employ .
figuRe 1-41

Lhritage porte sur les attributs et les associations


Employ
No matricule : {Unique}
Nom
Prnom

Occupe
0..* 1..1

Poste
Nom du poste : {Unique}

Employ syndiqu
No syndiqu
Taux cotisation syndicale

Plusieurs. entits. peuvent. hriter. de. la. mme. entit .. Le. modle. 1-42.
spcifie.que.le.personnel.de.bord.se.divise.en.deux.catgories.:.les.pilotes.et.
les. agents. de. bord. avec. des. attributs. qui. sont. propres. . chaque. catgorie ..
Une.association.propre.aux.agents.de.bord.permet.de.savoir.quelles.sont.les.
langues.parles.par.lagent ..On.considre.essentiel.de.savoir.quelles.langues.
peut.parler.un.agent,.mais.ceci.nest.pas.jug.vital.pour.un.pilote .
Une.association.dhritage.est.aussi.appele.association.de.gnralisation/
spcialisation.dans.la.notation.UML .
Tout. comme. les. associations. de. degr. suprieur,. les. associations. de.
composition.et.dhritage.sont.relativement.rares ..La.majorit.des.modles.
conceptuels. nen. comporte. aucune .. Ce. sont. des. associations. . usage. trs.
spcialis.pour.exprimer.des.situations.exceptionnelles .



Conception de bases de donnes avec UML

figuRe 1-42 Deux entits hritent de la mme entit


Personnel de bord
No employ : {Unique}
Date naissance
Sexe

Pilote

Agent de bord

No licence
Taille
Date obtention
Heures de vol 1..* Parle
1..*
Langue
Nom langue : {Unique}

Nous. compltons. cette. section. en. prsentant. et. illustrant. un. certain.
nombre. de. contraintes. entre. les. associations,. contraintes. qui. permettent.
denrichir.la.smantique.dun.modle.conceptuel.mais.qui.nont.pas..apparatre.obligatoirement.dans.ce.type.de.modle ..En.effet,.un.modle.conceptuel.
peut.tre.considr.complet.sans.que.ne.soient.spcifies.des.contraintes.entre.
les.associations ..Un.modle.conceptuel.est.complet.sil.comporte.:.
1 ..une.ou.plusieurs.entits,.
2 ..un. identifiant. pour. chaque. entit,. except. pour. une. entit. faible. et. un.
sous-type.o.lidentifiant.est.implicite
3 ..des.associations.entre.certaines.entits
4 ..des. multiplicits. sur. chaque. terminaison. de. toutes. les. associations,. sauf.
celles.de.composition.o.les.multiplicits.sont.implicites.et.celles.dhritage.
o.les.multiplicits.ne.sont.pas.pertinentes ..

contraintes entre les associations


Les. contraintes. formules. dans. un. modle. conceptuel. ne. concernent. pas.
seulement.un.attribut.(contrainte.sur.le.domaine).ou.une.association.(contrainte.
de.multiplicit) ..Dans.certains.cas.exceptionnels.une.contrainte.peut.impliquer.
des.associations ..On.parle.ici.de.contraintes inter-associations.qui.sappliquent.
entre.des.occurrences.de.plusieurs.associations.partageant.des.entits .



Le modle conceptuel de donnes

contrainte de partition
Une.contrainte.de.partition.est.employe.pour.spcifier.que.les.occurrences.
dune.entit.partage.ne.peuvent.participer.simultanment..deux.associations.:.la.participation..une.association.exclut.la.participation..une.autre,.
bien.que.la.participation.soit. obligatoire..lune. ou..lautre ..
La.figure.1-43.illustre.un.tel.type.de.contrainte ..Les.entits.et.associations.
en.cause.sont.reprises.du.modle.1-37.portant.sur.les.donnes.vitales.dune.
socit. arienne .. Le. modlisateur. a. voulu. prciser. quune. rservation. peut.
tre. faite. par. un. client. directement. ou. par. une. agence. de. voyage,. pas les
deux la fois,.car.il.sagit.des.deux.seuls.moyens.de.faire.une.rservation.
mais.le.client.ne.doit.faire.appel.qu.un.des.deux.moyens.pour.effectuer.sa.
rservation ..La.contrainte.inter-association.est.symbolise.par.un.trait.pointill.qui.fait.le.lien.entre.les.arcs.des.deux.associations ..Le.trait.est.tiquet.
par. un. mot. entre. accolades. indiquant. la. nature. de. la. contrainte,. ici. la.
PARTITION .
figuRe 1-43 Contrainte de partition
Client

Agence de voyage

No client : {Unique}
Nom client
Prnom client

No agence : {Unique}
Nom agence

0..1

0..1
Effectue
{PARTITION}

0..*

Effectue
Rservation
0..*

No rservation : {Unique}
Date rservation
Prix total
Paiement effectu?

contrainte dexclusion
Une.contrainte.dexclusion.est.un.cas.particulier.de.la.contrainte.de.partition ..
Tout.comme.cette.dernire,.une.contrainte.dexclusion.stipule.que.la.participation.aux.associations.dune.occurrence.de.lentit.partage.est.mutuellement.exclusive ..La.diffrence.est.que.la.participation..lune.ou.lautre.des.
associations. nest pas obligatoire .



Conception de bases de donnes avec UML

La.figure.1-44.illustre.une.contrainte.dexclusion ..Un.paiement.est.fait.
soit.par.carte.de.crdit,.soit.par.carte.de.dbit,.pas.les.deux..la.fois ..Cependant.
le.paiement.peut.tre.fait.par.un.autre.moyen,.par.exemple.au.comptant ..La.
participation.dune.occurrence.de.Paiement..lune.ou.lautre.des.associations.
nest donc pas obligatoire .
figuRe 1-44 Contrainte dexclusion
Carte de crdit
Fait par
0..1

No carte : {Unique}
Type
Date expiration
Titulaire

Paiement
No paiement : {Unique}
Montant paiement
Date paiement

0..*

{EXCLUSION}

0..*
Complt avec

Carte dbit
0..1

No carte dbit : {Unique}

contrainte dinclusion
Une.contrainte.dinclusion.est.employe.pour.spcifier.que.les.occurrences.
dune.association.sont.aussi.les.occurrences.dune.autre.association.liant.les.
mmes.entits ..Le.modle.1-45.comporte.deux.associations.binaires.sur.les.
mmes.entits ..
Le.modle.spcifie.quun.tudiant.peut.faire.une.demande.dadmission.
dans.une.universit.o.il.indique.un.maximum.de.deux.programmes ..Linscription. dun. tudiant. ne. peut. concerner. que. lun. des. programmes. pour.
figuRe 1-45 Contrainte dinclusion
0..*

Fait demande pour

tudiant
Code permanent : {Unique}
Nom
Prnom
1..*

1..2
Programme

{SOUS-ENSEMBLE}

No programme : {Unique}
Nom programme

S'incrit
1..1



Le modle conceptuel de donnes

lesquels.une.demande.dadmission.a.t.faite.par.ltudiant ..Une.contrainte.
dinclusion.est.symbolise.par.une.flche.en.pointill.qui.pointe.vers.lassociation.dont.les.occurrences.de.la.premire.constituent.un.sous-ensemble.de.
lautre,.avec.une.tiquette.portant.la.mention.{SOUS-ENSEMBLE} .

contrainte de simultanit
Une. contrainte. de. simultanit. est. place. entre. deux. associations. liant. les.
mmes.entits.pour.prciser.que.lexistence.dune.occurrence.dune.association. entrane. ncessairement. la. prsence. dune. occurrence. de. lautre. association ..Comme.lindique.le.modle.1-46,.le.paiement.effectu.par.un.client.
entrane.ncessairement.lmission.dun.reu.relatif.au.paiement .
figuRe 1-46 Contrainte de simultanit
Fait par

Client
1..1

No client : {Unique}
Nom client

Paiement
No paiement : {Unique}
Montant paiement
Date paiement

0..*

{SIMULTANIT}

1..1
Donne lieu

Reu
1..1

No reu : {Unique}

contrainte de partition sur une association dhritage


Une. contrainte. de. partition. peut. aussi. tre. spcifie. sur. une. association.
dhritage ..Dans.un.tel.cas.elle.permet.de.prciser.quaucune.occurrence.du.
supertype.ne.peut.exister ..Seules.des.occurrences.des.sous-types.sont.acceptables.et.une.occurrence. ne peut.appartenir.aux.deux.sous-types..la.fois ..
Supposons.que.dans.une.organisation,.un.employ.puisse.avoir.soit.un.
statut.de.rgulier,.soit.doccasionnel.mais.pas.les.deux..la.fois ..Si.le.modlisateur. dfinit. une. entit. Employ. pour. les. attributs. communs. . tous. les.
employs.et.deux.entits.qui.hritent.des.attributs.de.celle-ci.pour.reprsenter.
les.statuts,.une.contrainte.de.partition.permet.dtablir.que.tous.les.employs.
ont. lun. ou. lautre. des. statuts,. mais. pas les deux la fois .. La. figure. 1-47.
illustre.cette.condition .

0

figuRe 1-47

Conception de bases de donnes avec UML

Contrainte de partition sur lhritage


Employ
No matricule : {Unique}
Nom
Prnom

{PARTITION}
Employ occasionnel

Employ rgulier

Nombre heures/sem.
Taux horaire
Nombre semaines autorises

Salaire annuel

Lexemple.sur.le.personnel.de.bord.donn.plus.tt.peut.tre.raffin..
laide.dune.contrainte.de.partition.sur.une.association.dhritage .. Pilote.et.
Agent de bord.sont.clairement.des.catgories.mutuellement.exclusives ..Aussi.
proposons-nous. . la. figure. 1-48. un. modle. plus. conforme. . la. ralit. car.
en.labsence.de.contraintes.sur.les.associations.dhritage,.le.supertype.peut.
avoir. des. occurrences. qui. nappartiennent. ni. . lun. ni. . lautre. des. soustypes.et.il.peut.exister.des.occurrences.qui.appartiennent.aux.deux.sous-types.
.la.fois ..Dans.le.cas.qui.nous.occupe,.un.pilote.ne.peut.tre.un.agent.de.
bord. et. vice. versa .. Chaque. personnel. de. bord. appartient. . une. des. deux.
catgories. exclusivement .. Do. limportance. de. placer. une. contrainte. de.
partition.entre.les.liens.dhritage.si.on.souhaite.mettre.en.vidence.cette.
particularit .
figuRe 1-48 Partition entre les types Pilote et Agent de bord
Personnel de bord
No employ : {Unique}
Date naissance
Sexe

{PARTITION}
Pilote
No licence
Date obtention
Heures de vol

Agent de bord
Taille

1

Le modle conceptuel de donnes

contrainte dexclusion sur une association dhritage


Une. contrainte. dexclusion,. au. contraire. dune. contrainte. de. partition,.
.ninterdit.pas.que.lentit.supertype.puisse.avoir.des.occurrences ..En.revanche,.
tout.comme.la.contrainte.de.partition,.elle.indique.que.les.sous-types.sont.
mutuellement.exclusifs .
Le. modle. 1-49. spcifie. les. attributs. dun. ordinateur. portable. et. dun.
poste.de.travail ..Un.ordinateur.peut.tre.dun.de.ces.deux.types,.pas.des.deux
la fois,.mais.peut.aussi.tre. dun autre type,.non.dfini.dans.le.modle ..
Par. exemple. un. mini-ordinateur .. Tous. les. types. dordinateurs. non. dfinis.
dans.le.modle.auront.comme.attributs.ceux.du.supertype. Ordinateur .
figuRe 1-49 Contrainte dexclusion sur lhritage
Ordinateur
No srie : {Unique}
Date achat
Prix

{EXCLUSION}
Portable
Type de batterie
No modle batterie
Taille cran
Poids

Poste de travail
Type de poste

contrainte de totalit sur une association dhritage


Si.lon.souhaite.interdire.les.occurrences.du.supertype.tout.en.spcifiant.quune.
occurrence.peut.tre.des.deux.sous-types..la.fois,.la.contrainte.de.totalit.
sera.utilise ..Elle.indique.que.les.sous-types.reprsentent.la.totalit.des.occurrences. acceptables .. En. consquence. de. quoi. aucune. catgorie. dordinateur.
.autres.que. Poste client.ou. Serveur..nest.acceptable.dans.ce.modle .
Dans.lexemple.1-50,.il.est.stipul.quun.ordinateur.est.utilis.soit.comme.

Poste client.soit.comme.Serveur.et,.dans.certains.cas,.pour.les.deux.fonctions.

.la.fois ..Aucune.autre.catgorie.dordinateur.nexiste .



Conception de bases de donnes avec UML

figuRe 1-50 Contrainte de totalit sur lhritage


Ordinateur
No srie : {Unique}
Date achat
Prix

{TOTALIT}
Poste client

Serveur

Type cran
Dimension cran

Nom serveur
Capacit disque

cAs AvAncs de ModlisATion concepTuelle des donnes


Les.tudes.de.cas.prsentes.dans.cette.section.refltent..bien.des.gards.la.
dmarche.suivie.par.un.modlisateur.professionnel.lorsquil.sattaque..un.
problme.de.modlisation ..Comme.nous.le.verrons.de.manire.dtaille.au.
chapitre.4,.le.modlisateur.repre.une.bonne.part.des.donnes.dintrt.pour.
un.modle.conceptuel..travers.des.documents.en.format.papier.utiliss.dans.
le. cadre. du. fonctionnement. de. lorganisation .. Cest. pourquoi. les. cas. qui.
suivent. comportent. tous. un. expos. du. cas. qui. fait. rfrence. . un. ou. des.
documents .. Les. donnes. . modliser. pour. chaque. cas. sont. prsentes. dans.
ces.documents .

Recherche des structures de donnes dans un document


Le.travail.du.modlisateur.dbute.par.un.inventaire.des.documents.pertinents.
au.domaine..modliser ..Il.dresse.ensuite.une.image.schmatique.du.contenu.
de.chaque.document.appele.le.descriptif du document ..Le.descriptif.du.document.permet.de.voir.dun.coup.dil.les.donnes.prsentes.dans.le.document.
ainsi.que.les. structures de donnes ..Une.structure.de.donnes.est.un.groupe.
de. donnes. que. lon. retrouve. gnralement. ensemble. sur. un. document. et.
auquel.on.peut.faire.rfrence.par.un.nom.ou.un.groupe.nominal ..Par.convention,.une.structure.de.donnes.est.inscrite.sur.le.descriptif.du.document.en.
.caractres.gras .



Le modle conceptuel de donnes

Le. document. suivant,. appel. Fiche client,. permet. . une. entreprise. de.
conserver.des.donnes.sur.chacun.de.ses.clients .
figuRe 1-51

Document Fiche client

Fiche client
No client 2345678

Adresse

Nom client A. Rioux Inc.


Limite crdit 20 000 $

Reprsentant

200, rue Albert


Lvis, QC,
Canada G6V 8R9
Pierrette Proulx

Tlphone

418.833.8801

Tlcopieur

418.833.8802

Le.modlisateur.avis.doit.pouvoir.distinguer.les.donnes.lmentaires.
et.les.groupes.de.donnes ..Pour.chaque.groupe.de.donnes.bien.identifi,.il.
devra.crer.une.structure.de.donnes ..La.structure.devra.porter.un.nom.et.
elle.comportera.une.liste.de.donnes.lmentaires .
Ladresse.sur.la.fiche.client.reprsente.un.groupe.de.donnes.lmentaires.:.numro.civique,.rue,.ville,.pays.et.code.postal ..Le.numro.de.client.
est.aussi.une.donne.lmentaire,.comme.toutes.les.autres.donnes.du.document. . lexception. de. ladresse .. Le. modlisateur. doit. donner. un. nom. aux.
donnes.lmentaires.qui.soit.le.moins.ambigu.possible.car.la.donne.pourrait.tre.considre.vitale ..Elle.apparatra.alors.dans.un.modle.conceptuel.
o.une.autre.donne,.diffrente,.pourrait.porter.le.mme.nom ..Cette.situation.doit.tre.vite ..Toute.donne.vitale.doit.porter.un.nom.qui.puisse.la.
distinguer.des.autres ..Les.synonymes.sont.donc..proscrire ..
Considrons.le.cas.de.la.donne. Tlphone ..Dans.la.fiche.client,.cette.
donne.rfre.clairement.au.numro.de.tlphone.du.client ..Dans.une.fiche.
sur. les. fournisseurs,. Tlphone. devrait. rfrer. au. numro. de. tlphone. du.
fournisseur .. Pour. viter. toute. ambigut. le. modlisateur. devrait. nommer.
Tlphone client.la.donne.prsente.sur.la.fiche.client .
Le.descriptif.du.document.Fiche client.cr.par.le.modlisateur.est.donn.
.la.figure.1-52 .



Conception de bases de donnes avec UML

figuRe 1-52 Descriptif du document Fiche client

Descriptif du document: Fiche client


Numro client
Nom client
Limite de crdit
Adresse client
Numro civique
Rue
Ville
tat ou province
Pays
Code postal
Reprsentant
Tlphone client
Tlcopieur client

Comme.nous.le.mentionnions.plus.haut.une.structure.de.donnes.est.
inscrite.en.gras.dans.le.descriptif ..De.plus,.les.donnes.constituant.la.structure.
sont. places. immdiatement. au-dessous. du. nom. de. la. structure. avec. un.
dcalage.vers.la.droite.mettant.bien.en.vidence.le.lien.dappartenance..la.
structure.de.donnes .
Dautres.conventions.doivent.tre.respectes ..Une.structure.de.donnes.
peut.contenir.une.autre.structure.de.donnes ..On.parle.alors.de.structures.
embotes ..Dans.ce.cas,.le.nom.de.la.structure.doit.aussi.tre.dcal.vers.la.
droite.par.rapport..la.structure..laquelle.il.appartient,.tout.comme.les.autres.
donnes.lmentaires ..De.plus,.une.structure.peut.tre.rpte.dans.un.document ..Un.astrisque.est.alors.inscrit.entre.parenthses..la.suite.du.nom.de.
la.structure ..
Le.document.suivant.comporte..la.fois.des.structures.embotes.et.des.
structures.rptes ..Il.sagit.dune.facture.qui.fait.rfrence..plusieurs.commandes.(structure.rpte),.chaque.commande.possde.(embote).plusieurs.
lignes.(structure.rpte),.soit.une.ligne.par.produit.command .
Le. document. de. la. figure. 1-53. reprend. des. donnes. dj. rpertories.
dans.le.descriptif.du.document.Fiche client ..Puisque.les.deux.documents.sont.
rattachs.au.mme.domaine.de.modlisation,.il.est.bien.sr.hors.de.question.
de.nommer.diffremment.les.donnes.et.structures.de.donnes.dj.rpertories.:. Numro client,. Nom client,. Tlphone client,. Tlcopieur client. et.
Adresse client .
Par. ailleurs,. on. voit. clairement. que. la. facture. fait. rfrence. . des.
c. ommandes ..La.donne.qui.caractrise.une.commande.est.dabord.le.numro.
de. commande. et. ensuite. les. produits. dune. commande .. Le. modlisateur. a.



Le modle conceptuel de donnes

figuRe 1-53 Document Facture

Facture

ACME Qubec Inc.


No client

Adresse

4523678

Nom client

Prolab Inc.

Tlphone

418.833.8804

Commandes factures

Tlcopieur

1200, rue Omer Gouin


Lvis, QC,
Canada G6V 8R9

No facture

A2005

Date facture

23/12/05

418.833.8822

No produit

Nom

Quantit Prix

Commande: C677882

P10
P48
P35

Savon Plouf
Bain de minuit
Mousse douce

350
180
125

1,50 $
2,00 $
3,00 $

525,00 $
360,00 $
375,00 $

Total

Commande: C877842

P48
P37

Bain de minuit
Dentifrice doux

200
250

2,00 $
3,00 $

400,00 $
705,00 $

Total : 2 365,00 $

su. distinguer. le. concept. de. commande. et. la. donne. Numro commande,.
mme.si.aucune.tiquette.ou.libell.sur.le.document.ne.mentionne.la.prsence.du.numro.de.commande ..Il.existe.donc.dans.ce.document.une.structure. de. donnes. Commande. possdant. une. donne. Numro commande. et.
cette.structure.se.rpte.dans.le.document ..Cest.pour.cette.raison.que.dans.
le.descriptif.du.document.le.nom. Commande.est.suivi.de. (*) .
La. structure. Commande. comporte. de. plus. une. rfrence. aux. produits.
commands ..Le.modlisateur.donne..cette.structure.le.nom.Ligne commande.
pour.bien.mettre.en.vidence.quil.sagit.dun.bloc.de.donnes.propres..la.
commande .. On. y. retrouve. le. numro. du. produit,. son. nom,. la. quantit.
commande,. le. prix. unitaire. du. produit. et. le. prix. total .. Cette. structure. se.
rpte..lintrieur.de.la.structure. Commande .
On.peut.noter..la.lecture.du.descriptif.du.document. Facture .donn.
.la.figure.1-54.que.le.modlisateur.a.pris.soin.de.donner.des.noms.explicites.
aux.donnes.de.la.structure.Ligne commande.car.les.tiquettes.Nom,.Quantit,.
Prix.et.Total.ne.sont.pas.clairement.indicatives.de.la.nature.des.donnes.de.
la. structure .. Cette. identification. explicite. et. non. ambigu. des. donnes. est.
dautant. justifie. que. ltiquette. Total. est. aussi. utilise. pour. libeller. ce. qui.
est.en.fait.le.montant.total.de.la.facture.(Total facture) .



Conception de bases de donnes avec UML

figuRe 1-54 Descriptif du document Facture


Descriptif du document: Facture
Date facture
Numro facture
Numro client
Nom client
Adresse client
Numro civique
Rue
Ville
tat ou Province
Pays
Code postal
Tlphone client
Tlcopieur client
Commande (*)
Numro Commande
Ligne commande (*)
Numro produit
Nom produit
Quantit commande
Prix unitaire
Prix total
Total facture

Le.descriptif.dun.document.est.particulirement.utile.au.modlisateur ..
Non. seulement. permet-il. une. identification. sans. ambigut. des. donnes. .
modliser,.il. reflte.de.plus.les.associations.un plusieurs.ou.un un.entre.
les.donnes.du.domaine ..En.consultant.le.descriptif.du.document. Facture ,.
on. voit. nettement. qu. un. numro. de. facture. correspondent. plusieurs.
numros.de.commandes ..En.vertu.de.la.rgle.de.description,.ces.donnes.ne.
pourraient. appartenir. . la. mme. entit. mais. bien. . des. entits. qui. seront.
lies.par.une.association.avec.des.multiplicits.maximum.valant.1.dune.part.
et.plusieurs.dautre.part ..Par.contre.Numro facture.et.Numro client,.qui.sont.
des.donnes.de.mme.niveau,.font.partie.dentits.lies.par.une.association.
avec.des.multiplicits.maximum.de.1..chaque.terminaison ..
Pour.chacune.des.tudes.de.cas.qui.suivent,.un.document.papier.est.
.la.source.dun.projet.de.modlisation.dans.un.domaine.particulier ..Nous.
en.produirons.dabord.un.descriptif.selon.les.conventions.exposes.ci-dessus ..
Le.modle.conceptuel.sera.ensuite.labor.sur.la.base.du.descriptif.et.le.cas.
chant.dun.certain.nombre.de.rgles.de.gestion.qui.viennent.complter.
le.cas .



Le modle conceptuel de donnes

cAs poRTAnT suR les AssociATions de degR supRieuR


Cas 1-4 GESTION DE STAGE
(DP) Une institution denseignement professionnel offre ses lves des stages pratiques
dans certaines disciplines. Un stage est offert lintrieur dune session de stage. Le mme
stage peut tre rpt travers plusieurs sessions. Cependant, une session de stage ne
comporte quun seul stage avec une date de dbut et une date de fin.
Llve sinscrit donc une session titre de stagiaire. Une fiche de stage dment
remplie lui est remise. Cette fiche fait voir en quoi consiste le stage, notamment les modules
qui le constituent. Chaque module est encadr par un ou des professeurs. La prestation du
professeur comporte une date de dbut, une date de fin et un nombre dheures prvues.
Nous prsentons ci-dessous un exemplaire de cette fiche de stage.
Fiche de stage
No stagiaire

S56533

Nom, Prnom

Lebel, Anne

Date de naissance

25/03/80

No session
Dbut session stage

07/11/05

Fin session stage

23/12/05

Module no 1
Professeur
(HJ0010) Hamel, Jean
(CS0002) Ct, Sylvie
(HJ0010) Hamel, Jean

(CS0002) Ct, Sylvie

001- Stage en mcanique automobile


002- Stage en lectrotechnique
003- Stage en tectronique
004- Stage en dbosselage

Mcanique du moteur diesel


Date dbut

Date fin

Nombre dheures

07/11/05
14/11/05
21/11/05
28/11/05

11/11/05
18/11/05
25/11/05
02/12/05

30
40
40
20

Module no 2
Professeur

A2005

Mcanique du moteur essence


Date dbut

Date fin

Nombre dheures

05/12/05
12/12/05
19/12/05

09/12/05
15/12/05
23/12/05

30
40
40

Un professeur peut intervenir dans plusieurs modules du mme stage. Le professeur


peut par ailleurs intervenir plusieurs fois dans le mme module au cours dune session de
stage. Enfin le nombre de modules varie dun stage lautre selon sa nature ; il nest pas
limit deux.



Conception de bases de donnes avec UML

Sur la base de ces quelques rgles de gestion ainsi que du contenu du document
Fiche de stage , le modlisateur a dbut son travail de modlisation en laborant un
descriptif du document qui est donn ci-aprs.

Descriptif du document : Fiche de stage


No stagiaire
Nom stagiaire
Prnom stagiaire
Date de naissance
No stage
Nom du stage
No session
Date dbut session
Date fin session
Module(*)
No module
Titre du module
Professeur(*)
No professeur
Nom professeur
Prnom professeur
Date dbut prestation professeur
Date fin prestation professeur
Nombre d'heures

Le descriptif montre clairement quil existe plusieurs modules dans un stage et plusieurs
professeurs interviennent dans un module. Chaque donne du document est juge vitale et
apparatra donc au modle conceptuel une seule fois sous le nom qui lui a t attribu dans
le descriptif. Une premire version du modle conceptuel est expose ici.
Stagiaire

Stage

No stagiaire : {Unique}
Nom stagiaire
Prnom stagiaire
Date naissance
S'inscrit
1..*

No stage : {Unique}
Nom du stage
Session

1..*

No session : {Unique}
Date dbut session
Date fin session

Concerne

Comporte

0..*

0..*

Professeur
No professeur : {Unique}
Nom professeur
Prnom professeur

1..1

1..*

0..*

1..*

Prestation
Date dbut
Date fin
Nombre d'heures

Module
No module : {Unique}
Titre du module

1..*



Le modle conceptuel de donnes

Le modle fait ressortir des concepts cls dans le domaine tudi : stagiaire, stage,
module, session, professeur et prestation. En vertu de la rgle de construction, les dates de
dbut et de fin de la prestation du professeur de mme que le nombre dheures de la prestation dpendent la fois de la session, du module et du professeur. Il est donc naturel den
faire a priori une entit dassociation. Il reste sassurer quune prestation dpend fonctionnellement de la combinaison No professeur-No session-No module. Il nen est
rien, car un professeur peut donner plus dune prestation au cours dune mme session,
dans le mme module.
Force est de constater que Prestation ne peut tre considre comme une entit
faible et le modlisateur doit en faire une entit avec son propre identifiant, No prestation,
qui sera ajout aux attributs dune prestation.
Ce cas est en fait un cas portant uniquement sur des associations binaires mais qui
en apparence semblait comporter une association dordre suprieur. lanalyse, puisque
Prestation doit tre considre comme une entit forte, cette dernire doit tre associe
un seul professeur, un seul module et une seule session. En consquence le modle initial
doit tre simplifi en remplaant lassociation de degr 3 par trois associations binaires.
Stagiaire

Stage

No stagiaire : {Unique}
Nom stagiaire
Prnom stagiaire
Date naissance
1..*

No stage : {Unique}
Nom du stage
Session

S'inscrit
1..*

Concerne

1..1

Comporte

0..*

1..1

Professeur

Module

Comporte

No professeur : {Unique}
Nom professeur
Prnom professeur
1..1
Donne

No session : {Unique}
Date dbut session
Date fin session

1..*

1..*

0..*

Porte sur

1..1

1..*

No module : {Unique}
Titre du module

Prestation
No prestation : {Unique}
Date dbut
Date fin
Nombre d'heures

0..*

Notons en terminant que lassociation Comporte entre Session et Prestation ne


pourrait tre considre comme une association de composition. Il ny a pas de dpendance
existentielle entre Prestation et Session. Prestation a son propre identifiant qui permet
didentifier chacune de ses occurrences. Il nest pas ncessaire de faire appel en plus lidentifiant dune session associe pour distinguer une occurrence de prestation de toute autre.

100

Conception de bases de donnes avec UML

Cas 1-5 DOSSIER PATIENT


(DP) Un petit hpital conserve pour chacun des patients hospitaliss un dossier dans lequel
sont inscrites certaines donnes sur la dure du sjour et les traitements reus au cours du
sjour. Le document Dossier du patient , dont un exemplaire est reproduit ci-aprs, permet
de consigner des informations sur trois sjours. En pratique cependant un patient peut tre
admis plus de trois occasions et dans ce cas plusieurs documents seront utiliss.

Dossier du patient
Adresse

No dossier 2345678
Nom, Prnom Lebel, Anne

Nom mre

Date de naissance 25/03/60

Mdecin
traitant

205, Potvin
Lvis, QC, G6V 8R9
Alice Nault
344234
Pierre Manseau

Sjour 1
Dtails sjour
Motif hospitalisation:
Urgence
Chirurgie dun jour
Sur prescription
Autre

Traitements
Type

Date

Dure

Mdecin

Dfibrillation

07/11/05

5 min.

678113

Angiographie

07/11/05

1 h.

713816

Pontages cor.

09/11/05

4 h.

781613

Mdecins
consults
07/11/05
756454
Sophie Matte
09/11/05
809456
Paul Auger

Admission 07/11/05
Cong 14/11/05
Diagnostic Infarctus du

myocarde

Sjour 2
Dtails sjour
Motif hospitalisation:

Traitements
Type
Polypectomie

Date

Dure

10/12/05

1 h.

Mdecin
785643

Urgence
Chirurgie dun jour
Sur prescription
Autre

Mdecins
consults
10/12/05
454756
Yves Dion

Admission 10/12/05
Cong 10/12/05
Diagnostic Polypes

rectaux

Sjour 3
Dtails sjour
Motif hospitalisation:
Urgence
Chirurgie dun jour
Sur prescription
Autre

Admission
Cong
Diagnostic

Traitements
Type

Date

Dure

Mdecin

Mdecins
consults

101

Le modle conceptuel de donnes

Le modlisateur a dress un descriptif du document qui montre clairement quun


mdecin peut intervenir auprs du patient titre de mdecin traitant, cest--dire en mdecin
de famille, et ce mdecin intervient seul ce titre pour un patient. Par ailleurs un mdecin
peut intervenir titre de mdecin consult dans le cadre dun sjour du patient. Plusieurs
mdecins peuvent intervenir ce titre lors dun sjour du patient. Un mdecin peut enfin
appliquer un traitement au patient durant un de ses sjours. L encore plusieurs mdecins
peuvent agir ce titre pour diffrents traitements effectus lors dun mme sjour.
Le descriptif illustre bien les liens de multiplicit suivants : un patient rfre un seul
mdecin traitant ; un patient rfre plusieurs sjours ; un sjour rfre plusieurs traitements ; un traitement rfre un seul mdecin ; un sjour rfre plusieurs mdecins
consults.
Descriptif du document:

Dossier du patient

No dossier
Nom patient
Prnom patient
Date de naissance
Adresse patient
No civique
Rue
Ville
Province
Code postal
Nom mre
Mdecin traitant
No mdecin
Nom mdecin
Prnom mdecin
Sjour lhpital(*)
Motif hospitalisation
Date admission
Date cong
Nom diagnostic
Traitement(*)
Type traitement
Date
Dure
No mdecin
Mdecin consult(*)
Nom mdecin
Prnom mdecin
No mdecin
Date consultation

10

Conception de bases de donnes avec UML

Le modlisateur devra viter de confondre lentit Mdecin et le rle que joue un


mdecin auprs dun patient. Seule lentit Mdecin doit reflter les attributs de tous les
mdecins quel que soit leur rle : No mdecin, Nom mdecin, Prnom mdecin. Leur
rle devra se reflter travers des associations entre lentit Mdecin et dautres entits
pertinentes telles que Patient ou Sjour.
Deux rgles de gestion trs importantes, qui ne peuvent tre extrapoles du descriptif
du document, devront tre prises en compte par le modlisateur dans ce cas :
rgle 1 un type de traitement donn ne peut tre appliqu plus dune fois par le mme
mdecin lors dun sjour dhospitalisation du patient ;
rgle 2 un mdecin fait au plus une consultation lors dun sjour du patient.
Comme nous le verrons, ces rgles de gestion ont un impact dterminant sur le modle
conceptuel produit par le modlisateur et donn ci-aprs.
Patient
No dossier : {Unique}
Nom patient
Prnom patient
Date de naissance
No civique
Rue
Ville
Province
Code postal
Nom mre

Effectue
1..1

0..*
Possde

1..*

Consultation
1..1

Date consultation
Sjour

Mdecin

0..*

0..*

1 ..*

No mdecin : {Unique}
Nom mdecin
Prnom mdecin 1..*

Consult lors de

No sjour : {Unique}
Motif hospitalisation
Date admission
Date cong

Justifi par
0..*

1..1
Diagnostic
Nom diagnostic : {Unique}

0..*
Traitement
Type traitement : {Unique}

Traitement patient
Date
Dure

Le modle conceptuel de donnes

Le modlisateur a jug pertinent de faire de Diagnostic et Traitement des entits.


La raison en est simple : dans le milieu hospitalier, il sagit de concepts fondamentaux qui
ont une existence propre. Bien que le modle ne fait voir quun seul attribut pour chacun, il
y lieu de croire quun spcialiste du domaine pourrait en identifier facilement plusieurs
autres.
La rgle de gestion numro 2 voulant quun mdecin effectue au plus une consultation
dans le cadre dun sjour du patient justifie la prsence dune entit dassociation Consultation dont lattribut Date consultation dpend la fois de Mdecin et de Sjour et cette
dpendance est fonctionnelle. Consultation est nettement une entit faible, dont lidentifiant
implicite est la combinaison des deux attributs : No mdecin-No sjour.
La rgle de gestion numro 1 voulant quun mdecin ne pratique jamais plus dune
fois le mme traitement dans le cadre dun sjour du patient, justifie la prsence dune entit
dassociation Traitement patient dont les attributs Date et Dure dpendent la fois de
Mdecin de Sjour et de Traitement. Cette dpendance est fonctionnelle. Traitement
patient est en effet une entit faible, dont lidentifiant implicite est la combinaison de trois
attributs : No mdecin-No sjour-Type de traitement.
Comment sont justifies les multiplicits sur lassociation de degr 3 Traitement

patient ?
Ct Mdecin : combien de mdecins sont impliqus dans une association SjourTraitement ? Un ou plusieurs (1..*). Le mme traitement peut tre rpt au cours du mme
sjour du patient pour peu quil le soit par des mdecins diffrents comme le prescrit la
rgle 1.
Ct Sjour : combien de sjours sont impliqus dans une association MdecinTraitement ? Au moins 1 (1..*), car si un type de traitement est donn par un mdecin il
doit ltre au moins au cours du sjour dun patient et ventuellement lors de plusieurs sjours
diffrents.
Ct Traitement : combien de traitements sont lis une association MdecinSjour ? Un nombre indtermin (0..*), car un mdecin peut tre li un sjour du patient
sans lui avoir donn de traitement (pour une consultation par exemple), mais pourrait donner
plusieurs types de traitements diffrents lors de ce sjour.
Comme ce cas le dmontre, la prsence dans un domaine dactivits de rgles de
gestion prcises influe considrablement sur le modle qui en dcoule. Considrons maintenant que la rgle 1 est relaxe. Ds lors une occurrence de Traitement patient ne peut
dpendre fonctionnellement de la combinaison des identifiants No mdecin-No sjourType de traitement. Traitement patient devra tre considr comme une entit forte et
devra en consquence disposer de son propre identifiant : No traitement. Notons au passage
que dans le modle rvis, suite la relaxation de la rgle 1, on observe sur lassociation
Donne lieu des multiplicits 0..1 ct Sjour. Cest quen toute gnralit, un traitement

10

10

Conception de bases de donnes avec UML

effectu sur un patient ne sinscrit pas exclusivement dans le cadre dun sjour lhpital.
Il peut se faire par exemple en cabinet (0). Sil est effectu la suite dune hospitalisation,
le traitement sinscrit alors dans au plus un sjour (1).
Patient
No dossier : {Unique}
Nom patient
Prnom patient
Date de naissance
No civique
Rue
Ville
Province
Code postal
Nom mre

Effectue
1..1

0..*
Possde

Consultation

1..*

Date consultation

1..1

Sjour

Mdecin
No mdecin : {Unique}
Nom mdecin
Prnom mdecin

Consult lors de
0..*

0..*

No sjour : {Unique}
Motif hospitalisation
Date admission
Date cong
0..1
Donne lieu

1..1

Justifi par
0..*
1..1
Diagnostic

0..*
Effectue

Traitement patient
1..*

Traitement

Appartient

Type traitement : {Unique}


1..1

No traitement : {Unique}
Date
Dure
0..*

Nom diagnostic : {Unique}

10

Le modle conceptuel de donnes

cAs poRTAnT suR les AssociATions spciAlises


Cas 1-6 MEMBRE CLUB DE TENNIS
(DP) Le club de tennis Chaudire inscrit sur une fiche les rsultats de la participation dun
de ses membres divers tournois, que le tournoi soit organis par le club ou non.
Comme lillustre un exemplaire de cette fiche, chaque tournoi possde un nom et une
date de dbut. Les matchs auxquels le membre a particip sinscrivent dans un tournoi et le
match possde une date, la nature de la finale laquelle le membre a particip et un type.
Club de tennis Chaudire
No membre

16725

Nom, Prnom

Lebeau, Pierre

Homme
Femme

Tournois

Matchs du tournoi
Date

Date dbut: 11/07/05


Nom:
Challenge Lvis 2005
Date dbut: 1/08/05
Nom:
Challenge Lauberivire
2005

Nature match

Type match

12/07/05
13/07/05
15/07/05

finale
finale
finale

simple homme
simple homme
double homme

02/08/05
02/08/05
03/08/05

finale
finale
finale

double mixte
double mixte
double mixte

Gagn?

Le descriptif du document montre nettement les liens de multiplicit entre les donnes :
un membre participe plusieurs tournois, chaque tournoi est constitu de plusieurs matchs
jous par le membre et chaque match est gagn ou non par ce dernier.
Le modlisateur a bien mis en vidence dans le descriptif du document les valeurs
que peuvent prendre certaines donnes en les plaant entre parenthses la suite du nom
de la donne. Cest le cas des donnes Nature du match et Type de match. Il ne sagit
pas dune exigence absolue que de faire tat dans le descriptif dune liste des valeurs que
peut prendre une donne. Le modlisateur en fait usage ici pour bien faire la distinction entre
une donne et les valeurs de cette donne qui peuvent apparatre dans un exemplaire du
document.

10

Conception de bases de donnes avec UML

Descriptif du document : Club de tennis Chaudire


No membre
Sexe joueur
Nom membre
Prnom membre
Tournoi(*)
Nom du tournoi

Date dbut tournoi

Match(*)

Date du match
Nature du match -(32e de finale,, finale, finale)

Type de match
-(simple homme, double mixte, etc)
Gagn?

Le modle conceptuel ralis par le modlisateur montre une composition. Un tournoi


est constitu de plusieurs matchs et les matchs ne peuvent exister indpendamment dun
tournoi. La dpendance dun match envers le tournoi dans lequel il sinscrit est totale. Cela
implique sur le plan smantique que la suppression dun tournoi entrane la suppression des
matchs qui le constituent. La suppression du tout entrane la disparition de chacune de ses
parties.
Par convention lentit composant (ici Match) ne montre que lidentifiant qui permet
de distinguer chacune des occurrences lintrieur du composite (No match). Cela signifie
que lidentifiant rel de Match est ici la combinaison Nom tournoi-No match, car un mme
numro de match peut exister dans plusieurs tournois. Par ailleurs, puisque le Rsultat dun
match dpend fonctionnellement de Membre et de Match, cette entit faible est justifie.
Tournoi
Nom tournoi : {Unique}
Date dbut tournoi
1

1..*
Membre
No membre : {Unique}
Nom membre
Prnom membre
Sexe membre

Match
Participe
0..*

0..*
Rsultat
Gagn?

No match : {Unique}
Date du match
Nature du match
Type de match

10

Le modle conceptuel de donnes

Lentit Match comporte deux attributs dont le type est numr. En fait les valeurs
possibles pour les attributs Nature du match et Type de match sont connues a priori et
leur nombre est fini. Bien que non ncessaire sur le plan thorique, il y a en pratique de
nombreux avantages faire des entits distinctes avec les attributs de type numr.
Ces entits sont considres comme des entits de description. Elles permettent
de qualifier, de classifier ou de catgoriser dautres entits. On peut par exemple ajouter au
modle prcdent deux entits, Nature du match et Type de match , qui seront associes
lentit Match avec des multiplicits maximales de 1 et plusieurs, pour permettre de qualifier
les matchs. Les attributs correspondants sont par ailleurs retirs de Match.
Tournoi
Nom tournoi : {Unique}
Date dbut tournoi
1

Nature du match
Possde
1..1

Dnomination de la nature : {Unique}

1..*
Membre
No membre : {Unique}
Nom membre
Prnom membre
Sexe membre

Participe
0..*

Match
0..*

Rsultat
Gagn?

No match : {Unique}
Date du match

0..*
0..*

Possde
Type de match
1..1

Dnomination du type : {Unique}

Entit de } Entit comportant gnralement un seul attribut, souvent de type


description numr, permettant en lassociant une autre entit avec des

multiplicits maximales de 1 et plusieurs, de dcrire cette dernire


et plus spcifiquement de la classifier ou de la catgoriser (Description
entity).

Les avantages de cette classe dentits ne sont cependant pas immdiats. Comme
nous le verrons au chapitre 2, leur prsence a un impact majeur sur la qualit du modle
logique de donnes qui dcoule du modle conceptuel. Nous aurons le loisir dy revenir
lorsque nous traiterons du passage du modle conceptuel au modle logique.

10

Conception de bases de donnes avec UML

Cas 1-7 SJOUR DANS UN TABLISSEMENT JEUNESSE


(DP) Un organisme daide la jeunesse consigne dans un dossier des donnes relatives
aux sjours effectus par un jeune dans divers tablissements dont la vocation est dhberger
temporairement des jeunes en difficult. Chaque sjour dun jeune dans ce type dtablissement fait lobjet dune inscription complte par le biais du formulaire Sjour dans un
tablissement .

Sjour dans un
tablissement
Adresse

No jeune 2345678
Nom, Prnom Rioux, Anne
Date de naissance 25/03/90

200, rue Albert


Lvis, QC, G6V 8R9

Travailleur
social Pierrette Proulx
Tlphone
418.833.8801
travail social
Dbut suivi

10/08/05

Nom tablissement Institut Jeunest Adresse tablis.


Date arrive 12/08/05
Date dpart

Tlphone
tablissement
Directeur

Reprsentants
Reprsentant principal:
Nom Auger
Prnom Diane
Tlphone 833-8800
Autre reprsentant:
Nom Rioux
Prnom Jean
Tlphone 833-8800

20, St-Jean
Lvis, QC, G6V 8R9
418.833.8807
Samuel Thrien

Absences du jeune
Date dpart

1- Pre/mre
05/11/05
2- Frre/soeur
3- Autre parent 10/12/05
4- Non parent 23/12/05

Date retour
07/11/05

Raison
Maladie

17/12/05

Voyage scolaire

04/01/06

Vacances

1- Pre/mre
2- Frre/soeur
3- Autre parent
4- Non parent

Mandat judiciaire
Nom juge Julie Casgrain
Tlphone 833.8809

Type de
mandat
Travailleur
social mandat

1- Encadrement
2- Observation
3- Tutorat

Jean Blais

Le document comporte des donnes sur le jeune, sur ltablissement et sur le sjour.
En ce qui a trait au sjour, on note la date darrive et la date de dpart ainsi que les priodes
dabsence du jeune au cours dun sjour. Tout jeune doit avoir un reprsentant principal et le
cas chant un deuxime reprsentant. Si le sjour dcoule dun mandat judiciaire, le juge
qui a accord le mandat et le travailleur social mandat sont identifis sur le document.

10

Le modle conceptuel de donnes

Descriptif du document:

Sjour dans un tablissement

No jeune
Nom jeune
Prnom jeune
Date de naissance
Adresse jeune
No civique
Rue
Ville
Province
Code postal
Nom travailleur
Prnom travailleur
Tlphone travailleur
Dbut suivi
Nom tablissement
Adresse tablissement
No civique
Rue
Ville
Province
Code postal
Tlphone tablissement
Directeur
Date d'arrive
Date de dpart
Reprsentant(*)
Nom reprsentant
Prnom reprsentant
Tlphone reprsentant
Code de parent
Reprsentant principal?
Absence(*)
Date de dbut
Date de retour
Raison
Mandat
Nom juge
Prnom juge
Tlphone juge
Type de mandat
Nom travailleur
Prnom travailleur

Le modlisateur a su reconnatre dans le document une structure qui se rpte,

Reprsentant, mme si cette rptition est au nombre de deux. Elle est bien justifie car
il sagit des mmes donnes qui se rptent. On y distingue le reprsentant principal dun
second reprsentant.
Une structure Mandat est aussi prsente, permettant de mettre en vidence les
donnes relatives un mandat judiciaire qui aurait donn lieu un sjour dans ltablissement. Il ne sagit point dune structure rptitive.

110

Conception de bases de donnes avec UML

Le modle conceptuel qui en dcoule repose sur certaines rgles de gestion qui
permettent de justifier la prsence des deux entits dassociation. Primo, bien que plusieurs
travailleurs sociaux aient assur un moment ou lautre le suivi dun jeune, un travailleur
social nassure jamais deux fois le suivi du mme jeune. Cette rgle offre la garantie que la
combinaison No jeune-No travailleur ne produit jamais de doublon et permet de considrer
Suivi comme une entit faible, donc valable comme entit dassociation. Secundo, deux
mandats judiciaires ne peuvent mettre en cause la fois le mme jeune, le mme juge et
le mme travailleur. L encore cette rgle permet de considrer Mandat judiciaire comme
une entit faible, acceptable comme entit dassociation avec un identifiant implicite compos
de No jeune, No juge et No travailleur.
Les connectivits de lassociation Mandat Judiciaire se justifient ainsi :
1- Ct Juge ; un jeune et un travailleur social pourraient ne pas tre associs un juge,
si aucun mandat nexiste son propos, ou au contraire plusieurs car un jeune peut faire
lobjet de plusieurs mandats (0..*)
2- Ct Jeune ; un travailleur social et un juge, lorsquassocis, le sont au moins un jeune
ou plusieurs le cas chant (1..*)
Reprsentant
No reprsentant : {Unique}
Nom reprsentant
Prnom reprsentant
Tlphone reprsentant
Code parent
Principal?

Sjour
Reprsente
0..*

1..*
1..*

1..*
Se fait dans

Effectue
1

Jeune

tablissement

0..*
1..1

.*
1.

No jeune : {Unique}
Nom jeune
Prnom jeune
No civique
Rue
Ville
Province
Code postal
Date naissance
0..*
Suivi

No sjour : {Unique}
Date d'arrive
Date de dpart

Absence
No absence : {Unique}
Date de dbut
Date de retour
Raison

1..1

Nom tablissement : {Unique}


No civique
Rue
Ville
Province
Code postal
Directeur
Tlphone tab.
Mandat judiciaire
Type de mandat

Fait le suivi de

Dbut suivi
1..*
Travailleur social
No travailleur : {Unique} 1..*
Nom travailleur
Prnom travailleur
Tlphone travailleur

Juge
0..* No juge : {Unique}
Nom juge
Prnom juge
Tlphone juge

Le modle conceptuel de donnes

3- Ct Travailleur ; un jeune et un juge lorsquassocis, le sont au moins un travailleur


social ou plusieurs le cas chant (1..*) si le juge accorde plusieurs mandats au
jeune
Une entit composite appele Sjour se justifie ici par lexistence de dpendance
totale dune absence du jeune en regard dun sjour de ce dernier dans un tablissement.
Lidentifiant rel de lentit Absence est la combinaison de No sjour-No absence. La
composition montre une multiplicit minimale 0 ct Absence. Autrement dit un sjour est
compos daucune ou de plusieurs priodes dabsence mais une absence ne peut exister
indpendamment dun sjour.

111

11

Conception de bases de donnes avec UML

Cas 1-8 CLUB DATHLTISME


Un club dathisme gre les inscriptions de ses membres par le biais dune fiche o annuellement le membre choisit quel titre il complte son inscription. Les rgles de gestion en
ce qui concerne les inscriptions sont les suivantes :
1. Lorsque le membre sinscrit une anne donne, il peut choisir de le faire titre de
bnvole ou dathlte (le statut)
2. Sil sinscrit titre dathlte, il doit indiquer une ou plusieurs spcialits quil souhaite
pratiquer. Chaque spcialit doit tre rattache une discipline. titre de bnvole aucune
spcialit nest choisie
3. titre dathlte, il doit payer des frais dinscription, aucun frais nest assum par un
bnvole
4. Le sexe et la date de naissance sont des donnes vitales pour un athlte, pas pour un
bnvole
5. Un membre ne peut sinscrire qu un seul titre au cours dune anne, mais peut changer
de statut dune anne lautre.
Club Olympique
Fiche dinscription

No membre

10725

Nom, Prnom

Lgar, Paul

Homme
Femme

Date naissance

27/05/1987

Dtail inscription

Anne
Statut

Discipline

Spcialits

Frais

2004

Athlte

Natation

Brasse
Libre

25 $

2005

Athlte

Plongeon

1 mtre
3 mtres
10 mtres

30 $

2006

Bnvole

11

Le modle conceptuel de donnes

Le descriptif de la fiche est modlis ainsi :

Club Olympique

Descriptif du document :
No membre
Sexe joueur
Nom membre
Prnom membre
Date naissance

Inscription(*)

Anne

Statut

Frais

Spcialit(*)

Nom spcialit

Discipline

Le descriptif tablit nettement quun membre peut faire plusieurs inscriptions au cours
des ans et que chaque inscription fait rfrence le cas chant des spcialits.
Cependant, seul le modle conceptuel peut vhiculer les autres rgles de gestion,
notamment les statuts mutuellement exclusifs que peut possder un membre. Une association
dhritage permet de montrer quun membre peut tre soit un Bnvole, soit un Athlte
mais que seul lathlte peut possder des spcialits dune part et que dautre part la Date
de naissance et le Sexe sont des donnes vitales, pertinentes uniquement lathlte. Une
association entre lentit Inscription et lentit Spcialit est requise pour tablir le statut
du membre durant une anne donne et pour savoir quelles spcialits lathlte est rattach
cette anne l.
Membre
No membre : {Unique}
Nom membre
Prnom membre

Inscription

Effectue
1..1

No inscription : {Unique}
Anne
Frais

1..*

0..*

Rfre

0..*
Bnvole

Athlte
Sexe
Date de naissance

Possde
0..*

1..*

Spcialit
Nom spcialit : {Unique}

Appartient
1..*

1..1

Discipline
Nom discipline : {Unique}

11

Conception de bases de donnes avec UML

cAs poRTAnT suR les conTRAinTes inTeR-AssociATions


Cas 1-9 CLUB DATHLTISME
Le cas prcdent peut facilement tre complt par des contraintes inter-associations.
Puisquon on y note la prsence dune association dhritage comportant deux sous-types,
il est tout fait appropri de prciser si un sous-type exclut lautre dune part et dautre part,
si une occurrence du supertype peut exister sans appartenir un des sous-types. Une
contrainte de PARTITION spcifie deux choses :
1. un statut (Bnvole ou Athlte) exclut lautre. En effet un membre ne peut tre la fois
Bnvole et Athlte
2. un membre appartient obligatoirement un des sous-types. Autrement dit, une occurrence
du supertype Membre ne peut exister moins dappartenir un des sous-types.
On peut considrer par ailleurs que si une occurrence de Spcialit est lie une
occurrence de Athlte, il y a forcment une liaison de cette spcialit une occurrence de
Inscription car cest par le biais dune inscription que se fait le choix de la spcialit dun
athlte.
Membre
No membre : {Unique}
Nom membre
Prnom membre

Inscription

Effectue
1..1

No inscription : {Unique}
Anne
Frais

1..*

0..*

Rfre

{PARTITION}
{SIMULTANIT}
Bnvole

Athlte
Sexe
Date de naissance

Possde
0..*

1..*

0..*

Spcialit
Nom spcialit : {Unique}

Appartient
1..*

1..1

Discipline
Nom discipline : {Unique}

Ces deux dernires contraintes, bien que non requises pour complter le modle
conceptuel de donnes, apportent une meilleure illustration des rgles de gestion du club
dathltisme.

Le modle conceptuel de donnes

11

voluTion des noTATions pouR lA ModlisATion concepTuelle


des donnes
Ds. le. dbut. des. annes. 1970,. considrant. limportance. grandissante. des.
bases.de.donnes.pour.la.gestion.des.donnes,.plusieurs.quipes.de.chercheurs.
se.sont.intresses.au.dveloppement.dune.notation.graphique.pour.modliser.
les.donnes.sur.le.plan.conceptuel .
On. attribue. gnralement. . Peter. Chen. la. paternit. du. formalisme.
entit-association ..Le.formalisme.et.la.notation.dorigine.ont.t.dcrits.dans.
un.clbre.papier.dat.de.1976.[CHE.76],.un.des.plus.cits.de.la.littrature.
portant.sur.les.bases.de.donnes ..Paralllement,.en.France,.une.quipe.dirige.
par. H .. Tardieu. laborait. un. formalisme. du. mme. type. appel. Formalisme
individuel ..Les.changes.entre.les.chercheurs.des.deux.cts.de.lAtlantique.
ont.donn.naissance..ce.quon.appelle.dsormais.en.franais.le.formalisme.
entit-association.ou.entity-relationship.chez.les.Anglo-Saxons .
Malheureusement,.aprs.plus.de.30.ans.dvolution,.aucun.consensus.
ne.sest.tabli.quant..la.notation.la.plus.approprie.pour.exprimer.le.formalisme .. Bien. que. UML. semble. vouloir. prendre. le. pas. sur. les. deux. autres.
notations,.la.notation.de.Chen.et.ses.variantes.ainsi.que.la.notation.Merise.
demeurent.largement.utilises.et.de.nombreux.outils.y.font.appel .
Dans. cette. dernire. section. du. chapitre. 1,. nous. proposons. une. brve.
description.de.ces.notations.ainsi.que.de.leur.volution.dans.le.temps .

notation de chen
. lorigine,. la. notation. propose. par. Chen. faisait. appel. au. rectangle. pour.
reprsenter.les.entits.types,.au.losange.pour.une.association.type.et..lovale.
pour. un. attribut .. Seules. les. multiplicits. maximales. sont. prsentes. sur. les.
arcs.reliant.une.entit.et.une.association ..Elle.est.soit.1.ou.plusieurs.(N.ou.M) ..
Les.contraintes.de.multiplicit.sont.appeles.des.cardinalits.(cardinality) ..
La.figure.1-55.montre.un.modle.conceptuel.selon.la.notation.originale.
de.Chen ..Il.illustre.les.concepts.de.la.gestion.de.projet ..On.note.que.chaque.
attribut.est.reprsent.par.un.ovale ..Un.des.attributs.est.soulign,.ce.qui.en.
fait. un. identifiant. de. lentit. (Key attribute) .. De. plus. la. position. des. multiplicits.est.conforme..la.reprsentation.UML.quant.aux.associations.binaires.:.
pour.une.lecture.de.lassociation,.la.multiplicit.prsente.du.ct.de.lentit.
darrive.indique.le.nombre.doccurrences.de.cette.dernire.qui.sont.lies..
une.occurrence.de.lentit.de.dpart .

11

Conception de bases de donnes avec UML

Trs.tt.des.extensions..la.notation.ont.t.proposes.par.des.auteurs.
amricains.notamment.pour.allger.la.notation.et.permettre.dexprimer.des.
multiplicits.minimales ..Cest.ainsi.que.les.multiplicits.minimales.et.maximales.ont.pu.tre.exprimes.grce..une.reprsentation.symbolique..lextrmit.
dun.arc ..Cette.forme.de.reprsentation.est.dite.en.ergot de coq ..Le.tableau.1-4.
montre.les.quatre.combinaisons.de.multiplicit.adoptes.en.UML.et.leur.forme.
correspondante.en.ergot.de.coq ..Une.variante.de.la.notation.de.Chen.fait.appel.
.une.reprsentation.numrique.des.multiplicits..la.manire.UML.mais.elle.
se.distingue.par.lemploi.de.la.virgule.comme.sparateur.des.multiplicits .
Dans.lvolution.finale.de.la.notation.de.Chen,.il.fut.propos.que.les.
attributs. soient. intgrs. . leur. entit. ou. . leur. association,. de. manire. .
rduire.considrablement.la.taille.du.modle .
figuRe 1-55 Notation de Chen pour modliser la gestion de projet
No employ

Nom employ

Date affectation
1

Employ

Grant

Travailleur

N
Projet

No projet

TAbleAu 1-4

Nom projet

Codification graphique des multiplicits en ergot de coq

Multiplicit UML

Signification

Ergot de coq

Reprsentation
numrique
(0,1)

0..1

Au plus un

1..1 (ou 1)

Un seul

(1,1)

0..* (ou *)

Un nombre indtermin

(0,N)

1..*

Au moins un

(1,N)

11

Le modle conceptuel de donnes

La. figure. 1-56. offre. une. version. allge. du. modle. 1-55. faisant. appel.
aux.extensions.dcrites.ci-dessus.avec.des.multiplicits.en.ergot.de.coq ..Le.
mme. modle. est. repris. . la. figure. 1-57. en. faisant. appel. cette. fois. . des.
multiplicits.exprimes.numriquement .
figuRe 1-56 Notation de Chen allge pour modliser la gestion de projet
Employ
No employ
Nom employ
Grant
Date
affectation

Travailleur

Projet
No projet
Nom projet

La.notion.entit dassociation.nexiste.pas.dans.la.notation.de.Chen,.ni.
pour.les.associations.binaires,.ni.pour.celles.de.degr.suprieur ..Si.une.association.est.dote.dattributs,.ceux-ci.sont.inscrits.dans.lassociation.comme.
.la.figure.1-56.o.lattribut.Date affectation.appartient..lassociation.Grant ..
La.lecture.des.multiplicits.dune.association.de.degr.suprieur.est.conforme.
.UML ..Ce.sont.dailleurs.les.concepteurs.de.UML.qui.sen.sont.inspirs ..Pour.
une. association. de. degr. n,. les. multiplicits. prsentes. du. ct. dune. entit.
reprsentent.le.nombre.doccurrences.de.cette.entit.qui.peuvent.tre.associs.
.un.tuple.compos.dune.occurrence.de.chacune.des.n1.autres.entits .
La.notation.de.Chen.ne.permet.pas.de.formuler.des.contraintes.interassociations,.ni.des.contraintes.spcialises ..De.plus,.comme.en.UML,.seules.
des. entits. peuvent. tre. lies. par. une. association,. il. est. smantiquement.
incorrect.de.lier.deux.associations .
figuRe 1-57 Notation de Chen avec multiplicits numriques
Employ
(1,1)

No employ
Nom employ

(1,n)

Grant
Date
affectation

Travailleur

Projet
(0,n)
No projet
Nom projet

(0,n)

11

Conception de bases de donnes avec UML

notation de Merise
Merise,.tout.comme.UML,.est.bien.plus.quune.notation ..Il.sagit..dans.sa.
livre.Merise/2..dun.ensemble.de.mthodes,.de.formalismes,.de.notations.
et.doutils.pour.le.dveloppement.de.systmes.dinformation ...linstar.de.
UML,.Merise/2.permet.de.concevoir.une.base.de.donnes.en.faisant.notamment.appel.au.formalisme.entit-association .
La.notation.Merise.adopte.pour.laborer.un.modle.conceptuel.avec.
le.formalisme.entit-association.se.distingue.de.la.notation.de.Chen.principalement. par. la. richesse. de. ses. contraintes. smantiques .. Ces. contraintes.
smantiques.sont.surtout.exprimes.par.des.contraintes.inter-associations.et.
des.contraintes.spcialises.comme.en.UML ..Merise.a.servi.dinspiration.aux.
auteurs.de.UML.sur.ce.plan .
Une. autre. diffrence,. cette. fois. mineure,. est. dordre. cosmtique.:. une.
association.est.reprsente.par.un.ovale.plutt.que.par.un.losange ..
Tout.comme.dans.la.notation.de.Chen,.les.attributs.des.entits.et.des.
associations. sont. intgrs. . ces. symboles. et. les. entits. dassociation. nont.
pas. de. raison. dtre .. Lidentifiant. dune. entit. est. soulign. et. il. peut. tre.
compos ..Il.est.smantiquement.incorrect.de.lier.des.associations.et.celles-ci.
ne. disposent. pas. didentifiant. car. il. est. implicite. comme. pour. la. notation.
de.Chen .
La. diffrence. la. plus. fondamentale. entre. Merise. et. UML. (et. un. des.
prdcesseurs.de.UML,.la.notation.de.Chen).rside.dans.la.logique.dexpression.des.multiplicits ..Les.concepteurs.de.Merise.ont.voulu.donner.plus.de.
cohrence..la.logique.de.formulation.des.multiplicits.avec.pour.consquence.
quelle.se.distingue.de.manire.fondamentale.de.celle.retenue.par.Chen.et.
par.les.concepteurs.de.UML.qui.ont.endoss.les.prescriptions.de.Chen .
Avec. la. notation. Merise,. que. ce. soit. pour. une. association. binaire. ou.
une.association.de.degr.suprieur,.la.multiplicit.place.du.ct.dune.entit.
lest.toujours.dans.le.contexte.o.cette.entit.est.lentit.de.dpart.pour.la.
lecture.de.lassociation .
Pour.une.association.binaire.:.la.multiplicit.place..ct.de.lentit.de.
dpart. stipule. le. nombre. doccurrences. de. lentit. darrive. qui. participe. .
lassociation.avec.cette.premire ..Cela.reprsente.une.inversion.complte.de.
toutes.les.multiplicits.sur.les.associations.binaires.par.rapport..un.modle.
formul. avec. la. notation. de. Chen .. La. figure. 1-58. reprend. le. modle. 1-57.
exprim.en.notation.Merise ..Prire.de.noter.linversion.des.multiplicits.alors.
que. les. autres. aspects. du. modle. sont. similaires,. les. losanges. faisant. place.
aux.ovales.pour.reprsenter.les.associations .

11

Le modle conceptuel de donnes

figuRe 1-58 Notation Merise pour modliser la gestion de projet


Employ
No employ
Nom employ

0,N

0,N

Grant
Date affectation

Travailleur

1,1

Projet

1,N

No projet
Nom projet

Quant..une.association.de.degr.suprieur.n.:.la.multiplicit.place.du.
ct.de.lentit.de.dpart.stipule.le.nombre.de.tuples,.forms.dune.occurrence. de. chacune. des. n1. autres. entits,. qui. peuvent. participer. . une.
.association.avec.cette.premire .
Considrons.le.modle.1-59.repris.de.la.figure.1-25.et.exprim.dans.la.
notation. UML .. Nous. invitons. le. lecteur. . relire. les. exigences. du. problme.
et.les.justifications.concernant.les.multiplicits .
figuRe 1-59 Rservation auprs dune socit arienne exprime en UML
Rservation

Vol

No rservation : {Unique}
Date rservation
Prix total
Paiement effectu?

0..
*
Comporte

No du vol : {Unique}
*
1.. Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive

1..1
Tarif
Code de tarif : {Unique}
Conditions

En.vertu.de.la.logique.de.formulation.des.multiplicits.en.Merise,.nous.
allons.devoir.tablir.pour.chaque.entit.de.lassociation,.combien.de.couples.
forms. doccurrences. des. deux. autres. entits. peuvent. tre. associs. . cette.
premire .
Considrons.chaque.entit.de.lassociation..tour.de.rle .

10

Conception de bases de donnes avec UML

Multiplicit.du.ct.Rservation.:.Combien.de.couples.Tarif-Vol.peuvent.
tre.associs..une.occurrence.de.Rservation.?.Une.rservation.comporte.au.
moins. un. vol. donc. au. moins. un. couple. Tarif-Vol .. Un. ou. plusieurs,. donc.
multiplicit.1,N.respectant.en.cela.la.syntaxe.des.multiplicits.en.Merise .
Multiplicit.du.ct.Tarif.:.Combien.de.couples.Rservation-Vol.peuvent.
tre.associs..une.occurrence.de Tarif.?.Un.tarif.peut.ne.pas.sappliquer.aux.
rservations.de.vols.effectues..un.moment.donn.mais.pourrait.sappliquer.
. plusieurs .. Zro. ou. plusieurs,. donc. multiplicit. 0,N. respectant. en. cela. la.
syntaxe.des.multiplicits.en.Merise ..
Multiplicit. du. ct. Vol.:. Combien. de. couples. Rservation-Tarif. vols.
peuvent.tre.associs..une.occurrence.de. Vol.?.Un.vol.pourrait.ne.pas.avoir.
de.rservations.mais.ventuellement.plusieurs.rservations.avec.tarifs.diffrents.y.seraient.applicables ..Zro.ou.plusieurs,.donc.multiplicit.0,N .
. la. lumire. de. ces. exemples. nous. pouvons. conclure. quil. est. plus.
simple. en. gnral. dtablir. les. multiplicits. de. degr. suprieur. en. Merise.
quen.notation.Chen.ou.UML ..Nous.constatons.nanmoins.par.exprience.
que.la.logique.de.formulation.des.multiplicits.des.notations.Chen.ou.UML.
mne..un.nombre.beaucoup.moins.grand.dassociations.de.degr.suprieur.
aprs.application.des.rgles.de.dcomposition.vues.prcdemment .
figuRe 1-60 Rservation auprs dune socit arienne exprime en Merise
Rservation

Vol

No rservation
Date rservation
Prix total
Paiement effectu?

No du vol
Date dpart
Heure dpart
Date arrive
Heure arrive

1,N

0,N
Comporte

0,N
Tarif
Code de tarif
Conditions

Nous. nous. limiterons. . ces. quelques. considrations. concernant. les.


diffrences.entre.la.notation.de.UML.et.la.notation.utilise.en.Merise.pour.
formuler.un.modle.entit-association ..Nous.pourrions.laborer.davantage.
sur.le.plan.comparatif.en.traitant.notamment.des.contraintes.inter-associations ..
Lobjectif.recherch.tant.doffrir.au.lecteur.un.expos.des.diffrences.fondamentales,.il.ne.nous.semble.pas..propos.de.pousser.plus.loin.ltude.des.

Le modle conceptuel de donnes

11

diffrences .. Ces. explications. sur. les. diffrences. fondamentales. devraient.


permettre.au.lecteur.dj.familier.avec.la.notation.UML.dinterprter.fidlement.
un.modle.conceptuel.exprim.selon.la.notation.de.Merise .

notation uMl
Selon.lorganisme.Object Management Group.(OMG),.maintenant.responsable.
de. documenter. et. de. faire. voluer. UML,. ce. dernier. est. .un. langage. visuel.
ddi. . la. spcification,. la. construction. et. la. documentation. des. artefacts.
dun.systme..[OMG.03] ..Dailleurs.lacronyme.UML.signifie.Unified Modeling
Language,.soit..Langage.unifi.de.modlisation. ..Cest.donc.dire.que.UML.
intgre.dans.un.mme.langage.graphique.des.formalismes.et.des.notations.
emprunts. de. mthodes. de. dveloppement. de. systme. qui. ont. fait. leur.
preuve.dont.notamment.les.mthodes.dites.orientes objet .
UML.est.suffisamment.souple.pour.permettre.quune.notation.serve..
exprimer.plusieurs.types.de.modles ..Ainsi,.en.UML,.la.notation.utilise.pour.
formuler.un.modle.conceptuel.de.donnes.est.appele.diagramme de classes ..
Un.diagramme.de.classes,.constitu.essentiellement.de.cases.rectangulaires,.
les.classes,.ainsi.que.darcs.reliant.les.cases.et.affichant.des.multiplicits,.peut.
exprimer.:
. Point de vue conceptuel.:. le. diagramme. reprsente. alors. un. modle
entit-association.et.est.interprt.comme.dcrivant.les.entits.du.monde.
rel.ou.du.domaine..ltude ..Le.diagramme,.sil.sinscrit.dans.le.contexte.
de.la.conception.dune.base.de.donnes,.est.gnralement.appel.un.modle
conceptuel de donnes ..En.principe,.chaque.case.du.diagramme.devrait.porter.
la.mention.Entity ..Cependant,.en.pratique,.si.le.diagramme.porte.le.nom.
modle. conceptuel. de. donnes,. il. nest. pas. requis. dinscrire. la. mention.
Entity.dans.chaque.case ..Si.le.modle.vise.par.ailleurs.la.ralisation.dun.
logiciel,. il. sera. appel. un. modle du domaine. [LAR. 05]. o. chaque. case.
reprsente.alors.une.classe.conceptuelle.du.domaine .
. Spcifications logicielles.:. le. diagramme. reprsente. un. modle objet ..
Cest--dire.quil.illustre.des.composants.logiciels.avec.des.spcifications.
et.des.interfaces.qui.pourront.tre.programmes.dans.tout.langage orient
objet.comme.par.exemple.C#.ou.Java ..Chaque.case.reprsente.une.classe.
dobjets.telle.que.dfinie.dans.un.langage.orient.objet .
. Implmentation logicielle.:.le.diagramme.dcrit.un.modle dimplantation du.logiciel.dans.un.langage.orient.objet.en.spcifiant.le.comportement.
du.logiciel.grce..des.techniques.spcifiques.au.langage .

1

Conception de bases de donnes avec UML

Une.autre.notation.que.le.diagramme.de.classes.sera.exploite.au.cours.
des. prochains. chapitres .. Il. sagit. du. diagramme de cas dutilisation. dUML ..
Nous.en.ferons.usage.dans.le.contexte.de.ltude.dune.dmarche.systmatique.
danalyse,.de.conception.et.de.ralisation.dune.base.de.donnes .
UML.est.le.fruit.de.travaux.mens.par.plusieurs.collaborateurs.qui.ont.
dcid.den.faire.un.standard.ouvert,.non.propritaire ..Un.premier.groupe.
de. travail. de. lOMG. a. ralis. la. mouture. initiale. de. ce. qui. est. devenu. en.
1997.un.standard.de.facto,.largement.endoss.par.lindustrie.de.ldition.du.
logiciel.:. UML. 1 .0 .. Lanne. 2004. a. vu. lmergence. dune. nouvelle. version.
dUML,.UML.2 .0 .
Cet. ouvrage. na. pas. la. prtention. de. couvrir. toutes. les. facettes. de. la.
notation.UML ..Bien.au.contraire ..Nous.devrons.nous.limiter.aux.lments.
de. la. notation. qui. sont. pertinents. . la. conception. dune. base. de. donnes.
soit.le.diagramme.de.classes.illustrant.un.modle.conceptuel.de.donnes.et.
le.diagramme.de.cas.dutilisation.facilitant.la.dfinition.des.besoins.en.matire.
de.donnes.vitales ..Le.lecteur.qui.souhaite.approfondir.le.sujet,.notamment.
en.ce.qui..trait..la.conception.de.logiciels.avec.UML,.est.invit..consulter.
louvrage.UML 2.0.de.Martin.Fowler.[FOW.03].paru.en.franais.aux.ditions.
CampusPress .

lA pRochAine TApe
La.modlisation.conceptuelle.des.donnes.nest.pas.une.fin.en.soi ..Il.sagit.
dune. premire. tape. dans. la. conception. et. la. ralisation. dune. base. de.
donnes ..Le.modle.qui.rsulte.de.cette.premire.tape.doit.tre.considr.
comme.un.modle.stable.qui.dcrit.fidlement.le.domaine.ou.le.problme.
.ltude ..Cela.signifie.quil.est.notamment.indpendant.de.la.technologie.
utilise.pour.raliser.la.base.de.donnes.recherche .
Llaboration.dun.modle.conceptuel.de.donnes.comporte.de.nombreux.
avantages ..Il.permet.danalyser.les.besoins.en.matire.de.donnes.sans.gard.
au.choix.dune.technologie.de.ralisation ..Ce.choix.pourra.tre.fait.ultrieurement ..Cela.signifie.quune.fois.le.modle.conceptuel.labor,.le.concepteur.
pourra.faire.le.choix.du.type.de.SGBD.sans.remettre.en.question.ce.modle ..
Mieux. encore,. cela. permet. . une. organisation. de. changer. de. technologie.
sans.remettre.en.question.son.modle.de.donnes .
Comme.nous.le.mentionnions.en.introduction,.les.SGBD.appartiennent.
essentiellement..quatre.grandes.familles.:.hirarchique,.rseau,.relationnel.
ou.objet ..Une.organisation.a.le.loisir.de.faire.le.choix.dun.SGBD.appartenant.

Le modle conceptuel de donnes

1

.lune.de.ces.familles.et.dans.cette.famille.dun.fournisseur.en.particulier,.
sans.remettre.en.cause.son.modle.conceptuel.de.donnes ..Nanmoins,.le.
choix.du.SGBD.aura.un.impact.majeur.sur.la.marche..suivre.pour.le.mettre.
en.uvre ..Le.modle.conceptuel.devra.en.effet.tre.traduit.dans.un.modle.
de.niveau.plus.spcifique,.appel.le.modle logique de donnes,.pour.rpondre.
aux.exigences.particulires.de.cette.technologie .
Le.chapitre.suivant.traite.du.passage.du.modle.conceptuel.de.donnes.
.un.modle.logique.de.donnes.qui.tient.compte.de.la.technologie.de.ralisation. qui. sera. utilise.:. SGBD. hirarchique,. rseau,. relationnel. ou. objet ..
Puisque.la.technologie.des.SGBD.relationnels.domine.actuellement.les.applications.de.gestion.de.donnes.et.ce.pour.encore.longtemps,.nous.consacrerons.
le.chapitre.2..la.dmarche.de.production.dun.modle.logique.de.donnes.
pour.un.SGBD.relationnel..partir.du.modle.conceptuel.de.donnes ..
Si.nous.devions.tre.exhaustifs,.il.faudrait.consacrer..chaque.famille.
de.SGBD.un.chapitre.sur.ce.thme ..Notre.but.ntant.pas.lexhaustivit,.nous.
avons.fait.le.choix.des.SGBD.relationnels.par.souci.de.pragmatisme ..Le.chapitre. 2. ne. traite. en. consquence. que. du. passage. du. modle. conceptuel. de.
donnes.au.modle.logique.de.donnes.adapt.au.SGBD.relationnel ..Ce.type.
de. modle. logique. de. donnes. est. souvent. appel. modle relationnel de
donnes .

AvAnT de fRAnchiR ceTTe TApe : AssuReR lA vAlidATion du Mcd


Ltude.du.passage.du.modle.conceptuel.de.donnes.au.modle.logique.de.
type.relationnel.est.base.sur.la.prmisse.que.le.modle.conceptuel..traduire.
est.valide ..Un.MCD.est.valide.sil.respecte.au.minimum.les.rgles.1 .1..1 .4.
introduites.au.cours.du.prsent.chapitre ..Ces.rgles.assurent.la.cohrence.de.
la.base.de.donnes.ds.le.niveau.conceptuel ..La.rgle.1 .5.qui.traite.de.dcomposition.dune.association.de.degr.suprieur.pourrait.tre.applique.systmatiquement. mais. son. application. nest. pas. obligatoire. pour. produire. un.
modle.relationnel.correct ..Plusieurs.de.ces.rgles.sont.bases.sur.les.proprits.
de. dpendances. fonctionnelles. dont. le. modlisateur. doit. avoir. une. bonne.
matrise.et.sur.lesquelles.nous.aurons.le.loisir.de.revenir.au.chapitre.2 .
Les.cinq.rgles.peuvent.servir.de.rgles.de.validation.dun.MCD.et.nous.
concluons.ce.chapitre.en.proposant.une.dmarche.de.validation.du.modle.
en.cinq.points.:

1

Conception de bases de donnes avec UML

1 ..Chaque.entit.doit.possder.un.identifiant.(rgle.1 .1.didentit) ..Cet.identifiant.est.gnralement.explicite ..Il.peut.tre.implicite.dans.trois.cas.:.soit.


a). pour. une. entit. dassociation. o. il. est. form. par. dfaut. de. la. combinaison.des.identifiants.des.entits.de.lassociation,.soit.b).pour.une.entit.
de.type.composant.o.il.est.form.de.la.combinaison.de.lidentifiant.du.
composant.avec.celui.de.son.composite,.soit.c).pour.une.association.dhritage.o.une.entit.qui.hrite.des.attributs.dune.autre.reoit.par.consquent.
lidentifiant.de.cette.dernire.et.ne.possde.jamais.didentifiant.qui.lui.est.
propre ..Il.faut.viter.de.faire.apparatre.explicitement.un.identifiant.qui.
soit.en.fait.implicite ..Cela.conduit..la.transgression.des.rgles.1 .3.et.1 .4 .
2 ..Chaque.attribut.ne.peut.avoir.quune.valeur..la.fois.et.cette.donne.doit.
avoir.un.caractre.lmentaire,.cest--dire.possder.un.type.de.donnes.
simple.(rgle.1 .2.de.description) .
3 ..Un. attribut. ne. peut. figurer. quune. seule. fois. dans. le. diagramme. entitassociation.(rgle.1 .3.de.non-redondance) ..Prendre.garde.aux.synonymes,.
la.mme.donne.sous.deux.noms.diffrents,.et..la.polysmie,.une.mme.
appellation.pour.deux.donnes.diffrentes .
4 ..Les.attributs.dune.entit.dcrivent.bien.cette.entit.et.lui.appartiennent.
en. propre .. Aucun. ne. peut. appartenir. . une. autre. entit. (rgle. 1 .4. de.
construction) .. La. valeur. de. chaque. attribut. est. dtermine. de. manire.
unique.par.la.valeur.de.lidentifiant ..Cette.rgle.possde.un.corollaire.:.il.
faut. viter. de. rpliquer. un. attribut. dans. une. entit. provenant. dune.
deuxime. entit. pour. signifier. quelles. sont. lies .. Pour. ce. faire,. il. faut.
employer.une.association .
5 ..Il.est.souhaitable.de.dcomposer.les.associations.de.degr.suprieur.le.cas.
chant. (rgle. 1 .5. de. dcomposition) .. Deux. situations. se. prtent. . la.
dcomposition.:. a). une. des. multiplicits. maximales. est. gale. . 1.;. b). il.
existe. une. dpendance. fonctionnelle. entre. deux. identifiants. parmi. les.
entits.associes .

Le modle conceptuel de donnes

1

exeRcices de ModlisATion concepTuelle des donnes


ExErCICE 1-1

Cet exercice consiste modliser les donnes requises pour laborer un contrat de
location dans une entreprise de location de vhicules automobiles. La structure de donnes
ci-aprs est extraite du document Contrat de location. La structure est fort simple puisquelle
ne comporte ni sous-structures, ni structures rptitives.
Bien que le contrat ne concerne quun seul vhicule et un seul client, le mme
vhicule peut faire lobjet de plusieurs locations au mme client ou des clients diffrents.
Toute la tarification, que ce soit pour la location ou les assurances, est tablie pour chaque
vhicule et non pour le modle auquel il appartient. Cela signifie que la tarification est
base sur les caractristiques propres au vhicule : nombre de portes, type de transmission, etc. On prend pour acquis que le client nest titulaire que dun seul permis de
conduire.
Faire le modle conceptuel des donnes relatives ce domaine dapplication
partir des donnes du Contrat de location. Il sagit dun exercice relativement simple car
on ne devrait y retrouver que des associations binaires, sans entits dassociation. Le
nombre de donnes considrer est nanmoins important.
Suggestions : regrouper dans une mme entit toutes les donnes relatives la
tarification applicable un vhicule et donner un identifiant artificiel cette entit, par
exemple No de tarif ; faire usage dentits de description pour les donnes de type
numr : marque, modle, catgorie.
Descriptif du document: Contrat de location
- No immatriculation
- No srie
- Marque
(Honda, Chevrolet, )
- Modle
(CX, CRX, )
- Anne
- Climatisation?
- Automatique?
- Nombre portes
- Kilomtrage actuel
- Catgorie
(conomique, compacte, )
- Tarif Horaire
- Tarif quotidien
- Tarif hebdomadaire
- Tarif kilomtrage
- Tarif assurance collision quotidien
- Montant franchise collision
- Tarif suppression de franchise quotidien
- Nom du client
- Adresse client
- Tlphone client
- No permis de conduire
- Province permis
- Pays permis
- No contrat location
- Date contrat
- Lieu prise possession
- Heure prise possession
- Date remise
- Lieu remise
- Heure remise

1

ExErCICE 1-2

Montant franchise collision


Tarif suppression de franchise quotidien
Nom du client
Adresse client
Tlphone client
Conception de bases de donnes avec UML
No permis de conduire
Province permis
Pays permis
No contrat location
Date contrat
Lieu prise possession
Heure prise possession
Date remise
Lieu remise
Heure remise
Code de rabais appliqu
Kilomtrage inclus
Assurance collision?
Suppression franchise?
Nombre de jours location
Heures en sus
Kilomtres parcourus
Montant factur

La structure de donnes suivante est extraite dun document comportant des donnes
sur le dpt dune candidature un poste dans une organisation. Comme on peut le noter
facilement la consultation de la structure de donnes, un candidat peut pratiquer plusieurs langues, avoir de multiples centres dintrt, possder plusieurs diplmes, avoir eu
plusieurs employeurs chez qui il a pu exercer plusieurs fonctions.
Descriptif du document: Dpt de candidature
- No affichage du poste
- Nom du poste
- No du candidat
- Nom candidat
- Prnom candidat
- No tlphone
- Date de naissance
- Langue pratique (*)
Langue
Niveau de connaissance
(parl, crit, les deux)
- Centre dintrt (*)
Dsignation
(sport, musique,)
- Employeur (*)
Raison sociale entreprise
Date dembauche entreprise
Date de dpart de lentreprise
Fonction exerce (*)
Dsignation fonction
Date dentre en fonction
Date de dpart de la fonction
Salaire la fin
- Diplme (*)
Dsignation diplme
Date dobtention
Nom institution

Le modle conceptuel de donnes

1

Le candidat peut avoir t rembauch plusieurs fois chez un mme employeur. Le


candidat peut avoir exerc la mme fonction chez plusieurs employeurs et avoir exerc
la mme fonction plus dune fois chez un mme employeur. Il ne peut cependant pas
avoir obtenu le mme diplme plus dune fois.
Il sagit dlaborer un modle conceptuel de donnes qui reflte ces exigences. Il
peut comporter une association de degr 3 qui peut tre rduite deux associations
binaires.

ExErCICE 1-3

Cet exercice consiste modliser les donnes relatives lorganisation de courses


hippiques au cours dune saison. Le descriptif du document qui suit fait tat des donnes
conserves pour chaque course dune saison, sans gard au champ de course o elle
se droule.
Descriptif du document: Course de chevaux
- No course
- Saison
- Dsignation de la course
- Type de course
(tierc, quart, )
- Catgorie de course
(trot attel, trot mont, obstacle)
- Date de la course
- Dotation de la course en dollars
- Nom du champ de course
- Cheval participant (*)
Nom du cheval
Sexe du cheval
Date de naissance du cheval
Gains du cheval cette saison
Nom du jockey
No licence du jockey
No de dossard pour la course
Propritaire (*)
Nom propritaire du cheval

Le descriptif met en vidence quune course ne se droule que dans un seul lieu
(le champ de course), quelle est dun seul type et dune seule catgorie, quelle implique
plusieurs chevaux participants, quun cheval ne peut tre conduit que par un seul jockey
dans la course mais peut tre la proprit de plusieurs personnes.
Un champ de course peut recevoir tous les types de courses et tre amnag pour
toutes les catgories de course. Le numro de dossard est port par le jockey mais
identifie la fois le cheval et le jockey dans une course.
Il est considr vital de savoir quun cheval est le parent dun autre cheval pour
tablir la ligne dun animal.
Cette exigence devrait donner lieu une association rflexive dans le modle
conceptuel. Par ailleurs le modle peut comporter une association de degr 3 comportant
une entit dassociation. Elle peut tre rduite deux associations binaires.

1

ExErCICE 1-4

Conception de bases de donnes avec UML

Considrons la structure de donnes suivante faisant tat de donnes relatives un ordre


de production dans une usine.
Descriptif du document: Ordre de production
- No ordre production
- Statut de lordre
(Ferme, Lanc, Termin)
- No produit
- Quantit produire
- Quantit produite
- No processus
- Type de processus
(Montage ou Usinage)
- Responsable processus
- Date dernier changement
- Opration du processus (*)
No de squence
(1, 2, 3, etc.)
Description
Temps standard
Date planifie
Date de fin prvue
Produit utilis (*)
No produit
Quantit utilise
Machine utilise (*)
No machine
Description
Cot utilisation/min.
Date prvue utilisation
Dure dutilisation
Quantit ralise
Quantit rebute
Outillage utilis (*)
No outillage
Description
(Ex. mche 10 mm)
Quantit utilise

Chaque ordre de production concerne un seul produit qui doit tre mont ou usin
selon la Quantit produire. Un seul processus est planifi pour raliser un produit.
Le processus comporte une squence doprations, en quelque sorte les tapes du processus de production, et chaque opration est planifie avec une Date planifie et une
Date de fin prvue. Pour chaque opration, un autre produit peut tre utilis. Cest le
cas lorsque lordre concerne le montage dun produit. Le cas chant, dans une opration,
la quantit de chaque produit utilise est spcifie (Produit- Quantit utilise)
La notion de produit est large. Un produit peut tre en effet soit mont ou usin sur
place soit achet auprs dun fournisseur.
Une opration nappartient qu un seul processus et ne peut exister que dans le
contexte de ce processus (Dure de vie identique). Chaque opration dans un processus
peut faire appel des machines de lusine. Dans le cadre de la planification dun ordre de
production, on doit prciser quelles machines seront utilises et pour chaque machine, la
date et la dure dutilisation (Date prvue utilisation, Dure dutilisation). Pour chaque

Le modle conceptuel de donnes

1

machine qui sera utilise lintrieur dune opration planifie dans lordre, on souhaite
conserver des donnes sur la quantit de pices produites (Quantit ralise) et la
quantit de pices rejetes (Quantit rebute). De plus on souhaite savoir, la suite de
la ralisation dune opration, quels sont les outillages utiliss sur chaque machine et en
quelle quantit (Outillage- Quantit utilise). Par exemple, on pourrait avoir utilis une
mche 10 mm et deux mches 12 mm sur la perceuse numro 20.
Il sagit dlaborer le modle conceptuel des donnes du document Ordre de
production. On devrait y retrouver notamment une association de composition et une
association ternaire.

ExErCICE 1-5

Pour faire suite lexercice prcdent, il faut modliser le concept de produit considrant
quun produit peut tre compos dautres produits et quun produit prsent dans une
composition peut avoir un ou des substituts. Cette situation exige une association binaire
rflexive sur lentit Produit. On ne peut faire appel ici une association de composition
rflexive car un produit peut exister indpendamment dun autre produit. On traite dans
cet exercice de catgorie de produits. Un produit a comme identifiant No produit et il
reflte ainsi la catgorie regroupant tous les exemplaires dun produit en particulier, par
exemple un lave-vaisselle inscrit au catalogue sous le no de produit H8976, et non pas
un exemplaire en particulier comme le lave-vaisselle de type H8976 portant le no de srie
78876254342 produit le 6 juin 2006.
Tout produit peut tre le composant dun autre produit ou peut tre un substitut
dans la composition dun autre.
La structure de donnes suivante explicite la nomenclature dun produit, soit sa
structure et ses lments de substitution.
Descriptif du document: Nomenclature de produit
- No Produit
- Dsignation du produit
- Composition (*)
No produit
Quantit du produit
Substitut du produit (*)
No produit

ExErCICE 1-6

Cet exercice consiste tablir le descriptif des deux documents faisant lobjet du cas
Collge de Qubec prsent ci-aprs. En fonction des exigences du cas, veuillez laborer
le modle conceptuel des donnes.
Le Collge de Qubec sest dot dune association de diplms dont la mission
premire est de faire des leves de fonds pour les activits du Collge. Tous les anciens
du Collge sont sollicits annuellement par la poste pour verser une cotisation leur permettant dtre membre de lassociation. Les diplms ont le loisir de verser une contribution
volontaire en plus de leur cotisation annuelle. Les contributions et cotisations peuvent tre
payes en plusieurs versements.

10

Conception de bases de donnes avec UML

Pour faire le suivi des adhsions et comptabiliser les contributions de ses membres,
lassociation dispose dune fiche sur laquelle sont inscrites les donnes relatives au
membre.
Association des anciens du
Collge de Qubec
No diplm

S56533

Nom, Prnom

Lebel, Anne

Date de naissance

Numros tlphone

25/03/64

Adresse domicile
Adresse au travail

Membre du C.A.
Membre de lxcutif

418.833.8800 (b.) 418.833.8890 (d.)


12, rue de lpervier, St-Jean, G6H 8R5
AMCE Qubec, 12 industriel, Lvis, G6V 8R7

Diplmes obtenus
Diplme
B.Sc.Comptable
M.B.A. (Finance)

Anne obtention
1986
2000

Facult

Dpartement

Sciences de Gestion
Sciences de Gestion

Comptabilit
Administration

Contributions
Cotisation annuelle

Contribution

1987

25,00 $

1988
2000
2004

25,00 $
30,00 $
30,00 $

10,00 $
15,00 $
0,00 $
20,00 $
0,00 $
50,00 $

Anne

Date versement
27/01/1987
01/04/1987
30/01/1988
28/01/2000
20/01/2004
01/06/2004

La fiche du membre permet de savoir notamment si le membre sige au conseil


dadministration ou au comit excutif de lassociation. Chaque diplme obtenu au Collge
est inscrit sur la fiche. De plus, on y fait tat des contributions annuelles du membre, sous
forme de cotisations ou non. Les contributions peuvent se faire en plusieurs versements
et les dates de chaque versement sont conserves sur la fiche.
Lassociation accorde une grande importance lenregistrement de chaque versement,
que le versement soit relatif une simple cotisation annuelle, une contribution sans
cotisation ou une cotisation avec contribution.
Le montant de la cotisation annuelle du membre dpend du type de diplme obtenu.
Si le diplm sest vu dcerner plusieurs diplmes, cest le diplme qui commande la plus
haute cotisation qui tablit sa cotisation annuelle.
Chaque anne, lassociation lance une campagne de leve de fonds et fait appel
ses membres pour solliciter les diplms de lassociation ainsi que des organismes du
milieu susceptibles de contribuer financirement ses activits. Plusieurs priodes de
leve de fonds peuvent tre programmes au cours dune anne. Pour faciliter le travail
des solliciteurs une Fiche de sollicitation est complte pour chaque priode de leve
de fonds. La fiche est prpare lintention dun solliciteur qui est forcment membre de
lassociation. On y fait tat des diplms et des organismes du milieu que le membre
solliciteur doit contacter ainsi que des numros de tlphone de ces derniers.

11

Le modle conceptuel de donnes

Lorsque le solliciteur contacte un diplm ou un reprsentant dorganisme apparaissant sur la fiche quon lui a remise, il complte celle-ci en y inscrivant la date laquelle
la sollicitation a t faite et, le cas chant, la liste des versements convenus et la date
de chacun de ces versements.
Fiche de sollicitation
No fiche

2006-16725

Campagne

2006

Solliciteur

Lebeau, Pierre

Priode

du 01/06/2006 au 01/09/2006

Diplms
Lebel, Anne
Lebrun, Serge
Morin, Pierre
Massicotte, Lucie

Date sol.

Numros de tlphone

12/07/06
13/07/06

418.833.8800
418.222.3452

15/07/06

514.243.8965
450.896.9876

Contribution

Date
versement

0,00 $
75,00 $
50,00 $

01/08/06
01/09/06

50,00 $

20/07/06

125,00 $

10/08/06

250,00 $
250,00 $

30/07/06
30/08/06

Organismes
Agence ABC
Lobric Inc.
LabriTech Inc.
Morin, Marois et Ass.

20/07/06
25/07/06

418.833.8899
418.452.3452
514.235.5467
450.345.9886

Comme lillustre un exemplaire de la fiche montr ci haut, une sollicitation peut ne


pas donner lieu une contribution. Elle peut par ailleurs donner lieu un ou plusieurs
versements.
Chaque fiche une identification unique et sapplique une priode de leve de
fonds (date de dbut, date de fin) sinscrivant lintrieur dune campagne annuelle.
Il sagit de rdiger le Descriptif du document des deux types de fiches compiles
par lassociation et laborer ensuite un modle conceptuel des donnes vitales au
fonctionnement de celle-ci.
Suggestions : tant donne limportance que revt chaque versement, que ce soit
pour le paiement dune cotisation ou non, nous suggrons de crer dans le descriptif du
document Association des anciens une structure rptitive regroupant les donnes
suivantes :
- ...
- Versement (*)
Anne
Cotisation?
Date versement
Montant versement

1

Conception de bases de donnes avec UML

Cette structure reprsente les versements effectus par le membre dune anne
lautre et permet de savoir si le versement est fait pour acquitter la cotisation annuelle ou
non, selon la valeur du boolen Cotisation ?.
Quant au descriptif de la Fiche de sollicitation, on note que les mmes donnes
y sont compiles quil sagisse dun membre ou dun organisme. En consquence, nous
suggrons que la structure rptitive suivante soit intgre au descriptif de manire
tablir, pour chaque sollicitation, laide de la donne boolenne Diplm ?, sil sagit
dun diplm ou dun organisme. Tlphone est considre comme une structure rptitive car les membres ou les organismes sollicits peuvent possder plus dun numro
de tlphone.
- ...
- Sollicitation (*)
Nom sollicit
Diplm?
Tlphone (*)
No tlphone
- ...

Quant au modle conceptuel, il sagit de reflter la ralit des institutions denseignement : un diplme est obtenu dans un seul Dpartement rattach une Facult. Une
association de composition peut tre envisage pour mettre en vidence quune priode
de campagne est compose de sollicitations dpendant intgralement de leur priode.
Deux contraintes inter-associations peuvent tre utilises. Une premire pour indiquer
quun versement porte soit sur une cotisation soit sur une simple contribution et une
deuxime permettant de montrer quune sollicitation concerne soit un organisme soit un
diplm.

1

Le modle conceptuel de donnes

soluTions des exeRcices de ModlisATion concepTuelle des donnes


ExErCICE 1-1

Tel que suggr, lentit Tarif est prsente dans le modle et elle est associe lentit
Vhicule. Les entits de description Marque, Modle, Catgorie sont prsentes pour
dcrire soit le vhicule, soit le modle (Catgorie). Permis de conduire est traite
comme entit distincte de Client car le permis a son existence propre. Une association
appele Fabrique entre Marque et Modle est requise pour savoir quelle marque
appartient un modle, car il est impossible de ltablir transitivement via lentit Vhicule
puisque quun modle est li plusieurs vhicules. Lentit Contrat de location ne
comporte que les donnes spcifiques un contrat de location. Les autres lments du
contrat sont donns par des associations binaires menant une seule occurrence de
Client, une seule occurrence de Vhicule, une seule occurrence de Permis, une seule
occurrence de Tarif (transitivement via Vhicule).
Vhicule
No srie : {Unique}
No immatriculation
Anne
Kilomtrage actuel
Climatisation?
Automatique?
Nombre portes

Permis conduire
No permis : {Unique}
Province
Pays

0..*

1..1

0..*
Possde

1..1

0..*
Concerne

1..1
Possde

0..*

1..1

Tlphone client : {Unique}


Nom client
Adresse client
Signe
0..*

No contrat : {Unique}
Date contrat
Lieu prise
Heure prise
Date remise
Lieu remise
Heure remise
Code de rabais
Kilomtrage inclus
Assurance collision?
Supression franchise?
Nombre jours location
Heures en sus
Kilomtres parcourus
Montant factur

Marque
Nom marque : {Unique}
1..1
Fabrique
1..*
Modle

Possde
1..1

Contrat location

Client

1..1

Possde

Nom modle : {Unique}


1..*
Appartient
1..1
Catgorie vhicule
Nom catgorie : {Unique}

1..1
Tarif

No tarif : {Unique}
Tarif horaire
Tarif quotidien
Tarif hebdomadaire
Tarif kilomtrage
Tarif assurance
Montant franchise
Tarif suppression franchise

1

Une premire version de la solution est donne ci-aprs.


Diplme
0..*

Postule

Poste
No affichage : {Unique}
Nom poste

Candidat

1..*

Occupe

1..*

0..*

ExErCICE 1-2

Conception de bases de donnes avec UML

1..1

No candidat : {Unique} 0..*


Nom candidat
Prnom candidat
No tlphone
Date de naissance
1..1

Nom diplme : {Unique}

Diplm

0..1
Institution enseignement
0..*

Nom institution : {Unique}

0..*

A eu
Connaissance langue

Occupation fonction
No occupation : {Unique}
Date d'entre en fonction
Date de dpart de la fonction
Salaire la fin
0..*
Lie

-Niveau
1..*

1..*
Possde

Langue

Priode emploi

Nom langue : {Unique}

No priode : {Unique}
Date d'embauche
Date de dpart

Centre d'intrt
1..1

0..*
Effectu chez

Dsignation : {Unique}
0..*

Fonction
Dsignation : {Unique}

1..1
Employeur
Raison sociale : {Unique}

Poste, Candidat, Diplme, Institution denseignement, Langue, Centre


dintrt, Employeur et Fonction sont tous des objets concrets ou abstraits qui ont
leur existence propre et qui sont des sujets dintrt dans ce domaine.

Occupation fonction aurait pu tre considre comme entit dassociation (entit


faible) si un candidat ne peut occuper la mme fonction plus dune fois. Mais comme ce
nest pas le cas, Occupation fonction doit tre considre comme une entit forte,
avec son propre identifiant que nous devons crer artificiellement (No occupation). Il
en va de mme pour Priode emploi qui ne peut tre vue comme entit faible : un candidat et un employeur donn dterminent plusieurs priodes demploi. Il ny a donc aucune
dpendance fonctionnelle entre une priode et la combinaison No candidat-Raison
sociale.
On note la prsence dune association ternaire, Diplm, associant un candidat,
le diplme et linstitution dobtention. Cette association une multiplicit maximale de
1 ct Institution puisque le candidat ne peut dtenir plus dune fois le mme diplme
et quil ne peut provenir que dune seule institution.
Dans un tel contexte il est possible de rduire le degr de lassociation de 3 2 en
faisant de Diplm une entit dassociation sans attribut, lie directement Institution
denseignement.

1

Le modle conceptuel de donnes

0..*
0..*

Postule

Poste
No affichage : {Unique}
Nom poste

Diplme
Nom diplme : {Unique}

0..*
Candidat

1..*

Occupe

1..*

1..1

No candidat : {Unique}
Nom candidat
Prnom candidat
No tlphone
Date de naissance
1..1

Diplm

Reoit dipme de
1..1

0..*

Institution enseignement
0..*

Nom institution : {Unique}

0..*

A eu
Connaissance langue

Occupation fonction
No occupation : {Unique}
Date d'entre en fonction
Date de dpart de la fonction
Salaire la fin
0..*
Lie

-Niveau
1..*

1..*
Possde

Langue

Priode emploi

Nom langue : {Unique}

No priode : {Unique}
Date d'embauche
Date de dpart

Centre d'intrt
1..1

0..*
Effectu chez

Dsignation : {Unique}
0..*

Fonction
Dsignation : {Unique}

1..1
Employeur
Raison sociale : {Unique}

Les deux modles ont la mme valeur sur le plan smantique. Il incombe au modlisateur de dcider lequel reflte le plus clairement et le plus simplement la ralit du
domaine tudi.

ExErCICE 1-3

Une premire version du modle conceptuel est propose ci-aprs. Il comporte une
association de degr 3. Comme nous le verrons plus bas, cette association peut facilement
se rduire deux associations binaires compte tenu de la prsence de multiplicits
maximales valant 1 sur deux arcs de lassociation.

Champ de course, Course, Jockey, Cheval et Propritaire sont toutes des


entits pertinentes ce domaine. Elles reprsentent des objets concrets ou abstraits
ayant leur existence propre, donc qui ont une existence indpendante les uns des autres.
Les entits Catgorie de course et Type de course sont tout aussi pertinentes mais
pour une autre raison. Elles reprsentent des entits dites de description. Leur rle consiste
dcrire ou qualifier dautres entits par association. Ce genre dentit permet notamment
de crer une nomenclature pour classifier ou organiser dautres entits.
Lentit Participation est une entit faible dont une occurrence ne peut exister que
sil y a conjugaison dun cheval, dun jockey et dune course. Le numro du dossard ne
peu exister que si ces trois occurrences sont connues. Lassociation de degr 3 montre
quun cheval dans une course ne peut tre conduit que par un seul jockey. De plus, un
jockey qui participe une course ne peut conduire quun seul cheval. On peut ds lors

1

Conception de bases de donnes avec UML

Se tient

Champ de course
Nom du champ : {Unique}

1..1
1..*

Catgorie course
Nom catgorie : {Unique}
Appartient
0..*

1..1

Type de course
Nom type : {Unique}

Est parent de
2..2

0..*

1..1

No dossard

0..

No course : {Unique}
Saison
Dsignation course
Date de la course
Dotation en dollars

1..1
Possde

Participation

Course

1..1

Cheval
Nom cheval : {Unique}
Sexe cheval
Date naissance cheval
Gains cette saison

0..*

1..* Possde

Jockey
No licence jockey : {Unique}
Nom jockey

1..*
Propritaire
Nom propritaire : {Unique}

envisager de rduire cette association ternaire en associant lentit dassociation Participation soit Jockey, soit Cheval. Nous choisissons arbitrairement de le faire avec
Jockey (voir modle suivant).
Enfin, une association rflexive sur lentit Cheval tablit le lien de filiation exig
entre les chevaux. On note la multiplicit 2..2 conforme la ralit de la procration.
Se tient

Champ de course
Nom du champ : {Unique}

1..1

Catgorie course

1..*

Nom catgorie : {Unique}


Appartient

1..1

Possde
1..1

Est parent de

Course
No course : {Unique}
Saison
Dsignation course
Date de la course
Dotation en dollars

0..*

0..*

0..*

Participation

Type de course

No dossard

Nom type : {Unique}

Effectue 0..*

2..2
1..*

Cheval
Nom cheval : {Unique}
Sexe cheval
Date naissance cheval
Gains cette saison

0..*

1..* Possde

1..1
1..*
Jockey
No licence jockey : {Unique}
Nom jockey

Propritaire
Nom propritaire : {Unique}

1

Le modle conceptuel de donnes

Ordre de production, Produit, Processus, Opration, Machine et Outillage sont


des objets dintrt dans ce cas. Ils ont tous une existence bien relle et possdent un
identifiant. Ce sont sans aucun doute des entits fortes. Opration est un composant de
Processus. Son identifiant rel est la combinaison No Processus-No squence.
Un ordre de production concerne un et un seul produit mais en contrepartie, un
produit pourrait ne pas faire lobjet dun ordre car certains produits sont acquis partir
de fournisseurs. Un produit est fabriqu par au plus un processus mais rien nindique
dans ce cas quun processus peut permettre de raliser un seul produit ou au contraire
plus dun produit. Nous avons retenu cette dernire hypothse qui est moins
contraignante.
Processus
No processus : {Unique}
Type
Responsable
Date dernier changement

Fabriqu par
1..*
0..1
Produit

0..*

No produit : {Unique}

Produit utilis
Quantit utilise

1..*

1..1

Concerne

0..*
Cdule opration

Opration
No squence : {Unique}
Description
Temps standard

1..*

Date planifie
Date fin prvue

1..*

0..*
0..*

Ordre production
No ordre : {Unique}
Statut
1..*
Quantit produire
Quantit produite

Utilisation machine
Date prvue utilisation
Dure utilisation
Quantit ralise
Quantit rebute

0..*

ExErCICE 1-4

Machine
No machine : {Unique}
Description
Cot utilisation/min.

Outil utilis

0..*

Quantit
0..*
Outillage
No outillage : {Unique}
Description

1

Conception de bases de donnes avec UML

La quantit dun produit utilis dans une opration dpend la fois de lopration
et du produit (entit faible), do la prsence dune entit dassociation. Il en va de mme
de Date planifie et Date de fin prvue qui dpendent la fois de Opration et Ordre
de production. Ces deux dernires donnes sont rattaches une entit dassociation.
Lassociation ternaire Utilisation machine simpose car les quatre donnes lies
cette association dpendent toutes fonctionnellement des trois entits la fois. De plus,
les multiplicits maximales sur les trois arcs sont obligatoirement plusieurs (*). En effet,
si un ordre de production est li une opration, plusieurs machines peuvent tre en
cause. Si un ordre de production est li une machine, ce peut tre pour plusieurs oprations. Enfin si une machine est lie une opration, ce pourrait tre dans le cadre de
plusieurs ordres de production.
Lentit dassociation Utilisation machine doit tre associe lentit Outillage
pour tablir, chaque utilisation de machine, la quantit doutillage utilis. Il sagit bien
dune association plusieurs plusieurs car un type doutillage peut faire lobjet de plusieurs
utilisations et une utilisation de machine donne lieu la consommation de plusieurs
outillages diffrents.

ExErCICE 1-5

Le modle suivant reflte assez fidlement les exigences du problme. Lentit Produit
est associe elle-mme pour reflter la composition du produit et lentit dassociation
Composition retient la quantit dun produit donn titre de composant dun autre. Un
lment de composition peut avoir un substitut, ce qui est exprim par une association
binaire entre Composition et Produit.
0..*
Est compos
Produit
No produit : {Unique}
Dsignation produit
0..*

1..*

Composition
Possde un substitut

Quantit du produit

0..*

Comme par dfinition une association binaire rflexive relie deux occurrences de
la mme entit, le modle ninterdit point quun produit soit compos de lui-mme, ce qui
ne semble pas tre le cas en toute logique mme si lexpos de la situation nest pas
explicite cet gard.

Le modle conceptuel de donnes

1

Le modle ne permet pas dexclure quun substitut dans un produit soit le produit
substitu lui-mme. De plus, mme sil semble illogique que si A est compos de B, B
ait comme substitut A dans la composition de A, cette possibilit nest pas interdite en
vertu du modle ci-dessus. Ce qui revient dire quun produit pourrait tre compos de
lui-mme.
Il est malheureusement impossible de faire appel une contrainte inter-associations
pour exclure la possibilit quun produit soit compos de lui-mme et quun substitut dans
un produit ne soit le produit substitu lui-mme. Ces dernires contraintes ne portent en
fait que sur une association la fois.
Nous devons donc nous rsoudre adopter un modle qui ne peut prendre en
charge toutes les contraintes voques.

ExErCICE 1-6

Les descriptifs des documents refltent les suggestions faites la fin de lexercice. Le
premier montre que les versements faits par un diplm sont de premire importance et
la donne Cotisation ? permet dtablir quil sagit dun versement pour une cotisation
annuelle ou non.
Descriptif du document: Association des anciens
- No diplm
- Nom diplm
- Prnom diplm
- Date de naissance
- No tlphone bureau
- No tlphone domicile
- Adresse domicile
- Adresse travail
- Membre CA?
- Membre excutif?
- Diplme (*)
Dsignation diplme
Anne obtention
Dpartement
Facult
- Versement (*)
Anne
Cotisation?
Date versement
Montant versement

Le deuxime descriptif, Fiche de sollicitation, fait ressortir limportance de la


notion de sollicitation. Il montre quune sollicitation donne lieu le cas chant des versements de la part de la personne sollicite.

10

Conception de bases de donnes avec UML

Puisque le solliciteur est forcment un diplm, le nom et le prnom prsents sur


la fiche pour lidentifier portent forcment la mme appellation que celle donne dans le
descriptif prcdent. De plus le descriptif indique que la structure Sollicitation peut
comporter le Nom et le Prnom dun diplm ou bien le Nom dun organisme, pas les
deux la fois.
La donne Diplm ? sert dterminer si la sollicitation sadresse un diplm.
Dans le cas contraire il sagit dun organisme.
Descriptif du document: Fiche de sollicitation
- No fiche
- Nom diplm
- Prnom diplm
- Anne
- Dbut priode
- Fin priode
- Sollicitation (*)
Nom, Prnom diplm OU Nom organisme
Diplm?
Date sollicitation
Tlphone (*)
No tlphone
Versement (*)
Date versement
Montant versement

Diplm, Diplme, Facult, Dpartement et Organisme sont toutes des entits


dintrt qui ont une existence propre, bien que certaines ne sont dcrites que par un
seul attribut. Type de cotisation est une entit de description permettant de connatre
la cotisation annuelle verser selon le diplme obtenu. Cette donne est vitale pour
dterminer annuellement le solde de la cotisation payer.
Lentit Priode de campagne est traite comme un composite constitu de lentit
Sollicitation, une occurrence de Sollicitation ne pouvant exister que dans le contexte
dune priode de campagne. Lentit Sollicitation est doublement associe Diplm.
Dune part pour dterminer quel diplm est responsable de la sollicitation et dautre part
pour savoir le cas chant quel est le diplm sollicit. La sollicitation peut concerner soit
un diplm, soit un organisme, ce qui est spcifi par une contrainte inter-associations
de PARTITION entre les deux associations Concerne. Une contrainte du mme type est
utilise pour illustrer quun versement est effectu soit par suite dune sollicitation directe
dans le cadre dune priode de campagne de leve de fonds, soit lors de linscription
annuelle effectue par la poste.
Lentit Versement comporte les donnes requises pour tablir le solde payer
dune cotisation annuelle car on y retrouve les attributs Cotisations ? identifiant les versements portant sur une cotisation et Anne qui dtermine lanne de cotisation couverte
par le paiement. Le calcul du solde se fait simplement en tablissant dabord le montant
de cotisation le plus lev parmi les diplmes reus par un diplm puis en faisant ensuite
la somme des versements de cotisation effectus par le diplm au cours dune anne.

11

Le modle conceptuel de donnes

Diplm
No diplm : {Unique}
Nom diplm
Prnom diplm
Date de naissance
Tlphone bureau
Tlphone domicile
Adresse domicile
Adresse travail
Membre CA?
Membre excutif?

0..1

Reoit4

Implique4
Diplme
1..*

0..*

1..1

Dsignation diplme : {Unique}

Diplmation

Type de cotisation

Dcern par4

1..*

Anne obtention

1..*

No cotisation : {Unique}
Montant annuel

0..1

1..1
Dpartement

1..1

Nom dpartement : {Unique}

Effectue versement4

1..*

Rattach 4

Versement

0..*

Responsable

No versement : {Unique}
Date versement
Montant versement
Cotisation?
Anne

Priode de campagne {PARTITION}


No priode : {Unique}
Anne campagne
Date dbut
Date fin

0..*

1
Donne lieu 4

1..*

3 Concerne

Sollicitation

0..*

No sollicitation : {Unique}
Date sollicitation
No fiche sollicitation
Diplm?

0..1

0..*

Concerne4
0..*

Organisme

{PARTITION}
0..1

Nom organisme : {Unique}


Premier tlphone
Deuxime tlphone

1..1
Facult
Nom facult : {Unique}

Chapitre

le modle logique
de donnes
Objectifs
Concepts fondamentaux lis lapproche relationnelle pour le
stockage et la manipulation des donnes dans un SGBD relationnel.

Rgles et principes assurant la conversion dun modle conceptuel


en un modle logique de donnes de type relationnel.

Dtail de la formulation dun modle relationnel de donnes dans


la notation UML.

Formes normales assurant la cohrence du modle relationnel


et leur lien avec les rgles de modlisation conceptuelle vues
au chapitre 1.
Ce. chapitre. dcrit. la. deuxime. tape. dans. la. ralisation. dune. base. de.
donnes.:.llaboration.dun.modle logique de donnes ..Comme.nous.lindiquions.en.conclusion.du.chapitre.prcdent,.ce.chapitre.ne.vise.pas.lexhaustivit .. Nous. le. consacrons. essentiellement. aux. principes. dlaboration

1

Conception de bases de donnes avec UML

de.modles.logiques.de.donnes.de.type.relationnel,.cest..dire.des.modles.
de.donnes.comportant.des.spcifications.assurant.son.implantation..laide.
dun.SGBD.relationnel ..

Modle } Un modle de donnes dcoulant dun modle conceptuel mais qui le raffine
logique pour tenir compte des caractristiques du type de SGBD utilis pour la ralisation
de donnes de la BD (Logical Data model).

Modle } Un modle logique de donnes spcifiant un schma pour une base de donnes
relationnel relationnelle soit : les tables, les champs de chaque table et leurs proprits, la
de donnes cl primaire des tables, les cls trangres assurant les liaisons entre les tables

et les contraintes dintgrit portant sur ces liaisons (Relational Data model).

En.somme.un.modle.relationnel.de.donnes.nest.quun.cas.particulier.
de.modle.logique.de.donnes ..Un.modle.rseau.de.donnes.ou.un.modle.
hirarchique.de.donnes.font.aussi.partie.des.modles.de.donnes.de.niveau.
logique .. Considrant. les. objectifs. particuliers. de. ce. chapitre. formuls. plus.
haut,.nous.ne.parlerons.dsormais.que.de.modle relationnel de donnes.pour.
parler.dun.modle.de.donnes.de.niveau.logique.spcifiant.le.schma.dune.
BD.relationnelle .
Avant.dexposer.les.rgles.permettant.de.driver.un.modle.relationnel.
de. donnes. . partir. dun. modle. conceptuel. de. donnes. exprim. . laide.
dun. diagramme. entit-association,. nous. allons. nous. attarder. aux. origines.
et.aux.caractristiques.logiques.des.BD.relationnelles .

oRigine eT TeRMinologie de lAppRoche RelATionnelle


un peu dhistoire
On.doit. .E .F ..Codd.[COD.70],.chercheur.au.laboratoire.de.recherche.IBM.
de.San.Jose.en.Californie,.la.formulation.des.bases.thoriques.de.lapproche.
relationnelle.pour.la.ralisation.des.bases.de.donnes ..La.puissance.de.cette.
approche.est.quelle.sinscrit.dans.lalgbre.relationnelle,.une.thorie.mathmatique.rigoureuse .
Lapproche.propose.par.Codd.couvre.plusieurs.aspects.:
1 ..la. structure. de. la. base. de. donnes. et. les. proprits. des. champs. o. sont.
stockes.les.donnes.;
2 ..laspect.de.lintgrit.des.donnes.;

Le modle logique de donnes

1

3 ..laspect. de. manipulation. des. donnes. par. le. biais. doprateurs.


relationnels .
Le. prsent. chapitre. traite. principalement. du. premier. et. du. second.
aspect ..
Les.travaux.de.Codd.ont.donn.naissance..ce.quil.est.convenu.dappeler.
le.modle.relationnel,.ou.lapproche.relationnelle.en.matire.de.gestion.de.
base.de.donnes,.qui.a.donn.lieu..un.succs.commercial.remarquable ..Les.
grands. diteurs. de. logiciels. dont. IBM,. Oracle. et. Microsoft. ont. tour. . tour.
adopt.ce.modle.pour.la.ralisation.de.leurs.SGBD ..Le.domaine.du.logiciel.
libre.nest.pas.en.reste.puisque.le.SGBD.le.plus.populaire.sur.la.plate-forme.
Linux,.My-SQL,.fait.appel.au.modle.relationnel.et..son.langage.de.manipulation.de.donnes.:.SQL .

les fondements thoriques


Le.modle.relationnel.a.ses.racines.dans.lalgbre.relationnelle,.une.composante.de.la.thorie.des.ensembles ..Le.terme.relation.rfre.au.concept.mathmatique.suivant.:.considrant.n.ensembles.E1,.E2,..En,.tout.sous-ensemble.
du.produit.cartsien.des.n.ensembles,.not.E1. .E2. ...En,.constitue.une.
relation .
tant. donn. les. deux. ensembles. E1. =. {a,b}. et. E2. =. {c,d},. le. produit.
c. artsien.de.ces.ensembles.constitue.lensemble.de.toutes.les.paires.ordonnes.
dont. le. premier. lment. est. un. membre. de. E1. et. le. deuxime,. un. membre.
de.E2,.soit.:
E1. .E2.=.{(a,c),.(a,d),.(b,c),.(b,d)}
Lensemble.R1.=.{(a,c),.(a,d)}.est.un.sous-ensemble.de.E1..E2.et.il.constitue.
une.relation.valide ..Les.lments.de.la.relation.sont.appels.des.tuples ..Les.
ensembles. E1,. E2,. do. sont. tires. les. valeurs. places. dans. un. tuple,. sont.
appels. les. domaines. de. la. relation .. On. dira. par. exemple. que. a. et. b. appartiennent.au.domaine.E1,.alors.que.c.et.d.appartiennent.au.domaine.E2 .
Toute. lapproche. relationnelle. repose. sur. ces. concepts .. Ces. structures.
lmentaires. vont. permettre. par. ailleurs. de. reprsenter. des. ensembles. de.
donnes.complexes ..En.vertu.de.cette.approche,.une.relation.dans.une.BD.
sera. dfinie. en intention. en. nommant. la. relation. et. ses. attributs. sans. faire.
tat.des.tuples.qui.forment.explicitement.la.relation ..Ainsi.on.peut.dfinir.
une.relation.reprsentant.lensemble.des.donnes.conserves.sur.les.employs.
dune.organisation.de.la.manire.suivante.:
Employ[no_employ,nom_employ,prnom_employ,salaire_annuel]

1

Conception de bases de donnes avec UML

Employ.est.le.nom.de.la.relation,.no_employ,.nom_employ,.prnom_
employ,.et.salaire_annuel.en.sont.les.attributs ..Lattribut.no_employ.appar-

tient.au.domaine.constitu.de.tous.les.numros.demploys.acceptables ..Ils.
pourraient.tre.constitus.de.trois.lettres.et.trois.chiffres.par.exemple ..Tous.
les. autres. attributs. possdent. aussi. leur. domaine .. Lattribut. salaire_annuel.
appartient. manifestement. au. domaine. des. nombres. entiers. positifs. et. non.
nuls.exprims.avec.un.symbole.montaire .
Un.attribut.ou.un.groupe.dattributs.de.la.relation.permet.par.sa.valeur.
de. distinguer. chaque. tuple. de. la. relation .. On. lappelle. la. cl primaire de. la.
relation .. Les. attributs. qui. forment. la. cl. primaire. sont. souligns. dans. la.
dfinition.en.intention.de.la.relation ..Cest.le.cas.pour. no_employ.dans.la.
relation. Employ .
Une. relation. peut. aussi. tre. dfinie. explicitement. en extension .. Dans.
cette. dfinition,.on.fait.voir.. la.fois.le.nom.des.attributs.et.les.tuples.qui.
constituent.la.relation ..La.figure.2-1.fait.voir.la.relation.Employ.dfinie.en.
extension ..La.cl.primaire.de.la.relation.est.mise.en.vidence.avec.des.caractres.gras .
figuRe 2-1

Relation Employ en extension

Employ
no_employ
BLO001
CAN020
TRA034

nom_employ
Blouin
Cantin
Trahan

prnom_employ
Paul
Sophie
Pierre

salaire_annuel
55 000 $
58 000 $
60 000 $

Tuple

Puisque. la. dfinition. la. plus. explicite. dune. relation. est. sous. forme.
dune. table,. nous. adopterons. pour. traiter. des. caractristiques. du. modle.
relationnel. une. terminologie. base. sur. la. dfinition. en. extension. des. relations .. Une. autre. raison. qui. justifie. lemploi. de. la. terminologie. qui. suit. est.
que. lutilisateur. dune. BD. relationnelle. peroit. les. donnes. de. la. BD. sous.
forme.de.tables .

Terminologie de lapproche relationnelle


relation } Une table comportant des lignes et des colonnes (Relation).

Le modle logique de donnes

1

La.table.reprsente.la.vue.logique.dune.relation.dans.une.BD.relationnelle ..La.structure.physique.de.stockage.des.donnes.peut.prendre.des.formes.
varies.dun.SGBD..lautre,.selon.les.choix.techniques.faits.par.les.concepteurs.
du.SGBD .

Attribut } Une colonne nomme de la table reprsentant la relation (Attribute).


Notons.en.passant.que.lordre.des.attributs.na.pas.dimportance.dans.
une. relation .. La. mme. relation. peut. tre. reprsente. en. inversant. deux.
colonnes.sans.que.cela.ne.constitue.une.nouvelle.relation .

Domaine } Ensemble des valeurs admises pour un attribut. Il tablit les valeurs acceptables

dans une colonne (Domain).

Une.relation.peut.faire.appel.au.mme.domaine.pour.plusieurs.de.ses.
attributs ..La.notion.de.domaine.est.fondamentale.en.matire.de.gestion.de.
donnes ..Elle.permet.dexprimer.des.contraintes.dintgrit.smantique.trs.
fortes.sur.les.donnes.dune.BD .

Tuple } Une ligne dans une table (n-uplet).


Lordre. des. tuples. dans. la. relation. na. pas. dimportance .. Une. table,.
quelle. soit. trie. ou. non. sur. une. colonne. en. ordre. croissant. de. valeur,.
.reprsente.toujours.la.mme.relation .
La.notion.de.tuple.a.t. introduite.au. chapitre.prcdent.pour.parler.
dune. occurrence. dentit .. Il. sagit. sur. le. plan. logique. de. la. mme. notion ..
Comme. nous. le. verrons. plus. loin. en. tudiant. les. rgles. de. passage. dun.
modle.conceptuel..son.pendant.relationnel,.une.entit.est.traduite.en.table.
et,.ce.qui.conceptuellement.tait.considr.comme.une.occurrence.dentit,.
peut.tre.reprsent.par.une.ligne.dans.une.table .

Cl primaire } Ensemble minimal de colonnes qui permet didentifier de manire unique chaque
tuple dans une table (Primary key).
Une. cl. primaire. est. souvent. dite. simple,. si. elle. ne. comporte. quune.
seule.colonne ..Sil.y.a.un.risque,.en.faisant.appel..une.seule.colonne,.dy.
trouver.le.cas.chant.des.doublons,.cette.cl.ne.peut.tre.une.cl.primaire.
valide ..Il.est.alors.ncessaire. de.combiner.la.colonne..une.autre,.formant.
ainsi.une.cl.primaire.compose.pour.assurer.lidentification.unique.des.tuples ..
Une.cl.primaire.compose.peut.tre.constitue.de.deux.colonnes.ou.plus ..
Elle.est.quelque.fois.appele.cl.composite .

1

Conception de bases de donnes avec UML

Cl trangre } Une ou plusieurs colonnes dans une table qui a pour but dassurer une liaison
entre deux tables. On y arrive en dupliquant la cl primaire de la deuxime table
dans la premire. On lappelle aussi cl externe (Foreign key).
Considrons.les.deux.relations.suivantes.dfinies.en.intention.:
Employ[no_employ,nom_employ,prnom_employ,salaire_annuel,
no_dpartement]
Dpartement[no_dpartement,nom_dpartement,nb_employs]

Lattribut.no_dpartement.apparat.dans.les.deux.relations..la.fois ..Dans.
la.relation.Dpartement.il.en.est.la.cl.primaire,.Dans.la.relation.Employ,.il.
reprsente.une.cl.trangre.visant..lier.un.tuple.de.Employ..un.tuple.de.
Dpartement ..Comme.le.montre.la.figure.2-2,.cette.liaison.pourrait.permettre.
.partir.dun.tuple.de. Employ.davoir.accs..un.tuple.de. Dpartement.correspondant.et.par.ailleurs,.partant.dun.tuple.de. Dpartement.avoir.accs..
tous.les.tuples.de.Employ ..Ces.relations.pourront.permettre.de.faire.tat.de.
tous.les.employs.dun.mme.dpartement .
figuRe 2-2

Relations Employ et Dpartement en extension

Employ
no_employ nom_
employ
BLO001
Blouin
CAN020
Cantin
TRA034
Trahan

prnom_
employ
Paul
Sophie
Pierre

salaire_
annuel
55 000 $
58 000 $
60 000 $

no_
dpartement
10
20
20

Cl trangre

Dpartement
no_dpartement
10
20

nom_dpartement
Comptabilit
Recherche et dveloppement

nb_employs
13
8

Pour. faire. image,. la. table. qui. comporte. une. cl. trangre. est. souvent.
appele.une.table fille.en.regard.de.la.table.do.provient.la.cl.trangre,.l.
o.elle.est.cl.primaire,.que.nous.appellerons.la.table mre .

Base } Une collection de relations normalises portant des noms distincts (Relational
de donnes Data Base).
relationnelle

1

Le modle logique de donnes

Lexigence.de.relations.normalises.pour.la.cohrence.dune.BD.relationnelle. est. fondamentale .. Comme. nous. le. verrons. . la. fin. de. ce. chapitre. au.
moment.de.discuter.de.la.normalisation.des.relations,.normalisation.qui.vise.
essentiellement. la. cohrence. et. labsence. de. redondance. dans. une. BD,. les.
rgles.de.modlisation.conceptuelle.introduites.au.chapitre.prcdent.visent.
la. production. dun. modle. relationnel. de. donnes. dont. les. relations. sont.
normalises.de facto .
La.terminologie.de.lapproche.relationnelle.peut.porter..confusion.car.
selon. les. auteurs. ou. le. contexte. duquel. est. tir. un. concept,. il. peut. tre.
exprim.avec.des.termes.diffrents ..Le.tableau.2-1.tente.de.clarifier.les.termes.
employs.et.leurs.correspondants,.pas.ncessairement.leurs.synonymes,.selon.
le.contexte.o.il.est.employ ..Par.exemple,.les.termes.Relation,.Table,.Fichier.
et.Entit.type.sont.tous.apparents ..
Bien.utiliss,.dans.le.contexte.auquel.le.terme.appartient,.il.ne.devrait.
pas. y. avoir. de. confusion .. Malheureusement,. plusieurs. auteurs. font. appel.
indiffremment..un.terme.ou..son.correspondant.sans.gard.au.contexte.
o.ils.lutilisent ..Ceci.est.particulirement.flagrant.dans.la.documentation.
qui.accompagne.les.SGBD.relationnels ..Par.exemple,.dans.le.SGBD.relationnel.Access.de.Microsoft,.on.parle.soit.de.ligne.de.table,.soit.denregistrement ..
Il. est. aussi. question. . la. fois. de. colonne. et. de. champ .. On. aurait. pu. trs.
simplement.sen.tenir.aux.deux.seuls.termes.ligne.et.colonne ..On.y.utilise.
aussi. le. terme. Relation. pour. parler. du. lien. entre. deux. tables. par. le. biais.
dune.cl.trangre,.ce.qui.est.totalement.inappropri ..Ces.abus.terminologiques.conduisent.non.seulement..la.confusion.mais.pire.encore..la.diffusion. de. faussets .. On. a. dj. lu. dans. un. ouvrage. portant. sur. MS. Access.
que. ce. SGBD. tait. de. type. relationnel. car. il. permet. dtablir. des. relations.
entre.les.tables.!
TAbleAu 2-1

Termes apparents selon le contexte o on les utilise

Mathmatique
Relation
Tuple
Attribut
Cl

BD relationnelle
Table
Ligne
Nom de colonne
Cl primaire

Gestion fichier
Fichier
Enregistrement
Champ
Cl enregistrement

Conceptuel
Entit type
Occurrence dentit
Attribut dentit
Identifiant

10

Conception de bases de donnes avec UML

le Modle RelATionnel de donnes :


une RepRsenTATion gRAphique du schMA de lA bd
Le. concepteur. dune. BD. relationnelle. doit. laborer. ce. quil. est. convenu.
dappeler.le.schma relationnel de la base de donnes ..Cette.activit.consiste..
dfinir. toutes. les. relations. normalises. de. la. BD. et. les. domaines. de. leurs.
attributs .. Thoriquement. cela. consisterait. . dcrire. par. intention. chaque.
relation,. dfinir. les. domaines. de. tous. les. attributs. et. pour. chaque. attribut.
dune.relation,.tablir..quel.domaine.il.appartient ..
Les. relations. du. schma. doivent. toutes. possder. les. proprits.
suivantes.:
1 ..Une.relation.a.un.nom.distinct.de.toutes.les.autres.du.mme.schma
2 ..Chaque. attribut. dune. relation. ne. peut. recevoir. quune. seule. valeur.
.atomique.(type.de.donnes.simple)
3 ..Chaque.attribut.a.un.nom.distinct
4 ..Les.valeurs.dun.attribut.font.toutes.partie.du.mme.domaine.:.mme.type.
de.donnes.et.mme.contraintes.dintgrit
5 ..Chaque.tuple.de.la.relation.est.distinct.;.pas.de.tuple.en.double
6 ..Lordre.des.tuples.na.pas.dimportance
7 ..Lordre.des.attributs.na.pas.dimportance
En.pratique.on.arrive..raliser.un.schma.relationnel.en.laborant.une.
reprsentation. graphique. du. schma. qui. tient. lieu. de. modle relationnel de
donnes.de.la.BD ..Celle-ci.est.effectue.de.prfrence..laide.dun.outil.logiciel.
qui.permettra.au.concepteur.de.valider.son.modle,.notamment.dassurer.le.
respect.des.proprits.des.relations.donnes.plus.haut .
Le.modle.relationnel.de.donnes.est.une.reprsentation.du.schma.de.
la.BD.beaucoup.moins.lourde.quune.reprsentation.des.relations.en.intention. tout. en. tant. tout. aussi. expressive .. Or. cette. reprsentation. graphique.
peut.tre.drive.directement.du.modle.conceptuel.de.la.BD.en.appliquant.
un. certain. nombre. de. rgles. de. drivation. assurant. le. passage. du. niveau.
conceptuel. au. niveau. logique .. Driver. le. modle. relationnel. directement.
dun.modle.conceptuel.comporte.de.nombreux.avantages ..Non.seulement.
la. drivation. peut-elle. tre. automatise. grce. . un. outil. logiciel. appropri,.
mais.les.rgles.de.modlisation.conceptuelle.dcrites.au.chapitre.1.assurent.
le.respect.de.la.plupart.des.proprits.des.relations.voques.ci-haut ..Ainsi.
la.rgle.de.non-redondance.assure.les.proprits.1.et.3 ..La.rgle.de.description.
permet.le.respect.de.la.proprit.2 ..Les.contraintes.de.domaine.garantissent.
la.proprit.4 ..La.proprit.5.relve.de.la.rgle.didentit .

11

Le modle logique de donnes

Nous.traitons.dans.cette.section.de.drivation.dun.modle.relationnel.
de.donnes..partir.dun.modle.conceptuel.de.donnes.par.une.tude.rigoureuse.des.rgles.de.drivation ..Pour.ce.faire,.nous.prsentons.les.conventions.
de.reprsentation.dun.modle.relationnel.de.donnes.formul..laide.de.la.
notation.UML .

notation uMl et modle relationnel de donnes


Tout.comme.pour.le.modle.conceptuel,.le.modle.relationnel.est.formul.
par. le. biais. du. diagramme. de. classes. de. UML .. Ici. encore. on. mise. sur. le.
concept.de.prototype.du.langage.UML.pour.donner.au.diagramme.de.classes.
et..la.case.rectangulaire.une.smantique.particulire ..
Tout. comme. pour. le. modle. conceptuel,. la. case. rectangulaire. dun.
modle.relationnel.porte.une.mention.de.prototype ..Cette.fois.il.sagit.de.la.
mention. table .comme.le.montre.la.figure.2-3.o.est.prsente.la.version.
graphique.du.schma.relationnel.de.la.figure.2-2 ..Dans.un.modle.relationnel,.les.associations. sont toutes des associations binaires.portant.des.
contraintes.de.multiplicit.entre.des.tables,.do.la.prsence.de.la.mention.
table .en.guise.de.prototype ..Lorsquil.est.clair.que.le.modle.prsent.est.
un.modle.relationnel,.cette.mention.peut.tre.masque ..Nous.adopterons.
cette.convention.tout.au.long.de.ce.chapitre.pour.allger.les.modles .
figuRe 2-3

Modle relationnel correspondant au schma de la figure 2-2

table
Employ
No employ : {PK}
Nom employ
Prnom employ
Salaire annuel
No dpartement : {FK}
1..*

1..1
table
Dpartement
No dpartement : {PK}
Nom dpartement
Nombre employs

1

Conception de bases de donnes avec UML

Dans.un.modle.relationnel.les.associations.entre.les.tables.nont.pas.
. tre. nommes .. Elles. indiquent. simplement. quil. existe. un. lien. entre. les.
deux. tables. et. que. la. cl. primaire. dune. table. marque. {PK}. (pour. Primary
Key). est. reproduite. dans. lautre. table. sous. forme. de. cl. trangre .. Une. cl.
trangre.est.marque.{FK}.(pour.Foreign Key) .
La. prsence. dun. attribut. avec. la. mention. {PK}. dans. une. table. reflte.
une.contrainte.dintgrit.appele.contrainte dintgrit dentit ..Nous.en.avons.
dj.fait.tat.au.chapitre.1.et.donnons.ici.une.interprtation.apparente.tire.
du.contexte.de.lapproche.relationnelle .

Intgrit } Contrainte applique une cl primaire qui assure quaucun attribut dune cl
didentit primaire ne peut tre nul (Entity integrity).
Un. corollaire. de. cette. contrainte. dintgrit. est. que. la. mention. {PK}.
devrait.toujours.tre.suivie.de.la.contrainte.{Non.nul}.dans.un.modle.relationnel .. Encore. une. fois,. puisque. {PK}. sous-entend. {Non. nul},. on. inscrit.
rarement.les.deux.mentions.dans.un.modle.relationnel.de.manire..allger.
le.diagramme .
Toutes.les.tables.devraient.possder.une.cl.primaire.et.les.associations.
entre.les.tables.assures.par.ces.cls.seront.de.deux.types.:.
1 ..les.multiplicits.maximales.sont.1.dune.part.et.1.de.lautre,.on.parle.ici.
dune.association.un un.;
2 ..les.multiplicits.maximales.sont.1.dune.part.et.*.de.lautre,.on.parle.dune.
association.un plusieurs,.cest.le.cas.du.modle.2-3 .
Contrairement.au.modle.conceptuel,.le.modle.relationnel.ne.supporte.
que. les. associations. binaires. un un. et. un plusieurs. donc. aucune.
association.plusieurs plusieurs.nest.acceptable.dans.ce.dernier.type.de.
modle ..Il.sagit.dune.erreur.grave.sur.le.plan.smantique.davoir.des.multiplicits.maximales.*.de.part.et.dautre.dune.association.dans.un.modle.
relationnel ..La.raison.est.simple.:.comme.un.attribut.cl.trangre.ne.peut.
avoir. quune. seule. valeur. dans. une. ligne. donne. de. la. table,. elle. ne. peut.
assurer. la. liaison. de. cette. ligne. qu. une. seule. autre. ligne. de. la. deuxime.
table ..La.multiplicit.maximale.est.donc.systmatiquement..1.du.ct.de.
la.table.possdant.la.cl.primaire.qui.a.t.copie.dans.lautre.table.avec.la.
mention.{FK}.(cl.trangre) ..
Pour.revenir..lanalogie.mre-fille,.on.peut.facilement.rsumer.le.concept.
de.la.manire.suivante.:.une.ligne.dans.une.table.ne.peut.avoir.quune.seule.
mre. provenant. dune. autre. table .. La. valeur. de. la. cl. primaire. de. sa. ligne.
mre.doit.tre.prsente.sous.forme.dattribut.de.catgorie.cl.trangre.dans.
la.ligne.fille .

Le modle logique de donnes

1

Les.multiplicits.ont.la.mme.smantique.que.sur.le.plan.conceptuel,.
.la.diffrence.que.le.modle.relationnel.fait.tat.du.nombre.de.lignes.(ou.
tuples).dune.table.qui.sont.lies..une.ligne.(ou.un.tuple).de.lautre.table .
Un.modle.relationnel.complet.devrait.notamment.faire.tat.du.domaine.
de.chaque.attribut ..Cela.est.habituellement.ralis.en.inscrivant..la.suite.des.
attributs.et.des.mentions.{PK}.et.{FK}.le.cas.chant,.le.type.de.donnes.de.
lattribut.et.les.contraintes.dintgrit.de.lattribut ..Par.exemple,.si.la.cl.primaire.porte.sur.un.seul.attribut,.il.sagit.donc.dune.cl.simple ..Cet.attribut.
devrait. avoir. les. contraintes. dintgrit. {Unique}. et. {Non. nul} .. Rappelons.
quune.cl.primaire.est.par.dfinition.obligatoire.et.non.redondante .
Si.le.concepteur.a.pris.soin.dinscrire.le.type.de.donnes.des.attributs.
et.les.contraintes.dintgrit.smantique.dans.le.modle.conceptuel,.via.le.
dictionnaire. de. donnes. dun. logiciel. de. modlisation,. ces. proprits. des.
attributs.peuvent.tre.reprises.tel.quel.dans.le.modle.relationnel.driv .

Rgles de dRivATion des RelATions


pARTiR dun Modle concepTuel de donnes
le cas des entits
Pour.chaque.entit.du.modle.conceptuel,.une.table.est.cre.dans.le.modle.
relationnel,.sauf.dans.le.cas.dune.association.dhritage.o.les.attributs.des.
entits.en.cause.peuvent.tre.combins.pour.former.une.table ..Les.attributs.
de.lentit.deviennent.les.attributs.de.la.table.et,.dans.le.cas.dune.entit.forte,.
son.identifiant,.simple.ou.compos,.devient.la.cl.primaire.de.la.table ..Que.
la.cl.primaire.soit.simple.ou.compose,.chaque.attribut.formant.la.cl.porte.
la.mention.{PK} .
La.cl.primaire.dune.entit.faible.est.base.sur.son.identifiant.implicite ..
Rappelons. que. lon. retrouve. deux. types. dentits. faibles. dans. un. modle.
conceptuel.:.les.entits.dassociation.et.les.entits.reprsentant.un.composant.
dune.entit.composite .

drivation partir dune entit dassociation


En. ce. qui. concerne. une. entit. dassociation,. la. table. correspondante. aura.
comme.cl.primaire.une.cl.obligatoirement.compose.des.attributs.de.tous.
les. identifiants. des. entits. participant. . lassociation. et. chaque. attribut. de.
la.cl.compose.portera.la.mention.{PK,.FK} .

1

Conception de bases de donnes avec UML

Illustrons.dun.exemple.cette.premire.rgle.de.drivation ..La.figure.2-4.
comporte.trois.entits.dont.une.entit.dassociation,. Article command .
figuRe 2-4

Modle conceptuel comportant une entit dassociation


Commande
No commande : {Unique}
Date commande
Date prvue livraison
Total commande

Comporte
0..*

Article
No article : {Unique}
Nom article

1..*

Article command
Quantit commande
Prix unitaire ngoci

Le.modle.relationnel.driv.comporte.trois.tables.dont.une.table,.Article
command,. possde. une. cl. primaire. compose. obligatoirement. des. cls.

primaires. des. deux. autres. tables .. Comme. les. attributs. de. la. cl. sont. repris.
des.autres.tables,.ils.doivent.tre.considrs.comme.des.cls.trangres ..Rien.
ninterdit. dans. le. modle. relationnel. quun. attribut. soit. . la. fois. une. cl.
trangre.tout.en.constituant.la.cl.primaire,.en.tout.ou.en.partie .
figuRe 2-5

bauche du modle relationnel driv du modle 2-4


Commande
No commande : {PK}
Date commande
Date prvue livraison
Total commande

Article
No article : {PK}
Nom article
Article command
No commande : {PK, FK}
No article : {PK, FK}
Quantit commande
Prix unitaire ngoci

Cet.exemple.comporte.des.entits.associes,. Commande.et. Article,.qui.


possdent. chacune. un. identifiant. simple .. Si. ces. entits. devaient. avoir. un.
identifiant. compos,. par. exemple. de. deux. attributs,. les. tables. drives,.
C
. ommande.et.Article,.auraient.aussi.une.cl.compose.de.deux.attributs ..Quant.
.la.table.drive.de.lentit.dassociation,.elle.devrait.avoir.une.cl.primaire.
compose. de. quatre. attributs.!. On. voit. l. toute. limportance. de. choisir. des.
identifiants. simples. pour. les. entits. du. modle. conceptuel. afin. dviter. de.
driver.des.cls.primaires.complexes.dans.le.modle.relationnel .

1

Le modle logique de donnes

Le.modle.relationnel.de.la.figure.2-5.ne.saurait.tre.complet.sans.quil.
fasse.tat.explicitement.des.associations.entre.les.tables.et.de.leurs.multiplicits ..La.table.drive.de.lentit.dassociation,.une.table.fille,.doit.tre.lie.
. toutes. les. tables. drives. des. autres. entits. associes. qui. agiront. comme.
tables.mres ..
Chaque. association. portera. une. multiplicit. 1 . .1. du. ct. de. la. table.
mre.et.quant.aux.multiplicits.du.ct.de.la.table.fille,.elles.sont.reprises.
du.modle.conceptuel ..Ainsi.dans.le.modle.2-4,.on.note.la.multiplicit.0 . .*.
sur.la.terminaison.darrive.de.lassociation.lue..partir.de.lentit.Article ..La.
multiplicit.sera.donc.0 . .*.du.ct.de.la.table.fille. Article command.qui.est.
maintenant.la.terminaison.darrive.de.lassociation.lue..partir.de.la.table.
Article .. Par. ailleurs. on. a. la. multiplicit. 1 . .*. sur. la. terminaison. darrive. de.
lassociation.lue..partir.de.lentit.Commande ..La.multiplicit.sera.donc.1 . .*.
du.ct.de.la.table.fille.Article command.qui.est.maintenant.la.terminaison.
darrive. de. lassociation. lue. . partir. de. la. table. Commande .. La. figure. 2-6.
donne.le.modle.relationnel.complet.driv.de.2-4 .
figuRe 2-6

Modle relationnel driv du modle 2-4


Commande

Article

No commande : {PK}
Date commande
Date prvue livraison
Total commande

No article : {PK}
Nom article
1..1

1..1
Article command

1..*

No commande : {PK, FK}{Cascade}


No article : {PK, FK}{Cascade}
Quantit commande
Prix unitaire ngoci

0..*

Le.lecteur.aura.not.la.prsence.de.la.mention.{Cascade}..la.suite.des.
cls.trangres.prsentes.dans.la.table.drive.de.lentit.dassociation ..Cette.
mention.fait.tat.dune.contrainte.dintgrit.fort.importante.appele.contrainte
dintgrit rfrentielle .

Intgrit } Contrainte applique une cl trangre prsente dans une table stipulant que
rfrentielle la valeur de cette cl peut tre nulle, ou si elle ne lest pas, elle doit correspondre

la valeur dune cl primaire dune ligne de la table mre (Referential integrity).

1

Conception de bases de donnes avec UML

Lintgrit.rfrentielle.signifie.sur.le.plan.oprationnel.quune.ligne.ne.
peut.tre.ajoute..une.table.fille..moins.que.la.valeur.de.la.cl.trangre.
soit.nulle.ou.quelle.soit.dj.prsente.dans.la.cl.primaire.dune.ligne.de.la.
table. mre. (contrainte en ajout) .. La. mention. {Cascade}. comporte. des.
restrictions.supplmentaires.:.
1 ..si. une. ligne. de. la. table. mre. est. supprime,. toutes. les. lignes. associes. .
celle-ci. via. la. cl. trangre. dans. la. table. fille. sont. aussi. supprimes.
(contrainte de suppression en cascade).;
2 ..si.la.valeur.de.la.cl.primaire.dune.ligne.est.modifie,.les.valeurs.des.cls.
trangres.des.lignes.associes.dans.la.table.fille.sont.modifies.pour.continuer.dassurer.la.liaison.(contrainte de mise jour en cascade) .
Ces.contraintes.sont.incontournables.dans.le.cas.dune.entit.faible.car.
son. existence. dpend. de. lexistence. dune. entit. forte .. Logiquement. toute.
occurrence.dentit.forte.qui.est.dtruite.entrane.avec.elle.la.disparition.des.
entits.faibles.qui.en.dpendent ..
Simplification de la cl primaire de la table drive dune entit
dassociation.. Sil. existe. une. multiplicit. maximale. de. 1. sur. larc. dune.
association. mettant. en. cause. une. entit. dassociation,. la. cl. primaire. de. la.
table.fille.drive.de.lentit.dassociation.peut.tre.simplifie ..En.effet,.la.cl.
primaire.de.la.table.mre.du.ct.de.la.multiplicit.maximale.1.peut.tre.retire.
de.la.cl.primaire.de.la.table.fille.tout.en.demeurant.une.cl.trangre ..
Considrons..nouveau.le.modle.conceptuel.de.la.figure.2-4 ..Apportons.
y. une. contrainte. selon. laquelle. une. commande. naurait. quun. et. un. seul.
article..la.fois ..Sur.lassociation.Comporte,.la.multiplicit.du.ct.de.lentit.
Article.serait.alors.1 . .1 ..La.table.fille.drive,.Article command,.pourrait.avoir.
comme.cl.primaire.un.seul.attribut,. No commande,.mais. No article.devrait.
tout.de.mme.y.tre.prsent..titre.de.cl.trangre.mais.cette.fois. sans.la.
mention.{Cascade} .
La. dmarche. de. drivation. prconise. pour. une. entit. dassociation.
appartenant. . une. association. binaire. peut. facilement. tre. tendue. . une.
entit. dassociation. appartenant. . une. association. de. degr. suprieur .. Les.
principes. de. drivation. demeurent. globalement. les. mmes .. Nous. aurons.
loccasion.dtudier.les.quelques.diffrences..la.rubrique.traitant.de.la.drivation.des.associations.de.degr.suprieur .

drivation partir des entits dune composition


Un. composant. li. . une. entit. composite. a. un. identifiant. partiellement.
dfini. par. son. composite .. En. effet,. elle. possde. son. propre. identifiant. qui.
garantit. une. identification. unique. des. occurrences. dun. mme. composite.

1

Le modle logique de donnes

mais.il.ne.peut.assurer.une.identification.unique.des.toutes.les.occurrences.
de. lentit. en. gnral .. Pour. ce. faire,. son. identifiant. doit. tre. combin. .
lidentifiant.du.composite .
Avec.pour.consquence.quune.table.sera.drive.du.composite.et.une.
autre. table.sera. drive.du.composant ..Cette. dernire.aura. comme.cl.primaire.la.combinaison.de.lidentifiant.du.composite.marqu.{PK}.et.de.lidentifiant. propre. au. composant. marqu. {PK,. FK} .. Quant. . la. table. drive. du.
composite,.sa.cl.primaire.est.lidentifiant.de.lentit.composite.comme.pour.
toute.entit.forte .
figuRe 2-7

Modle conceptuel comportant une composition


Commande
No commande : {Unique}
1
1..*
Ligne commande
No ligne commande : {Unique}
Quantit commande
Prix unitaire ngoci
Quantit reue

La. figure. 2-7. montre. une. association. de. composition. o. lidentifiant.


implicite.du.composant,.ici.Ligne commande,.sera.form.de.son.propre.identifiant.combin..celui.de.son.composite .
Le.modle.relationnel.driv.doit.montrer.explicitement.les.cls.primaires.
des.tables ..Do.la.prsence.dune.cl.primaire.compose.pour.la.table.Ligne
commande.o.lattribut. No commande porte la.mention.{PK,.FK}.indiquant.
par.l.quil.sagit.dun.lment.de.la.cl.primaire.tout.en.tant.une.cl.trangre.
comme.lillustre.la.figure.2-8 .
De. plus,. considrant. la. dpendance. existentielle. de. Ligne commande.
envers. Commande,.il.est.absolument.ncessaire.dassurer.lintgrit.rfrentielle.entre.les.deux.tables.ainsi.que.la.suppression.et.la.mise..jour.en.cascade.
des. lignes. de. la. table. Ligne commande. par. le. biais. de. la. cl. trangre. No
commande ..Quant.aux.multiplicits,.elles.sont.reprises.intgralement..partir.
du.modle.conceptuel ..Rappelons.que.la.multiplicit.1.prise.seule,.signifie.
de.fait.1 . .1 .

1

figuRe 2-8

Conception de bases de donnes avec UML

Modle relationnel driv de la figure 2-7


Commande
No commande : {PK}
1..1
1..*
Ligne commande
No commande : {PK, FK}{Cascade}
No ligne commande : {PK}
Quantit commande
Prix unitaire ngoci
Quantit reue

La.drivation.des.tables.et.de.leur.cl.primaire.est.la.premire.tape.du.
processus.de.passage.dun.modle.conceptuel.au.modle.relationnel.correspondant ..Lautre.tape.consiste..analyser.les.associations.et..driver.le.cas.
chant. dautres. tables. et. dautres. cls. trangres. selon. la. nature. des.
associations .

les associations binaires


Nous. allons. tudier. sous. cette. rubrique. la. mise. en. uvre. des. associations.
binaires.dans.le.modle.relationnel.sur.la.base.de.leurs.multiplicits.maximales.et.traiterons.du.cas.singulier.de.lassociation.rflexive ..Les.contraintes.
de.multiplicit.quimpose.le.modle.conceptuel.doivent.se.traduire.par.des.
contraintes.dintgrit.appliques..la.cl.trangre.assurant.la.liaison.entre.
les.deux.tables.dune.association.binaire .
Les.rgles.de.drivation.qui.suivent.ne.sappliquent.quaux.associations.
binaires. ne. comportant. pas. dentit. dassociation .. Le. cas. des. associations.
binaires.comportant.une.entit.dassociation.a.t.trait.plus.haut ..Les.rgles.
de.drivation.des.associations.binaires.visent..dterminer.dans.quelle.table.
sera.place.la.cl.trangre.incarnant.la.liaison ..Dans.tous.les.cas,.les.multiplicits. de. lassociation. au. modle. conceptuel. sont. reprises. intgralement.
sur.lassociation.entre.les.tables.drives .

1

Le modle logique de donnes

Association binaire un un
Dans. un. tel. cas,. la. drivation. de. la. cl. trangre. repose. sur. lanalyse. des.
multiplicits.minimales.de.lassociation ..Cela.consiste..tablir.si.la.participation.des.occurrences..lassociation.est.obligatoire.dun.ct.ou.de.lautre.
ou.des.deux..la.fois .
Si.la.participation.est.obligatoire.des.deux.cts.de.lassociation.(multiplicits.minimales.1.de.part.et.dautre),.lune.ou.lautre.des.tables.drives.
des. entits. peut. agir. comme. table. mre .. Cependant,. si. une. seule. des. deux.
entits.est.associe..une.troisime,.on.choisira.comme.table.fille.celle.drive.
de. lentit. qui. comporte. une. deuxime. association .. Si. toutes. deux. sont.
.associes..une.autre,.on.choisit.comme.table.fille.celle.qui.possde.une.cl.
primaire.compose .
Considrons.la.figure.2-9.o.une.association.binaire.montre.des.multiplicits.1 . .1.de.part.et.dautre.des.entits.concernes .
figuRe 2-9

Association binaire un un avec participation obligatoire de part et dautre


Paiement
No paiement : {Unique}
Montant paiement
Date paiement

Donne lieu
1..1

Reu

1..1

No reu : {Unique}
Date reu

Pour. ce. modle,. nous. faisons. lhypothse. que. lentit. Paiement. est.
associe. par. ailleurs. . lentit. Client. (non. illustre) .. La. table. fille. sera. donc
Paiement,.la.table.mre.sera.Reu,.et.la.cl.primaire.de.la.table.mre,.No reu,.
est. reproduite. dans. la. table. fille. . titre. de. cl. trangre. (figure. 2-10) .. Les.
multiplicits.sont.reprises.telles.quelles.du.modle.conceptuel .
Sans.cette.hypothse,.la.table.fille.aurait.tout.aussi.bien.pu.tre. Reu .
figuRe 2-10 Table drive du modle 2-9
Paiement
No paiement : {PK}
Montant paiement
Date paiement
No reu : {FK}

Reu
1..1

1..1

No reu : {PK}
Date reu

10

Conception de bases de donnes avec UML

Si.la.participation.est.optionnelle.sur.au.moins.un.ct.de.lassociation.
(multiplicit.minimale.0.dun.ct.ou.de.lautre),.la.table.drive.de.lentit.
qui.a.la.participation.optionnelle.devient.la.table.fille ..Une.copie.de.la.cl.
primaire. de. la. table. mre. est. dpose. dans. la. table. fille. . titre. de. cl.
trangre .
La.figure.2-11.montre.un.modle.conceptuel.o.une.carte.de.crdit.ne.
peut.tre.associe.qu.un.et.un.seul.client,.mais.par.ailleurs.on.associe.au.
plus.une.seule.carte.de.crdit.au.client.pour.fin.de.paiement .
figuRe 2-11

Modle conceptuel avec association un un, avec une participation optionnelle


Carte de crdit
No carte : {Unique}
Type
Date expiration
Titulaire

Appartient
0..1

1..1

Client
No client : {Unique}
Nom client

Lassociation. un un. tant. optionnelle. ct. Carte de crdit,. la. table.


drive.de.cette.entit.est.considre.comme.table.fille.et.la.cl.primaire.de.
la. table. mre. Client,. soit. No client,. est. copie. dans. la. table. fille. comme. cl.
trangre .
La.figure.2-12.montre.le.modle.relationnel.driv.du.modle.conceptuel.
2-11 ..On.note.que.les.multiplicits.montres.sur.lassociation.entre.les.tables.
sont.les.mmes.que.celles.du.modle.conceptuel .
figuRe 2-12 Modle relationnel driv de 2-11
Carte de crdit
No carte : {PK}
Type
Date expiration
Titulaire
No client : {FK}

Client
0..1

1..1

No client : {PK}
Nom client

Si.la.participation.est.optionnelle.de.part.et.dautre.dune.association.
un un,.lune.ou.lautre.des.tables.peut.tre.arbitrairement.considre.comme.
table.fille,.mais.on.retiendra.en.priorit.comme.table.fille.celle.des.deux.qui.
fait.lobjet.dune.autre.association .

11

Le modle logique de donnes

Association binaire un plusieurs


Les. associations. un plusieurs sont. les. plus. nombreuses. dans. un. modle.
conceptuel ..Or.il.savre.que.cest.aussi.le.type.dassociation.comportant.la.
rgle. de. drivation. la. plus. simple .. Elle. se. rsume. ainsi.:. la. table. drive. de.
lentit. du. ct. de. la. multiplicit. maximale. plusieurs. (*). est. considre. la.
table.fille ..En.consquence,.une.copie.de.la.cl.primaire.de.la.deuxime.table,.
la.table.mre,.est.dpose.dans.la.table.fille..titre.de.cl.trangre .
Cette.rgle.ne.comporte.aucune.exception .
figuRe 2-13 Modle conceptuel avec association binaire un plusieurs
Magasin
No agence : {Unique}
No civique
Rue
Ville
Code postal
No tlphone

Employ
Embauche
1..1

1..*

No employ : {Unique}
Nom employ
Prnom employ
Salaire employ

La.figure.2-13.montre.un.modle.conceptuel.avec.une.association.binaire.
un plusieurs.o.la.participation.est.obligatoire.de.part.et.dautre ..La.participation.ne.joue.aucun.rle.dans.la.drivation.du.modle.relationnel.pour.
ce.type.dassociation ..La.table.drive.de. Employ.devient.la.table.fille,.car.
elle.est.ct.plusieurs,.et.la.table. Magasin,.la.table.mre ..La.cl.primaire.de.
Magasin,.No agence,.devra.apparatre.dans.Employ.sous.forme.de.cl.trangre ..La.figure.2-14.prsente.le.modle.relationnel.driv .
figuRe 2-14 Modle relationnel driv de 2-13
Magasin
No agence : {PK}
No civique
Rue
Ville
Code postal
No tlphone

Employ

1..1

1..*

No employ : {PK}
Nom employ
Prnom employ
Salaire employ
No agence : {FK}

Association binaire plusieurs plusieurs


Une. association. plusieurs plusieurs sans. entit. dassociation. donne. lieu. .
une.table.fille.comportant.comme.cl.primaire.la.combinaison.des.cls.primaires.des.tables.mres ..Chaque.composant.de.la.cl.primaire.est.aussi.cl.

1

Conception de bases de donnes avec UML

trangre ..Aucun.autre.attribut.nest.prsent.dans.la.table ..Deux.tables.mres.


sont. prsentes. et. deux. associations. vont. assurer. la. liaison. avec. leur. table.
fille .. Chaque. association. portera. une. multiplicit. 1 . .1. du. ct. de. la. table.
mre.et.quant.aux.multiplicits.du.ct.de.la.table.fille,.elles.sont.reprises.
du. modle. conceptuel. comme. pour. une. entit. dassociation .. Sil. y. a. au.
modle.conceptuel.la.multiplicit.0 . .*.sur.la.terminaison.darrive.de.lassociation.lue.de.A.vers.B,.il.y.aura.multiplicit.0 . .*.du.ct.de.la.table.fille.pour.
lassociation. la. liant. . A .. Sil. y. a. au. modle. conceptuel. la. multiplicit. 1 . .*.
sur.la.terminaison.darrive.de.lassociation.lue.de. B.vers. A,.il.y.aura.multiplicit.1 . .*.du.ct.de.la.table.fille.pour.lassociation.la.liant.. B .
Si.nous.voulons.que.le.modle.de.la.figure.2-13.reflte.un.contexte.plus.
gnral.et.moins.restrictif.o.un.employ.peut.tre.embauch.dans.plusieurs.
magasins,.nous.aurions.alors.une.association.binaire.entre.Magasin.et.Employ.
du. type. plusieurs plusieurs .. Le. modle. relationnel. rsultant,. figure. 2-15,.
comporterait.alors.une.nouvelle.table.qui.porterait.le.nom.de.lassociation.
et. dont. les. attributs. se. rsument. . la. combinaison. des. cls. primaires. des.
tables.mres ..Chaque.attribut.est.une.cl.trangre.pour.laquelle.une.contrainte.
dintgrit.en.ajout,.suppression.et.mise..jour.devra.tre.applique .
Modle relationnel driv dune association binaire plusieurs plusieurs
figuRe 2-15 dans le modle 2-13
Magasin
No agence : {PK}
No civique
Rue
Ville
Code postal
No tlphone

1..1
1..1

1..*

1..*

Employ
No employ : {PK}
Nom employ
Prnom employ
Salaire employ

Embauche
No agence : {PK, FK}{Cascade}
No employ : {PK, FK}{Cascade}

Il y a un doute sur le fait que la cl primaire de la table fille


drive dune association binaire plusieurs plusieurs exclue tout
doublon. Il.nexiste.aucune.assurance.que.la.cl.primaire.compose.de.la.
table.fille.drive.dune.association.plusieurs plusieurs.sans.entit.dassociation. soit. valide .. Tout. dpend. du. contexte .. La. table. Embauche. du. modle.
relationnel. 2-15. ne. peut. conserver. quune. ligne. pour. un. employ. donn.
dans.un.magasin.donn ..Si.on.accepte.quun.employ.puisse.tre.embauch.
plus.dune.fois.dans.le.mme.magasin,.la.cl.primaire.compose.de.No agence.
et.No employ.est.insuffisante ..Elle.peut.corresponde..plusieurs.lignes.de.la.

Le modle logique de donnes

1

table. Embauche.ce.qui.ne.peut.rendre.la.cl.primaire.non.valide ..En.cas.de.


doute.sur.lunicit.daccs..une.ligne.dans.la.table.drive,.il.y.a.lieu.dappliquer.une.technique.doptimisation.sur.la.cl.primaire .

Remplacement dune cl compose par une cl primaire simple gnration


automatique de valeur : Si le modlisateur doute de lunicit daccs par la cl primaire de la table drive dune association binaire plusieurs plusieurs sans entit
dassociation ou dune association de degr suprieur sans entit dassociation ne
comportant que des multiplicits maximales plusieurs, il peut donner la table fille
drive une cl primaire simple artificielle. La cl primaire portera le nom de la table
fille prcd de No. Cette cl primaire simple portera la mention {PK auto} signifiant
par l que le SGBD gnrera automatiquement, lors de lajout dune nouvelle ligne
dans la table, une valeur diffrente pour la cl primaire. Tous les SGBD relationnels
disposent dun mcanisme pour raliser cette fonction fort utile. Comme nous le
verrons plus loin, cette technique peut aussi bien tre applique, en toute gnralit,
aux tables comportant des cls primaires composes pour optimiser le modle
relationnel.
Revenons.au.modle.relationnel.2-15 ..Une.cl.primaire.artificielle. No
embauche.devrait.tre.cre.avec.la.mention.{PK.auto} ..Quant.aux.attributs.

qui.constituaient.la.cl.primaire.compose,.ils.perdent.la.mention.PK.mais.
demeurent.dans.la.table..titre.de.cls.trangres.et.porteront.en.consquence.
la.mention.{FK}{Cascade} .

priorit dapplication des rgles de drivation


Quarrive-t-il.si.les.deux.mmes.entits.sont.associes.avec.des.associations.
de.natures.diffrentes.?.Par.exemple..la.fois.par.une.association.du.type.un
un.et.une.autre.de.type.un plusieurs ..
Rponse.:. il. ny. a. pas. de. priorit. dapplication. des. rgles .. chaque
association donne lieu la cration de cls trangres, dans la mme table
ou dans les deux tables ..Seule.restriction.:.si.les.deux.mme.entits.sont.lies.

par.plus.dune.association,.il.ne.peut.y.avoir.fusion.de.leurs.attributs.dans.
une.seule.table.mme.si.lune.delle.est.du.type.un un.avec.participation.
obligatoire.de.part.et.dautre .

Le.modle.de.la.figure.2-16.comporte.deux.associations.sur.les.mmes.
entits,.une.premire.un un et.une.autre.un plusieurs ..Les.deux.associations.
doivent. tre. implantes. par. des. cls. trangres. distinctes. dans. le. modle.
relationnel .

1

Conception de bases de donnes avec UML

figuRe 2-16 Plus dune association impliquant les mmes entits


Magasin
No agence : {Unique}
No civique
Rue
Ville
Code postal
No tlphone

Employ
Embauche
1..1
0..1

1..*

No employ : {Unique}
Nom employ
Prnom employ
Salaire employ

Gr par
1..1

La.table.drive.de. Magasin.est.la.table.fille.pour.lassociation. Gr par.


qui.est.du.type.un un ..La.rgle.veut.en.effet.que.dans.le.cas.dune.association.un un,.la.table.du.ct.de.la.multiplicit.minimale.0.(optionnel).soit.
la. table. fille .. La. cl. primaire. de. Employ,. soit. No employ,. doit. donc. sy.
trouver.comme.cl.trangre ..
La.table. Employ.est.par.ailleurs.une.table.fille.pour.lautre.association.
car. elle. drive. dune. entit. lie. . lassociation. un plusieurs Embauche. et.
quelle. est. place. du. ct. plusieurs. de. celle-ci .. La. cl. primaire. de. Magasin,.
No agence,.doit.en.consquence.sy.trouver..titre.de.cl.trangre .
La.figure.2-17.montre.le.modle.relationnel.driv.de.2-16.aprs.application.des.rgles.spcifiques..chaque.type.dassociation .
figuRe 2-17 Modle driv dassociations impliquant les mmes entits
Magasin
No agence : {PK}
No civique
Rue
Ville
Code postal
No tlphone
No employ : {FK}

Employ
1..1

0..1

1..*

1..1

No employ : {PK}
Nom employ
Prnom employ
Salaire employ
No agence : {FK}

Association rflexive
La. drivation. dune. association. rflexive. reprend. les. rgles. voques. plus.
haut.en.les.spcialisant.pour.tenir.compte.du.fait.quune.entit.est.associe.
.elle-mme .

1

Le modle logique de donnes

Cas 1 : Lassociation rflexive comporte une entit dassociation.


En.vertu.des.rgles.donnes.plus.tt,.lentit.dassociation.donne.lieu..une.
table.fille.associe..la.table.mre.drive.de.la.seule.entit.en.cause ..La.table.
drive.de.lentit.dassociation.comporte.les.attributs.de.cette.dernire.avec.
comme.cl.primaire.deux.exemplaires.de.la.cl.primaire.de.la.table.mre,.les.
exemplaires.portent.un.nom.diffrent.pour.viter.toute.redondance ..Chaque.
exemplaire.est.aussi.une.cl.trangre.avec.la.mention.{Cascade}.pour.assurer.
lintgrit.rfrentielle .
Considrons.le.modle.conceptuel.de.la.figure.2-18 .
figuRe 2-18 Modle conceptuel avec association rflexive et entit dassociation
Personne

0..*

No matricule : {Unique}
Nom
Prnom

Mariage
pouse

Date mariage

0..*

Ce.modle.permet.de.faire.tat.de.tous.les.mariages.quune.personne.
peut.avoir.contracts ..On.fait.lhypothse.quune.personne.ne.peut.pouser.
la.mme.personne.quune.seule.fois ..Chaque.mariage.peut.donc.tre.identifi.
de. manire. unique. par. la. combinaison. des. matricules. des. deux. personnes.
qui.spousent..la.date.donne .
Le.rsultat.de.la.drivation.du.modle.relationnel.est.donn..la.figure.
2-19 ..La.table.fille.Mariage.est.drive.de.lentit.dassociation ..Elle.comporte.
une. cl. primaire. compose. des. deux. numros. matricules. des. personnes.
contractant.un.mariage ..Chaque.matricule.porte.un.nom.dattribut.diffrent ..
.chaque.matricule.correspond.une.association.reprenant.du.ct.de.la.table.
fille. les. multiplicits. du. modle. conceptuel .. Le. matricule. est. aussi. une. cl.
trangre.pour.laquelle.lintgrit.rfrentielle.doit.tre.assure.en.ajout,.en.
suppression.et.en.mise..jour .
figuRe 2-19 Modle relationnel driv de 2-18
Personne

Mariage

No matricule : {PK}
Nom
Prnom

No matricule1 : {PK, FK}{Cascade}


No matricule2 : {PK, FK}{Cascade}
Date marriage

1..1

0..*

1..1

0..*

1

Conception de bases de donnes avec UML

Cas 2 : Lassociation rflexive est du type un un


ou un plusieurs.
Il. sagit. dune. situation. o. lassociation. rflexive. ne. porte. pas. dentit.
.dassociation. et. o. les. multiplicits. maximales. sont. de. 1. dun. ct. ou. de.
lautre. de. lassociation,. ou. bien. des. deux. cts. . la. fois .. Dans. ce. cas. une.
seule. table. est. drive. et. elle. comporte. une. cl. trangre .. Celle-ci. est. un.
double.de.sa.cl.primaire.qui.doit.porter.un.nom.diffrent ..Les.multiplicits.
de. lassociation. au. modle. conceptuel. sont. reprises. intgralement. dans. le.
modle.relationnel.driv .
La.figure.2-20.est.aussi.un.modle.portant.sur.la.notion.de.Mariage.o.
cette.fois.on.ne.fait.tat.que.du.dernier.mariage.contract.par.une.personne ..
En.effet,.on.voit.clairement.quune.personne.contracte.au.plus.un.mariage.
et.la.date.de.ce.mariage.peut.tre.considre.comme.un.attribut.de.lentit.
personne ..Cette.association.rflexive.est.du.type.un un .
figuRe 2-20 Modle conceptuel, sans entit dassociation, avec association rflexive un un
0..1

Personne
No matricule : {Unique}
Date mariage

pouse

0..1

figuRe 2-21 Modle relationnel driv du modle conceptuel 2-20


Personne

0..1

No matricule : {PK}
Date mariage
No matricule1 : {FK}
0..1

La.figure.2-22.fait.tat.dune.association.rflexive.du.type.un plusieurs ..
Un.employ.peut.diriger.dautres.employs.et.un.employ.na.quun.et.un.
seul.directeur ..
Les.mmes.rgles.sappliquent.pour.une.association.rflexive.un un ..
On.note..la.figure.2-23.que.les.multiplicits.du.modle.relationnel.driv.
sont.en.tout.point.conformes..celles.du.modle.conceptuel .

1

Le modle logique de donnes

Modle conceptuel, sans entit dassociation,


figuRe 2-22 avec association rflexive un plusieurs
Employ

1..1

No employ : {Unique}
Nom employ
Prnom employ
3 Dirige

0..*

figuRe 2-23 Modle relationnel driv du modle conceptuel 2-22


Employ
No employ : {PK}
Nom employ
Prnom employ
No employ directeur : {FK}

1..1

0..*

Cas 3 : Lassociation rflexive est du type plusieurs plusieurs.


Une.association.rflexive.plusieurs plusieurs.est.traite.comme.une.association.
rflexive.comportant.une.entit.dassociation ..Une.table.doit.tre.cre.pour.
assurer.une.liaison.plusieurs..plusieurs.sur.la.mme.table ..Cette.table.na.pas.
dattribut.propre ..Sa.cl.primaire.est.une.combinaison.de.deux.exemplaires.
de.la.cl.primaire.de.la.table.drive.de.lentit ..Chaque.exemplaire.aura.un.
nom.diffrent.et.sera.trait.comme.une.cl.trangre.avec.contrainte.dintgrit.rfrentielle.en.ajout,.suppression.et.mise..jour.(mention.{Cascade}) .
La.figure.2-24.modlise.la.descendance.dune.personne ..Une.personne.
descend. de. plusieurs. personnes. et. par. ailleurs. possde. plusieurs.
descendants .
Modle conceptuel, sans entit dassociation,
figuRe 2-24 avec association rflexive plusieurs plusieurs
Personne

1..*

No matricule : {Unique}
Nom
Prnom
1..*

Descend de

1

Conception de bases de donnes avec UML

Le.modle.relationnel.driv.(figure.2-25).fait.tat.dune.table.jouant.
le.rle.dune.association.plusieurs plusieurs.et.le.nom.de.la.table.reprend.le.
nom.de.lassociation.du.modle.conceptuel ..Comme.pour.une.table.drive.
dune.entit.dassociation,.la.multiplicit.1 . .1.sera.toujours.prsente.du.ct.
de.la.table.mre ..Du.ct.fille,.les.multiplicits.du.modle.conceptuel.sont.
reprises ..Elles.valent.toutes.deux.1 . .*.dans.cet.exemple.mais.pourraient.fort.
bien.tre.diffrentes.si.elles.taient.diffrentes.du.modle.conceptuel .
figuRe 2-25 Modle relationnel driv de 2-24
Personne
No matricule : {PK}
Nom
Prnom

Descend de
1..1
1..1

1..*

No matricule1 : {PK, FK}{Cascade}


No matricule2 : {PK, FK}{Cascade}

1..*

les associations de degr suprieur


Toute.association.de.degr.suprieur.donne.lieu..une.table.qui.sajoute.aux.
tables.drives.des.entits.associes ..
Sil.sagit.dune.association.de.degr.suprieur.qui.comporte.une.entit.
dassociation,.les.rgles.vues.prcdemment.pour.la.conversion.dune.entit.
dassociation.prsente.sur.une.association.binaire.sappliquent.:.
chaque.entit.associe.devient.une.table.mre.;
lentit.dassociation.devient.une.table.fille.;.
la.cl.primaire.de.la.table.fille.combine.les.cls.primaires.des.tables.drives.
des. tables. mres. associes. et. chaque. lment. de. la. cl. est. une. cl.
trangre.;
cependant,.si.une.des.multiplicits.maximales.sur.les.arcs.vaut.un.(1),.la.
cl.primaire.de.la.table.fille.est.la.combinaison.des.cls.primaires.des.tables.
associes.sauf.celle.associe.par.larc.retenu.o.une.multiplicit.maximale.1.
est.prsente.;
les.cls.primaires.des.tables.mres.qui.nont.pas.t.intgres..la.cl.primaire.
sont.prsentes..titre.de.cls.trangres.dans.la.table.fille.et.les.attributs.
de. lentit. dassociation. sy. ajoutent .. Lintgrit. rfrentielle. en. ajout,.
suppression.et.mise..jour. ne sapplique quaux cls trangres qui font
partie de la cl primaire .
les.multiplicits.sont.toutes..1 . .1.du.ct.des.tables.mres .

1

Le modle logique de donnes

Une. rgle. importante. qui ne sapplique. quaux. associations. de. degr.


suprieur.et.non.pas.aux.associations.binaires.avec.entit.dassociation.:
Les.multiplicits.sont.toutes..0 . .*.du.ct.de.la.table.fille
Illustration 1 : Lassociation de degr suprieur
comporte une entit dassociation.
Nous.illustrons.ici.la.drivation.dune.entit.dassociation.prsente.sur.une.
association. de. degr. suprieur .. La. figure. 2-26. montre. une. association. de.
degr.suprieur.o.toutes.les.multiplicits.maximales.sont.plusieurs ..La.table.
fille.Priode de cours.doit.en.consquence.possder.une.cl.primaire.compose.
des.cls.primaires.des.quatre.tables.mres .
Modle conceptuel avec entit dassociation
figuRe 2-26 sur une association de degr suprieur
Professeur

Cours

.*
0.

No professeur : {Unique}

Priode de cours
Heure de dbut
Heure de fin

1..*

1..7

Sigle : {Unique}

Jour semaine
Nom du jour : {Unique}

.*
1.
Local
No local : {Unique}

Le.modle.relationnel.de.la.figure.2-27.est.driv.du.modle.conceptuel.
de.la.figure.2-26 ..Il.comporte.cinq.tables,.dont.une.table.drive.de.lentit.
dassociation.qui.possde.une.cl.primaire.compose.des.cls.primaires.des.
quatre.autres ..Cette.table,. Priode de cours,.est.une.table.fille ..
Les.cls.primaires.des.quatre.tables.mres.qui.sont.copies.dans.la.table.
fille.sont.toutes.des.attributs.considrs.comme.cls.trangres.sur.lesquelles.
la.contrainte.dintgrit.rfrentielle.sapplique ..Les.attributs.propres..lentit.
dassociation,. Heure de dbut.et. Heure de fin,.apparaissent..leur.suite ..
Les. multiplicits. places. du. ct. de. la. table. fille. sont. toutes. 0 . .* .. Les.
multiplicits.du.ct.des.tables.mres.sont.systmatiquement.1 . .1 ..Puisque.
toutes.les.associations.comportent.des.multiplicits.maximales.plusieurs.du.
ct.de.la.table.fille,.sa.cl.primaire.ne.peut.tre.simplifie .

10

Conception de bases de donnes avec UML

figuRe 2-27 Modle relationnel driv du modle 2-26


Jour semaine
Professeur

Nom du jour : {PK}


Priode de cours

No professeur : {PK}
1..1
0..*

No professeur : {PK, FK}{Cascade}


Sigle : {PK, FK}{Cascade}
No local : {PK, FK}{Cascade}
Nom du jour : {PK, FK}{Cascade}
Heure de dbut
Heure de fin

Cours
Sigle : {PK}

0..*
1..1

0..*

1..1
0..*

1..1

Local
No local : {PK}

Illustration 2 : Lassociation de degr suprieur


ne comporte pas dentit dassociation.
Si. lassociation. de. degr. suprieur. ne. comporte. pas. dentit. dassociation,.
une.table.fille.est.tout.de.mme.drive.de.lassociation,.sans.attribut.propre ..
La.table.porte.le.nom.de.lassociation ..Sa.cl.primaire.et.les.multiplicits.des.
associations.avec.les.tables.mres.sont.dtermins.selon.les.rgles.qui.sappliquent..une.table.fille.drive.dune.entit.dassociation.prsente.sur.une.
association.de.degr.suprieur ..
Cependant,.une.diffrence.importante.est..prendre.en.considration ..
Si.les.multiplicits.maximales.sont..plusieurs.sur.tous.les.arcs.de.lassociation,.
la.table.fille.pourrait.avoir.une.cl.primaire.compose.qui.nest.pas.valide ..
Il.sagit.pour.le.modlisateur.danalyser.le.contexte.et.de.tenter.dtablir.si.
elle.est.acceptable ..En.cas.de.doute,.il.aura..appliquer.lastuce.vue.plus.tt.
concernant. les. associations. binaires. plusieurs plusieurs. sans. entit. dassociation. et. consistant. . crer. une. cl. primaire. simple. et. artificielle. avec. la.
mention.{PK.auto},.tout.en.conservant.dans.la.table.fille.les.cls.primaires.
des. tables. mres. mais. uniquement. . titre. de. cls. trangres. avec. mention.
{FK}{Cascade} .
La.figure.2-28.montre.un.modle.conceptuel.avec.association.de.degr.
suprieur.sans.entit.dassociation.et.o.on.retrouve.au.moins.une.multiplicit.maximale.1 ..On.peut.donc.effectuer.une.simplification.de.la.cl.primaire ..
La. table. fille. nomme. Comporte. aura. une. cl. primaire. combinant. les. cls.
primaires.des.autres.tables. Rservation.et. Vol ..
Dans. le. modle. relationnel. driv,. illustr. . la. figure. 2-29,. on. notera.
que. la. cl. primaire. de. la. table. mre. Tarif,. Code de tarif,. est. tout. de. mme.
copie.dans.la.table.fille. Comporte ..Bien.que.cl.trangre,.elle.ne.constitue.

11

Le modle logique de donnes

cependant.pas.un.lment.de.la.cl.primaire.compose.de.cette.dernire.car.
la. multiplicit. maximale. de. son. ct. est. 1 .. De. plus. la. mention. {Cascade}.
nest pas prsente,.une.consquence.de.la.simplification .
Puisque.quune.multiplicit.maximale.de.1.est.prsente.sur.un.des.arcs.
de. lassociation,. il. ny. a. pas. lieu. de. crer. une. cl. primaire. artificielle .. La.
combinaison.des.attributs. No rservation.et. No vol.assure.lunicit.daccs..
une.ligne.de.la.table .
figuRe 2-28 Modle conceptuel avec une association de degr suprieur
Rservation

Vol

No rservation : {Unique}
Date rservation
Prix total
Paiement effectu?

No du vol : {Unique}
*
1.. Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive

0..
*

Comporte

1 . .1

Tarif
Code de tarif : {Unique}
Conditions

figuRe 2-29 Modle relationnel driv du modle 2-28


Rservation
No rservation : {PK}
Date rservation
Prix total
Paiement effectu?
No client : {FK}
1..1
0..*
Comporte
No rservation : {PK, FK}{Cascade}
No vol : {PK, FK}{Cascade}
Code de tarif : {FK}
0..*

0..*
1..1

1..1

Vol
Tarif

Code de tarif : {PK}


Conditions

No du vol : {PK}
Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive

1

Conception de bases de donnes avec UML

Il.y.a.lieu.de.rappeler.que.toutes.les.associations.de.la.table.fille.sont.
1 . .1. ct. mre. et. 0 . .*. ct. fille .. Il. sagit. dune. rgle. incontournable.:. toute.
association.de.degr.suprieur,.quelle.porte.une.entit.dassociation.ou.non,.
donne. lieu. . une. table. fille. dont. les. associations. portent. des. multiplicits.
1 . .1.ct.mre.et.0 . .*.ct.fille .
Si.les.multiplicits.maximales.avaient.t.plusieurs.sur.tous.les.arcs.du.
modle.conceptuel,.la.table.Comporte.exigerait.probablement.une.cl.primaire.
simple.et.artificielle,.No comporte {PK.auto},.avec.les.attributs.No rservation,.
No vol.et. Code tarif.portant.tous.la.mention.{FK}{Cascade} ..Cest.la.responsabilit.du.modlisateur.dtablir.la.validit.de.la.cl.primaire.compose.et.
de.la.remplacer.le.cas.chant.par.une.cl.simple .
Ces. deux. illustrations. portant. sur. la. conversion. dune. association. de.
degr. suprieur. montre. la. relative. complexit. des. rgles. de. drivation. des.
tables.et.des.associations.qui.sappliquent.dans.un.tel.cas ..Nous.ne.saurons.
trop.insister.sur.limportance.de.dcomposer.une.association.de.degr.suprieur.qui.comporte.une.multiplicit.maximale.un.ou.qui.montre.une.dpendance.fonctionnelle.entre.deux.entits.associes,.pour.rduire.au.minimum.
le.nombre.dassociations.de.degr.suprieur.et.faire.en.sorte.que.celles.qui.
ne. peuvent. tre. dcomposes. ne. portent. quune. multiplicit. maximale.
plusieurs .

liminer les multiplicits maximales valant 1 par dcomposition des associations


de degr suprieur : Avant daborder la conversion dun modle conceptuel en son
pendant relationnel, il faut sassurer de la dcomposition des associations de degr
suprieur portant des multiplicits maximales de 1.

lassociation dhritage
Les.tables.drives.dune.association.ou.de.plusieurs.associations.dhritage.
rattaches.au.mme.supertype.seront.de.natures.fort.varies.selon.quil.y.a.
prsence. ou. non. de. contraintes. inter-associations. dans. le. modle.
conceptuel .
Le. tableau. 2-2. rsume. les. quatre. situations. possibles. et. la. nature. des.
tables.drives .
Nous.allons.illustrer..tour.de.rle.chaque.situation..laide.dun.exemple ..
Toutes.les.figures.montrent..gauche.un.modle.conceptuel.avec.une.ou.des.
associations.dhritage.et..droite.le.modle.relationnel.rsultant .

1

Le modle logique de donnes

TAbleAu 2-2

Tables drives selon la nature des contraintes sur les associations dhritage

Contrainte

Tables drives

Cl primaire

Cl trangre

Aucune

Une table mre pour le


supertype, une table fille
pour chaque sous-type.

Identifiant
du supertype
pour chaque
table.

Exclusion

Une table mre pour le


supertype, une table fille
pour chaque sous-type.

Identifiant
du supertype
pour chaque
table.

La cl primaire des tables


des sous-types est aussi
trangre avec intgrit
rfrentielle (ajout,
suppression, mise jour).
Multiplicits 1..1 ct
mre, 0..1 ct fille.
La cl primaire des tables
des sous-types est aussi
trangre avec intgrit
rfrentielle (ajout,
suppression, mise jour).
Multiplicits 1..1 ct
mre, 0..1 ct fille.
N/A

Un attribut prsent dans la table


mre spcifie le sous-type dune
ligne de la table le cas chant.
Totalit

Identifiant
du supertype.

Une seule table portant le nom


du supertype et regroupant
les attributs du supertype et
de tous les sous-types.
Un attribut boolen pour chaque
sous-type permettant dtablir
quels sous-types appartient
une ligne.

Partition

Une seule table portant le nom


du supertype et regroupant
les attributs du supertype et
de tous les sous-types.

Identifiant
du supertype.

N/A

Un attribut non nul prsent dans


la table spcifie le seul sous-type
admissible pour une ligne.
figuRe 2-30 Cas 1 : aucune contrainte

Employ

Employ

No matricule : {Unique}
Nom
Prnom

No matricule : {PK}
Nom
Prnom
1..1
0..1

Employ syndiqu

Employ syndiqu

No syndiqu
Taux cotisation syndicale

No matricule : {PK, FK}{Cascade}


No syndiqu
Taux cotisation syndicale

1

Conception de bases de donnes avec UML

Le.modle.2-30.ne.montre.quun.sous-type ..Si.lentit. Employ.devait.


avoir.plus.dun.sous-type,.chaque.sous-type.donnerait.lieu..une.table.avec.
la.cl.primaire. No matricule .
figuRe 2-31 Cas 2 : Contrainte dexclusion
Ordinateur

Ordinateur
No srie : {Unique}
Date achat
Prix

1..1
0..1

{EXCLUSION}
Portable
Type de batterie
No modle batterie
Taille cran
Poids

No srie : {PK}
Date achat
Prix
Sous-type : enum{Portable, Poste}

Poste de travail
Type de poste

1..1

0..1

Portable

Poste de travail

No srie : {PK, FK}{Cascade}


Type de batterie
No modle batterie
Taille cran
Poids

No srie : {PK, FK}{Cascade}


Type de poste

Puisquune.exclusion.impose.au.plus.un.seul.sous-type..une.occurrence.
du. supertype,. lattribut. Sous-type. permet. de. spcifier. le. sous-type. de. loccurrence ..Cet.attribut.peut.tre.nul.car.loccurrence.peut.nappartenir..aucun.
sous-type .
figuRe 2-32 Cas 3 : Contrainte de totalit
Ordinateur

Ordinateur

No srie : {Unique}
Date achat
Prix

No srie : {PK}
Date achat
Prix
Type cran
Dimension cran
Nom serveur
Capacit disque
Poste client?
Serveur?

{TOTALIT}
Poste client

Serveur

Type cran
Dimension cran

Nom serveur
Capacit disque

Une.contrainte.de.totalit.spcifie.quune.occurrence.du.supertype.peut.
avoir.les.attributs.de.tous.ses.sous-types.et.donc.tre.de.tous.les.sous-types.
. la. fois .. Deux. attributs. boolens,. Poste client ?. et. Serveur ?,. permettent.
dtablir.les.sous-types.auxquels.une.ligne.de.la.table.drive.appartient .

1

Le modle logique de donnes

figuRe 2-33 Cas 4 : Contrainte de partition


Employ
No matricule : {Unique}
Nom
Prnom

{PARTITION}
Employ rgulier
Salaire annuel

Employ occasionnel
Nombre heures/sem.
Taux horaire
Nombre semaines autorises

Employ
No matricule : {PK}
Nom
Prnom
Nombre heures/sem.
Taux horaire
Nombre semaines autorises
Salaire annuel
Sous-type : enum{Rgulier, Occasionnel}{Non nul}

Une. contrainte. de. partition. stipule. quune. occurrence. du. supertype.


doit.appartenir.obligatoirement..un.des.sous-types ..Do.la.prsence.dun.
attribut.discriminant.obligatoire,. Sous-type,.qui.rattache.loccurrence..un.
des.deux.sous-types.admissibles .

les contraintes inter-associations


Seules.les.contraintes.inter-associations.sur.lhritage.ont.un.impact.sur.les.
tables.drives.du.modle.conceptuel.comme.nous.lavons.vu..la.rubrique.
prcdente ..Les.contraintes.inter-associations.sur.les.associations.binaires.ne.
sont.prises.en.compte.que.pour.la.ralisation.du.modle.physique.qui.dcoule.
du. modle. relationnel .. De. manire. . simplifier. le. modle. relationnel,. les.
contraintes.inter-associations.sur.les.associations.binaires.ne.sont.pas.rintroduites.dans.le.modle.relationnel ..Nous.aurons.le.loisir.dtudier.au.chapitre.3.limpact.des.contraintes.inter-associations.sur.le.modle.physique.de.
donnes .

cAs de ModlisATion logique des donnes


Nous.dbutons.cette.section.en.proposant.un.tableau.de.synthse.des.rgles.
de.drivation ..Ce.tableau.sera.utilis.dans.les.tudes.de.cas.pour.tablir.une.
dmarche.systmatique.de.drivation.des.tables.et.des.associations.menant.
.un.modle.relationnel.complet.et.valide .

1

TAbleAu 2-3

Conception de bases de donnes avec UML

Tableau de synthse sur les rgles de drivation du modle logique

Rgle et objet
de la rgle

Tables drives

Association
entre les tables

Intgrit
rfrentielle

2-1 Entit forte

Une table avec lidentifiant de


lentit comme cl primaire.

N/A

N/A

2-2 Entit
dassociation

Une table fille pour lentit


dassociation. Une table mre pour
chacune des entits associes.
La cl primaire de la fille est la
combinaison des cls primaires
des tables mres. Cette cl
primaire peut tre simplifie
une seule fois si un arc comporte
une multiplicit maximale de 1.

Pour une association


binaire : Deux associations
comportant toutes des
multiplicits 1..1 du ct
de chaque table mre ;
du ct de la table fille les
multiplicits sont reprises
du modle conceptuel.
Il sagit dans chaque cas
des multiplicits prsentes
la terminaison darrive
de lassociation au modle
conceptuel.
Pour une association
de degr suprieur : N
associations comportant
toutes des multiplicits
1..1 du ct dune table
mre et 0..* ct de
la table fille.

Toutes les cls


primaires des tables
mres copies dans
la table fille sont des
cls trangres avec
intgrit rfrentielle
en ajout, suppression
et mise jour
(mention {Cascade}),
sauf dans le cas dune
simplification o la cl
trangre retire de
la cl de la table fille
assure lintgrit
rfrentielle en ajout
seulement (pas de
mention {Cascade}).

2-3 Association
de composition

Une table mre pour le composite


et une table fille pour le
composant.
La cl primaire de la table fille
combine son identifiant et la cl
primaire de la mre.

Lassociation porte les


multiplicits 1..1 du ct
de la table mre et du ct
fille, les multiplicits
prsentes au modle
conceptuel du ct de
lentit composant.

La portion de la cl
primaire de la table
fille provenant de la
table mre est une cl
trangre avec
intgrit rfrentielle
en ajout, suppression
et mise jour
(mention {Cascade}).

2-4 Association
dhritage

La nature de la ou des tables


drives dpend de la prsence
dune contrainte inter-association.
(voir tableau 2-2)
Dans certains cas, un ou des
attributs de la seule table drive
servent tablir le ou les soustypes dun tuple.

En absence de contrainte
inter-association ou en
prsence de contrainte
dexclusion, toutes les
associations portant des
multiplicits 0..1-1..1, 1..1
sont du ct de la table
mre.
Pour les autres
contraintes, aucune
association est prsente
puisquune seule table est
drive.

En absence de
contrainte interassociation ou en
prsence de contrainte
dexclusion, la cl
primaire de la table
fille provenant de la
table mre est une cl
trangre avec
intgrit rfrentielle
en ajout, suppression
et mise jour
(mention {Cascade}).

2-5 Association
binaire, cas 1-1

La table retenue comme table fille


Multiplicits reprises du
sera celle drive de la seule entit modle conceptuel.
marque dune multiplicit
minimale 0, ou la seule comportant
une autre association. Si aucune
des deux entits ne rencontre
seule une de ces deux conditions,
la table mre est choisie
arbitrairement.

La cl primaire de la
table mre est une cl
trangre dans la table
fille avec intgrit
rfrentielle applique
en ajout seulement
(pas de {Cascade}.

1

Le modle logique de donnes

TAbleAu 2-3

Tableau de synthse sur les rgles de drivation du modle logique (suite)

Rgle et objet
de la rgle

Tables drives

Association
entre les tables

Intgrit
rfrentielle

2-6 Association
binaire, cas 1-*

La table retenue comme table fille


est celle drive de lentit ct
plusieurs.

Multiplicits reprises du
modle conceptuel.

La cl primaire de la
table mre est une cl
trangre dans la table
fille avec intgrit
rfrentielle applique
en ajout seulement
(pas de mention
{Cascade}.

2-7 Association
binaire, cas *-*

Une table fille ne comportant


aucun attribut propre est drive
de lassociation et elle porte son
nom. Une table mre pour chacune
des deux entits associes. La cl
primaire de la fille est la
combinaison des deux cls
primaires des tables mres. Elle
pourrait selon le contexte ne pas
tre valide. Le cas chant une cl
primaire simple et artificielle avec
la mention {PK auto} est substitue
la cl primaire compose.

Deux associations
comportant toutes des
multiplicits 1..1 du ct
de la table mre ; du ct
de la table fille les
multiplicits sont reprises
du modle conceptuel.
Il sagit dans chaque cas
des multiplicits prsentes
la terminaison darrive
de lassociation au modle
conceptuel.

Les cls primaires des


tables mres copies
dans la table fille sont
des cls trangres
avec intgrit
rfrentielle en ajout,
suppression et mise
jour (mention
{Cascade})

2-8 Association
rflexive

Si elle comporte une entit


dassociation, la rgle 2-2 donne
plus haut sapplique. Sinon les
rgles dune association binaire
1-1, 1-*, *-* sappliquent selon
le cas.

2-9 Association
de degr
suprieur

Une table fille est cre pour


lassociation. Si lassociation est
dote dune entit dassociation,
ses attributs sont ajouts la table
fille. Sinon la table fille ne sera
dote daucun attribut propre
et elle portera le nom
de lassociation.
Une table mre est drive pour
chacune des n entits associes.
La cl primaire de la fille est la
combinaison des cls primaires
des tables mres et si une
multiplicit maximale un est
prsente sur un des arcs, la cl
primaire peut tre simplifie
quune seule fois.
Si les multiplicits maximales
sont toutes plusieurs et que
lassociation ne dispose pas
dentit dassociation, la cl
primaire compose pourrait selon
le contexte ne pas tre valide.
Le cas chant une cl primaire
simple et artificielle avec la
mention {PK auto} est substitue
la cl primaire compose.

N associations
comportant toutes des
multiplicits 1..1 du ct
dune table mre et 0..*
du ct de la table fille.

Les cls primaires des


tables mres copies
dans la table fille sont
des cls trangres
avec intgrit
rfrentielle en ajout,
suppression et mise
jour (mention
{Cascade}), sauf dans
le cas dune
simplification o la cl
trangre retire de la
cl de la table fille
assure lintgrit
rfrentielle en ajout
seulement (pas de
mention {Cascade})

1

Conception de bases de donnes avec UML

La.dmarche.prconise.pour.assurer.le.passage.du.modle.conceptuel.
au.modle.relationnel.reprend.les.lments.du.tableau.2-3.:
1 ..Appliquer. systmatiquement. la. rgle. de. modlisation. conceptuelle. 1-5.
visant..dcomposer.les.associations.de.degr.suprieur.sil.y.a.lieu.;
2 ..Convertir.les.associations.dhritage.;.
3 ..Convertir.les.entits.fortes.qui.restent.;
4 ..Convertir.les.associations.de.composition.;
5 ..Convertir. les. entits. dassociation. tant. sur. les. associations. binaires. que.
sur.celles.de.degr.suprieur.;
6 ..Convertir.les.associations.binaires.restantes.et.les.associations.rflexives.;
7 ..Convertir.les.associations.de.degr.suprieur.restantes .
Les.cas.qui.suivent.sont.tous.tirs.de.ceux.discuts.au.chapitre.1 ..On.y.
explique.de.manire.dtaille.lapplication.des.rgles.de.drivation.du.modle.
relationnel. . partir. dun. modle. conceptuel. introduit. au. chapitre.
prcdent .

1

Le modle logique de donnes

Cas 2-1 SOCIT ET DPARTEMENT


Traduire ce modle conceptuel en son pendant relationnel tout en appliquant les rgles de
drivation appropries.
Contrle

Socit
Nom socit : {Unique}

1..1

Dpartement

1..*

No dpartement : {Unique}

1..1
Employ dans
1..*
Employ

1..1

No employ : {Unique}
0..*

Sous les ordres de

Le modle ne comporte que des entits fortes dont on drive trois tables.
Socit

Dpartement

Nom socit : {PK}

No dpartement : {PK}

Employ
No employ : {PK}
Nom employ
Prnom employ

10

Conception de bases de donnes avec UML

Une association binaire rflexive un plusieurs donne lieu une table associe
elle-mme.
Dpartement

Socit

No dpartement : {PK}
Nom socit : {FK}

Nom socit : {PK}

Employ
No employ : {PK}
Nom employ
Prnom employ
No employ patron : {FK}
No dpartement : {FK}

1..1

0..*

Lassociation Contrle et lassociation Employ dans sont toutes deux de type binaire
table Dpartement est la fois fille pour lassociation Contrle et mre
pour lassociation Employ dans.
un plusieurs. La

Dpartement

Socit
Nom socit : {PK}

1..1

1..*

1..*

No dpartement : {PK}
Nom socit : {FK}
1..1

Employ
No employ : {PK}
Nom employ
Prnom employ
No employ patron : {FK}
No dpartement : {FK}

1..1

0..*

Cela explique que sa cl primaire No dpartement est reproduite comme cl trangre


dans la table Employ et quelle possde une cl trangre, Nom socit, soit la cl
primaire de sa table mre Socit.

11

Le modle logique de donnes

Cas 2-2 LOCATEUR DABRIS


Traduire ce modle conceptuel en son pendant relationnel tout en appliquant les rgles de
drivation appropries.
Contenu contrat

Composition module

Nombre module

Nombre composant

0..* Comporte 1..*

Contrat
No contrat : {Unique}

Module
Code module : {Unique}
Prix location

1..*

Constitu de
0..*

1..*

Composant
Code composant : {Unique}
Description composant
1..*

Sign par

1..1

Offert par
1..*

Client
No client : {Unique}
Nom client
Prnom client

Fournisseur
No fournisseur : {Unique}
Nom fournisseur

Le modle comporte cinq entits fortes et deux faibles, les entits dassociation

Contenu contrat et Composition module. Cinq tables sont drives des entits fortes.
Contrat
No contrat : {PK}

Module

Composant

Code module : {PK}


Prix location

Code composant : {PK}


Description composant

Client
No client : {PK}
Nom client
Prnom client

Fournisseur
No fournisseur : {PK}
Nom fournisseur

Les entits dassociation, des entits faibles, donnent lieu deux tables filles, Contenu
contrat et Composition module, comportant une cl primaire compose de celles de
leurs mres dotes des contraintes dintgrit appropries. Les multiplicits doivent tre 1..1
systmatiquement du ct des tables mres. Les multiplicits du ct de la table fille sont
dtermines par les multiplicits prsentes sur les terminaisons darrive dans lassociation
au modle conceptuel.

1

Conception de bases de donnes avec UML

Quant lentit dassociation sur Comporte, si la lecture de lassociation est faite de


Contrat vers Module, la terminaison darrive montre des multiplicits 1..*. La multiplicit
1..* sera donc prsente du ct de la table fille sur lassociation qui la relie la table Contrat.
Si la lecture de lassociation est faite de Module vers Contrat, la terminaison darrive
montre des multiplicits 0..*. La multiplicit 0..* sera donc prsente du ct de la table fille
sur lassociation qui la relie la table Module.
1..1

Contrat

1..1

No contrat : {PK}
No client : {FK}

Module

Composant

Code module : {PK}


Prix location

Code composant : {PK}


Description composant

1..1

1..1

1..*

1..1

1..*
1..*

0..*

1..*

0..*

Client

Contenu contrat

Composition module

No client : {PK}
Nom client
Prnom client

No contrat : {PK, FK}{Cascade}


Code module : {PK, FK}{Cascade}
Nombre module

Code module : {PK, FK}{Cascade}


Code composant : {PK, FK}{Cascade}
Nombre composant

1..1

Offert par
Code composant : {PK, FK}{Cascade}
No fournisseur : {PK, FK}{Cascade}
1..1

1..*

Fournisseur
No fournisseur : {PK}
Nom fournisseur

On effectue la mme rflexion pour lentit dassociation sur Constitu de. Si la lecture
de lassociation est faite de Module vers Composant, la terminaison darrive montre des
multiplicits 1..*. La multiplicit 1..* sera donc prsente du ct de la table fille sur lassociation
qui la relie la table Module. Si la lecture de lassociation est faite de Composant vers
Module, la terminaison darrive montre des multiplicits 0..*. La multiplicit 0..* sera donc
prsente du ct de la table fille sur lassociation qui la relie la table Composant.
Lassociation binaire un plusieurs Sign par tablit que Client doit agir comme
table mre, do la prsence de sa cl dans la table Contrat comme cl trangre.
Lassociation binaire Offert par, de type plusieurs plusieurs, exige une table fille
combinant les cls primaires des tables Composant et Fournisseur. La multiplicit est
1..* pour les deux associations du ct de la table fille. La cl primaire compose de cette
table est valide ; elle ne peut avoir de doublon.

1

Le modle logique de donnes

Cas 2-3 VIDO CLUB


Traduire ce modle conceptuel en son pendant relationnel tout en appliquant les rgles de
drivation appropries.
Magasin
No agence : {Unique}
No civique
Rue
Ville
Code postal
No tlphone

Employ
Embauche
1..1
0..1

No employ : {Unique}
Nom employ
Prnom employ
Salaire employ

1..*

Occupe
0..*

1..1

Poste
Nom fonction : {Unique}

Gr par
1..1

1..1
Possde

Ralisateur

Acteur

Nom ralisateur : {Unique}

Nom acteur : {Unique}

Location
No location : {Unique}
Date location
Date restitution

1..*
Membre
No membre : {Unique}
Nom membre
Prnom membre
No civique
Rue
Ville
Code postal
Date d'inscription

0..*

Ralise

0..*
Relative

Effectue
1..1
1..1

1..*
Comporte

1..1
1..*

0..*

Cassette
Film
No cassette : {Unique} Enregistre
No catalogue : {Unique}
Montant location
Catgorie
Prix d'achat
0..* 1..1 Titre film
Lou?

Toutes les entits sont fortes et les associations binaires sont toutes de type un
sauf deux exceptions, Gr par, qui est de type un un et Comporte de type
plusieurs plusieurs.
plusieurs,

Dans le cas de Gr par, la multiplicit minimale est de 0 du ct de Magasin, la


table drive Magasin devient donc la table fille pour cette association.
Quant lassociation Comporte de type plusieurs plusieurs, elle donne lieu
une table fille portant le nom de lassociation et dupliquant les cls primaires des tables Film
et Acteur titre de cls trangres. Le modle conceptuel montre que la destination darrive
de Comporte partir de Acteur porte 0..*. On retrouvera donc 0..* du ct de la table fille
pour lassociation la liant la table Acteur. Pour la lecture partir de lentit Film, la multiplicit 1..* est prsente. On retrouvera donc 1..* du ct de la table fille pour lassociation la
liant la table Film.
Elle possde une cl primaire compose valide : un acteur ne peut paratre deux fois
au gnrique du mme film. Lintgrit rfrentielle sapplique aux deux cls trangres en
ajout, en suppression et en mise jour (mention {Cascade}).

1

Conception de bases de donnes avec UML

Pour toutes les autres associations qui sont de type un plusieurs, les tables drives
du ct plusieurs sont des tables filles dupliquant titre de cl trangre la cl primaire de
leur table mre.
Magasin
No agence : {PK}
No civique
Rue
Ville
Code postal
No tlphone
No employ : {FK}

Employ
1..1

1..*

1..1

0..1

No employ : {PK}
Nom employ
Prnom employ
Salaire employ
No agence : {FK}
Nom fonction : {FK}

Poste
1..1

0..*

Nom fonction : {PK}


Acteur
Nom acteur : {PK}
1..1

0..*

1..1

1..*
Membre
No membre : {PK}
Nom membre
Prnom membre
No civique
Rue
Ville
Code postal
Date d'inscription
No agence : {FK}

Location

Ralisateur

Comporte

No location : {PK}
Date location
Date restitution
No membre : {FK}
No cassette : {FK}

Nom ralisateur : {PK}

Nom acteur : {PK, FK}{Cascade}


No catalogue : {PK, FK}{Cascade}

1..1

1..*

0..*

1..*

Cassette

0..*

1..1
1..1

No cassette : {PK}
Montant location
Prix d'achat
Lou?
No catalogue : {FK}

1..1
Film

0..*
1..1

No catalogue : {PK}
Catgorie
Titre film
Nom ralisateur : {FK}

1

Le modle logique de donnes

Cas 2-4 GESTION DE STAGE


Traduire ce modle conceptuel en son pendant relationnel tout en appliquant les rgles de
drivation appropries.
Stagiaire

Stage

No stagiaire : {Unique}
Nom stagiaire
Prnom stagiaire
Date naissance
1..*

No stage : {Unique}
Nom du stage
Session

S'inscrit
1..*

Concerne

1..1

Comporte

0..*

1..1

Professeur

Module

Comporte

No professeur : {Unique}
Nom professeur
Prnom professeur
1..1
Donne

No session : {Unique}
Date dbut session
Date fin session

1..*

1..*

0..*

Porte sur

1..1

1..*

No module : {Unique}
Titre du module

Prestation
No prestation : {Unique}
Date dbut
Date fin
Nombre d'heures

0..*

On ne retrouve dans ce modle conceptuel que des entits fortes, dont six tables sont
drives. On note par ailleurs la prsence de deux associations binaires plusieurs
plusieurs, Sinscrit et Comporte, qui donnent lieu deux tables filles. La table drive
de lassociation Sinscrit a pour nom Inscription, ce qui semble dans le contexte un
nom beaucoup plus appropri que Sinscrit . Celle drive de Comporte porte le nom
de lassociation, une convention acceptable dans ce cas. Le nombre total de tables est donc
de huit.
Les tables drives des associations plusieurs plusieurs ont une cl primaire
compose des cls primaires des tables mres. Leur cl primaire est valide. Chaque lment
de la cl compose est aussi une cl trangre sur laquelle lintgrit rfrentielle sapplique
en ajout, en suppression et en mise jour (mention {Cascade}).
La table Prestation comporte trois cls trangres car lentit dont elle drive possde
trois associations un plusieurs et les multiplicits maximales du ct Prestation sont
toutes plusieurs(*). Prestation agit donc comme table fille pour les trois associations.

1

Conception de bases de donnes avec UML

La table Session est table fille pour lassociation Concerne.


1..1

Stagiaire

Stage

No stagiaire : {PK}
Nom stagiaire
Prnom stagiaire
Date naissance

No stage : {PK}
Nom du stage
1..1
1..1

Session
Inscription
1..*

No stagiaire : {PK, FK}{Cascade}


No session : {PK, FK}{Cascade}

1..*

1..1

Professeur

1..*
0..*

0..*

Comporte
No module : {PK, FK}{Cascade}
No stage : {PK, FK}{Cascade}

1..1

No professeur : {PK}
Nom professeur
Prnom professeur
1..1

No session : {PK}
Date dbut session
Date fin session
No stage : {FK}

1..*

1..*

Prestation

1..1

No prestation : {PK}
Date dbut
Date fin
Nombre d'heures
No module : {FK}
No session : {FK}
No professeur : {PK}

Module
0..*

1..1

No module : {PK}
Titre du module

1

Le modle logique de donnes

Cas 2-5 DOSSIER PATIENT


Traduire ce modle conceptuel en son pendant relationnel tout en appliquant les rgles de
drivation appropries.
Patient
No dossier : {Unique}
Nom patient
Prnom patient
Date de naissance
No civique
Rue
Ville
Province
Code postal
Nom mre

Effectue
1..1

0..*
Possde

Consultation

1..*

Date consultation

1..1

Sjour

Mdecin
No mdecin : {Unique}
Nom mdecin
Prnom mdecin

Consult lors de
0..*

0..*

No sjour : {Unique}
Motif hospitalisation
Date admission
Date cong

Justifi par
0..*
1..1

1..1

0..1
Donne lieu
Diagnostic
0..*
Effectue

Traitement patient
1..*

Traitement

Appartient

Type traitement : {Unique}


1..1

Nom diagnostic : {Unique}

No traitement : {Unique}
Date
Dure
0..*

Ce modle comporte six entits fortes et une entit faible : Consultation. Le modle
relationnel driv comporte donc sept tables.

1

Conception de bases de donnes avec UML

La table Consultation est une table fille associe aux tables Mdecin et Sjour. Sa
cl primaire est compose des cls primaires des deux tables mres. Chaque lment de
la cl compose est aussi cl trangre sur laquelle lintgrit rfrentielle sapplique en
ajout, en suppression et en mise jour (mention {Cascade}).
lexception de lassociation Consult lors de qui comporte une entit faible dont
la table fille Consultation est drive, toutes les associations sont de type binaire une
plusieurs. Les tables filles sont du ct plusieurs pour ce type dassociation. Il sagit des
tables Patient, Sjour, Traitement patient. Cette dernire drive dune entit comportant
trois associations avec des multiplicits maximales plusieurs de son ct. Elle possde en
consquence trois cls trangres.
Patient
No dossier : {PK}
Nom patient
Prnom patient
Date de naissance
No civique
Rue
Ville
Province
Code postal
Nom mre
No mdecin : {FK}

1..1

1..*

0..*
1..1

Sjour

Mdecin
No mdecin : {PK}
Nom mdecin
Prnom mdecin

1..1
1..1
0..*

1..1

0..*

No sjour : {PK}
Motif hospitalisation
Date admission
Date cong
No dossier : {FK}
Nom diagnostic : {FK}

Consultation

0..1

No mdecin : {PK, FK}{Cascade}


No sjour : {PK, FK}{Cascade}

0..*

Traitement
Type traitement : {PK}

1..1

0..*

1..1
Diagnostic

Nom diagnostic : {PK}

Traitement patient
1..*

0..*

No traitement : {PK}
Date
Dure
No sjour : {FK}
No mdecin : {FK}
Type traitement : {FK}

1

Le modle logique de donnes

Cas 2-6 MEMBRE CLUB DE TENNIS


Traduire ce modle conceptuel en son pendant relationnel tout en appliquant les rgles de
drivation appropries.
Tournoi
Nom tournoi : {Unique}
Date dbut tournoi
1

Nature du match
Dnomination de la nature : {Unique}

Possde
1..1
1..*
Membre
No membre : {Unique}
Nom membre
Prnom membre
Sexe membre

Participe

Match

0..*

0..*

No match : {Unique}
Date du match

0..*
0..*

Rsultat
Gagn?

Possde
Type de match
Dnomination du type : {Unique}

1..1

Le modle comporte quatre entits fortes et deux entits faibles. Rsultat est une
entit dassociation et Match, une entit composant.

Match donne lieu une table dont la cl primaire combine son identifiant, No match,
et la cl primaire de son composite Tournoi : Nom tournoi. Nom tournoi est aussi une
cl trangre sur laquelle sapplique lintgrit rfrentielle en ajout, en suppression et en
mise jour (mention {Cascade}).
Tournoi
Nom tournoi : {PK}
Date dbut tournoi
Rsultat

1..1

No membre : {PK, FK}{Cascade}


No match : {PK, FK}{Cascade}
Gagn?

1..*

0..*

Membre
No membre : {PK}
Nom membre
Prnom membre
Sexe membre

1..1

Nature du match
1..1

Dnomination de la nature : {PK}

Match

0..*

1..1

Nom tournoi : {PK, FK}{Cascade}


No match : {PK}
Date du match
Dnomination de la nature : {FK}
Dnomination du type : {FK}

0..*

0..*
Type de match
1..1

Dnomination du type : {PK}

10

Conception de bases de donnes avec UML

Rsultat donne lieu une table fille cre selon les rgles habituelles de drivation
pour une entit dassociation.
Puisque lentit Match comporte de plus deux associations binaires de type un
appeles toutes les deux Possde, deux cls trangres doivent tre prsentes
dans cette table fille pour assurer les associations.
plusieurs

11

Le modle logique de donnes

Cas 2-7 SJOUR DANS UN TABLISSEMENT JEUNESSE


Traduire ce modle conceptuel en son pendant relationnel tout en appliquant les rgles de
drivation appropries.
Reprsentant
No reprsentant : {Unique}
Nom reprsentant
Prnom reprsentant
Tlphone reprsentant
Code parent
Principal?

Sjour
Reprsente
0..*

1..*
1..*

1..*
Se fait dans

Effectue
1

Jeune

tablissement

0..*
1..1

.*
1.

No jeune : {Unique}
Nom jeune
Prnom jeune
No civique
Rue
Ville
Province
Code postal
Date naissance
0..*
Suivi

No sjour : {Unique}
Date d'arrive
Date de dpart

Absence
No absence : {Unique}
Date de dbut
Date de retour
Raison

1..1

Nom tablissement : {Unique}


No civique
Rue
Ville
Province
Code postal
Directeur
Tlphone tab.
Mandat judiciaire
Type de mandat

Fait le suivi de

Dbut suivi
1..*
Travailleur social
No travailleur : {Unique} 1..*
Nom travailleur
Prnom travailleur
Tlphone travailleur

Juge
0..* No juge : {Unique}
Nom juge
Prnom juge
Tlphone juge

Le modle comporte six entits fortes et trois entits faibles. Aucune association dhritage nest prsente. Les tables drives des entits fortes sont montres ci-aprs. Quant
aux entits faibles, Suivi et Mandat judiciaire, elles sont des entits dassociation et
Absence est une entit composant.

1

Conception de bases de donnes avec UML

Reprsentant
Sjour

No reprsentant : {PK}
Nom reprsentant
Prnom reprsentant
Tlphone reprsentant
Code parent
Principal?

No sjour : {PK}
Date d'arrive
Date de dpart

tablissement

Jeune

Nom tablissement : {PK}


No civique
Rue
Ville
Province
Code postal
Directeur
Tlphone tab.

No jeune : {PK}
Nom jeune
Prnom jeune
No civique
Rue
Ville
Province
Code postal
Date naissance
Juge
Travailleur social
No travailleur : {PK}
Nom travailleur
Prnom travailleur
Tlphone travailleur

No juge : {PK}
Nom juge
Prnom juge
Tlphone juge

Lassociation de composition est dabord considre. Lassociation de composition


donne lieu une table Absence associe la table Sjour dont la cl primaire est reproduite dans Absence. No Sjour sajoute donc lattribut No absence pour constituer la
cl primaire compose de Absence. La multiplicit 0..* du ct du composant est reprise
du modle conceptuel.
Les entits dassociation seront traites ensuite. Lentit dassociation Suivi et lassociation de degr suprieur Mandat judiciaire ne comportent que des multiplicits maximales
plusieurs et de plus Mandat judiciaire nest pas dcomposable. La rgle 2-2 sera donc
applique sans possibilit de simplification de la cl primaire compose dans chaque cas.
Des tables seront drives de Suivi et Mandat judiciaire comportant une cl primaire
compose des cls primaires des tables drives des entits associes. Leur attribut propre
est prsent dans la table.
La multiplicit du ct de la table Suivi est reprise du modle conceptuel. Selon la
convention habituelle, au modle conceptuel la lecture de lassociation de Jeune vers
Travailleur social montre la multiplicit 1..* sur la terminaison darrive. La multiplicit du
ct de la table fille pour lassociation la liant la table Jeune sera donc 1..*. La lecture
dans lautre sens montre 0..*. La multiplicit du ct de la table fille pour lassociation la liant
la table Travailleur social sera donc 0..*. Du ct des tables mres, les multiplicits sont
toutes 1..1.

1

Le modle logique de donnes

Mise en garde : les multiplicits du ct de la table Mandat judiciaire ne sont pas


du modle conceptuel. Elles doivent toutes tre 0..* car il sagit dune association
de degr suprieur. Du ct des tables mres cependant, elles sont toutes 1..1.
reprises

Lassociation binaire Reprsente est du type plusieurs plusieurs. Une table en


est drive dont la cl compose est valide. Les autres associations binaires sont du type
un plusieurs, ce sont Effectue et Se fait dans. Elles gnrent deux cls trangres
dans la table fille Sjour.
Reprsente
1..1

No reprsentant : {PK, FK}{Cascade}


No jeune : {PK, FK}{Cascade}
1..*

Reprsentant
No reprsentant : {PK}
Nom reprsentant
Prnom reprsentant
Tlphone reprsentant
Code parent
Principal?

0..*

Sjour
No sjour : {PK}
Date d'arrive
Date de dpart
No jeune : {FK}
Nom tablissement : {FK}

1..*

1..1
1..*

1..1
0..*

Jeune
No jeune : {PK}
Nom jeune
Prnom jeune
No civique
Rue
Ville
Province
Code postal
Date naissance

tablissement

Absence
1..1

No absence : {PK}
No sjour : {PK, FK}{Cascade}
1..1
Date de dbut
Date de retour
Raison

1..1

Nom tablissement : {PK}


No civique
Rue
Ville
Province
Code postal
Directeur
Tlphone tab.

1..1

Suivi
No jeune : {PK, FK}{Cascade}
No travailleur : {PK, FK}{Cascade}
Dbut suivi

Mandat judiciaire

1..*
0..* 1..1

0..*

Travailleur social
No travailleur : {PK}
Nom travailleur
Prnom travailleur
Tlphone travailleur

No jeune : {PK, FK}{Cascade}


No juge : {PK, FK}{Cascade}
No travailleur : {PK, FK}{Cascade}
Type de mandat
0..*

1..1

0..*

Juge
No juge : {PK}
Nom juge
Prnom juge
Tlphone juge
1..1

Ce cas dmontre certaines limites quant lexpression dans le modle relationnel des
contraintes de multiplicit dune association de degr suprieur non dcomposable. En effet
les multiplicits minimales du ct de la table fille seront systmatiquement 0 et nont rien
voir avec celles du modle conceptuel. La raison en est que la smantique des multiplicits
dune association de degr suprieure en UML na pas son quivalent dans le modle relationnel. Ce nest pas le cas des associations binaires, rflexives ou non, o les multiplicits
peuvent tre reprises telles quelles dans le modle relationnel.

1

Conception de bases de donnes avec UML

Cas 2-8 CLUB OLYMPIQUE


Traduire ce modle conceptuel en son pendant relationnel tout en appliquant les rgles de
drivation appropries.
Membre
No membre : {Unique}
Nom membre
Prnom membre

Inscription

Effectue
1..1

No inscription : {Unique}
Anne
Frais

1..*

0..*

Rfre

{SIMULTANIT}
Bnvole

Possde

Athlte
Sexe
Date de naissance

0..*

1..*

0..*
Appartient

Spcialit
Nom spcialit : {Unique}

1..*

1..1

Discipline
Nom discipline : {Unique}

Trois entits fortes sont prsentes, si on exclut Membre lie par une association
dhritage : Inscription, Spcialit et Discipline. On en drive trois tables.
Inscription
No inscription : {PK}
Anne
Frais

Spcialit

Discipline

Nom spcialit : {PK}

Nom discipline : {PK}

Les associations dhritage sont considres en premier lieu. Aucune contrainte interassociation nest prsente sur les associations dhritage. En vertu du tableau 2-2, la premire
rgle portant sur les associations dhritage sapplique : une table pour chaque entit. La cl
primaire des tables drives des sous-types possde comme cl primaire, une copie de la
cl primaire du supertype, soit No membre. Cette copie est aussi cl trangre avec intgrit
rfrentielle en ajout, suppression et mise jour.
Les associations liant les tables drives de lassociation dhritage portent systmatiquement les multiplicits 1..1 et 0..1. La multiplicit 1..1 est du ct de la table mre
Membre.

1

Le modle logique de donnes

Membre

Inscription

No membre : {PK}
Nom membre
Prnom membre

No inscription : {PK}
Anne
Frais

1..1

1..1
0..1

0..1
Athlte
Bnvole

No membre : {PK, FK}{Cascade}


Sexe
Date de naissance

No membre : {PK, FK}{Cascade}

Spcialit

Discipline

Nom spcialit : {PK}

Nom discipline : {PK}

Les associations binaires peuvent maintenant tre prises en considration. Possde


et Rfre sont du type plusieurs plusieurs et vont donner lieu deux nouvelles
tables.
Quant Appartient , de type un plusieurs, elle ncessite la copie de Nom
discipline dans la table fille Spcialit titre de cl trangre. Il en sera de mme pour
lassociation Effectue qui exige une copie de No membre dans la table Inscription.
Inscription

Membre
No membre : {PK}
Nom membre
Prnom membre
1..1

1..1

1..*

1..1

No inscription : {PK}
Anne
Frais
No membre : {FK}
Rfre

1..1

No inscription : {PK, FK}{Cascade}


Nom spcialit : {PK, FK}{Cascade}

0..*
0..1

1..1

0..1

0..*
Athlte
Bnvole

No membre : {PK, FK}{Cascade}

Spcialit

No membre : {PK, FK}{Cascade}


Sexe
Date de naissance
1..1

Nom spcialit : {PK}


Nom discipline : {FK}

1..*

0..*

Discipline
1..*

1..1

Nom discipline : {PK}

1..1

Possde
No membre : {PK, FK}{Cascade}
Nom spcialit : {PK, FK}{Cascade}

La contrainte inter-association de simultanit na pas dimpact sur le modle


relationnel.

1

Conception de bases de donnes avec UML

Cas 2-9 CLUB OLYMPIQUE, VERSION PaRtition


Traduire ce modle conceptuel en son pendant relationnel tout en appliquant les rgles de
drivation appropries.
Membre
No membre : {Unique}
Nom membre
Prnom membre

Inscription

Effectue
1..1

No inscription : {Unique}
Anne
Frais

1..*

0..*

Rfre

{PARTITION}
{SIMULTANIT}
Possde

Athlte

Bnvole

Sexe
Date de naissance

0..*

0..*
Appartient

Spcialit

1..*

Nom spcialit : {Unique}

1..*

1..1

Discipline
Nom discipline : {Unique}

Cette fois le modle montre des associations dhritage avec une contrainte de partition.
Ce type de contrainte indique que lentit Membre ne peut avoir doccurrences qui lui soient
propres. Les occurrences de Membre seront donc soit de type Bnvole, soit du type
Athlte mais jamais les deux la fois.
Une seule table sera drive des associations mme si trois entits sont en cause.
Elle portera le nom du supertype, comportera comme cl primaire lidentifiant du supertype
Membre, possdera les attributs combins de tous les sous-types et un attribut discriminant
et obligatoire indiquant le seul type quune ligne de cette table pourra avoir.
Membre
No membre : {PK}
Nom membre
Prnom membre
Sexe
Date de naissance
Type : enum{Bnvole, Athlte}{Non nul}

Inscription

1..1

1..*

No inscription : {PK}
Anne
Frais
No membre : {FK}
Rfre

1..1
1..1

0..*

No inscription : {PK, FK}{Cascade}


Nom spcialit : {PK, FK}{Cascade}

1..1

1..*
Possde

Spcialit

No membre : {PK, FK}{Cascade}


Nom spcialit : {PK, FK}{Cascade}

Nom spcialit : {PK}


Nom discipline : {FK}

0..*

1..1

0..*

Discipline
1..* 1..1

Nom discipline : {PK}

1

Le modle logique de donnes

Cas 2-10 CLUB OLYMPIQUE, VERSION Exclusion


Traduire ce modle conceptuel en son pendant relationnel tout en appliquant les rgles de
drivation appropries.
Membre

Inscription

Effectue

No membre : {Unique}
Nom membre
Prnom membre

1..1

No inscription : {Unique}
Anne
Frais

1..*

0..*

Rfre

{EXCLUSION}
0..*

{SIMULTANIT}
Possde

Athlte

Bnvole

Sexe
Date de naissance

0..*

Appartient

Spcialit

1..*

Nom spcialit : {Unique}

1..*

Discipline
Nom discipline : {Unique}

1..1

Le modle montre maintenant des associations dhritage avec une contrainte de


partition. Ce type de contrainte indique que lentit Membre peut avoir des occurrences qui
lui soient propres.
Les occurrences de Membre pourraient aussi tre de type Bnvole, ou du type
jamais les deux la fois.

Athlte mais

Membre

Inscription

No membre : {PK}
Nom membre
Prnom membre
Type : enum{Bnvole, Athlte}

No inscription : {PK}
Anne
Frais
No membre : {FK}

1..1

1..1

1..*

Rfre

1..1

1..1

No inscription : {PK, FK}{Cascade}


Nom spcialit : {PK, FK}{Cascade}

0..*
0..1

1..1

0..1

0..*
Athlte
Bnvole

No membre : {PK, FK}{Cascade}

Spcialit

No membre : {PK, FK}{Cascade}


Sexe
Date de naissance
1..1

Nom spcialit : {PK}


Nom discipline : {FK}
0..*

1..*
Possde

No membre : {PK, FK}{Cascade}


Nom spcialit : {PK, FK}{Cascade}

1..1

Discipline
1..*

1..1

Nom discipline : {PK}

1

Conception de bases de donnes avec UML

Une table est drive de chaque entit. La cl primaire des tables drives des soustypes possde comme cl primaire, une copie de la cl primaire du supertype, soit No
membre. Cette copie est aussi une cl trangre avec intgrit rfrentielle en ajout, suppression et mise jour. Un attribut de la table Membre, Type, stipule le sous-type auquel
une ligne de la table peut appartenir. Les associations liant les tables drives de lassociation
dhritage portent systmatiquement les multiplicits 1..1 et 0..1. 1..1 du ct de la table
mre Membre.

1

Le modle logique de donnes

Cas 2-11 TRANSPORTEUR ARIEN


Ce cas, et le cas 2-12 qui suit, dmontrent limportance de dcomposer les associations de
degr suprieur avant den driver le modle relationnel. Dans le cadre du prsent cas, les
associations de degr suprieur ne seront pas dcomposes avant dappliquer les rgles
de passage au modle relationnel.
Client

Passager

Bagage

1..1

Effectue

1..1

No passager : {Unique}
Nom passager
Prnom passager
Concerne Sexe
1..*

No bagage : {Unique}

1..1

No client : {Unique}
Nom client
Prnom client

1..1
Rservation

0..1

1..1

No rservation : {Unique}
Date rservation
Prix total
Paiement effectu?

0..*

Confirme par 0..*

Paiement

mis pour

1..*

1..1
met

Billet

No paiement : {Unique}
Date paiement
Montant paiement
Mode de paiement
0..*

1..*

No billet : {Unique}

1..*

Comporte

Enregistrement bagage
Enregistre

1..1

Fait par

No enregistrement : {Unique}
Date
Heure

Aroport
0..1

Code d'aroport : {Unique}


Ville

Quitte
1..1

No carte : {Unique}
Expiration
Nom du titulaire

1..1

1..
*

1..*

Carte de crdit

Arrive

Vol
1..1

No du vol : {Unique}
Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive
1..1

0..*
0..*
0..*

1..*
Employ
No employ : {Unique}
Date embauche

Responsabilit

0..*

Possde
Suivi de

Fait appel

Assur par

Type de responsabilit
Pilote

1..1

1..1

0..1
0..1

Retard

Avion

No retard : {Unique}
Minutes au dpart
Minutes l'arrive
Raison

No appareil : {Unique}
Fabricant
Modle
Date acquisition
Nombre de siges

Tarif

Annulation

Code de tarif : {Unique}


Conditions

No annulation : {Unique}
Raison

No licence : {Unique}
Date obtention licence
Sige
1

1..*

No sige : {Unique}
Classe

00

Conception de bases de donnes avec UML

La premire association prise en charge est lassociation dhritage. Aucune contrainte


ne la concerne. Une table est drive de chaque entit. Le supertype Employ donne lieu
une table mre et une association avec la table fille Pilote comportant les multiplicits
1..1 et 0..1.
Lassociation de composition est ensuite considre. Une table mre Avion est drive
ainsi que sa table fille Sige. Les multiplicits sont reprises intgralement du modle
conceptuel.
Les entits non impliques dans lhritage et la composition sont toutes des entits
fortes sauf Responsabilit, une entit dassociation. Une premire version du modle
relationnel driv est montre ci-aprs.
Client

Bagage

Passager

No client : {PK}
Nom client
Prnom client

No passager : {PK}
Nom passager
Prnom passager
Sexe

No bagage : {PK}

Rservation
No rservation : {PK}
Date rservation
Prix total
Paiement effectu?
Billet

Paiement

No billet : {PK}

No paiement : {PK}
Date paiement
Montant paiement
Mode de paiement

Enregistrement bagage
No enregistrement : {PK}
Date
Heure
Aroport
Code d'aroport : {PK}
Ville

Carte de crdit

Vol

No carte : {PK}
Expiration
Nom du titulaire

No du vol : {PK}
Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive

Employ
No employ : {PK}
Date embauche
1..1

0..1
Pilote
No employ : {PK, FK}{Cascade}
No licence
Date obtention licence

Retard
No retard : {PK}
Minutes au dpart
Minutes l'arrive
Raison

Tarif

Annulation

Code de tarif : {PK}


Conditions

No annulation : {PK}
Raison

Avion
No appareil : {PK}
Fabricant
Modle
Date acquisition
Nombre de siges

Sige

1..1 1..*

No appareil : {PK, FK}{Cascade}


No sige : {PK}
Classe

01

Le modle logique de donnes

La seule entit dassociation, Responsabilit, est son tour analyse. Elle donne
lieu une table fille Responsabilit associe deux tables mres : Vol et Employ. La
cl primaire combine No vol et No employ. Les multiplicits du ct de la table fille sont
ainsi dtermines : les multiplicits la terminaison darrive pour une lecture partir de
Vol sont 1..*, il faut retrouver 1..* du ct de la table fille pour lassociation avec la table Vol ;
les multiplicits la terminaison darrive pour une lecture partir de Employ sont 0..*, il
faut retrouver 0..* du ct de la table fille pour lassociation avec la table Employ.
Vol
No du vol : {PK}
Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive

1..1
1..1

1..*

0..*
Responsabilit

Employ
No employ : {PK}
Date embauche

No vol : {PK, FK}{Cascade}


No employ : {PK, FK}{Cascade}

Parmi les associations binaires restantes une seule est du type plusieurs plusieurs,
soit Concerne entre Rservation et Passager. La table fille Concerne en est drive.
Les autres sont du type un un ou un plusieurs. On retrouve dans ce modle plusieurs
associations un un o la participation est optionnelle dun seul ct (multiplicit minimale
0). Rappelons que la table drive de lentit o la multiplicit minimale est 0 agira comme
table fille pour cette association un un. Cest donc dans cette table quest dpose la cl
primaire de la table mre titre de cl trangre. Cest le cas de Paiement qui sera une
table fille pour Rservation pour assurer lassociation Confirme par.
Les associations de degr suprieur sont finalement considres. Prenons Enregistre
en premier lieu. Une table en est drive dont la cl primaire est la combinaison des quatre
cls primaires des tables associes dont chaque lment est une cl trangre. Or il existe
au moins un arc de lassociation avec multiplicit maximale de 1. Choisissons arbitrairement
larc menant vers Passager. On peut donc simplifier la cl primaire compose de la table
Enregistre en retirant No passager de la cl tout en la considrant comme cl trangre.
Mme sil existe dautres arcs avec multiplicit maximale 1, une seule simplification est
permise.
Par ailleurs, toutes les associations de la table Enregistre auront les multiplicits 1..1
du ct des tables mres et 0..* dautre part. Cest la rgle pour les associations de degr
suprieur. Le modle driv de cette association de degr suprieur est illustr ci-aprs. On
remarquera que lattribut No passager dans la table Enregistre ne fait pas partie de la cl
primaire la suite de sa simplification.

0

Conception de bases de donnes avec UML

Bagage

Passager
No passager : {PK}
Nom passager
Prnom passager
Sexe

No bagage : {PK}
1..1

1..1
0..*

0..*
Enregistre

No vol : {PK, FK}{Cascade}


No enregistrement : {PK, FK}{Cascade}
No bagage : {PK, FK}{Cascade}
No passager : {FK}{Cascade}
1..1

0..*

0..*

1..1
Vol
No du vol : {PK}
Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive

Enregistrement bagage
No enregistrement : {PK}
Date
Heure

Nous appliquons la mme dmarche de drivation pour lassociation de degr suprieure Comporte qui possde elle aussi un arc avec multiplicit maximale 1, larc menant
Tarif. Ce qui implique que la cl primaire de Tarif, Code de tarif, peut tre retire de la
cl primaire de la table Compose qui ne sera forme que des cls primaires des tables Vol
et Rservation. Toutes les associations de la table Comporte auront les multiplicits 1..1
du ct des tables mres et 0..* dautre part. Le modle driv est illustr ci-aprs.
Rservation
No rservation : {PK}
Date rservation
Prix total
Paiement effectu?
No client : {FK}
1..1
0..*
Comporte
No rservation : {PK, FK}{Cascade}
No vol : {PK, FK}{Cascade}
Code de tarif : {FK}
0..*

0..*
1..1

1..1

Vol
Tarif

Code de tarif : {PK}


Conditions

No du vol : {PK}
Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive

0

Le modle logique de donnes

Notons en terminant une particularit du modle conceptuel 2-11. Les entits Vol et
Aroport sont associes par deux associations binaires et Vol savre tre table fille dans
les deux cas. La cl primaire de Aroport doit en consquence y tre dpose sous deux
noms diffrents titre de cls trangres. Le modle final driv du modle conceptuel est
donn ci-aprs.
Client

Concerne

No client : {PK}
Nom client
Prnom client

No rservation : {PK, FK}{Cascade}


No passager : {PK, FK}{Cascade}

1..1

1..*
1..1

1..1

1..1

0..*

0..*

1..1
Enregistre
No vol : {PK, FK}{Cascade}
No enregistrement : {PK, FK}{Cascade}
No bagage : {PK, FK}{Cascade}
No passager : {FK}{Cascade}

1..*
Billet

Paiement
No paiement : {PK}
Date paiement
Montant paiement
Mode de paiement
No rservation : {FK}
No carte de crdit : {FK}

1..1

1..1
0..*

No rservation : {PK}
Date rservation
Prix total
Paiement effectu?
No client : {FK}

0..1

No bagage : {PK}

No passager : {PK}
Nom passager
Prnom passager
Sexe

Rservation
0..*

Bagage

Passager

1..*

1..1

1..1

0..*

No billet : {PK}
No passager : {FK}
No rservation : {FK}

1..*

0..*

0..*

1..1

Comporte

Enregistrement bagage

No rservation : {PK, FK}{Cascade}


No vol : {PK, FK}{Cascade}
Code de tarif : {FK}

No enregistrement : {PK}
Date
Heure
Aroport

0..*

0..*

1..1

1..1

Code d'aroport : {PK}


Ville

0..*
1..1

0..1

0..*

Vol

Carte de crdit
No carte : {PK}
Expiration
Nom du titulaire

1..1
1..1
Tarif

No du vol : {PK}
Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive
Code aroport quitte : {FK}
Code aroport arrive : {FK}
No appareil : {FK}
1..1

Code de tarif : {PK}


Conditions

1..1
1..1
0..*

1..*
1..1

Employ
No employ : {PK}
Date embauche

Responsabilit
No vol : {PK, FK}{Cascade}
No employ : {PK, FK}{Cascade}

1..1

0..*
0..1
0..1

Pilote
No employ : {PK, FK}{Cascade}
No licence
Date obtention licence

Retard

0..1

No retard : {PK}
Minutes au dpart
Minutes l'arrive
Raison
No vol : {FK}
Annulation

No annulation : {PK}
Raison
No vol : {FK}

1..1
Avion
No appareil : {PK}
Fabricant
Modle
Date acquisition
Nombre de siges

Sige

1..1 1..*

No appareil : {PK, FK}{Cascade}


No sige : {PK}
Classe

0

Conception de bases de donnes avec UML

Cas 2-12 TRANSPORTEUR ARIEN, VERSION 2


Traduire ce modle conceptuel en son pendant relationnel tout en appliquant les rgles de
drivation appropries. Puisquil sagit dune version du modle conceptuel du cas 2-11 o
les associations de degr suprieur ont t dcomposes, le modle relationnel obtenu
sera beaucoup plus conforme aux contraintes de multiplicit conceptuelles que celui driv
de 2-11.
Client
No client : {Unique}
Nom client
Prnom client

1..1
Concerne
1..*

Effectue

Passager

Enregistrement bagage

No passager : {Unique}
Nom passager
Prnom passager
Sexe

No enregistrement : {Unique}
Date
Heure
0..*

1..1

1..1
Appartient

0..*
Possde

Rservation
Confirme par 0..*
1..1

0..1

No rservation : {Unique}
Date rservation
Prix total
Paiement effectu?

0..*
1..1

1..1
0..* met

Paiement
No paiement : {Unique}
Date paiement
Montant paiement
Mode de paiement

Bagage vol

1..* mis pour

1..*

Bagage
No bagage : {Unique}

Billet
1..*

No billet : {Unique}

Fait par

0..*

Aroport
Rservation vol
0..1

1..*

1..*
Carte de crdit
No carte : {Unique}
Expiration
Nom du titulaire

Code d'aroport : {Unique}


Ville
Quitte

1..1
1..1

0..*
Vol
1..1

Appliqu

0..*

No du vol : {Unique}
Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive
1..1

Arrive

0..*
0..*

Employ
No employ : {Unique}
Date embauche

Responsabilit

0..*

Possde
Suivi de

1..*

Fait appel

Assur par

Type de responsabilit
Pilote

1..1

0..1
1..1

0..1

No licence : {Unique}
Date obtention licence

Retard

Avion

No retard : {Unique}
Minutes au dpart
Minutes l'arrive
Raison

No appareil : {Unique}
Fabricant
Modle
Date acquisition
Nombre de siges

Tarif

Annulation

Code de tarif : {Unique}


Conditions

No annulation : {Unique}
Raison

Sige
1

1..*

No sige : {Unique}
Classe

0

Le modle logique de donnes

Considrons tour de rle les deux diffrences avec le modle 2-11.


1. Lassociation de degr suprieur Comporte a t dcompose. Nous rfrons le lecteur
au chapitre 1 et en particulier la figure 1-32 pour une explication dtaille du processus
de dcomposition. La dcomposition conduit une entit dassociation Rservation Vol
sur une association binaire plusieurs plusieurs entre Rservation et Vol. Cette entit
dassociation est associe Tarif en association binaire un plusieurs.
Une table fille Rservation Vol est drive pour lentit dassociation, elle sera associe
aux tables mres Rservation et Vol. Pour raliser la deuxime association binaire, cette
fois un plusieurs avec Tarif et sans entit dassociation, la table Rservation Vol
sera aussi une table fille pour une nouvelle association cette fois avec la table mre Tarif.
Le modle relationnel driv est le suivant.
Rservation
No rservation : {PK}
Date rservation
Prix total
Paiement effectu?
No client : {FK}
1..1
0..*
Rservation vol
No rservation : {PK, FK}{Cascade}
No vol : {PK, FK}{Cascade}
Code de tarif : {FK}
0..*

0..*

1..1
1..1
Vol
Tarif
Code de tarif : {PK}
Conditions

No du vol : {PK}
Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive

Le lecteur notera que ce modle est exactement le mme que celui driv de lentit de
degr suprieur non dcompos, sinon que le nom de la table fille Rservation vol est
diffrent de Comporte, soit un nom beaucoup plus pertinent que le prcdent.

0

Conception de bases de donnes avec UML

2. Lassociation de degr suprieur Enregistre a t dcompose. Puisque nous navons


pas expliqu au chapitre 1 le processus de dcomposition de cette association, dbutons
par des explications ce sujet. Avant dcomposition, Enregistre est de degr quatre
comme illustr ci-aprs.
Bagage
No bagage : {Unique}

1..1

Passager
No passager : {Unique}
Nom passager
Prnom passager
Sexe

1..1
Enregistre

1.
.*

Enregistrement bagage

Vol

1..1 No enregistrement : {Unique}


Date
Heure

No du vol : {Unique}
Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive

Il y a nettement une dpendance fonctionnelle entre Enregistrement bagage et Bagage,


puisquun No enregistrement ne correspond qu un et un seul bagage. Lentit Enregistrement Bagage reste dans lassociation, Bagage peut en tre dtache mais devra
tre associe directement Enregistrement Bagage par une association un plusieurs
car le mme bagage peut tre enregistr plusieurs fois avec des numros diffrents.
Cette premire dcomposition mne une association de degr trois. Les multiplicits
de cette association sont toutes rvalues. Un enregistrement bagage sur un vol est li
un et un seul passager. Un enregistrement bagage dun passager doit tre sur au moins
un vol mais aussi sur plusieurs vols. Un passager sur un vol peut ne pas avoir de bagage
ou en avoir plusieurs. La dcomposition mne au modle qui suit.

0

Le modle logique de donnes

Passager

Bagage

No passager : {Unique}
Nom passager
Prnom passager
Sexe

No bagage : {Unique}
1..1

1..1
Possde

0..*

Enregistre

Enregistrement bagage

1..*

0..* No enregistrement : {Unique}


Date
Heure

Vol
No du vol : {Unique}
Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive

Une multiplicit maximale 1 demeure du ct de Passager. Il ny a pas de dpendance


fonctionnelle de cette entit avec les deux autres. Une entit dassociation appele Bagage
vol sans attributs va tre cre et elle sera associe par ailleurs Passager. Les multiplicits sont nouveau rvalues. Le rsultat est le suivant.
Passager
No passager : {Unique}
Nom passager
Prnom passager
Sexe
1..1
Appartient

Enregistrement bagage
No enregistrement : {Unique}
Date
Heure
0..*

0..*

0..*

Possde

Bagage vol

1..1
1..*
Bagage
Vol
No du vol : {Unique}
Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive

No bagage : {Unique}

0

Conception de bases de donnes avec UML

On peut maintenant procder la drivation des tables pour ce fragment du modle


conceptuel. Lentit dassociation donne lieu une table fille associe Vol et Enregistrement bagage, appele Bagage vol. Elle est par ailleurs associe la table Passager
pour laquelle elle est une table fille. Enfin, Enregistrement bagage doit tre une table
fille pour la table Bagage. La drivation produit en consquence le modle relationnel
suivant.
Passager

Enregistrement bagage

No passager : {PK}
Nom passager
Prnom passager
Sexe

No enregistrement : {PK}
Date
Heure
No bagage : {FK}

0..*

1..1
1..*

1..1

Bagage vol

0..*

No vol : {PK, FK}{Cascade}


No enregistrement : {PK, FK}{Cascade}
No passager : {FK}
0..*

1..1

1..1
Bagage
Vol

No bagage : {PK}

No du vol : {PK}
Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive

Cette fois le modle driv de lentit dassociation de degr quatre Enregistre tir
du cas 2-11 est compltement diffrent de celui obtenu aprs dcomposition complte de
la mme association dans le cas actuel. Le modle relationnel final donn ci-aprs est
beaucoup plus conforme au modle conceptuel car toutes les multiplicits ont pu tre
exprimes.
Rappelons que dans le cas 2-11, lors de la drivation de la table fille Enregistre, les
multiplicits du ct de celle-ci ont systmatiquement t tablies 0..* et celles du ct
des tables mres 1..1, sans gard aux multiplicits prsentes sur les arcs de lassociation.
On na donc pas t en mesure de driver fidlement toutes les multiplicits du modle
conceptuel.
Comme nous lindiquions au cas 2-7, la raison en est que la smantique des multiplicits dune association de degr suprieure en UML na pas son quivalent dans le modle
relationnel. Il sagit dune preuve supplmentaire de limportance de dcomposer toutes les
associations de degr suprieur, si la chose est possible, avant de driver le modle
relationnel.

0

Le modle logique de donnes

La prochaine illustration montre la version finale du modle relationnel driv.


Client

Concerne

No client : {PK}
Nom client
Prnom client

No rservation : {PK, FK}{Cascade}


No passager : {PK, FK}{Cascade}

1..1

1..*

1..*
1..1

1..1

0..1
1..1
Paiement
No paiement : {PK}
Date paiement
Montant paiement
Mode de paiement
No rservation : {FK}
No carte de crdit : {FK}

Enregistrement bagage
No enregistrement : {PK}
Date
Heure
No bagage : {FK}

No rservation : {PK}
Date rservation
Prix total
Paiement effectu?
No client : {FK}

Bagage vol

1..*
0..*

Billet
1..1

1..1

0..*

1..*

0..*

1..1
1..*

1..1

1..1

Rservation
0..*

Passager
No passager : {PK}
Nom passager
Prnom passager
Sexe

No vol : {PK, FK}{Cascade}


No enregistrement : {PK, FK}{Cascade}
No passager : {FK}

No billet : {PK}
No passager : {FK}
No rservation : {FK}

1..1

0..*

Rservation vol
Bagage

No rservation : {PK, FK}{Cascade}


No vol : {PK, FK}{Cascade}
Code de tarif : {FK}

No bagage : {PK}

0..*
0..1

0..*

Aroport

0..*
1..1

Carte de crdit

1..1

Code d'aroport : {PK}


Ville

0..*
1..1

No carte : {PK}
Expiration
Nom du titulaire

0..*

Vol

1..1

No du vol : {PK}
Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive
Code aroport quitte : {FK}
Code aroport arrive : {FK}
No appareil : {FK}
1..1

1..1
1..1
0..*

1..*
1..1

Employ
No employ : {PK}
Date embauche

Responsabilit
No vol : {PK, FK}{Cascade}
No employ : {PK, FK}{Cascade}

1..1

0..*

1..1

0..1
0..1

Tarif
Code de tarif : {PK}
Conditions

Pilote
No employ : {PK, FK}{Cascade}
No licence
Date obtention licence

Retard

0..1

No retard : {PK}
Minutes au dpart
Minutes l'arrive
Raison
No vol : {FK}
Annulation

No annulation : {PK}
Raison
No vol : {FK}

1..1
Avion
No appareil : {PK}
Fabricant
Modle
Date acquisition
Nombre de siges

Sige

1..1 1..*

No appareil : {PK, FK}{Cascade}


No sige : {PK}
Classe

10

Conception de bases de donnes avec UML

Modle RelATionnel de donnes noRMAlis


Traditionnellement,.dans.la.dmarche.menant..la.ralisation.dune.base.de.
donnes.relationnelle,.beaucoup.dimportance.est.accorde..la.production.
dun.schma.relationnel.normalis ..Nous.allons.montrer.sous.cette.rubrique.
que.lapplication.des.rgles.de.modlisation.vues.au.chapitre.un.conduisent.
. un. modle. relationnel. normalis,. donc. . un. schma. relationnel.
normalis .
En.vertu.de.la.thorie.de.normalisation,.un.schma.relationnel.normalis.
doit.rpondre.aux.exigences.minimales.suivantes.:
Non redondance.;.un.attribut.nappartient.qu.une.seule.relation,.donc.
.une.seule.table,..moins.quil.nagisse.comme.cl.trangre.pour.assurer.
lassociation.avec.une.autre.table.;
Cohrence.;.les.attributs.qui.dcrivent.le.mme.objet.appartiennent..la.
mme.table.et.dpendent.chacun.fonctionnellement.et.totalement.de.la.
cl.primaire.de.la.table .
Pour.assurer.lexigence.de.cohrence,.chaque.table.doit.rpondre..trois.
proprits.de.base.appeles.les.trois.formes.normales.:
La.premire.forme.normale,.note.1NF.;
La.deuxime.forme.normale,.note.2NF.;
La.troisime.forme.normale,.note.3NF .

Premire } Une relation, donc une table, est en premire forme normale si chacun de ses
forme normale attributs ne comporte quune et une seule valeur. Cela revient dire que sa

valeur est atomique et rpond un type de donnes simple (First normal form).

Cette. proprit. est. assure. dans. le. modle. conceptuel. par. la. rgle de
description .. En. consquence,. si. la. rgle. de. description. est. applique. . tous.
les.attributs.du.modle.conceptuel,.les.tables.du.modle.relationnel.rpondent.
toutes..la.premire.forme.normale .

Deuxime } Une relation, donc une table, est en deuxime forme normale si elle est dabord
forme normale en premire forme normale. De plus, tout attribut hors de la cl primaire doit

dpendre fonctionnellement et totalement de la cl primaire (Second normal


form).

Dpendance } Un attribut B dpend fonctionnellement de lattribut A, not A B, si une


fonctionnelle valeur de A correspond une et une seule valeur pour B. On dit que A dter
entre deux mine B (Functional dependency).
attributs

Le modle logique de donnes

11

Si.lidentifiant.dune.entit.est.simple,.par.dfinition.sa.valeur.dtermine.
une. et. une. seule. valeur. pour. chacun. des. autres. attributs .. En. consquence.
avec. un. choix. didentifiant. simple. appropri. dans. le. modle. conceptuel,.
toutes. les. entits. fortes. produisent. une. table. dont. chaque. attribut. dpend.
fonctionnellement. de. la. cl. primaire. drive. de. lidentifiant .. La. deuxime.
forme.normale.est.assure.pour.les.tables.drives.dune.entit.forte.avec.cl.
primaire.simple.incluant.les.tables.drives.dune.association.dhritage.dont.
le.supertype.possde.un.identifiant.simple .
Considrons.maintenant.le.cas.des.entits.fortes..cl.primaire.compose ..
Rappelons.que.par.convention.lidentifiant.compos.doit.tre.minimal,.cest.
. dire. que. lidentifiant. doit. regrouper. le. plus. petit. nombre. dattributs. qui.
permettent.de.dterminer. tous.les.autres.attributs ..Chaque.attribut.hors.de.
lidentifiant.dpend.alors.fonctionnellement.dun.groupe.minimal.dattributs ..
Considrons. maintenant. une. dfinition. largie. de. la. dpendance.
fonctionnelle .

Dpendance } Un attribut B dpend fonctionnellement de n attributs A1,..,An, not (A1,..,An)


fonctionnelle B, si un tuple de valeurs (V1,..,Vn) dont chaque lment provient dans
entre un lordre de A1 An, correspond une et une seule valeur pour B. On dit que
attribut et (A1,..,An) dtermine B (Functional dependency).
un groupe
dattributs

Illustrons.la.dpendance.fonctionnelle.entre.un.attribut.et.un.groupe.
dattributs. . laide. dun. exemple .. Considrons. lattribut. Date dobtention
diplme ..Cet.attribut.dpend..la.fois.de. No tudiant.et. Nom diplme,.car.le.
mme. diplme. ne. peut. tre. accord. deux. fois. au. mme. tudiant .. On. dira.
quun.couple.de.valeurs.(LEGP27059001,.Bac. En administration des affaires).
dtermine. 27 mai 2006. car. ltudiant. portant. le. numro. LEGP27059001 a.
obtenu.son.diplme. Bac. En administration des affaires.le. 27 mai 2006 ..
Nous.retrouvons.en.consquence.une.dpendance.fonctionnelle.entre.
lattribut.Date dobtention diplme.et.un.groupe.de.deux.attributs.(No tudiant.
et. Nom diplme) ..
Si.un.attribut.A,.hors.de.lidentifiant.compos.dune.entit.forte.dpend.
aussi.fonctionnellement.dun.sous-ensemble.des.attributs.de.lidentifiant,.le.
groupe.minimal.dattributs.qui.dtermine. A.nest.pas.le.mme.que.pour.les.
autres ..Cest.un.indice.que.cet.attribut.nest.pas..sa.place.et.quil.y.a.transgression.de.la.rgle de construction.qui.stipule.quune.entit.ne.peut.contenir.
une.autre.entit.ou.les.attributs.dune.autre.entit ..Cest.aussi.une.condition.
qui. fait. que. la. table. drive. de. lentit. contenant. A. et. les. autres. attributs.
nest.pas.en.deuxime.forme.normale .

1

Conception de bases de donnes avec UML

Reprenons.lexemple.prcdent ..Considrons.les.attributs.Date dobtention


diplme.et.Nom tudiant ..Nous.retrouvons,.tout.comme.pour.Date dobtention
diplme,.une.dpendance.fonctionnelle.entre. Nom tudiant.et.un.groupe.de.
deux.attributs.(No tudiant.et. Nom diplme) ..
On.dira.que.le.couple.de.valeurs.(Pierre Lger,.Bac. En administration
des affaires).dtermine.27 mai 2006.car.ltudiant.Pierre Lger a.obtenu.son.
diplme. Baccalaurat en administration des affaires.le. 27 mai 2006 ..
Mais. Nom tudiant.dpend.aussi.fonctionnellement.de. No tudiant,.car.
Pierre Lger. na. quun. seul. numro. dtudiant. comme. tous. les. tudiants.
dailleurs ..Cela.signifie.que. Date dobtention diplme.et. Nom tudiant.nont.

pas. le. mme. identifiant. minimal .. En. vertu. de. la. rgle. de. construction,. ils.
ne.dcrivent.pas.le.mme.objet ..Ils.doivent.tre.prsents.dans.deux.entits.
distinctes .
La.deuxime.forme.normale.est.assure.pour.les.tables.drives.dune.
entit. forte. avec. cl. primaire. compose. si. lidentifiant. est. minimal. et. que.
cette.entit.respecte.la.rgle.de.construction .
Il.nous.reste..considrer.maintenant.les.entits.faibles ..En.matire.de.
modlisation. conceptuelle,. une. entit. dassociation. ne. peut. exister. que. si.
elle.na.pas.didentifiant.propre.et.si.ses.attributs.dpendent.individuellement.
de. la. combinaison. des. identifiants. des. entits. associes .. Cette. dfinition.
stricte. dune. entit. dassociation. vise. prcisment. . assurer. que. la. table.
drive.dune.entit.dassociation.est.en.deuxime.forme.normale ..Il.en.va.
de.mme.pour.une.entit.composant.dont.lidentifiant.propre.est.combin.
.lidentifiant.du.composite.pour.donner.la.cl.primaire.de.la.table.drive.
du. composant. o. une. dpendance. fonctionnelle. totale. de. chaque. attribut.
est.assure.avec.la.cl.primaire.compose .
Considrons. un. modle. conceptuel. comportant. une. entit. tudiant.
avec.comme.identifiant. No tudiant.et.une.entit. Diplme.dont.lidentifiant.
est. Nom diplme .. Nous. avons. vu. plus. tt. que. No tudiant. et. Nom diplme.
dterminent.conjointement.Date dobtention diplme ..Cet.attribut.ne.pourrait.
en.consquence.quappartenir..une.entit.dassociation.sur.une.association.
plusieurs plusieurs.entre.les.entits. tudiant.et. Diplme.car.son.identifiant.
est.en.fait.la.combinaison.des.identifiants.de. tudiant.et. Diplme ..En.effet,.
chaque. attribut. de. lidentifiant. pris. isolment. ne. peut. dterminer. quune.
seule.date.dobtention.de.diplmes.:.un.tudiant.peut.avoir.plusieurs.diplmes,.
donc.plusieurs.dates.dobtention.de.diplmes.et.le.mme.type.de.diplme.
peut.tre.accord..plusieurs.tudiants .

Le modle logique de donnes

1

Bref,. les. conventions. relatives. au. choix. dun. bon. identifiant. pour. les.
entits.fortes,.les.conventions.justifiant.lexistence.dune.entit.dassociation.
tout.comme.une.entit.composant.ainsi.que.la.rgle.de.construction,.mnent.
demble..un.modle.conceptuel.o.la.deuxime.forme.normale.est.assure .

Troisime } Une relation, donc une table, est en troisime forme normale si elle est dabord
forme normale en deuxime forme normale. De plus, chaque attribut hors de la cl primaire

ne peut dpendre fonctionnellement dun attribut ou dun groupe dattributs


hors de la cl primaire (Third normal form).
La.rgle de construction.permet.dviter.une.telle.situation ..Si.deux.attributs.
hors. de. lidentifiant. dpendent. lun. de. lautre,. cest. quils. appartiennent.
manifestement..une.deuxime.entit,.transgressant.ainsi.la.rgle.de.construction ..Le.modlisateur.doit.considrer.deux.entits.plutt.quune.seule ..Les.
tables.drives.de.ces.deux.entits.seront.en.troisime.forme.normale.si.elles.
sont.aussi.en.deuxime.forme.normale .
En. rsum,. un. modle. relationnel. driv. dun. modle. conceptuel. est.
normalis.dans.le.modle.conceptuel.si.et.seulement.si.:
la.rgle.de.non redondance.est.respecte.;
le.choix.dun.identifiant.compos.est.minimal.et.le.mme.pour.tous.les.
attributs.hors.de.lidentifiant.dune.mme.entit.;
la.rgle.de.description est.respecte.pour.chaque.entit.;
la.rgle.de.construction.est.respecte.pour.chaque.entit.;
les.entits.dassociation.ont.un.identifiant.implicite.dont.dpend.totalement.ses.attributs.;.
lidentifiant. implicite. est. la. combinaison. des. identifiants. de. toutes. les.
entits.associes.;
les.entits.composants.ont.un.identifiant.qui.permet.de.distinguer.chaque.
occurrence.rattache.au.mme.composite .

opTiMisATion du Modle RelATionnel


Le.modle.relationnel.peut.tre.optimis.de.manire..produire.un.modle.
physique. techniquement. performant .. Deux. mesures. affectant. le. modle.
relationnel.peuvent.tre.considres.de.faon..amliorer.la.performance.du.
modle.physique.qui.en.sera.driv .
1 ..Le.nombre.de.tables.peut.tre.rduit.en.fusionnant.certaines.tables.pour.
en.arriver..viter.des.oprations.de.jointure.inutiles.;

1

Conception de bases de donnes avec UML

2 ..Une.cl.primaire.compose.peut.tre.remplace.par.une.cl.primaire.simple.
pour. rduire. la. complexit. des. index. et. rendre. plus. performantes. les.
.oprations.de.jointure .
Il.peut.tre.difficile.pour.le.lecteur.de.voir..ce.stade-ci.la.porte.et.la.
pertinence.des.mesures.doptimisation.proposes.sous.cette.rubrique ..Nous.
aurons.loccasion.au.chapitre.3.de.les.justifier.davantage .
Deux.types.dassociations.binaires.prsentes.dans.un.modle.relationnel.
peuvent.entraner.la.fusion.des.deux.tables.concernes ..Les.associations.un
un.dont.les.multiplicits.minimales.sont.1.et.1 ..Les.associations. un un.
dont.les.multiplicits.minimales.sont.0.et.1 .

Association binaire avec multiplicits 1..1 1..1


Si.dans.une.association.un un.la.participation.est.obligatoire.des.deux.cts.
de.lassociation.(multiplicits.1 . .1.de.part.et.dautre),.les.attributs.des.deux.
tables.peuvent.tre.fusionns.pour.former.une.seule.table ..La.table.qui.disparat.est.celle.dont.la.cl.primaire.est.une.cl.trangre.dans.la.deuxime.
table .. Tous. ses. attributs. sont. ajouts. . la. seule. table. restante,. incluant. les.
cls. trangres. prsentes. dans. la. table. limine,. sauf. sa. cl. primaire. dj.
prsente..lautre.table..titre.de.cl.trangre ..Dans.le.cas.o.des.attributs.
portent.le.mme.nom.dans.les.tables.fusionnes,.leur.nom.doit.tre.chang.
pour.viter.toute.confusion .
La.cl.primaire.de.la.table.qui.a.disparu.suite..la.fusion.ne.doit.plus.
porter.la.mention.cl.trangre.{FK}.dans.la.table.rsultant.de.la.fusion ..La.
mention.est.imprativement.remplace.par.les.contraintes.dintgrit.{Non
nul, Unique} ..Cet.attribut,.maintenant.dot.des.contraintes.Non nul.et.Unique.
peut.tre.considr.comme.une.cl secondaire,.soit.un.attribut.ou.un.groupe.
dattributs.qui.pourrait.aussi.jouer.le.rle.dune.cl.primaire .

Cl secondaire } Un attribut ou groupe dattributs qui a les proprits dune cl primaire donc
rpondant la contrainte dintgrit dentit {Non nul, Unique} (Secondary key).
Considrons.la.figure.2-34.o.une.association.binaire.un un.montre.
des.multiplicits.1 . .1 de.part.et.dautre.des.entits.concernes .

1

Le modle logique de donnes

Association binaire un un avec participation obligatoire

figuRe 2-34 de part et dautre


Paiement

No paiement : {PK}
Montant paiement
Date paiement
No reu : {FK}

Reu
1..1

1..1

No reu : {PK}
Date reu

No reu.est.une.cl.trangre.dans.la.table.Paiement ..La.table.Reu.sera.
donc.intgre..Paiement.et.la.mention.{FK}.sur.lattribut.No reu.remplace.
par. les. contraintes. dintgrit. {Non nul, Unique}. qui. correspondent. . la.
contrainte.de.multiplicit.1 . .1 .
figuRe 2-35 Table drive du modle 2-34
Paiement
No paiement : {PK}
Montant paiement
Date paiement
No reu : {Non nul, Unique}
Date reu

Dans.le.cas.o.la.table.qui.disparat.possde.des.associations.avec.dautres.
tables,.ces.associations.sont.maintenues.en.les.rattachant..la.table.rsultant.
de.la.fusion ..Si.la.cl.primaire.de.la.table.limine. No reu.agit.comme.cl.
secondaire.pour.la.table.rsultant.de.la.fusion,.sa.prsence.en.tant.que.cl.
trangre.dans.les.tables.associes.demeure.pertinente .

Association binaire avec multiplicits 0..1 1..1


Lorsque. dans. une. association. un un. la. participation. est. obligatoire. dun.
seul.ct.de.lassociation.(multiplicits.0 . .1.dune.part.et.1 . .1.de.lautre),.les.
attributs.des.deux.tables.peuvent.tre.fusionns.pour.former.une.mme.table ..
La. table. qui. disparat. est. celle. du. ct. 0 . .1 et. ses. attributs. sont. ajouts. .
lautre.table,.incluant.les.cls.trangres,.sauf.la.cl.trangre.qui.est.la.cl.
primaire.de.lautre.table.pour.viter.de.dupliquer.la.cl.primaire ..Dans.le.cas.
o.des.attributs.portent.le.mme.nom.dans.les.tables.fusionnes,.leur.nom.
doit.tre.chang ..

1

Conception de bases de donnes avec UML

Toute.table.associe..la.table.limine.le.sera.dsormais.avec.la.table.
rsultant.de.la.fusion ..Dans.le.cas.o.la.table.limine.est.une.table.mre,.
la.cl.primaire. dpose. .titre.de.cl.trangre. dans. chaque.table.fille.doit.
tre.remplace.par.la.cl.primaire.de.la.table.rsultant.de.la.fusion .
La.cl.primaire.de.la.table.qui.a.disparu.suite..la.fusion.ne.doit.plus.
porter.la.mention.cl.primaire.{PK}.dans.la.table.rsultant.de.la.fusion ..La.
mention.est.imprativement.remplace.par.la.contrainte.dintgrit.{Unique}.
qui.correspond..la.contrainte.de.multiplicit.0 . .1 ..Considrons.la.figure.2-36.
o. apparat. une. association. binaire. un un. entre. les. tables. Paiement. et.
Rservation.avec.des.multiplicits.0 . .1.du.ct.de. Paiement ..

figuRe 2-36 Association binaire un un avec participation obligatoire dun seul ct


Rservation

0..1
1..1
Paiement
No paiement : {PK}
Date paiement
Montant paiement
Mode de paiement
No rservation : {FK}
No carte de crdit : {FK}

No rservation : {PK}
Date rservation
Prix total
Paiement effectu?
No client : {FK}
Billet
1..1

1..1

0..*

1..*

No billet : {PK}
No passager : {FK}
No rservation : {FK}

Rservation vol
No rservation : {PK, FK}{Cascade}
No vol : {PK, FK}{Cascade}
Code de tarif : {FK}

0..*
0..1
Carte de crdit
No carte : {PK}
Expiration
Nom du titulaire

Les.attributs.de.la.table. Paiement.seront.intgrs..la.table. Rservation.


sans.dupliquer.No rservation ..No rservation.sera.donc.la.cl.primaire.de.la.
table. rsultante .. No paiement. perd. sa. mention. {PK}. mais. on. lui. impose. la.
contrainte. {Unique}. car. un. numro. de. paiement. est. associ. . au. plus. une.
rservation ..
Toute.table.qui.tait.associe..Paiement.le.sera.dsormais..Rservation ..
La. table. Carte de crdit. qui. tait. associe. . Paiement. sera. donc. associe.
Rservation .. Puisquelle. ntait. pas. une. table. fille. de. Paiement,. aucune. cl.
trangre.ne.doit.tre.change ..Si.la.table.Carte de crdit.tait.une.table.fille.

1

Le modle logique de donnes

de. Paiement.avant.la.fusion,.elle.serait.dote.dun.attribut.cl.trangre. No
paiement. {FK}. qui. devrait. tre. remplac. par. No rservation. {FK}. dans. le.
contexte.de.la.fusion .
figuRe 2-37 Rsultat de la fusion des tables Paiement et Rservation
Rservation
No rservation : {PK}
Prix total
Date rservation
Paiement effectu?
No client : {FK}
No paiement : {Unique}
Date paiement
Montant paiement
Mode de paiement
No carte de crdit : {FK}
0..*
0..1
Carte de crdit
No carte : {PK}
Expiration
Nom du titulaire

Billet

1..1
1..1

1..*

No billet : {PK}
No passager : {FK}
No rservation : {FK}

0..*
Rservation vol
No rservation : {PK, FK}{Cascade}
No vol : {PK, FK}{Cascade}
Code de tarif : {FK}

1

Conception de bases de donnes avec UML

Cas 2-13 TRANSPORTEUR ARIEN, MRD PARTIELLEMENT OPTIMIS


Pour le modle relationnel suivant, partiellement optimis la suite de la fusion des tables
Paiement et Rservation, il sagit de poursuivre la dmarche doptimisation en liminant les
associations binaires 0..1-1..1 prsentes.
Client
No client : {PK}
Nom client
Prnom client

1..*

1..1

Concerne
No rservation : {PK, FK}{Cascade}
No passager : {PK, FK}{Cascade}

1..*

1..1

Passager

Enregistrement bagage

No passager : {PK}
Nom passager
Prnom passager
Sexe

No enregistrement : {PK}
Date
Heure
No bagage : {FK}
1..1
1..*

1..1

1..1
1..1

0..*

0..*

1..*
Bagage vol

Rservation
No rservation : {PK}
Prix total
Date rservation
Paiement effectu?
No client : {FK}
No paiement : {Unique}
Date paiement
Montant paiement
Mode de paiement
No carte de crdit : {FK}

Billet

1..*

1..1

No billet : {PK}
No passager : {FK}
No rservation : {FK}

0..*

No vol : {PK, FK}{Cascade}


No enregistrement : {PK, FK}{Cascade}
No passager : {FK}
1..1

0..*
1..1

0..*
Bagage
Rservation vol

0..*

0..*

No bagage : {PK}

No rservation : {PK, FK}{Cascade}


No vol : {PK, FK}{Cascade}
Code de tarif : {FK}
0..*
1..1

0..1

1..1

Aroport
Code d'aroport : {PK}
Ville

0..*
1..1

Carte de crdit

Vol

No carte : {PK}
Expiration
Nom du titulaire

No du vol : {PK}
Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive
Code aroport quitte : {FK}
Code aroport arrive : {FK}
No appareil : {FK}

1..1

1..1

0..*

1..1
1..1
0..*

1..*
1..1

Employ
No employ : {PK}
Date embauche

Responsabilit
No vol : {PK, FK}{Cascade}
No employ : {PK, FK}{Cascade}

1..1

0..*

1..1

0..1
0..1

Tarif
Code de tarif : {PK}
Conditions

Pilote
No employ : {PK, FK}{Cascade}
No licence
Date obtention licence

Retard

0..1

No retard : {PK}
Minutes au dpart
Minutes l'arrive
Raison
No vol : {FK}
Annulation

No annulation : {PK}
Raison
No vol : {FK}

1..1
Avion
No appareil : {PK}
Fabricant
Modle
Date acquisition
Nombre de siges

Sige

1..1 1..*

No appareil : {PK, FK}{Cascade}


No sige : {PK}
Classe

1

Le modle logique de donnes

Dbutons le processus de fusion avec lassociation entre Annulation et Vol. La table


Annulation, place du ct 0..1 de lassociation, devrait tre retire. Ses attributs, sauf No
vol qui est la cl primaire de Vol, doivent tre ajouts la table Vol et la mention {PK} de
sa cl primaire est remplace par la contrainte {Unique}. La nouvelle table Vol est donc la
suivante.
Vol
No du vol : {PK}
Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive
Code aroport quitte : {FK}
Code aroport arrive : {FK}
No appareil : {FK}
No annulation : {Unique}
Raison

Considrons maintenant lassociation entre Retard et Vol. La table Retard, place


du ct 0..1 de lassociation, devrait tre retire. Ses attributs, sauf No vol qui est la cl
primaire de Vol, doivent tre ajouts la table Vol et la mention {PK} de sa cl primaire est
remplace par la contrainte {Unique}. Cette fois-ci on note la prsence dun attribut Raison,
prsent la fois dans la table Retard et la table Vol. Il est ncessaire de changer leur nom
pour viter toute confusion. Ils seront renomms Raison annulation et Raison retard. La
nouvelle table Vol est maintenant la suivante.
Vol
No du vol : {PK}
Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive
Code aroport quitte : {FK}
Code aroport arrive : {FK}
No appareil : {FK}
No annulation : {Unique}
Raison annulation
No retard : {Unique}
Minutes au dpart
Minutes l'arrive
Raison retard

0

Conception de bases de donnes avec UML

Quant la dernire association binaire 0..1-1..1 qui demeure, elle concerne les tables
Employ et Pilote. La table Pilote, place du ct 0..1 de lassociation, devrait tre retire.
Ses attributs, sauf No employ qui est la cl primaire de Employ, doivent tre ajouts
la table Employ. Le modle relationnel rsultant de ces tapes doptimisation est donn
ci-aprs.
Client
No client : {PK}
Nom client
Prnom client

1..*

1..1

Concerne
No rservation : {PK, FK}{Cascade}
No passager : {PK, FK}{Cascade}

1..*

1..1

Passager

Enregistrement bagage

No passager : {PK}
Nom passager
Prnom passager
Sexe

No enregistrement : {PK}
Date
Heure
No bagage : {FK}

1..1
1..1

0..*

1..1
1..*

1..1

1..*
Bagage vol

Rservation
No rservation : {PK}
Prix total
Date rservation
1..1
Paiement effectu?
No client : {FK}
No paiement : {Unique}
1..1
Date paiement
Montant paiement
0..*
Mode de paiement
No carte de crdit : {FK}

Billet
No billet : {PK}
No passager : {FK}
No rservation : {FK}

1..*

0..*

No vol : {PK, FK}{Cascade}


No enregistrement : {PK, FK}{Cascade}
No passager : {FK}

0..*

1..1

0..*

Rservation vol

Bagage

No rservation : {PK, FK}{Cascade}


No vol : {PK, FK}{Cascade}
Code de tarif : {FK}

No bagage : {PK}

0..*

Aroport

0..*
0..1

1..1

Carte de crdit
No carte : {PK}
Expiration
Nom du titulaire

0..*

1..1

Code d'aroport : {PK}


Ville

0..*

1..1
1..1

Vol
No du vol : {PK}
Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive
Code aroport quitte : {FK}
Code aroport arrive : {FK}
No appareil : {FK}
No annulation : {Unique}
Raison annulation
No retard : {Unique}
Minutes au dpart
Minutes l'arrive
Raison retard
0..*

0..*
1..1
1..1

0..*

1..*

Employ

Responsabilit
No vol : {PK, FK}{Cascade}
No employ : {PK, FK}{Cascade}

No employ : {PK}
Date embauche
No licence
Date obtention licence

1..1

1..1
Avion
Tarif
Code de tarif : {PK}
Conditions

No appareil : {PK}
Fabricant
Modle
Date acquisition
Nombre de siges

Sige

1..1 1..*

No appareil : {PK, FK}{Cascade}


No sige : {PK}
Classe

Le modle logique de donnes

1

simplification des cls primaires


Les.bases.de.donnes.disposent.de.ce.que.lon.appelle.des.index.pour.permettre.
un.accs.rapide..chaque.enregistrement..partir.de.sa.cl ..Dans.le.cas.des.
bases.de.donnes.relationnelles,.chaque.table.est.dote.dau.moins.un.index.
de.manire..localiser.une.ligne.de.la.table..partir.de.la.valeur.de.la.cl.primaire ..Les.index.sont.des.composants.physiques.de.la.base.de.donnes.dont.
on.na.pas..se.proccuper.dans.le.modle.relationnel ..Nanmoins.il.y.a.des.
choix.faits.par.le.modlisateur.aux.niveaux.conceptuel.et.relationnel.qui.ont.
un.impact.majeur.sur.la.performance.de.ces.index,.compte.tenu.notamment.
de.leur.taille.et.de.leur.complexit ..
Une.cl.primaire.compose.exige.un.index.plus.complexe.et.donc.moins.
efficace. quune. cl. primaire. simple .. Une. cl. primaire. compose. de. taille.
importante.dont.une.composante.est.de.type.String.produit.un.index.dont.
la. gestion. peut. tre. lourde .. On. considre. aussi. quune. cl. primaire. simple.
de.type.String.et.de.taille.importante,.plus.de.20.caractres.par.exemple,.
induit.une.redondance.dans.la.base.de.donnes.qui.pourrait.tre.vite .
Nous.allons.considrer.ci-aprs.deux.formes.doptimisation.portant.sur.
la.cl.primaire.des.tables.du.modle.relationnel.:
1 ..Substituer.une.cl.primaire.simple..une.cl.primaire.compose.;
2 ..Substituer.une.cl.primaire.simple.de.type.numrique..une.cl.primaire.
simple.de.type.String ..
Avant. daborder. . tour. de. rle. ces. deux. thmes,. revenons. un. instant.
sur.une.astuce.introduite.plus.tt.dans.ce.chapitre.concernant.la.validit.de.
la.cl.primaire.compose.dune.table.drive.du.modle.conceptuel ..

utilisation dune cl primaire simple


avec gnration automatique de valeurs squentielles
Nous.avons.dj.suggr.lemploi.dune.cl.primaire.simple.portant.la.mention.
{PK.auto}.signifiant.par.l.que.le.SGBD.gnrera.automatiquement,.lors.de.
lajout. dune. nouvelle. ligne. dans. la. table,. une. valeur. pour. la. cl. primaire.
systmatiquement.diffrente.des.autres.lignes.de.la.table ..Lorsque.le.modlisateur. doute. de. lunicit. daccs. par. la. cl. primaire. compose. de. la. table.
drive.dune.association.binaire.plusieurs plusieurs.sans.entit.dassociation.
ou.dune.association.de.degr.suprieur.sans.entit.dassociation.ne.comportant.que.des.multiplicits.maximales.plusieurs,.lastuce.consiste..donner..
la. table. fille. drive. une. cl. primaire. simple. artificielle. portant. la. mention.
{PK.auto} .



Conception de bases de donnes avec UML

Cette.astuce.peut.tre.tendue,.en.toute.gnralit,.aux.tables.comportant.
une. cl. primaire. compose,. de. manire. . rduire. la. complexit. des. index ..
Les.tables.drives.dune.association.plusieurs plusieurs.ou.dune.association.
de.degr.suprieur.sont.toutes.dotes.dune.cl.primaire.compose.qui.peut.
tre. remplace. par. une. cl. primaire. simple. . gnration. automatique. de.
valeurs.squentielles,.tout.en.conservant.les.attributs.qui.constituaient.la.cl.
primaire.compose.originelle .

Table drive dune association plusieurs plusieurs


ou dune association de degr suprieur
Les.tables.de.cette.nature.disposent.toutes.dune.cl.primaire.compose.de.
deux.attributs.ou.plus ..La.technique.doptimisation.consiste..donner.une.
nouvelle.cl.primaire.simple.dote.de.la.mention.{PK.auto},.tout.en.conservant.
les.attributs.de.la.cl.primaire.compose.et.les.mentions.{FK}.et.{Cascade} .
Considrons..la.figure.2-38.la.table.Bagage vol.prsente.dans.le.modle.
relationnel.tir.du.cas.2-13 .
figuRe 2-38 Table tire du cas 2-13
Bagage vol
No vol : {PK, FK}{Cascade}
No enregistrement : {PK, FK}{Cascade}
No passager : {FK}

Elle. est. dote. dune. cl. primaire. double. (No vol, No enregistrement).
quon.a.le.loisir.de.remplacer.par.une.cl.primaire..gnration.automatique.
de.valeurs,.No bagage vol ..Le.nom.de.la.cl.sera.de.prfrence.le.mot.Numro.
suivi.du.nom.de.la.table ..La.nouvelle.table.conserve.les.attributs.constituant.
la.cl.primaire.compose.originale.avec.les.mentions.{FK}.et.{Cascade}.comme.
le.montre.la.figure.2-39 .
figuRe 2-39 Table optimise grce une cl primaire simple {PK auto}
Bagage vol
No bagage vol : {PK auto}
No vol : {FK}{Cascade}
No enregistrement : {FK}{Cascade}
No passager : {FK}



Le modle logique de donnes

La. mme. technique. doptimisation. peut. tre. applique. aux. tables.

Concerne,.Rservation vol.et.Responsabilit.de.manire..leur.donner.une.cl.

primaire.simple ..Le.rsultat.de.telles.substitutions.est.donn..la.figure.2-40 ..
figuRe 2-40 Modle tir du cas 2-13 o les cls primaires ont t optimises
Client
No client : {PK}
Nom client
Prnom client

Concerne

1..*

No concerne : {PK auto}


No rservation : {FK}{Cascade}
No passager : {FK}{Cascade}

1..1

1..1

0..*

1..*

1..1

Passager

Enregistrement bagage

No passager : {PK}
Nom passager
Prnom passager
Sexe

No enregistrement : {PK}
Date
Heure
No bagage : {FK}
1..1
1..*

1..1

1..1

1..*

Rservation
No rservation : {PK}
Prix total
Date rservation
Paiement effectu?
No client : {FK}
No paiement : {Unique}
Date paiement
Montant paiement
Mode de paiement
No carte de crdit : {FK}

Bagage vol

Billet

1..*

1..1

0..*

0..*

No billet : {PK}
No passager : {FK}
No rservation : {FK}
0..*

0..*

No bagage vol : {PK auto}


No vol : {FK}{Cascade}
No enregistrement : {FK}{Cascade}
No passager : {FK}
1..1

0..*

1..1

0..*

Rservation vol
Bagage

No rservation vol : {PK auto}


No rservation : {FK}{Cascade}
No vol : {FK}{Cascade}
Code de tarif : {FK}

No bagage : {PK}

Aroport
0..*

0..1

1..1

Carte de crdit

1..1

0..*
1..1
Vol

No carte : {PK}
Expiration
Nom du titulaire

1..1
Tarif
Code de tarif : {PK}
Conditions

Code d'aroport : {PK}


Ville

No du vol : {PK}
Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive
Code aroport quitte : {FK}
Code aroport arrive : {FK}
No appareil : {FK}
No annulation : {Unique}
Raison annulation
No retard : {Unique}
Minutes au dpart
Minutes l'arrive
Raison retard
0..*

1..1

0..*

1..1

1..1

0..*

1..*

Employ

Responsabilit
No responsabilit : {PK auto}
No vol : {FK}{Cascade}
No employ : {FK}{Cascade}

No employ : {PK}
Date embauche
No licence
Date obtention licence

1..1
Avion
No appareil : {PK}
Fabricant
Modle
Date acquisition
Nombre de siges

Sige

1..1 1..*

No appareil : {PK, FK}{Cascade}


No sige : {PK}
Classe



Conception de bases de donnes avec UML

Table dont la cl primaire simple est de type texte


Lorsque.la.cl.primaire.dune.table.est.de.type.String.et.de.taille.importante.
et.que.de.plus.elle.agit.comme.table.mre.pour.une.ou.plusieurs.tables,.la.
prsence.de.doubles.de.cette.cl..titre.de.cl.trangre.dans.les.tables.filles.
constitue.une.redondante.qui.peut.tre.optimise ..Cest.le.cas.frquemment.
des.tables.tires.des.entits.de.description .
Les.tables.de.la.figure.2-41.sont.prsentes. dans.le.modle.du.cas.2-5 ..
On. note. la. prsence. de. la. table. mre. Traitement. dcoulant. manifestement.
dune.entit.dassociation.dont.la.cl.primaire.simple.est.de.type.String.et.
qui. est. prsente. comme. cl. trangre. dans. la. table. Traitement patient .. On.
constate. que. lattribut. Type traitement. peut. possder. une. valeur. textuelle.
pouvant. dpasser. 20. caractres .. Par. exemple. Polypectomie lintestin
grle par endoscopie ..
figuRe 2-41 Tables tires du cas 2-5
Traitement patient

Traitement
Type traitement : {PK}

1..1

0..*

No traitement : {PK}
Date
Dure
No sjour : {FK}
No mdecin : {FK}
Type traitement : {FK}

La.valeur.de.la.cl.trangre.constitue.une.redondance.acceptable.dans.
le.modle.relationnel ..Cette.redondance.a.cependant.un.impact.sur.la.taille.
de.la.base.de.donnes.et.sur.la.performance.des.oprations.de.jointure.entre.
les.tables .
Le.modlisateur.peut.juger.utile.de.doter.la.table. Traitement.dune.cl.
primaire..gnration.automatique.de.valeurs,.de.manire..viter.que.la.cl.
trangre.prsente.dans.la.table.fille.ne.constitue.une.redondante.affectant.
la.performance.de.la.base.de.donnes ..Le.changement.de.cl.primaire.dans.
la. table. mre. conduit. imprativement. . un. changement. de. cl. trangre.
dans.toutes.ses.tables.filles ..Comme.le.montre.la.figure.2-42.o. Traitement.
a. t. dot. dune. nouvelle. cl. primaire. No type traitement,. un. changement.
de.nom.et.de.type.de.la.cl.trangre.Type traitement.(prsente.dans.la.table.
Traitement patient).a.t.effectu ..Lattribut.Type traitement.doit.tout.de.mme.
tre.conserv.dans.la.table. Traitement .



Le modle logique de donnes

figuRe 2-42 Modle 2-41 o la cl primaire Type traitement est remplace


Traitement patient

Traitement
No type traitement : {PK auto}
Type traitement

1..1

0..*

No traitement : {PK}
Date
Dure
No sjour : {FK}
No mdecin : {FK}
No type traitement : {FK}

Cette. forme. doptimisation. doit. tre. applique. avec. parcimonie .. Le.


modle. de. la. figure. 2-40. montre. une. table. Aroport. dont. la. cl. primaire.
simple.est.de.type.String.mais.dont.la.valeur.est.limite..trois.caractres.
alphabtiques,.par.exemple. Yul ..Il.ny.a.pas.lieu.doptimiser.cette.cl ..En.
fait,. si. on. value. la. pertinence. des. cls. primaires. simples. de. type. String.
dans. le. modle. 2-40,. aucune. table. ne. devrait. voir. sa. cl. primaire. simple.
changer..des.fins.doptimisation .

consquences de lapplication des techniques doptimisation


Le. modlisateur. doit. tre. conscient. des. consquences. de. lapplication. des.
techniques.nonces.sous.les.rubriques.prcdentes ..Une.consquence.immdiate.est.labsence.de.correspondance.entre.le.modle.conceptuel.et.le.modle.
relationnel.driv.optimis ..
Une.autre.consquence.est.lintroduction.dincohrences.dans.le.modle.
. la. suite. dun. changement. de. cl. primaire .. Il. faut. se. rappeler. que. si. on.
change. la. cl. primaire. dune. table. mre,. les. cls. trangres. dans. les. tables.
filles. doivent. tre. changes. pour. assurer. adquatement. lassociation .. Il.
incombe.au.modlisateur.de.modifier.les.cls.trangres.des.tables.filles.en.
changeant. leur. nom. et. en. rduisant. leur. nombre. lorsque. la. cl. primaire.
compose. de. la. table. mre. est. remplace. par. une. cl. primaire. simple .. Sil.
nglige.de.le.faire,.le.modle.relationnel.sera.incohrent .
Une.dernire.consquence.est.la.dnormalisation.du.modle.relationnel.
car. la. fusion. de. tables. pourrait. conduire. . la. transgression. de. la. troisime.
forme.normale ..Ce.nest.pas.en.soi.un.problme.si.le.modlisateur.en.accepte.
les. effets. secondaires.:.la.table.qui.rsulte.dune. fusion.peut.comporter.des.
lignes.o.plusieurs.attributs.sont.laisss.en.blanc.dans.la.base.de.donnes .



Conception de bases de donnes avec UML

Dans.le.modle.2-40,.la.table. Vol.possde.des.attributs.tels.que. Raison


retard.ou.Raison annulation qui.seront.en.blanc.pour.tout.vol.nayant.connu.

aucun. retard. et. aucune. annulation .. Ce. sont. en. consquence. des. attributs.
pour.lesquels.la.contrainte.dintgrit.{Non nul}.est.totalement.proscrite .

validation du modle relationnel de donnes


Avant.de.passer..la.prochaine.tape,.soit.la.ralisation.physique.de.la.base.
de. donnes. dcoulant. dun. modle. relationnel. de. donnes,. il. importe. de.
valider.ce.dernier ..Cette.validation.peut.se.mener.en.vrifiant.trois.caractristiques.essentielles.qui.assurent.la.cohrence.du.modle.:
1 ..Chaque.table.doit.possder.une.cl.primaire.;
2 ..La.plupart.des.associations.sont.de.type.un plusieurs.:.multiplicit.maximale.de.1.dune.part.et.*.dautre.part,.soit.une.valeur.numrique.strictement
suprieure un.;.
3 ..Chaque.table.fille,.soit.celle.prsente.du.ct.de.la.multiplicit.maximale.
plusieurs.dune.association,.doit.tre.dote.dune.copie.de.la.cl.primaire.
ou. secondaire. de. sa. table. mre. avec. mention. {FK}. ou. {FK}{Cascade}. ou.
{PK,.FK}{Cascade} ..Cette.validation.doit.tre.effectue.avec.grand.soin.car.
une.mme.table.peut.tre..la.fois.table fille.pour.plusieurs.associations.et.
table mre.pour.dautres .
4 ..Exceptionnellement.il.peut.exister.quelques.associations.un un ..Dans.un.
tel.cas,.une.des.deux.tables.doit.tre.une.table.fille.dote.dune.copie.de.
la. cl. primaire. ou. secondaire. de. sa. table. mre. avec. mention. {FK}. ou.
{FK}{Cascade}.ou.{PK,.FK}{Cascade} .

Le modle logique de donnes



exeRcices de ModlisATion logique des donnes


ExErCICE 2-1

Driver le modle relationnel de donnes (MRD) partir du modle conceptuel de donnes


(MCD) donn comme solution de lexercice 1-1. Optimiser le modle considrant des
multiplicits maximales 1 et 1 prsentes sur une association. Valider le modle final.

ExErCICE 2-2

Driver le modle relationnel de donnes partir de la deuxime version du MCD donn


comme solution de lexercice 1-2. Il sagit de la version ne comportant plus dassociations
de degr suprieur. Procder ensuite loptimisation du MRD en substituant une cl
primaire compose une cl primaire simple. Substituer dans les tables suivantes : Fonction,
Diplme, et Institution denseignement la cl primaire simple par une cl primaire
gnration automatique de valeurs. Valider le modle final.

ExErCICE 2-3

Driver le modle relationnel de donnes partir de la deuxime version du MCD donn


comme solution de lexercice 1-3. Il sagit de la version ne comportant plus dassociations
de degr suprieur. Procder ensuite loptimisation du MRD en substituant une cl
primaire compose une cl primaire simple. Valider le modle final.

ExErCICE 2-4

Driver le modle relationnel de donnes partir du MCD donn comme solution de


lexercice 1-4. Procder ensuite loptimisation du MRD en substituant une cl primaire
compose une cl primaire simple. Dbuter avec la table drive de lentit Opration.
Terminer avec la table drive de lentit dassociation Outil utilis. Noter limportance
de procder dans cet ordre. Valider le modle final.

ExErCICE 2-5

Driver le modle relationnel de donnes partir du MCD donn comme solution de


lexercice 1-5. Optimiser le modle au fur et mesure que les tables sont drives en
donnant une cl primaire simple gnration automatique de valeurs toutes les tables
drives dune association plusieurs plusieurs. Valider le modle final.

ExErCICE 2-6

Driver le modle relationnel de donnes partir du MCD donn comme solution de


lexercice 1-6. Optimiser le modle au fur et mesure que les tables sont drives en
donnant une cl primaire simple gnration automatique de valeurs toutes les tables
drives dune association plusieurs plusieurs ou dune entit composant. Valider le
modle final.



Conception de bases de donnes avec UML

soluTions des exeRcices de ModlisATion logique des donnes


ExErCICE 2-1

Le modle comporte une association un un. Toutes les autres sont des associations un
plusieurs. Une premire version du MRD avant optimisation est donne ci-aprs.
Vhicule
No srie : {PK}
No immatriculation
Anne
Kilomtrage actuel
Climatisation?
Automatique?
Nombre portes
Nom marque : {FK}
Nom modle : {FK}
No tarif : {FK}

Permis conduire
No permis : {PK}
Province
Pays
Tlphone client : {FK}

1..1

Marque
0..*

1..1

1..1
0..*
1..*

0..*

Modle

1..1
1..1

0..*
1..1
Client

1..1

0..*

No contrat : {PK}
Date contrat
Lieu prise
Heure prise
Date remise
Lieu remise
Heure remise
Code de rabais
Kilomtrage inclus
Assurance collision?
Supression franchise?
Nombre jours location
Heures en sus
Kilomtres parcourus
Montant factur
No srie : {FK}
Tlphone client : {FK}

Nom modle : {PK}


Nom marque : {FK}
Nom catgorie : {FK}
1..*

Contrat location
Tlphone client : {PK}
Nom client
Adresse client

Nom marque : {PK}

1..1
Catgorie vhicule
1..1

Nom catgorie : {PK}


Tarif

No tarif : {PK}
Tarif horaire
Tarif quotidien
Tarif hebdomadaire
Tarif kilomtrage
Tarif assurance
Montant franchise
Tarif suppression franchise

Une association entre les tables Permis conduire et Client avec multiplicits 1..1
de part et dautre peut donner lieu la fusion des deux tables.
La table retenue pour la fusion est la table portant titre de cl trangre la cl
primaire de lautre table, soit Permis conduire. Tlphone client devient une cl
secondaire pour cette table (mention {Non nul, Unique}). La table Contrat location est
dsormais associe Permis conduire.



Le modle logique de donnes

Vhicule
No srie : {PK}
No immatriculation
Anne
Kilomtrage actuel
Climatisation?
Automatique?
Nombre portes
Nom marque : {FK}
Nom modle : {FK}
No tarif : {FK}
1..1

Marque
0..*

1..1
0..*
1..*

0..*

Modle

Permis conduire
No permis : {PK}
Province
Pays
Tlphone client : {Non nul, Unique}
Nom client
Adresse client
1..1

0..*

1..1

Nom marque : {PK}

1..1

0..*

1..*

Contrat location
No contrat : {PK}
Date contrat
Lieu prise
Heure prise
Date remise
Lieu remise
Heure remise
Code de rabais
Kilomtrage inclus
Assurance collision?
Supression franchise?
Nombre jours location
Heures en sus
Kilomtres parcourus
Montant factur
No srie : {FK}
Tlphone client : {FK}

Nom modle : {PK}


Nom marque : {FK}
Nom catgorie : {FK}

1..1
Catgorie vhicule
1..1

Nom catgorie : {PK}


Tarif

No tarif : {PK}
Tarif horaire
Tarif quotidien
Tarif hebdomadaire
Tarif kilomtrage
Tarif assurance
Montant franchise
Tarif suppression franchise

0

ExErCICE 2-2

Conception de bases de donnes avec UML

Les deux entits dassociation Diplm et Connaissance langue produisent chacune


une table. Il en va de mme pour les associations plusieurs plusieurs Postule entre
les entits Poste et Candidat, et Possde entre Candidat et Centre dintrt.
Le modle relationnel suivant est la version non optimise du MRD driv.
Diplme
Nom diplme : {PK}

No affichage : {PK, FK}{Cascade}


No candidat : {PK, FK}{Cascade}
Poste
No affichage : {PK}
Nom poste

1..*
Diplm

1..1

No occupation : {PK}
Date d'entre en fonction
Date de dpart de la fonction
Salaire la fin
No candidat : {FK}
Dsignation : {FK}
0..*

1..1

No candidat : {PK}
Nom candidat
Prnom candidat
No tlphone
Date de naissance
1..1

Institution enseignement
Nom institution : {PK}

1..1

Langue
Nom langue : {PK}

1..*

1..1
0..*

Priode emploi
No priode : {PK}
Date d'embauche
Date de dpart
No candidat : {FK}
Raison sociale : {FK}

Connaissance langue
0..*

1..*

No candidat : {PK, FK}{Cascade}


Nom langue : {PK, FK}{Cascade}
Niveau

0..*

Possde

1..1

No candidat : {PK, FK}{Cascade}


Dsignation : {PK, FK}{Cascade}

Employeur
Raison sociale : {PK}

1..1

0..*

1..1

Fonction
Dsignation : {PK}

No candidat : {PK, FK}{Cascade}


Nom diplme : {PK, FK}{Cascade}
Nom institution : {FK}

Candidat

1..1

Occupation fonction

1..1

1..1

0..*

1..*

1..1
0..*

0..*

Postule

Centre d'intrt

0..*
1..1

Dsignation : {PK}

Le MRD ne comporte aucune association un un, il ny a donc pas lieu de procder


la fusion de tables.
Les tables Postule, Diplm et Connaissance langue peuvent se voir doter
dune cl primaire simple.
Compte tenu de la longueur de leur cl primaire simple de type String, il y a lieu
de remplacer la cl primaire simple par une cl primaire gnration automatique de
valeurs dans les tables suivantes : Fonction, Diplme, et Institution denseignement.
Ceci aura un impact sur le nom des cls trangres prsentes dans les tables associes
Occupation fonction et Diplm.

1

Le modle logique de donnes

Diplme
No diplme : {PK auto}
Nom diplme

No postulant : {PK auto}


No affichage : {FK}{Cascade}
No candidat : {FK}{Cascade}

1..*

Diplm
No diplm : {PK auto}
No candidat : {FK}{Cascade}
No diplme : {FK}{Cascade}
No institution : {FK}
1..1
0..*
Institution enseignement

1..1

1..1

Poste
No affichage : {PK}
Nom poste

0..*
Candidat

1..1
1..1

1..*
Occupation fonction
No occupation : {PK}
Date d'entre en fonction
Date de dpart de la fonction
Salaire la fin
No candidat : {FK}
No dsignation : {FK}
0..*

No candidat : {PK}
Nom candidat
Prnom candidat
No tlphone
Date de naissance
1..1

No institution : {PK auto}


Nom institution

1..1

1..1

Langue
Nom langue : {PK}

1..*
0..*

Priode emploi
No priode : {PK}
Date d'embauche
Date de dpart
No candidat : {FK}
Raison sociale : {FK}

1..1

Connaissance langue
0..*

1..*

Possde

1..1

No possdant : {PK auto}


No candidat : {FK}{Cascade}
Dsignation : {FK}{Cascade}

Employeur
Raison sociale : {PK}

1..1

No connaissance langue : {PK auto}


No candidat : {FK}{Cascade}
Nom langue : {FK}{Cascade}
Niveau

0..*
Fonction
No dsignation : {PK auto}
Dsignation

1..1
0..*

0..*

Postule

Centre d'intrt

0..*
1..1

Dsignation : {PK}



ExErCICE 2-3

Conception de bases de donnes avec UML

Le MCD comporte une association rflexive dont les multiplicits sont 2..2 dune part et
0..* dautre part. Une telle association est traite comme une association binaire plusieurs
plusieurs. Une table en est drive, que nous appellerons Parent, comportant deux
attributs Nom cheval avec des appellations diffrentes.
Champ de course
Nom du champ : {PK}

1..1

Nom catgorie : {PK}

0..*

Course

1..1
0..*

1..1

Parent

1..*

Catgorie course

0..*

Nom cheval parent : {PK, FK}{Cascade}


Nom cheval rejeton : {PK, FK}{Cascade}

No course : {PK}
Saison
Dsignation course
Date de la course
Dotation en dollars
Nom du champ : {FK}
Nom catgorie : {FK}
Type de course : {FK}

Type de course

1..1

Nom type : {PK}

0..*
1..1

1..*

2..2
1..1
1..1
1..1
0..*

Cheval
Nom cheval : {PK}
Sexe cheval
Date naissance cheval
Gains cette saison

Participation

1..1

No course : {PK, FK}{Cascade}


Nom cheval : {PK, FK}{Cascade}
No dossard
No licence jockey : {FK}

1..*

Jockey
No licence jockey : {PK}
Nom jockey

Possde
Nom cheval : {PK, FK}{Cascade}
Nom propritaire : {PK, FK}{Cascade}
1..*
1..1
Propritaire
Nom propritaire : {PK}

Aprs substitution de la cl primaire compose par une cl primaire simple gnration automatique de valeurs dans les tables Parent, Participation et Possde, le
MRD optimis ne comporte finalement que des tables avec une cl primaire simple.



Le modle logique de donnes

Champ de course
Nom du champ : {PK}

1..1

Parent

1..*

Catgorie course
Nom catgorie : {PK}
1..1

Course

0..*

1..1

0..*

No parent : {PK auto}


Nom cheval parent : {FK}{Cascade}
Nom cheval rejeton : {FK}{Cascade}

0..*

No course : {PK}
Saison
Dsignation course
Date de la course
Dotation en dollars
Nom du champ : {FK}
Nom catgorie : {FK}
Type de course : {FK}

Type de course

1..1

Nom type : {PK}

1..*

2..2
1..1
1..1
1..1
0..*

Participation
0..*

1..1
Jockey
No licence jockey : {PK}
Nom jockey

No participation : {PK auto}


No course : {FK}{Cascade}
Nom cheval : {FK}{Cascade}
No dossard
No licence jockey : {FK}

Cheval
Nom cheval : {PK}
Sexe cheval
Date naissance cheval
Gains cette saison
1..1

1..*
Possde

No possde : {PK auto}


Nom cheval : {FK}{Cascade}
Nom propritaire : {FK}{Cascade}
1..*
1..1
Propritaire
Nom propritaire : {PK}



ExErCICE 2-4

Conception de bases de donnes avec UML

La table Opration drive de lassociation de composition est dabord cre. Les entits
dassociation sont ensuite traites en dbutant par Utilisation machine dont la cl primaire est requise pour tablir la cl primaire dune autre entit dassociation laquelle
elle est associe : Outil utilis. Le MRD rsultant et non optimis donne lieu de
nombreuses tables dont la cl primaire est compose.
Processus
No processus : {PK}
Type
Responsable
Date dernier changement

1..*
0..1

1..1
Produit

0..*

1..1

No produit : {PK}
No processus : {FK}

Produit utilis

0..*

{No processus : {PK}


No squence : {PK}} {FK}{Cascade}
No produit : {PK, FK}{Cascade}
Quantit utilise

1..1

Cdule opration
1..*

1..1

Opration

0..*

No processus : {PK, FK}{Cascade}


No squence : {PK}
Description
Temps standard

No ordre : {PK, FK}{Cascade}


{No processus : {PK}
No squence : {PK}} {FK}{Cascade}
Date planifie
Date fin prvue

1..1

1..*

0..*

Ordre production
1..1

No ordre : {PK}
Statut
Quantit produire
Quantit produite
No produit : {FK}

1..1
0..*
Utilisation machine

0..*

No ordre : {PK, FK}{Cascade}


No machine : {PK, FK}{Cascade}
{No processus : {PK}
No squence : {PK}} {FK}{Cascade}
Date prvue utilisation
Dure utilisation
Quantit ralise
Quantit rebute

1..1
Machine
No machine : {PK}
Description
Cot utilisation/min.

1..1

0..*
Outillage
No outillage : {PK}
Description

1..1

1..1
0..*
Outil utilis

No outillage : {PK, FK}{Cascade}


{No ordre : {PK}
No machine : {PK}
No processus : {PK}
No squence : {PK}} {FK}{Cascade}
Quantit

0..*

Le modle logique de donnes



On comprend facilement toute limportance doptimiser les cls primaires composes


en observant que la table Outil utilis possde une cl primaire qui compte cinq attributs.
De plus, bien que la substitution dune cl compose par une cl primaire simple est en
gnral pertinente dans les tables drives dassociations plusieurs plusieurs et de
degr suprieur, on constate dans cet exemple quelle lest tout autant pour une table
drive dune entit composant. Opration est une table de cette sorte. Sa cl primaire
combine son propre identifiant et lidentifiant de son composite et, comme Opration est
implique dans deux associations avec entit dassociation et une association de degr
suprieur, sa cl primaire compose (No processus, No squence) est reprise dans
les trois tables drives titre de cl secondaire compose. Do limportance dentourer
daccolades les deux lments de la cl trangre qui font aussi partie de la cl
primaire :
{No processus : {PK}
No squence : {PK}} {FK}{CASCADE}
pour viter que ces lments ne soient individuellement considrs comme deux cls
trangres.
En remplaant sa cl primaire compose par la cl primaire No opration, nous
obtenons une optimisation en chane des tables drives des associations. Cela est particulirement patent pour la table Outil utilis qui ne comporte plus que deux cls
trangres au lieu des cinq prsentes dans le modle non optimis. Le changement en
chane des cls primaires, exig afin que chaque cl trangre soit rvise pour conduire
au MRD final, est dcrit ci-dessous.



Conception de bases de donnes avec UML

1..*
Processus

1..1

No processus : {PK}
Type
Responsable
Date dernier changement

Produit utilis

Cdule opration

1..1

Opration
No opration : {PK auto}
No processus : {FK}{Cascade}
No squence
Description
Temps standard

1..1

No produit utilis : {PK auto}


No opration : {FK}{Cascade}
No produit : {FK}{Cascade}
Quantit utilise

0..*

1..1

0..*

0..1

1..1

1..*

Produit
No produit : {PK}
No processus : {FK}

0..*

No cdule opration : {PK auto}


No ordre : {FK}{Cascade}
No opration : {FK}{Cascade}
Date planifie
Date fin prvue

1..1

1..*

0..*
Ordre production

1..1
0..*

No ordre : {PK}
Statut
Quantit produire
Quantit produite
No produit : {FK}

Utilisation machine

0..*

1..1

No utilisation machine : {PK auto}


No ordre : {FK}{Cascade}
No machine : {FK}{Cascade}
No opration : {FK}{Cascade}
Date prvue utilisation
Dure utilisation
Quantit ralise
Quantit rebute

1..1

0..*
Outillage
No outillage : {PK}
Description

1..1

1..1

Machine
No machine : {PK}
Description
Cot utilisation/min.

0..*
Outil utilis
No outil utilis : {PK auto}
No outillage : {FK}{Cascade}
No utilisation machine : {FK}{Cascade}
Quantit

0..*



Le modle logique de donnes

ExErCICE 2-5

Le MRD suivant est pleinement optimis. Notons que le choix du nom de la table Substitut
est plus appropri que Possde un substitut, le nom donn lassociation plusieurs
plusieurs du MCD.
0..*

1..1

Composition

Produit
No produit : {PK}
Dsignation produit
1..1

No composition : {PK auto}


No produit composite : {FK}{Cascade}
No produit composant : {FK}{Cascade}
Quantit du produit

1..1
1..*

0..*

Substitut
No substitut : {PK auto}
No composition : {FK}{Cascade}
No produit : {FK}{Cascade}

0..*

1..1



ExErCICE 2-6

Conception de bases de donnes avec UML

Toutes les tables comportant avant optimisation une cl primaire simple de type String
ont t dotes dune cl primaire simple gnration automatique de valeurs. Toutes les
tables drives dune composition ou dune association plusieurs plusieurs possdent
par ailleurs une cl primaire simple de cette nature. Notons que la table Sollicitation
dispose de deux cls trangres lassociant la table Diplm auxquelles on a pris soin
de donner des noms diffrents.
Diplmation

1..*

No diplmation : {PK auto}


No diplm : {FK}{Cascade}
No diplme : {FK}{Cascade}
Anne obtention

1..1

0..*

Diplm
No diplm : {PK}
Nom diplm
Prnom diplm
Date de naissance
Tlphone bureau
Tlphone domicile
Adresse domicile
Adresse travail
Membre CA?
Membre excutif?

1..1
Diplme
No diplme : {PK auto}
Dsignation diplme
No cotisation : {FK}
No dpartement : {FK}

Type de cotisation
1..*

1..1

No cotisation : {PK}
Montant annuel
1..1

0..1

1..*
Dpartement

0..1

No dpartement : {PK auto}


Nom dpartement
No facult : {FK}

1..1

Versement

0..*
Priode de campagne
No priode : {PK}
Anne campagne
Date dbut
Date fin

1..*

No versement : {PK}
Date versement
Montant versement
1..1
Cotisation?
Anne
Facult
No diplm : {FK}
No priode sollicitation : {FK} No facult : {PK auto}
Nom facult
0..*

1..1
1..*
Sollicitation

0..*

No priode solicitation : {PK auto}


No priode : {FK}{Cascade}
No sollicitation
Date sollicitation
No fiche sollicitation
Diplm?
No diplm solliciteur : {FK}
No diplm sollicit : {FK}
No organisme : {FK}

0..1

Organisme
0..*
0..1

0..*

No organisme : {PK auto}


Nom organisme
Premier tlphone
Deuxime tlphone

Chapitre

le modle physique
de donnes
Objectifs
Versions des instructions de dfinition de donnes du langage SQL,
notamment celles rpondant la norme ANSI 92.

Rgles et principes assurant la conversion dun modle relationnel


en un modle physique de donnes exprim dans le langage SQL.

Dtail de la formulation dun modle physique de donnes par le biais


dun script SQL conforme aux exigences du SGBD MS Access.

Comment raliser un modle physique de donnes avec le SGBD


MS Access sans faire appel un script SQL.
Ce.chapitre.traite.de.la.dernire.tape.dans.la.ralisation.dune.base.de.
donnes.soit.llaboration.dun.modle physique de donnes ..Nous.le.consacrons.essentiellement.aux.techniques.de.ralisation.dun.modle.physique.
de.donnes.avec.MS.Access,..partir.dun.modle.relationnel ..

0

Conception de bases de donnes avec UML

Modle } Un modle de donnes dcoulant dun modle logique qui spcifie les dtails
physique dimplantation du modle logique dans un SGBD, habituellement formuls grce
de donnes un script de dfinition de donnes (Physical Data model).

Script } Une suite dinstructions de dfinition de donnes rdiges selon les exigences
de dfinition du langage SQL. Ces instructions spcifient le schma physique de la BD notam
de donnes ment la structure des tables ainsi que toutes les contraintes dintgrit applicables

aux donnes stockes dans les tables (Data Definition Script).

Avant.daborder.la.question.de.la.transition.du.modle.relationnel.au.
modle.physique.de.donnes,.tudions.les.possibilits.offertes.par.le.langage.
SQL.pour.la.dfinition.de.donnes .

sql coMMe lAngAge de dfiniTion de donnes


Nous.avons.vu.au.chapitre.1.que.SQL.est.bien.plus.quun.langage.dinterrogation.de.bases.de.donnes ..Il.permet.au.concepteur.dune.base.de.donnes.
de.crer.les.tables.et.les.associations.entre.ces.tables.ainsi.que.de.formuler.
des.contraintes.dintgrit.sur.les.attributs.et.les.associations ..Les.organismes.
de. normalisation. amricain. ANSI. (American National Standards Institute) et.
international.ISO.(International Organization for Standardization).ont.adopt.
une.norme.commune.pour.ce.langage ..Elle.est.connue.sous.le.nom.ANSI-92.
[ANS.92].ou.SQL2.ISO.[ISO.92] ..Des.normes.plus.rcentes.existent.dont.SQL3.
ISO.versions.1999.et.2003 .
Les.SGBD.relationnels.actuellement.sur.le.march,.dont.MS.Access.2002.
et.ses.versions.postrieures,.se.conforment.gnralement..la.norme.ANSI-92,.
tout.au.moins.au.premier.niveau.de.la.norme ..Cest.la.raison.pour.laquelle.
tout.au.long.de.ce.chapitre.nous.adoptons.cette.norme.pour.la.formulation.
des.modles.physiques ..La.norme.ANSI-92.permet.dtablir.le.type.de.donnes.
dun. attribut. conforme. au. type. attribu. aux. niveaux. conceptuel. et.
relationnel .
Le.tableau.3-1.prsente.la.correspondance.entre.le.type.de.donnes.au.
niveau.logique.et.son.quivalent.au.niveau.physique.en.vertu.de.la.norme.
ANSI-92 ..Une.valeur.entire.au.niveau.logique.peut.tre.implmente.comme.
un. entier. (SMALLINT). ou. un. entier long. (INTEGER) .. En. Access. le. type. entier.
permet. de. stocker. des. valeurs. entires. entre. 32.768. et. 32.767. alors. que.
lentier long.stocke.des.valeurs.entires.entre.2.147.483.648.et.2.147.483.647 ..
Il.en.va.de.mme.pour.les.nombres.rels.qui.peuvent.tre.du.type.rel simple.
(FLOAT).ou.rel double prcision.(DOUBLE PRECISION) ..Access.stocke.dans.un.

1

Le modle physique de donnes

attribut.rel simple.des.nombres.compris.entre.3,402823E38.et.1,401298E45.
pour. les. valeurs. ngatives. et. entre. 1,401298E45. et. 3,402823E38. pour. les.
valeurs. positives .. Quant. au. type. rel double prcision. il. stocke. des. nombres.
compris. entre. 1,79769313486231E308. et. 4,94065645841247E324. pour.
les.valeurs.ngatives.et.entre.4,94065645841247E324.et.1,79769313486231E308.
pour. les. valeurs. positives .. Le. type. VARCHAR,. appel. type. Texte. en. Access,.
stocke.quant..lui.des.chanes.de.caractres.de.longueur.variant.entre.0.et.
255.caractres .

TAbleAu 3-1

Types de donnes des attributs au niveau logique et au niveau physique

Type au niveau logique


Integer
Real

Signification
Valeur numrique entire
Valeur numrique relle

String
Date
Boolean
enum{}

Chane de caractres
Date du calendrier
Valeur Vrai ou Faux
Liste de valeurs admissibles

Type ANSI-92
SMALLINT / INTEGER
FLOAT / DOUBLE
PRECISION
VARCHAR
DATE
BIT
Clause CHECK

Le.type.numr.na.pas.son.quivalent.direct.dans.la.norme.ANSI-92.
et,. comme. toutes. les. autres. contraintes. de. domaine,. il. est. ralis. avec. la.
clause.SQL.CHECK.que.nous.verrons.sous.peu .
MS. Access. dispose. dautres. types. de. donnes. physiques. non. prsents.
dans. la. norme. ANSI-92 .. Il. sagit. des. types. de. donnes. appels. Monnaie,.
Numroauto.et.Mmo.dans.la.livre.franaise.du.logiciel ..Le.type.Numroauto,.
IDENTITY.en.SQL,.est.le.moyen.dont.on.dispose.en.Access.pour.crer.une.
cl. primaire. simple. . gnration. automatique. de. valeurs .. Dans. sa. version.
SQL,.le.type.IDENTITY.est.dot.de.deux.paramtres,.la.valeur.entire.initiale.
gnre.et.lincrment.utilis.pour.les.gnrations.subsquentes ..Par.exemple,.
le. type. IDENTITY(10,5).sera. utilis. pour. gnrer. des. valeurs. pour. la. cl.
primaire.dans.la.squence.:.10,.15,.20,.25,.etc ..Si.IDENTITY.ne.dispose.daucun.
paramtre,. la. squence. dbute. . 1. et. est. incrmente. de. 1. . chaque.
gnration .
Le.type.physique.MEMO.permet.de.passer.outre..la.limite.de.255.impose.
.la.longueur.dune.chane.de.caractres.de.type.VARCHAR ..



TAbleAu 3-2

Conception de bases de donnes avec UML

Autres types de donnes au niveau physique

Type au niveau logique

Signification

Entier long sans doublon,


mention {PK auto} au
niveau logique

Valeur numrique relle portant


symbole montaire
Valeur numrique entire sans doublon
gnre automatiquement dbutant d
et incrment de i chaque fois
Chane de caractres de plus de
255 caractres, mais moins de 65 535

Type physique
non ANSI-92
CURRENCY
IDENTITY(d,i)

MEMO

cration de tables avec sql


Linstruction.qui.permet.de.crer.une.table.dans.une.BD.avec.le.langage.SQL.
est.appele.CREATE TABLE ..Cette.instruction.peut.tre.relativement.complexe.
car.elle.doit.spcifier.:
Le.nom.de.la.table
Le.nom.de.chaque.attribut.(colonne).de.la.table
Le. domaine. de. la. colonne.:. type. de. donnes. physique. et. contraintes.
.dintgrit.smantiques.(unique,.non.nul,.valeurs.acceptables,.etc .)
La.valeur.par.dfaut.de.la.colonne
La.cl.primaire.de.la.table.et.ses.cls.secondaires
Les. cls. trangres. de. la. table. et. leur. pendant.:. les. cls. des. tables.
associes
Les.contraintes.dintgrit.rfrentielles
Avant.de.prsenter.la.syntaxe.formelle.de.linstruction.CREATE TABLE,.
considrons.quelques.exemples.tirs.du.chapitre.2 ..

Table avec cl primaire simple


Le.modle.qui.suit.ne.comporte.que.des.tables.avec.cl.primaire.simple.et.
une.association.un plusieurs ..Il.reprsente.la.forme.la.plus.courante.dassociation.dans.un.modle.relationnel .



Le modle physique de donnes

figuRe 3-1

Modle relationnel comportant deux tables lies


par une association un plusieurs
Magasin

No agence : Integer {PK}


No civique : String
Rue : String
Ville : String
Code postal : String {Non nul}
No tlphone : String

Employ

1..1

1..*

No employ : Integer {PK}


Nom employ : String
Prnom employ : String
Salaire employ : Real {>0, Non nul}
No agence : Integer {FK}

Dans. le. script. SQL. dcrivant. le. modle. physique,. une. table. mre. est.
toujours. cre. avant. ses. tables. filles .. Ainsi. la. table. Magasin. devra. dabord.
tre.cre.grce..linstruction.suivante.:.
CREATE TABLE Magasin
([No agence] SMALLINT NOT NULL PRIMARY KEY,
[No civique] VARCHAR(10),
[Rue] VARCHAR(30),
[Ville] VARCHAR(30),
[Code postal] VARCHAR(6) NOT NULL,
[No tlphone] VARCHAR(10));
Le. nom. des. colonnes. est. systmatiquement. mis. entre. crochets. pour.
tolrer.lespace.sparateur.entre.les.mots.dun.nom.compos ..Chaque.colonne.
dispose.dun.type.de.donnes.physique.en.correspondance.avec.le.type.de.
donnes.du.modle.relationnel ..Le.nom.de.la.cl.primaire.est.suivi.des.clauses.
NOT NULL. et. PRIMARY KEY .. Une. cl. primaire. doit. en. effet. rpondre. . la.
contrainte.dintgrit.dentit.:.sa.valeur.ne.peut.tre.nulle.(clause.NOT NULL).
et.il.ne.peut.y.avoir.de.doublons,.soit.la.mme.valeur.donne..la.cl.primaire.
sur.plusieurs.lignes.de.la.table.(clause.PRIMARY KEY) .
Lattribut. Code postal.possde.une.contrainte.dintgrit.stipulant.que.
sa.valeur.ne.peut.tre.nulle,.ce.qui.se.traduit.par.la.clause.NOT NULL.place.
.la.suite.de.son.type.de.donnes.VARCHAR(6) ..
Le. script. ncessaire. . la. cration. de. la. table. Employ. est. donn.
ci-aprs .



Conception de bases de donnes avec UML

CREATE TABLE Employ


([No employ] SMALLINT NOT NULL PRIMARY KEY,
[Nom employ] VARCHAR(20),
[Prnom employ] VARCHAR(20),
[Salaire employ] CURRENCY NOT NULL,
[No agence] SMALLINT NOT NULL
REFERENCES Magasin([No agence]),
CONSTRAINT SalaireSupZro CHECK([Salaire employ]>0))
Cette.fois-ci.la.table.possde.une.cl.trangre.et.elle.doit.tre.spcifie.
avec.la.clause.REFERENCES .. No agence.est.un.entier.dont.la.valeur.ne.peut.
tre.nulle.car.la.multiplicit.minimale.est.1.du.ct.de.la.table.mre.Magasin.
do.la.prsence.dune.clause.NOT NULL.qui.suit.le.type.de.donnes.SMALLINT ..
La. clause. REFERENCES. stipule. quil. sagit. dune. cl. trangre. associe. . la.
table. Magasin.par.le.biais.de.sa.cl.primaire. No agence.:
REFERENCES Magasin([No agence])
La.clause.REFERENCES.reprsente.une.contrainte.dintgrit.rfrentielle.
en.ajout ..Elle.signifie.que,.lors.de.lajout.dune.ligne.dans.la.table.fille.Employ,.
le. No agence.de.lemploy.doit.tre.prsent.dans.la.table.mre. Magasin ..De.
plus,.si.une.ligne.de.la.table.Magasin.est.supprime,.elle.ne.pourra.ltre.que.
si.aucune.ligne.ne.lui.est.associe.dans.la.table. Employ ..Aucune.action.ne.
sera.entreprise.visant.notamment..effacer.automatiquement.toutes.les.lignes.
associes.dans. Employ .
La.dernire.clause.de.linstruction.permettant.de.crer.la.table.Employ.
est.une.contrainte.de.domaine.portant.sur.lattribut.Salaire employ indiquant.
quil.doit.en.tout.temps.tre.strictement.suprieur..0.:
CONSTRAINT SalaireSupZro CHECK([Salaire employ]>0)
Chaque.contrainte.portant.sur.des.colonnes.de.la.table.doit.faire.appel.
.la.clause.CONSTRAINT.pour.lui.accorder.un.nom.(ici. SalaireSupZro).et.
formuler.ensuite.une.condition.de.validit.avec.la.clause.CHECK ..Cette.dernire.clause.permet.notamment.de.dfinir.des.conditions.de.validit,.comme.
on.le.ferait.grce..la.proprit.Valide si.en..Mode.cration.de.table..dans.
MS.Access ..

Le modle physique de donnes



Le. script. de. cration. de. la. table. Employ. donn. plus. haut,. bien. quil.
permette.dassurer.la.multiplicit.minimale.1.du.ct.de.la.table.mre.Magasin.
par.la.prsence.de.la.clause NOT NULL sur.lattribut.No agence,.nimplante.
pas.la.multiplicit.minimale.1.du.ct.de. Employ ..
Pour. ce. faire,. il. faudrait. ajouter. une. nouvelle. contrainte. au. script. de.
cration. de. la. table. Magasin,. une. contrainte. qui. permet. de. vrifier. quun.
magasin.emploie.au.moins.un.employ ..Linstruction.ALTER TABLE.permet.
un.tel.ajout.sur.une.table.existante ..
ALTER TABLE Magasin
ADD CONSTRAINT AuMoinsUnEmploy
CHECK (NOT EXISTS(SELECT COUNT(Employ.[No employ]) AS
[CompteEmployDuMagasin], Magasin.[No agence] FROM
Magasin LEFT JOIN Employ ON Magasin.[No agence] =
Employ.[No agence]
GROUP BY Magasin.[No agence]
HAVING (((Count(Employ.[No employ]))=0))))
La.contrainte.doit.tre.ajoute..la.table. Magasin.aprs.la.cration.de.
la.table. Employ.puisque,.comme.le.montre.le.script,.elle.fait.rfrence.aux.
colonnes.de. Employ ..La.contrainte. AuMoinsUnEmploy,.relativement.complexe.et.correcte.sur.le.plan.syntaxique,.ne.peut.malheureusement.pas.tre.
mise. en. uvre. car. elle. est. en. contradiction. avec. la. contrainte. dintgrit.
rfrentielle.dj.applique.. No agence .
Voici. pourquoi .. Rappelons. que. la. contrainte. dintgrit. rfrentielle.
stipule.quun.nouvel.employ.ne.peut.tre.ajout.dans.la.table.que.si.le. No
agence. lest. dj. dans. la. table. Magasin .. Les. donnes. du. magasin. doivent.
donc.exister.dans.la.BD.avant.de.pouvoir.ajouter.les.donnes.des.employs.
qui. y. travaillent .. En. consquence,. lorsque. les. donnes. du. magasin. sont.
entres.dans.la.table. Magasin,.aucun.employ.de.ce.magasin.nexiste.dans.
la.table. Employ,.ce.qui.transgresse.la.contrainte.de.multiplicit.minimale.
1. qui. veut. quun. magasin. emploie. au. moins. un. employ .. Cest. un. cercle.
vicieux ..La.prsence.dune.contrainte.a.pour.effet.de.rendre.lautre.contrainte.
inapplicable .. Cest. un. problme. que. lon. appelle. interbloquage. en. langage.
technique .
Cette. situation. se. rencontre. lorsquil. y. a. multiplicit. maximale. 1. du.
ct.de.la.table.fille.et.quune.contrainte.dintgrit.rfrentielle.sapplique.
.la.cl.trangre.assurant.cette.association ..Pour.viter.tout.conflit,.une.des.
contraintes.ne.sera.pas.ralise..travers.le.script.de.cration.des.tables ..La.
contrainte.assurant.une.multiplicit.maximale.1.du.ct.de.la.table.fille.sera.
mise. en. uvre. de. faon. distincte .. On. choisira. plutt. de. miser. sur. des.



Conception de bases de donnes avec UML

.instructions. de. programmation. pour. vrifier. si. la. BD. respecte. ce. type. de.
contrainte. tout. comme. cest. le. cas. des. contraintes. inter-associations. par.
ailleurs ..Le.thme.de.la.programmation.des.contraintes..laide.dun.langage.
de.programmation.nest.pas.couvert.dans.cet.ouvrage .
Le.tableau.3-3.se.veut.un.synopsis.des.exigences.du.modle.relationnel.
de.la.figure.3-1.et.la.formulation.de.ces.exigences.dans.le.modle.physique.
.laide.dun.script.de.cration.de.tables .

TAbleAu 3-3

Rsum des clauses du script de cration de tables requises


pour raliser le modle physique correspondant au modle 3-1

Exigence

Niveau logique

Signification

1.

{PK}

2.

{Non nul}

3.

{FK}

Cet attribut constitue la cl primaire :


il ne peut avoir une valeur nulle
et avoir des doublons (intgrit
dentit)
La valeur de cet attribut ne peut tre
nulle (laisse en blanc)
Cet attribut constitue une cl
trangre avec intgrit rfrentielle
en ajout

4.
5.
6.

7.

Multiplicit
minimale 1 ct
mre
Multiplicit
minimale 1 ct
fille
Multiplicit
maximale 1 ct
mre

La cl trangre comporte
obligatoirement une valeur

{>Nombre}

Cet attribut possde une contrainte de


domaine

On doit avoir au moins une ligne


de la table fille associe une ligne
de la table mre
Une ligne fille ne peut tre associe
au plus qu une ligne mre

Niveau physique :
Clause requise dans le script
NOT NULL PRIMARY KEY

NOT NULL
REFERENCES
Table_mre(Cl_mre)
Le type de donnes de la cl primaire
doit tre le mme que celui de la cl
trangre
NOT NULL
pour la cl trangre qui ralise
lassociation
Ne pas mettre en uvre avec
CREATE TABLE car il y a un conflit
avec lintgrit rfrentielle
Aucune clause requise car dans le
modle relationnel une cl trangre
ne peut avoir quune seule valeur
la fois
CONSTRAINT Nom_contrainte
CHECK(Nom_attribut>Nombre)

La.figure.3-2.montre.cette.fois.un.modle.relationnel.avec.association.
un un.qui.pourrait.tre.optimis.mais.ne.la.pas.t ..Cet.exemple.permet.
de.prsenter.un.script.de.cration.des.tables.qui.reflte.sur.plusieurs.aspects.
les.mmes.exigences.que.pour.le.modle.3-1.en.plus.de.rpondre..certaines.
exigences.originales .



Le modle physique de donnes

figuRe 3-2

Modle relationnel comportant deux tables lies par une association un un


Paiement

No paiement : Integer {PK}


Montant paiement : Real {>0, Non nul}
Date paiement : Date {Non nul}
Mode paiement : enum{Carte de crdit, Paiement direct, Comptant} {Dfaut: Comptant}
No reu : Integer {FK}
1..1
1..1
Reu
No reu : Integer {PK}
Date reu : Date

La.table. Reu,.qui.est.la.table.mre.pour.lassociation,.est.la.premire.
cre .
CREATE TABLE Reu
([No reu] SMALLINT NOT NULL PRIMARY KEY,
[Date reu] DATE)
Sa.table.fille. Paiement.est.cre.avec.le.script.suivant.:
CREATE TABLE Paiement
([No paiement] SMALLINT NOT NULL PRIMARY KEY,
[Montant paiement] CURRENCY NOT NULL,
[Date paiement] DATE NOT NULL,
[Mode paiement] VARCHAR(20) NOT NULL DEFAULT Comptant,
[No reu] SMALLINT NOT NULL UNIQUE
REFERENCES Reu([No reu]),
CONSTRAINT MontantSupZro CHECK([Montant paiement]>0),
CONSTRAINT ModePaiementValide CHECK([Mode paiement]
IN (Carte de crdit, Carte de dbit, Comptant)))
Les.clauses.NOT NULL.inscrites..la.suite.des.attributs.Montant paiement,.
Date paiement.et. Mode paiement.refltent.les.contraintes.exprimes.dans.le.

modle.relationnel.pour.ces.attributs ..



TAbleAu 3-4

Exigence

Conception de bases de donnes avec UML

Rsum des clauses du script de cration de tables requises


pour raliser le modle physique correspondant au modle 3-2

Niveau logique

Signification

1.

{PK}

2.

{Non nul}

3.

{FK}

Cet attribut constitue la cl primaire :


il ne peut avoir une valeur nulle et
avoir des doublons (intgrit dentit)
La valeur de cet attribut ne peut tre
nulle (laisse en blanc)
Cet attribut constitue une cl
trangre avec intgrit rfrentielle
en ajout

4.
5.
6.

Multiplicit
minimale 1 ct
mre
Multiplicit
minimale 1 ct
fille
Multiplicit
maximale 1 ct
mre

7.

{>Nombre}

8.

{Dfaut valeur}

9.

Multiplicit
maximale 1 ct
fille
enum{val1, val2,
, valn }

10.

La cl trangre comporte
obligatoirement une valeur
On doit avoir au moins une ligne
de la table fille associe une ligne
de la table mre
Une ligne fille ne peut tre associe
au plus qu une ligne mre
Cet attribut possde une contrainte
de domaine
Cet attribut dispose dune valeur
par dfaut
La cl trangre ne peut avoir
des doublons
Cet attribut possde une contrainte
de domaine

Niveau physique :
Clause requise dans le script
NOT NULL PRIMARY KEY

NOT NULL
REFERENCES
Table_mre(Cl_mre)
Le type de donnes de la cl primaire
doit tre le mme que celui de la cl
trangre
NOT NULL
pour la cl trangre qui ralise
lassociation
Ne pas mettre en uvre avec
CREATE TABLE car il y a un conflit
avec lintgrit rfrentielle
Aucune clause requise car dans
le modle relationnel un attribut, donc
une cl trangre, ne peut avoir
quune seule valeur la fois
CONSTRAINT Nom_contrainte
CHECK(Nom_attribut>Nombre)
DEFAULT Valeur_par_dfaut
UNIQUE

CONSTRAINT Nom_contrainte
CHECK(Nom_attribut IN
(val1, val2, , valn) )

Lattribut. Mode paiement. possde. une. valeur. par. dfaut,. la. chane. de.
caractres. Comptant ,. en. conformit. avec. les. exigences. du. modle.
relationnel .
La. clause. NOT NULL. qui. suit. le. type. de. donnes. SMALLINT. de. la. cl.
trangre. No reu exprime. sur. le. plan. physique. lexigence. de. multiplicit.
minimale.1.du.ct.de.la.table.fille. Paiement.comme.dans.le.modle.3-1.o.
le.script.de.cration.de.la.table.Employ.spcifie.une.cl.trangre.No agence.
qui.porte.aussi.la.NOT NULL.pour.implanter.lexigence.de.multiplicit.minimale.1.du.ct.de.la.table.fille. Employ .



Le modle physique de donnes

On.note.de.plus.la.prsence.de.la.clause.UNIQUE.qui.assure.ici.limplmentation.de.la.multiplicit.maximale.1.du.ct.le.la.table.mre. Reu ..En.


effet,.il.ne.peut.y.avoir.deux.lignes.de.la.table.Paiement.ayant.la.mme.valeur.
pour. No reu .
La.contrainte.MontantSupZro.restreint.le.domaine.de.Montant paiement.
.des.valeurs.strictement.suprieures..zro ..La.contrainte.ModePaiementValide.
pour.sa.part.spcifie.un.domaine.pour.lattribut.Mode paiement qui.est.limit.
aux. trois. chanes. de. caractres.:. Carte de crdit,. Carte de dbit. et.
Comptant .
La.figure.3-3.illustre.une.situation.o.la.table.a.une.cl.primaire.simple.
mais.cette.fois.elle.est.associe..elle-mme ..Lassociation.rflexive.est.ncessaire.pour.lier.une.ligne.comportant.les.donnes.sur.un.employ..une.autre.
ligne.de.la.mme.table.comportant.les.donnes.sur.son.patron ..
Une.contrainte.bien.banale.exige.que.la.date.dembauche.soit.suprieure.
.la.date.de.naissance ..Une.autre.contrainte,.plus.singulire,.stipule.que.le.
salaire.de.lemploy.doit.tre.infrieur.ou.gal..celui.de.son.patron ..
La.table. Employ.est..la.fois.mre.et.fille,.sa.cl.primaire.est..gnration.automatique.de.valeurs .
figuRe 3-3

Modle relationnel comportant une table lie elle-mme


par une association un plusieurs
Employ
No employ : Integer {PK auto}
Nom employ : String
Prnom employ : String
Date naissance : Date
Date embauche : Date {>Date naissance}
Salaire employ : Real {<= Salaire patron}
No employ patron : Integer {FK}

1..1

0..*

Le.modle.physique.doit.fait.appel..la.clause.IDENTITY.comme.type.
de. donnes. de. No employ. car. on. exige. une. gnration. automatique. de.
valeurs ..Le.type.de.lattribut,.comme.pour.toutes.les.cls.primaires,.doit.tre.
suivi. des. clauses. NOT NULL. et. PRIMARY KEY .. Soulignons. quil. sagit. dun.
attribut.dont.le.type.est.techniquement.un.entier long .

0

Conception de bases de donnes avec UML

Le. script. doit. formuler. deux. contraintes .. Une. premire. concerne. les.
valeurs.admissibles.pour.lattribut. Date embauche ..Sa.valeur.est.en.relation.
avec.un.attribut.de.la.mme.table.dont.la.valeur.est.disponible.sur.la.mme.
ligne ..Il.suffit.de.mettre.en.relation.les.deux.attributs.par.le.biais.de.la.clause.
CONSTRAINT.suivante.:
CONSTRAINT EmbaucheApresNaissance CHECK([Date embauche]>
[Date naissance])
La. deuxime. contrainte. est. plus. complexe. . implanter .. Le. modle.
r. elationnel. montre.quune. ligne.de. Employ.est.toujours.associe..une.et.
une.seule.ligne.de.la.mme.table.mais.cette.ligne.ne.peut.tre.la.mme.car.
en.gnral.un.employ.nest.pas.son.propre.patron,.sauf.pour.un.seul.employ .
Si.on.exclut.le.cas.de.lemploy.qui.est.son.propre.patron,.le.salaire.du.patron.
nest.pas.donn.sur.la.mme.ligne.que.les.autres.donnes.concernant.lemploy .. Une. opration. de. jointure. ralise. sur. la. mme. table. avec. la. clause.
SELECT.doit.permettre.dassocier.le.salaire.dun.employ.avec.le.salaire.de.
son.patron.et.de.vrifier.ensuite.quil.nexiste.aucune.situation.o.le.salaire.
dun.patron.est.infrieur..celui.dun.de.ses.employs ..La.vrification.peut.
tre.faite.par.une.contrainte.exprime.en.ces.termes.:
CONSTRAINT SalaireInfEgalAuPatron CHECK(NOT EXISTS
(SELECT Employ.[Salaire employ]
FROM Employ INNER JOIN Employ AS Employ_1 ON
Employ.[No employ]=Employ_1.[No employ patron]
WHERE (((Employ.[Salaire employ])<Employ_1.[Salaire
employ])))
La.table. Employ.est.ainsi.cre.comme.sil.sagissait.dune.table.mre.
sur.laquelle.les.deux.contraintes.sont.implantes .
CREATE TABLE Employ
([No employ] IDENTITY NOT NULL PRIMARY KEY,
[Nom employ] VARCHAR(20),
[Prnom employ] VARCHAR(20),
[Date naissance] DATE,
[Date embauche] DATE,
[Salaire employ] CURRENCY,
[No employ patron] INTEGER NOT NULL
REFERENCES Employ([No employ]),

1

Le modle physique de donnes

CONSTRAINT EmbaucheApresNaissance CHECK([Date embauche]>


[Date naissance]),
CONSTRAINT SalaireInfEgalAuPatron CHECK(NOT EXISTS
(SELECT Employ.[Salaire employ]
FROM Employ INNER JOIN Employ AS Employ_1 ON
Employ.[No employ]=Employ_1.[No employ patron]
WHERE (((Employ.[Salaire employ])<Employ_1.[Salaire
employ])))))
Il.importe.de.souligner.que.la.cl.trangre.No employ patron.doit.tre.
de.type.INTEGER.car.le.type.de.donnes.IDENTITY.de.la.cl.primaire.associe.
reprsente. un. entier long .. Lutilisation. du. type. SMALLINT. (un. entier. court).
aurait.conduit..une.incohrence.de.type ..Le.tableau.3-5.rsume.les.exigences.
TAbleAu 3-5

Rsum des clauses du script de cration de tables requises


pour raliser le modle physique correspondant au modle 3-3

Exigence

Niveau logique

Signification

11.

{PK auto}

Cet attribut constitue une cl primaire


avec gnration automatique
de valeurs

3.

4.
6.

{FK}

Multiplicit
minimale 1 ct
mre
Multiplicit
maximale 1 ct
mre

12.

{>Nom_attribut2}

13.

{<= Valeur hors


ligne}

Cet attribut constitue une cl


trangre avec intgrit rfrentielle
en ajout

La cl trangre comporte
obligatoirement une valeur
Une ligne fille ne peut tre associe
au plus qu une ligne mre
Cet attribut possde une contrainte
voulant que sa valeur soit limite par
la valeur dun attribut sur la mme
ligne
Cet attribut possde une contrainte
voulant que sa valeur soit limite par
la valeur dun attribut sur une autre
ligne de la mme table ou une ligne
dune autre table

Niveau physique :
Clause requise dans le script
IDENTITY NOT NULL
PRIMARY KEY
La gnration de valeurs dbute 1 et
suivent des valeurs incrmentes de 1
REFERENCES
Table_mre(Cl_mre)
Le type de donnes de la cl primaire
doit tre le mme que celui de la cl
trangre
NOT NULL
pour la cl trangre qui ralise
lassociation
Aucune clause requise car dans le
modle relationnel un attribut, donc
une cl trangre, ne peut avoir
quune seule valeur la fois
CONSTRAINT Nom_contrainte
CHECK(Nom_attribut >
Nom_attribut2)
CONSTRAINT Nom_contrainte
CHECK(NOT EXISTS
(SELECT Nom_attribut
FROM Jointure WHERE
Condition))



Conception de bases de donnes avec UML

quant..la.cration.de.la.table. Employ ..Les.exigences.de.type.3,.4.et.6.ont.


dj.t.voques.dans.les.exemples.prcdents ..Le.modle.3-3.permet.dillustrer.la.mise.en.uvre.de.trois.nouveaux.types.dexigences.qui.sont.numrots.
11,.12.et.13 .

Table avec cl primaire compose


Lorsque.quun.modle.relationnel.na.pas.t.compltement.optimis,.il.peut.
comporter.des.tables.dont.la.cl.primaire.est.compose ..Le.script.pour.raliser.
une.cl.primaire.compose.ne.doit.pas.tre.de.mme.nature.que.celui.pour.
raliser. une. cl. primaire. simple .. Il. devra. comporter. obligatoirement. une.
clause.PRIMARY KEY.ayant.comme.paramtres.les.attributs.de.la.cl .
figuRe 3-4

Modle relationnel comportant une table avec cl primaire compose


Magasin

No agence : Integer {PK}


No civique : String
Rue : String
Ville : String
Code postal : String {Non nul}
No tlphone : String
1..*

1..1
1..1

Employ
No employ : Integer {PK}
Nom employ : String
Prnom employ : String
Salaire employ : Real {>0, Non nul}

1..*
Embauche

No agence : Integer {PK, FK}{Cascade}


No employ : Integer {PK, FK}{Cascade}
Date embauche : Date

Le.modle.de.la.figure.3-4.nous.permettra.dillustrer.comment.le.script.
du. modle. physique. doit. raliser. une. cl. primaire. compose. mais. aussi.
comment.lintgrit.rfrentielle.(en.ajout,.suppression.et.mise..jour).peut.
tre.mise.en.uvre.sur.chaque.cl.trangre.(mention.{Cascade}) .
Les.tables.mres.sont.cres.les.premires.et.les.exigences.du.modle.sont.
formules.dans.le.script.selon.les.conventions.dcrites.dans.lexemple.3-1 .
CREATE TABLE Magasin
([No agence] SMALLINT NOT NULL PRIMARY KEY,
[No civique] VARCHAR(10),
[Rue] VARCHAR(30),
[Ville] VARCHAR(30),
[Code postal] VARCHAR(6) NOT NULL,
[No tlphone] VARCHAR(10)) ;

Le modle physique de donnes



CREATE TABLE Employ


([No employ] SMALLINT NOT NULL PRIMARY KEY,
[Nom employ] VARCHAR(20),
[Prnom employ] VARCHAR(20),
[Salaire employ] CURRENCY NOT NULL,
CONSTRAINT SalaireSupZro CHECK([Salaire employ]>0))
La.table.fille. Embauche.est.ensuite.cre ..On.peut.noter.dans.le.script.
qui.suit,.la.ralisation.des.deux.cls.trangres.avec.les.clauses.ON DELETE
CASCADE.et.ON UPDATE CASCADE.pour.spcifier.quil.sagit.dans.chaque.cas.
dassurer.lintgrit.rfrentielle.en.ajout,.en.suppression.et.en.mise..jour ..
La.suppression.dune.ligne.mre.entrane.la.suppression.de.toutes.ses.lignes.
filles ..La.mise..jour.de.la.cl.primaire.dune.ligne.mre.entrane.la.mise..
jour.des.valeurs.des.cls.trangres.correspondantes.dans.les.lignes.filles .
CREATE TABLE Embauche
([No agence] SMALLINT NOT NULL
REFERENCES Magasin([No agence]) ON DELETE CASCADE
ON UPDATE CASCADE,
[No employ] SMALLINT NOT NULL
REFERENCES Employ([No employ]) ON DELETE CASCADE
ON UPDATE CASCADE,
[Date embauche] DATE,
PRIMARY KEY([No agence],[No employ]))
La.cl.primaire.compose.doit.tre.ralise.grce..une.clause.PRIMARY
KEY. faisant. tat. des. deux. attributs. composant. la. cl,. attributs. donns. en.
paramtres .
PRIMARY KEY([No agence],[No employ])
Au. tableau. des. exigences,. on. se. doit. dajouter. deux. nouveaux. types.
dexigences,.soit.le.type.14.pour.la.formulation.des.cls.primaires.composes.
et.le.type.15.pour.la.codification.de.lintgrit.rfrentielle.en.ajout,.suppression.
et.mise..jour.sur.une.cl.trangre ..Voir.le.tableau.3-6 .



TAbleAu 3-6

Conception de bases de donnes avec UML

Rsum des clauses du script de cration de tables requises


pour raliser le modle physique correspondant au modle 3-4

Exigence

Niveau logique

Signification

14.

Nom_attribut1
{PK}

Nom_attributn
{PK}

Ces attributs forment une cl primaire


compose : aucun de ces attributs
ne peut avoir une valeur nulle et leur
combinaison ne peut avoir de
doublons (intgrit dentit)

{Non nul}

La valeur de cet attribut ne peut tre


nulle (laisse en blanc)
Cet attribut constitue une cl
trangre avec intgrit rfrentielle
en ajout, suppression et mise jour

2.
15.

4.
5.
6.

7.

{FK}{Cascade}

Multiplicit
minimale 1 ct
mre
Multiplicit
minimale 1 ct
fille
Multiplicit
maximale 1 ct
mre
{>Nombre}

La cl trangre comporte
obligatoirement une valeur
On doit avoir au moins une ligne
de la table fille associe une ligne
de la table mre
Une ligne fille ne peut tre associe
au plus qu une ligne mre
Cet attribut possde une contrainte
de domaine

Niveau physique :
Clause requise dans le script
PRIMARY KEY
(Nom_attribut1, ,
Nom_attributn)
Chaque attribut a t nomm plus tt
dans le script et porte une clause NOT
NULL
NOT NULL
REFERENCES Table_
mre(Cl_mre)
ON DELETE CASCADE
ON UPDATE CASCADE
Le type de donnes de la cl primaire
doit tre le mme que celui de la cl
trangre
NOT NULL
pour la cl trangre qui ralise
lassociation
Ne pas mettre en uvre avec
CREATE TABLE car il y a un conflit
avec lintgrit rfrentielle
Aucune clause requise car dans le
modle relationnel une cl trangre
ne peut avoir quune seule valeur
la fois
CONSTRAINT Nom_contrainte
CHECK(Nom_attribut>Nombre)

Table avec cl trangre compose


Bien.que.cette.situation.soit.exceptionnelle,.il.peut.arriver.que.la.cl.trangre.
qui.associe.une.table.fille..une.table.mre.soit.compose.de.deux.attributs.
ou.plus ..Il.sagit.dune.consquence.du.choix.dun.identifiant.compos.pour.
une.entit.forte ..Nous.avons.vu.au.chapitre.1.que.ce.type.didentifiant.nest.
pas.souhaitable. mais. il.nest.pas. interdit.dy.faire.appel .. Un.tel.identifiant.
entrane.une.cl.primaire.compose.pour.la.table.drive .
Sil.savre.que.la.table.drive.est.une.table.mre,.la.table.fille.associe.
doit.recevoir.une.copie.de.la.cl.primaire.compose..titre.de.cl.trangre.
compose ..Dans.le.cas.o.aucune.mesure.doptimisation.ne.serait.prise.avant.



Le modle physique de donnes

la. cration. du. modle. physique,. le. script. doit. implanter. une. cl. trangre.
compose.par.le.biais.de.la.clause.FOREIGN KEY ..La.figure.3-5.illustre.une.
telle. situation .. La. cl. primaire. de. la. table. Employ. est. compose. de. deux.
attributs .. Elle. est. associe. . la. table. Carte didentit. pour. laquelle. elle. agit.
comme. table. mre .. La. cl. primaire. compose. est. reproduite. dans. la. table.
Carte didentit.et.ses.deux.attributs.sont.placs.entre.accolades,.{Nom employ:
String, Prnom employ:String},.suivis.de.la.mention.{FK}.pour.bien.mettre.
en.vidence.quil.sagit.l.dune.cl.trangre.compose.et.non.pas.de.deux.
cls.trangres .
figuRe 3-5

Modle relationnel comportant une table avec cl trangre compose


Carte d'identit
Employ

Nom employ : String {PK}


Prnom employ : String {PK}
Salaire employ : Real {>0, Non nul}

1..1

1..*

No carte : Integer {PK}


Date mission : Date
Date annulation : Date
{ Nom employ : String,
Prnom employ : String }{FK}

La.table. Employ.doit.tre.cre.avec.le.script.qui.suit ..On.y.retrouve.


une. clause. PRIMARY KEY qui. codifie. la. cl. primaire. compose .. Les. deux.
attributs. qui. composent. la. cl. ont. t. dclars. plus. tt. et. portent. chacun.
une.clause.NOT NULL,.assurant.ainsi.la.contrainte.dintgrit.dentit .
CREATE TABLE Employ
([Nom employ] VARCHAR(20) NOT NULL,
[Prnom employ] VARCHAR(20) NOT NULL,
[Salaire employ] CURRENCY NOT NULL,
CONSTRAINT SalaireSupZro CHECK([Salaire employ]>0),
PRIMARY KEY([Nom employ],[Prnom employ]))
La.table.Carte dentit.est.cre.ensuite ..La.clause.FOREIGN KEY formule.
les. exigences. dune. cl. trangre. compose .. On. a. pris. soin. auparavant. de.
dclarer.chaque.attribut.composant.la.cl.trangre.et.portant.la.clause.NOT
NULL. pour. implanter. la. multiplicit. minimale. 1. du. ct. de. la. table. mre.
Employ .



Conception de bases de donnes avec UML

CREATE TABLE [Carte didentit]


([No carte] SMALLINT NOT NULL PRIMARY KEY,
[Date mission] DATE,
[Date annulation] DATE,
[Nom employ] VARCHAR(20) NOT NULL,
[Prnom employ] VARCHAR(20) NOT NULL,
FOREIGN KEY([Nom employ],[Prnom employ])
REFERENCES Employ([Nom employ],[Prnom employ]) )
Le.tableau.3-7.compile.les.exigences.de.cration.des.tables.du.modle.3-5.
o. apparat. le. type. 16. concernant. la. cration. dune. cl. trangre.
compose .
Les.exemples.3-1..3-5.nous.ont.permis.de.constater.toute.la.souplesse.
de.linstruction.SQL.CREATE TABLE.pour.la.cration.dun.schma.physique,.
tout. en. dmontrant. sa. complexit .. La. prochaine. section. prsente. une.
.description. formelle. de. linstruction. CREATE TABLE. et. des. clauses. qui. la.
composent .

syntaxe formelle de linstruction cReATe TAble


La.syntaxe.formelle.dune.instruction.appartenant..un.langage.de.programmation.est.habituellement.dfinie.sous.une.forme.appele.la.notation.Backus
Naur Form (BNF) ..Elle.permet.dexprimer.succinctement.la.syntaxe.gnrale.
dune. instruction. et. de. valider. si. une. instance. de. linstruction. sy.
conforme ..
Toute.instruction.SQL.est.constitue.de.mots-cls.et.de.mots dfinis par
lutilisateur ..Les.mots-cls.sont.crits.en.caractres.majuscules.et.souvent.en.
gras ..CHECK.est.un.mot-cl.comme.tous.les.noms.des.clauses.prsentes.dans.
une.instruction.CREATE TABLE ..Les.mots.dfinis.par.lutilisateur.sont.choisis.
par.lutilisateur.et.rfrent..des.objets.de.la.base.de.donnes.:.une.table,.une.
cl.primaire.simple,.une.colonne,.etc ..
La.notation.BNF.prescrit.les.rgles.suivantes.pour.la.dfinition.formelle.
de.la.syntaxe.dune.instruction.:
Les. lettres. majuscules. reprsentent. des. mots-cls. qui. doivent. scrire. de.
la.manire.strictement.indique.;
Les.lettres.minuscules.reprsentent.les.mots.dfinis.par.lutilisateur.;



Le modle physique de donnes

TAbleAu 3-7

Rsum des clauses du script de cration de tables requises


pour raliser le modle physique correspondant au modle 3-5

Exigence

Niveau logique

Signification

14.

Nom_attribut1
{PK}

Nom_attributn
{PK}

Ces attributs forment une cl primaire


compose : aucun de ces attributs ne
peut avoir une valeur nulle et leur
combinaison ne peut avoir de
doublons (intgrit dentit)

{Non nul}

La valeur de cet attribut ne peut tre


nulle (laisse en blanc)
Ce groupe dattributs constituent
une cl trangre avec intgrit
rfrentielle en ajout

2.
16.

4.
5.
6.

7.

{Nom_attribut1 :
Type, ,
Nom_attributn :
Type}{FK}

Multiplicit
minimale 1 ct
mre
Multiplicit
minimale 1 ct
fille
Multiplicit
maximale 1 ct
mre
{>Nombre}

La cl trangre comporte
obligatoirement une valeur
On doit avoir au moins une ligne
de la table fille associe une ligne
de la table mre
Une ligne fille ne peut tre associe
au plus qu une ligne mre
Cet attribut possde une contrainte
de domaine

Niveau physique :
Clause requise dans le script
PRIMARY KEY
(Nom_attribut1, ,
Nom_attributn)
Chaque attribut a t nomm plus tt
dans le script et porte une clause NOT
NULL
NOT NULL
FOREIGN KEY
(Nom_attribut1, ,
Nom_attributn)
REFERENCES
Table_mre(Cl_attribut1,
, Cl_attributn)
Le type de donnes de la cl primaire
doit tre le mme que celui de la cl
trangre
NOT NULL
pour la cl trangre qui ralise
lassociation
Ne pas mettre en uvre avec
CREATE TABLE car il y a un conflit
avec lintgrit rfrentielle
Aucune clause requise car dans le
modle relationnel une cl trangre
ne peut avoir quune seule valeur
la fois
CONSTRAINT Nom_contrainte
CHECK(Nom_attribut>Nombre)

Les.mots.prcds.de.<.et.se.terminant.avec.>,.gnralement.en.italique,.
reprsentent. une. sous-clause. de. linstruction. qui. comporte. sa. propre.
syntaxe.;
La.barre.verticale.(|).indique.un.choix.parmi.une.alternative.;
Les.accolades.indiquent.la.prsence.obligatoire.dun.lment.;
Les.crochets.indiquent.la.prsence.facultative.dun.lment.;
Les.points.de.suspension.().indiquent.une.rptition.optionnelle.dun.
lment ..Le.cas.chant,.chaque.lment.est.spar.du.prcdent.par.une.
virgule .



Conception de bases de donnes avec UML

Par.convention,.le.libell.des.mots.dfinis.par.lutilisateur.fait.appel..
la. terminologie. des. BD. relationnelles.:. table. (au. lieu. de. relation),. colonne.
(au.lieu.dattribut),.ligne.(au.lieu.de.tuple),.cl.primaire,.cl.trangre.et.ainsi.
de.suite .
La.syntaxe.formelle.de.linstruction.CREATE TABLE.est.donne.ci-aprs ..
Elle.rpond..une.version.simplifie.de.la.syntaxe.suggre.par.les.normes.
ANSI-92.et.ISO.de.manire..ce.que.la.grande.majorit.des.SGDB.relationnels.
puissent.linterprter.adquatement ..
CREATE TABLE NomDeTable
({NomDeColonne <TypeDeDonne>
[DEFAULT {Littral | NULL}]
[NOT NULL]
[UNIQUE]
[PRIMARY KEY]
[REFERENCES TableMre [(ColTableMre)]
[<ActionRfrentielle>]]} [,]
[, PRIMARY KEY(NomDeColonne [,])]
[, UNIQUE (NomDeColonne [,])][]
[, FOREIGN KEY(NomDeColonne [,])
REFERENCES TableMre(ColTableMre [,])
[<ActionRfrentielle>]] []
[, CONSTRAINT NomContrainte CHECK(<Condition>)][] )
Cette.instruction.cre.une.table.portant.le.nom.NomDeTable.dote.de.
colonnes. dont. le. type. de. donnes. doit. obligatoirement. tre. spcifi. pour.
chacune .. La. clause. optionnelle. DEFAULT. permet. de. dfinir. la. valeur. par.
dfaut.dune.colonne ..Ce.ne.peut.tre.quun.littral,.soit.un.nombre.ou.une.
chane. de. caractres .. Les. clauses. NOT NULL. et. UNIQUE. sont. requises. si. on.
souhaite,.dune.part,.que.la.colonne.ne.puisse.tre.laisse.en.blanc.et.quelle.
ne.puisse.recevoir.de.doublons,.dautre.part .

cl primaire simple
La.clause.PRIMARY KEY,.inscrite..la.suite.du.type.de.donnes.de.la.colonne,.
fait.de.cette.colonne.la.cl primaire simple.de.la.table ..Il.importe.de.souligner.
que.cette.clause.signifie.que.la.colonne.naura.pas.de.doublons.et.aura.une.
valeur.non.nulle.par.dfaut ..Les.clauses.UNIQUE.et.NOT NULL.seraient.donc.
redondantes.dans.le.cas.dune.cl.primaire.simple ..Puisquune.seule.cl.primaire.est.prsente.dans.une.table,.la.clause.PRIMARY KEY.ne.peut.tre.utilise.

Le modle physique de donnes



quune. seule. fois. dans. linstruction. CREATE TABLE .. Nanmoins. une. cl.
secondaire. peut. exister. en. parallle .. La. cl secondaire simple. doit. tre. dote.
des.clauses.UNIQUE.et.NOT NULL.

cl trangre simple
La.clause.REFERENCES,.inscrite..la.suite.du.type.de.donnes.de.la.colonne,.
fait. de. cette. colonne. une. cl trangre simple. dans. la. table .. Elle. indique. la.
table. mre,. TableMre,. et. entre. parenthses. la. colonne. de. la. table. mre,.
ColTableMre,.qui.assure.lassociation.avec.sa.table.fille.NomDeTable.grce.
.la.colonne.NomDeColonne ..Dans.le.cas.o.ColTableMre.nest.pas.prcis,.
il.doit.exister.une.colonne.dans.la.table.mre.qui.porte.le.nom.NomDeColonne ..
Il.est.en.outre.essentiel.que.ColTableMre.et.NomDeColonne.aient.le.mme.
type.de.donnes.et.que.la.table.NomDeTable.soit.cre.au.pralable ..Cette.
clause.peut.tre.suivie.de.clauses.prcisant.des.actions.rfrentielles,.cest-dire.quelles.actions.peuvent.tre.entreprises..la.suite.de.la.suppression.dune.
ligne.de.la.table.mre.qui.est.associe..des.lignes.de.la.table.fille,.ou.encore.
. la. suite. de. la. mise. . jour. de. la. valeur. de. la. cl. primaire .. La. sous-clause.
<ActionRfrentielle>.se.dfinit.comme.suit.:
<ActionRfrentielle> =
{ON DELETE {NO ACTION | CASCADE | SET DEFAULT | SET NULL} |
ON UPDATE {NO ACTION | CASCADE | SET DEFAULT | SET NULL}}
ON DELETE. spcifie. laction. . mener. quand. une. ligne. est. supprime.
dans. la. table. mre .. Selon. la. clause. qui. la. suit. immdiatement,. laction.
.enclenche.automatiquement.est.variable.:
NO ACTION,.rien.nest.fait.;
CASCADE,.les.lignes.associes.dans.les.tables.filles.sont.supprimes.et.en.
cascade.toutes.les.lignes.associes.dans.leurs.propres.tables.filles.;
SET DEFAULT,.la.valeur.de.la.cl.trangre.de.chaque.ligne.fille.est.ramene.
.la.valeur.par.dfaut.de.la.colonne.;
SET NULL,. la. valeur. de. la. cl. trangre. de. chaque. ligne. fille. est. mise. .
NULL .
ON UPDATE.spcifie.laction..mener.quand.une.ligne.de.la.table.mre.
voit.la.valeur.de.sa.cl.primaire.modifie ..Selon.la.clause.qui.la.suit.immdiatement,.laction.enclenche.automatiquement.est.variable.:
NO ACTION,.rien.nest.fait.;
CASCADE,. les. lignes. associes. dans. les. tables. filles. voient. la. valeur. de. la.
cl.trangre.modifie.et.en.cascade.toute.ligne.associe.dans.leurs.propres.
tables.filles.voit.la.valeur.de.la.cl.trangre.modifie.;

0

Conception de bases de donnes avec UML

SET DEFAULT,.la.valeur.de.la.cl.trangre.de.chaque.ligne.fille.est.ramene.
.la.valeur.par.dfaut.de.la.colonne.;
SET NULL,. la. valeur. de. la. cl. trangre. de. chaque. ligne. fille. est. mise. .
NULL .

cl secondaire compose
Les. clauses. UNIQUE. et. PRIMARY KEY. peuvent. tre. aussi. appliques. . un.
groupe.de.colonnes ..UNIQUE.(NomDeColonne [,]) sera.utile.pour.spcifier.
une. cl secondaire compose .. PRIMARY KEY(NomDeColonne [,]). le. sera.
pour.une.cl primaire compose,.mais.encore.faut-il.quil.ny.ait.pas.dj.une.
clause.PRIMARY KEY dans.la.mme.instruction.CREATE TABLE .

cl trangre compose
La.clause.FOREIGN KEY.peut.tre.utilise.pour.dfinir.une.cl trangre compose ..
La.liste.des.colonnes.entre.parenthses.forme.solidairement.une.cl.trangre.
et.on.doit.retrouver.du.ct.de.la.table.mre.le.mme.nombre.de.colonnes ..
Chaque.colonne.dans.la.liste.des.colonnes.ColTableMre.de.la.table.mre.
donne. dans. la. sous-clause. REFERENCES. doit. disposer. du. mme. type. de.
donnes.que.la.colonne.correspondante.dans.la.liste.des.NomDeColonne.qui.
suit. la. clause. FOREIGN KEY .. Des. actions. rfrentielles,. de. la. mme. nature.
que.celles.vues.plus.tt.pour.une.cl.trangre.simple,.peuvent.tre.appliques.
solidairement.sur.les.colonnes.de.la.cl.trangre.compose ..

contraintes gnrales
Une.contrainte.gnrale.appartient..un.des.cinq.types.suivants.:
1 ..une. contrainte. applique. . une. seule. colonne. de. la. table,. par. exemple.
une.contrainte.de.domaine.qui.restreint.les.valeurs.admissibles.dans.cette.
colonne.;
2 ..une.contrainte.mettant.en.cause.plus.dune.colonne.de.la.mme.table.;
3 ..une.contrainte.mettant.en.cause.des.colonnes.de.plusieurs.tables.diffrentes.
lies.par.une.opration.de.jointure.;
4 ..une.contrainte.stipulant.lexistence.de.lignes.provenant.de.la.mme.table.
ou.de.tables.diffrentes.lies.par.une.opration.de.jointure.;
5 ..une.contrainte.stipulant.lexistence.dun.nombre.prcis.de.lignes.provenant.
de. la. mme. table. ou. de. tables. diffrentes. lies. par. une. opration. de.
jointure .

Le modle physique de donnes

1

La.contrainte.porte.obligatoirement.un.nom.et.une.condition.dont.la.
formulation.peut.savrer.complexe.et.ardue ..Nous.tudions,.sous.la.rubrique.
qui.suit,.la.formulation.de.contraintes.gnrales.du.type.1.ou.2.uniquement ..
Les. contraintes. du. type. 3,. 4. ou. 5. font. appel. . des. conditions. mettant. en.
uvre.une.instruction.SQL.SELECT.qui.peut.tre.fort.labore,.comme.dans.
lexemple.tudi.plus.tt .
CONSTRAINT SalaireInfEgalAuPatron CHECK(NOT EXISTS
(SELECT Employ.[Salaire employ]
FROM Employ INNER JOIN Employ AS Employ_1 ON
Employ.[No employ]=Employ_1.[No employ patron]
WHERE (((Employ.[Salaire employ])<Employ_1.[Salaire
employ])))
La. rdaction. des. contraintes. de. type. 3,. 4. ou. 5. exige. une. excellente.
matrise.des.requtes.de.slection.en.mode.SQL.et.nous.reportons.le.lecteur.
au.chapitre.5.de.[ConB.05].pour.une.couverture.complte.de.ce.sujet .

contraintes gnrales de type 1 ou 2


Les. contraintes. gnrales. de. type. 1. ou. 2. font. appel. . une. sous-clause.
. Condition>. dont. la. syntaxe. gnrale. est. dfinie. de. la. faon. rcursive.
<
suivante.:
<Condition> =
{<Valeur> <Oprateur> { <Valeur> | (<Slection_Un>)}
| <Valeur> [NOT] BETWEEN <Valeur> AND <Valeur>
| <Valeur> [NOT] LIKE <Valeur>
| <Valeur> [NOT] IN (<Valeur> [, ] | <Slection_Liste>)
| <Valeur> IS [NOT] NULL
| <Valeur> { {= | < | >} | >= | <=}
{ALL | SOME | ANY} (<Slection_Liste>)
| <Valeur> [NOT] CONTAINNING <Valeur>
| <Valeur> [NOT] STARTING <Valeur>
| ( <Condition> )
| NOT <Condition>
| <Condition> OR <Condition>
| <Condition> AND <Condition> }
<Valeur> =
NomDeColonne | <Constante> | <ExpressionArithmtique>



Conception de bases de donnes avec UML

<Constante> =
Nombre | Chane de caractres
<Oprateur> =
{= | < | > | <= | >= | }
<ExpressionArithmtique> =
Toute expression arithmtique valide comportant
uniquement des constantes et des Noms De Colonnes
<Slection_Un> =
Une instruction SELECT sur une colonne retournant quune
seule valeur
<Slection_Liste> =
Une instruction SELECT sur une colonne retournant zro ou
plusieurs valeurs
Voici.quelques.exemples.de.contraintes.correctement.formules.sur.le.
plan.syntaxique ..Sur.le.plan.oprationnel,.la.contrainte.ne.produira.le.rsultat.
souhait. que. si. les. noms. des. colonnes. dans. la. clause. sont. tous. des. noms.
prsents. dans. la. table. cre. . laide. dune. instruction. CREATE TABLE. qui.
incorpore.la.clause.CONSTRAINT .
CONSTRAINT FinApresDbut CHECK([Date fin]>[Date dbut])
CONSTRAINT FinApresDbut2 CHECK([Date fin] IS NOT NULL
AND [Date dbut] IS NOT NULL AND [Date fin]>[Date dbut])
Dans.lexemple.suivant,.0,10.est.une.constante.numrique.valide .
CONSTRAINT CommissionDix CHECK([Commission]=[Montant de
vente]*0,10)
Ci-aprs,.[Date dernire augmentation]+365.est.une.expression.
arithmtique. valide,. tout. comme. [Montant de vente]*0,10 dans.
lexemple.prcdent .

Le modle physique de donnes



CONSTRAINT AugmentationDansUnAn CHECK([Date prochaine


augmentation] = [Date dernire augmentation]+365)
CONSTRAINT LimitesSalaire CHECK([Salaire] BETWEEN 10000
AND 100000)
CONSTRAINT LimitesSalaire2 CHECK([Salaire] >= 10000 AND
[Salaire] <= 100000)
Les. chanes. de. caractres. Visa,. MasterCard,. American. Express. et.
Discovery.sont.des.constantes.sur.le.plan.syntaxique .
CONSTRAINT TypeCarteValide CHECK([Type carte crdit] IN
(Visa, MasterCard, American Express, Discovery))
Dans.les.deux.exemples.qui.suivent,.le.nom.de.la.colonne.qui.suit.le.
mot-cl.SELECT.doit.obligatoirement.appartenir..la.table.dont.le.nom.est.
donn.aprs.le.mot-cl.FROM ..
Linstruction.SELECT.incorpore..la.clause.CONSTRAINT.du.prochain.
exemple.retourne.comme.rsultat.une.liste.de.tous.les.noms.de.villes.prsents.
dans.la.table. Tables des villes .
CONSTRAINT VilleValide CHECK([Ville] IN (SELECT [Nom
ville] FROM [Table des villes]))
Linstruction.SELECT.incorpore..la.clause.CONSTRAINT.produit.comme.
rsultat.une.seule.valeur.numrique.dans.ce.prochain.exemple .
CONSTRAINT LimiteValide CHECK([Limite du client] <=
(SELECT [Limite maximale crdit] FROM [Table des montants
limites]))
Il.existe.une.instruction.SQL.qui.est.la.contrepartie.de.CREATE TABLE ..
Son.nom.est.DROP TABLE.et.elle.permet.de.supprimer.compltement.une.
table ..Cette.opration.devient.ncessaire.si.la.table.na.plus.sa.raison.dtre.
dans.la.BD.ou.si.sa.structure.doit.tre.compltement.remise.en.question ..La.
syntaxe.formelle.de.DROP TABLE.est.la.suivante.:
DROP TABLE NomDeTable



Conception de bases de donnes avec UML

Cette.instruction.supprime.la.table.nomme,.et.bien.sr.son.contenu,.
ce.qui.peut.mener..des.pertes.de.donnes..moins.davoir.export.ces.donnes.
au.pralable.dans.une.autre.table.de.la.mme.BD.ou.situe.hors.de.la.BD .
Pour.assurer.la.cohrence.de.la.BD,.une.table.ne.peut.tre.efface.si.elle.
agit.comme.table.mre.pour.dautres.tables ..Les.tables.filles.doivent.dabord.
tre.modifies.pour.liminer.les.cls.trangres.qui.rfrent..la.table.mre.
avant. que. cette. dernire. ne. puisse. tre. efface .. La. suppression. dune. cl.
trangre.prsente.dans.une.table.peut.tre.ralise.avec.linstruction.ALTER
TABLE ..Celle-ci.permet.dapporter.par.ailleurs.de.nombreux.types.de.modifications..une.table .

syntaxe formelle de linstruction AlTeR TAble


La.structure.dune.table.peut.voluer.dans.le.temps ..Il.est.frquent.quune.
cl.trangre.sajoute..la.table.ou.doive.tre.supprime.comme.nous.lvoquions.plus.tt ..Il.peut.tre.ncessaire.dajouter.une.nouvelle.colonne.ou.de.
changer.les.proprits.dune.colonne.existante.:.type.de.donnes,.valeur.par.
dfaut,.et.ainsi.de.suite ..Aussi.les.normes.ANSI-92.et.ISO.prvoient-elles.une.
instruction.SQL.appele.ALTER TABLE ...laide.de.cette.instruction,.on.peut.
raliser.les.oprations.suivantes.sur.une.table.:
ajout.dune.colonne
suppression.dune.colonne
suppression.de.la.valeur.par.dfaut.pour.une.colonne
changement.de.la.valeur.par.dfaut.pour.une.colonne
ajout.dune.contrainte
suppression.de.contrainte
La.syntaxe.formelle.de.ALTER TABLE.est.la.suivante.:
ALTER TABLE NomDeTable
{ADD COLUMN NomDeColonne <TypeDeDonne>
[DEFAULT {Littral | NULL}]
[NOT NULL]
[UNIQUE]
[PRIMARY KEY]
[REFERENCES TableMre [(ColTableMre)]
[<ActionRfrentielle>]]
| DROP NomDeColonne
| ALTER COLUMN NomDeColonne DROP DEFAULT
| ALTER COLUMN NomDeColonne SET DEFAULT {Littral | NULL}
| ADD CONSTRAINT NomContrainte CHECK(<Condition>)
| DROP CONSTRAINT }

Le modle physique de donnes



Certains SGBD dont MS Access ne permettent pas, avec linstruction ALTER TABLE
DROP, la suppression dune colonne qui fait lobjet dun index. Cest le cas des cls
primaires simples et composes et des colonnes cres avec la clause UNIQUE. Il
faut au pralable supprimer lindex laide de linstruction DROP INDEX. Nous
reviendrons sous peu sur cette instruction.
Les.exemples.suivants.illustrent.les.diverses.possibilits.de.linstruction.
ALTER TABLE .
Ajout.dune.cl.trangre.simple.:
ALTER TABLE Commande
ADD COLUMN [No client] INTEGER NOT NULL
REFERENCES Client([No client]) ON DELETE CASCADE
Ajout.dune.cl.primaire.simple.:
ALTER TABLE Commande
ADD COLUMN [No commande] INTEGER NOT NULL DEFAULT 0
PRIMARY KEY
Suppression.dune.colonne.:
ALTER TABLE Commande
DROP COLUMN [Date commande]
Suppression.de.la.valeur.par.dfaut.:
ALTER TABLE Commande
ALTER COLUMN [No commande] DROP DEFAULT
Changement.de.la.valeur.par.dfaut.:
ALTER TABLE Commande
ALTER COLUMN [No commande] SET DEFAULT 0
Ajout.dune.contrainte..une.table.:
ALTER TABLE Commande
ADD CONSTRAINT TypeCarteValide CHECK([Type carte crdit]
IN (Visa, MasterCard, American Express,
Discovery))



Conception de bases de donnes avec UML

Suppression.dune.contrainte.dans.une.table.:
ALTER TABLE Commande
DROP CONSTRAINT TypeCarteValide

Certains SGBD dont MS Access ne permettent pas la suppression dune table


avec linstruction DROP TABLE moins que toutes les contraintes qui portent
sur cette table naient t supprimes avec ALTER TABLE NomDeTable DROP
CONSTRAINT.

syntaxe formelle de linstruction cReATe index


Un.index.est.une.composante.physique.de.la.BD.qui.permet.dacclrer.laccs.
aux. donnes .. Il. joue. le. mme. rle. que. lindex. dun. livre. o. un. mot. est.
directement.reli..la.page.ou.aux.pages.o.il.apparat ..Un.index.dans.une.
BD.permet.didentifier.aussitt.sur.une.ou.des.lignes.si.une.valeur.donne.
est.prsente.dans.une.colonne ..
La.prsence.dun.index.peut.acclrer.grandement.la.performance.des.
requtes,. notamment. les. requtes. de. slection. qui. font. appel. . plusieurs.
tables .. Il. y. a. cependant. un. prix. . payer. pour. cela.:. le. SGBD. doit. assurer.
.lentretien.de.chaque.index,.ce.qui.signifie.que.lindex.est.modifi..chaque.
fois.quune.valeur.est.change.dans.une.colonne.appartenant..lindex ..Dans.
le. cas. des. colonnes indexes sans doublons cres avec. la. clause. UNIQUE,. le.
SGBD.doit.en.plus.assurer.lunicit.des.valeurs.de.la.colonne.ou.de.la.combinaison.de.colonnes.en.rejetant.tout.doublon ..La.gestion.de.lindex.se.fera.
plus.lourde.au.fur.et.a.mesure.que.la.taille.de.la.table.augmente ..
La. performance. de. la. gestion. de. lindex. dpend. aussi. du. nombre. de.
colonnes. composant. lindex .. Comme. chaque. cl. primaire. et. chaque. cl.
secondaire.exige.son.propre.index,.le.nombre.dindex.dans.une.BD.peut.tre.
relativement.lev.et.leur.gestion.coteuse.sur.le.plan.de.lefficacit.sil.sagit.
de.cls.composes ..Cest.la.raison.pour.laquelle.nous.proposions.au.chapitre.
prcdent. doptimiser. les. cls. primaires. des. tables. en. remplaant. toute. cl.
primaire. compose. par. une. cl. primaire. simple. . gnration. automatique.
de.valeurs .
Le.concepteur.doit.tre.conscient.quun.index.est.cr.pour.rpondre.
.toute.situation ..La.gestion.dun.index.est.dautant.plus.lourde.quil.comporte.
plusieurs.colonnes.et.exclut.les.doublons.:

Le modle physique de donnes



instruction.CREATE TABLE.utilisant.la.clause.PRIMARY KEY et/ou.UNIQUE.


pour.une.colonne
instruction.CREATE TABLE utilisant.la.clause.PRIMARY KEY.portant.sur.
un.groupe.de.colonnes
instruction. CREATE TABLE utilisant. la. clause. UNIQUE. portant. sur. un.
groupe.de.colonnes
instruction. CREATE INDEX. portant. sur. une. colonne. ou. un. groupe. de.
colonnes
Linstruction.CREATE INDEX.possde.une.syntaxe.simple.:
CREATE INDEX [UNIQUE] NomDeIndex
ON NomDeTable (NomDeCollonne [, ] )
La.clause.UNIQUE.en.fait.un.index.sans.doublons .
La.suppression.dun.index.exige.linstruction.DROP INDEX.:
DROP INDEX NomDeIndex
Les.index.qui.sont.crs.automatiquement.par.une.instruction.CREATE
TABLE. ne. portent. pas. un. nom. explicite .. Aussi. est-il. impossible. de. les. supprimer.avec.linstruction.DROP INDEX ..Cela.pose.un.problme.au.concepteur.
dune. BD. lorsque. le. SGBD. refuse. de. supprimer. une. colonne. avec. DROP
COLUMN.parce.quelle.fait.partie.dun.index ..Il.se.trouve.alors.dans.un.cul.
de. sac .. La. colonne. ne. peut. tre. supprime. avant. la. suppression. de. lindex.
mais.ce.dernier.ne.peut.tre.supprim.avec.DROP INDEX.car.son.nom.est.
inconnu .
Heureusement,.la.plupart.les.SGBD.possdent.une.interface.graphique.
qui.permet.de.supprimer.une.colonne.dans.une.table.ainsi.que.lindex.auquel.
elle.appartient,.en.slectionnant.le.nom.de.la.colonne.dans.une.fentre.et.
en.appelant.au.menu.Edition->Supprimer .

RAlisATion du Modle physique en sql


Lintroduction.au.langage.SQL.pour.la.dfinition.des.donnes.nous.donne.
les.lments.ncessaires..la.ralisation.du.modle.physique.par.le.biais.dun.
script. dinstructions. CREATE TABLE .. Nous. avons. mis. laccent. sur. deux.
.lments.fondamentaux.:



Conception de bases de donnes avec UML

1 ..Les.exigences.qui.sont.prsentes.dans.le.modle.relationnel.et.les.clauses.
de. linstruction. CREATE TABLE. qui. permettent. de. les. raliser,. telles. que.
rsumes.dans.le.tableau.3-8.;
2 ..La. syntaxe. formelle. de. linstruction. CREATE TABLE. de. mme. que. celle.
des.instructions.accessoires.que.sont.DROP TABLE,.ALTER TABLE,.CREATE
INDEX.et.DROP INDEX .
Dans. cette. section,. nous. proposons. une. dmarche. de. traduction. du.
modle.relationnel.en.un.modle.physique.base.sur.la.satisfaction.des.exigences.formules.au.niveau.logique.et.le.respect.strict.de.la.syntaxe.de.CREATE
TABLE .
La.dmarche.vise..sassurer.que.la.squence.de.cration.des.tables.tient.
compte. de. la. logique. de. linstruction. CREATE TABLE,. notamment. quune.
table.mre.doit.tre.cre.avant.ses.tables.filles ..
Elle.se.rsume.ainsi.:
1 ..Crer. les. tables. mres. qui. ne. soient. pas. . la. fois. table. fille. (Aucune. cl.
trangre) ..Ignorer.les.associations .
2 ..Crer.les.tables.mres.qui.agissent.aussi.comme.table.fille.pour.certaines.
associations ..Pour.chaque.association.o.la.table.mre.agit.comme.table.
fille,.prvoir.les.clauses.requises.pour.assurer.les.exigences.4.et.9 ..Dbuter.
avec.les.tables.comportant.le.plus.dassociations.o.elles.agissent.comme.
tables. mres. et. le. moins. dassociations. o. elles. agissent. comme. tables.
filles .
3 ..Crer. les. autres. tables. filles .. Pour. chaque. association. prvoir. les. clauses.
requises.pour.assurer.les.exigences.4.et.9 .
4 ..Dnombrer.le.nombre.de.tables.du.modle.relationnel ..Vrifier.que.toutes.
les.tables.ont.t.cres .
Pour.illustrer.la.dmarche,.nous.vous.proposons.une.srie.dtudes.de.
cas. qui. sinscrivent. dans. le. cadre. de. rfrence. prsent. dans. le. chapitre.
prcdent .



Le modle physique de donnes

TAbleAu 3-8

Exigence

Exigences formules au niveau logique et clauses du script de cration


de tables requises pour les satisfaire

Niveau logique

Signification

1.

{PK}

2.

{Non nul}

3.

{FK}

Cet attribut constitue la cl primaire :


il ne peut avoir une valeur nulle et
avoir des doublons (intgrit dentit)
La valeur de cet attribut ne peut tre
nulle (laisse en blanc)
Cet attribut constitue une cl
trangre avec intgrit rfrentielle
en ajout

4.
5.
6.

Multiplicit
minimale 1 ct
mre
Multiplicit
minimale 1 ct
fille
Multiplicit
maximale 1 ct
mre

7.

{>Nombre}

8.

{Dfaut valeur}

9.

Multiplicit
maximale 1 ct
fille
enum{val1, val2,
, valn }

10.
11.

12.

{PK auto}

{>Nom_attribut2}

La cl trangre comporte
obligatoirement une valeur
On doit avoir au moins une ligne
de la table fille associe une ligne
de la table mre
Une ligne fille ne peut tre associe
au plus qu une ligne mre
Cet attribut possde une contrainte
de domaine
Cet attribut dispose dune valeur
par dfaut
La cl trangre ne peut avoir
des doublons
Cet attribut possde une contrainte
de domaine
Cet attribut constitue une cl primaire
avec gnration automatique
de valeurs
Cet attribut possde une contrainte
voulant que sa valeur soit limite
par la valeur dun attribut sur la mme
ligne

Niveau physique :
Clause requise dans le script
NOT NULL PRIMARY KEY

NOT NULL
REFERENCES
Table_mre(Cl_mre)
Le type de donnes de la cl primaire
doit tre le mme que celui de la cl
trangre
NOT NULL
pour la cl trangre qui ralise
lassociation
Ne pas mettre en uvre avec
CREATE TABLE car il y a un conflit
avec lintgrit rfrentielle
Aucune clause requise car dans le
modle relationnel un attribut, donc
une cl trangre, ne peut avoir
quune seule valeur la fois
CONSTRAINT Nom_contrainte
CHECK(Nom_attribut>Nombre)
DEFAULT Valeur_par_dfaut
UNIQUE
pour la cl trangre qui ralise
lassociation
CONSTRAINT Nom_contrainte
CHECK(Nom_attribut IN
(val1, val2, , valn) )
IDENTITY NOT NULL
PRIMARY KEY
La gnration de valeurs dbute 1 et
suivent des valeurs incrmentes de 1
CONSTRAINT Nom_contrainte
CHECK(Nom_attribut >
Nom_attribut2)

0

TAbleAu 3-8

Conception de bases de donnes avec UML

Exigences formules au niveau logique et clauses du script de cration


de tables requises pour les satisfaire (suite)

Exigence

Niveau logique

Signification

13.

{<= Valeur hors


ligne}

14.

Nom_attribut1
{PK}

Nom_attributn
{PK}

Cet attribut possde une contrainte


voulant que sa valeur soit limite par
la valeur dun attribut sur une autre
ligne de la mme table ou une ligne
dune autre table
Ces attributs forment une cl primaire
compose : aucun de ces attributs ne
peut avoir une valeur nulle et leur
combinaison ne peut avoir de
doublons (intgrit dentit)

15.

{FK}{Cascade}

16.

17.
18.

19.

{Nom_attribut1 :
Type, ,
Nom_attributn :
Type}{FK}

{Unique}
{PK, FK}
Lattribut est le
seul attribut de
la cl primaire ;
la syntaxe de
CREATE
TABLE ne
permet pas
simultanment de
dfinir une cl
primaire simple
qui est aussi cl
trangre
{ENTRE val1
et val2}

Cet attribut constitue une cl


trangre avec intgrit rfrentielle
en ajout, suppression et mise jour

Ce groupe dattributs constituent une


cl trangre avec intgrit
rfrentielle en ajout

Attribut sans doublons


Cet attribut est une cl primaire
simple mais il est aussi cl trangre.
Lattribut a t nomm plus tt dans
le script comme cl trangre

Niveau physique :
Clause requise dans le script
CONSTRAINT Nom_contrainte
CHECK(NOT EXISTS
(SELECT Nom_attribut
FROM Jointure WHERE
Condition))
PRIMARY
KEY(Nom_attribut1, ,
Nom_attributn)
Chaque attribut a t nomm plus tt
dans le script et porte une clause NOT
NULL
REFERENCES
Table_mre(Cl_mre)
ON DELETE CASCADE
ON UPDATE CASCADE
Le type de donnes de la cl primaire
doit tre le mme que celui de la cl
trangre
FOREIGN KEY
(Nom_attribut1, ,
Nom_attributn)
REFERENCES
Table_mre(Cl_attribut1, ,
Cl_attributn)
Le type de donnes de la cl primaire
doit tre le mme que celui de la cl
trangre
UNIQUE
PRIMARY KEY(Nom_attribut)
Cet attribut a t nomm plus tt
dans le script comme cl trangre et
doit porter une clause NOT NULL

CONSTRAINT Nom_contrainte
CHECK(Nom_attribut
BETWEEN val1 AND val2)

1

Le modle physique de donnes

cAs de ModlisATion physique des donnes


Cas 3-1 SOCIT ET DPARTEMENT
Traduire le modle relationnel rsultant du cas 2-1 en un modle physique quivalent.
Dpartement

Socit
Nom socit : {PK}

1..1

1..*

No dpartement : {PK}
Nom socit : {FK}

1..*

1..1

Employ
No employ : {PK}
Nom employ
Prnom employ
No employ patron : {FK}
No dpartement : {FK}

1..1

0..*

tape 1.
Table

Exigence

Instruction SQL

CREATE TABLE Socit


([Nom socit] VARCHAR(30)
NOT NULL PRIMARY KEY)

Exigence

Instruction SQL

Socit
Nom socit : {PK}

tape 2.
Table
Dpartement
1..1
1..*

No dpartement : {PK}
Nom socit : {FK}

1
4
3

CREATE TABLE Dpartement


([No dpartement] SMALLINT
NOT NULL PRIMARY KEY,
[Nom socit] VARCHAR(30)
NOT NULL
REFERENCES Socit([Nom socit]))



Conception de bases de donnes avec UML

Table

Exigence

1..1
1..*

1
Employ
No employ : {PK}
Nom employ
Prnom employ
No employ patron : {FK}
No dpartement : {FK}

1..1

4
3

0..*

4
3

tape 3.
N/A

tape 4.
Nombre de tables : 3.

Instruction SQL
CREATE TABLE Employ
([No employ] SMALLINT
NOT NULL PRIMARY KEY,
[Nom employ] VARCHAR(30),
[Prnom employ] VARCHAR(30),
[No employ patron] SMALLINT
NOT NULL
REFERENCES Employ([No employ]),
[No dpartement] SMALLINT
NOT NULL
REFERENCES Dpartement([No dpartement]))



Le modle physique de donnes

Cas 3-2 LOCATEUR DABRIS.


Traduire le modle relationnel rsultant du cas 2-2 en un modle physique quivalent.
Contraintes de domaine : les attributs Nombre module et Nombre composant sont
strictement suprieurs 0.
Contraintes dintgrit : les attributs Nombre module et Nombre composant sont non nuls.
1..1

1..1

Contrat
No contrat : {PK}
No client : {FK}

Module

Composant

Code module : {PK}


Prix location

Code composant : {PK}


Description composant

1..1

1..1

1..*

1..*
0..*

1..*

1..1

1..*

1..1

0..*

Client

Contenu contrat

Composition module

No client : {PK}
Nom client
Prnom client

No contrat : {PK, FK}{Cascade}


Code module : {PK, FK}{Cascade}
Nombre module

Code module : {PK, FK}{Cascade}


Code composant : {PK, FK}{Cascade}
Nombre composant

Offert par
Code composant : {PK, FK}{Cascade}
No fournisseur : {PK, FK}{Cascade}
1..*

1..1

Fournisseur
No fournisseur : {PK}
Nom fournisseur

tape 1.
Mise en garde : Module est un mot cl du langage SQL. Aussi doit-il apparatre entre crochets
dans le script pour viter toute erreur de syntaxe.
Table

Exigence

Instruction SQL

CREATE TABLE Client


([No client] SMALLINT
NOT NULL PRIMARY KEY,
[Nom client] VARCHAR(30),
[Prnom client] VARCHAR(30))

Client
No client : {PK}
Nom client
Prnom client

Fournisseur
No fournisseur : {PK}
Nom fournisseur

Module
Code module : {PK}
Prix location

Composant
Code composant : {PK}
Description composant

CREATE TABLE Fournisseur


([No fournisseur] SMALLINT
NOT NULL PRIMARY KEY,
[Nom fournisseur] VARCHAR(30))
CREATE TABLE [Module]
([Code module] VARCHAR(6)
NOT NULL PRIMARY KEY,
[Prix location] CURRENCY)
CREATE TABLE Composant
([Code composant] VARCHAR(6)
NOT NULL PRIMARY KEY,
[Description composant] VARCHAR(30))



Conception de bases de donnes avec UML

tape 2.
Table

Exigence

4
3

CREATE TABLE Contrat


([No contrat] SMALLINT
NOT NULL PRIMARY KEY,
[No client] SMALLINT
NOT NULL
REFERENCES Client([No client]))

Exigence

Instruction SQL

Contrat
No contrat : {PK}
No client : {FK}
1..*
1..1

Instruction CREATE TABLE

tape 3.
Table
1..1

1..1

1..*

14
15

0..*

Contenu contrat
No contrat : {PK, FK}{Cascade}
Code module : {PK, FK}{Cascade}
Nombre module

14
15

2
14
7

1..1
1..*

1..1
0..*

Composition module
Code module : {PK, FK}{Cascade}
Code composant : {PK, FK}{Cascade}
Nombre composant

14
15

14
15

2
14
7

CREATE TABLE [Contenu contrat]


([No contrat] SMALLINT NOT NULL
REFERENCES Contrat([No contrat])
ON DELETE CASCADE
ON UPDATE CASCADE,
[Code module] VARCHAR(6) NOT NULL
REFERENCES [Module]([Code module])
ON DELETE CASCADE
ON UPDATE CASCADE,
[Nombre module] SMALLINT
NOT NULL,
PRIMARY KEY([No contrat],[Code module]),
CONSTRAINT NombreSupZro
CHECK([Nombre module]>0))
CREATE TABLE [Composition module]
([Code module] VARCHAR(6) NOT NULL
REFERENCES [Module]([Code module])
ON DELETE CASCADE
ON UPDATE CASCADE,
[Code composant] VARCHAR(6) NOT NULL
REFERENCES Composant([Code composant])
ON DELETE CASCADE
ON UPDATE CASCADE,
[Nombre composant] SMALLINT
NOT NULL,
PRIMARY KEY([Code module],
[Code composant]),
CONSTRAINT NombreSupZro2
CHECK([Nombre composant]>0))

Le modle physique de donnes

1..1
1..*
Offert par
Code composant : {PK, FK}{Cascade}
No fournisseur : {PK, FK}{Cascade}
1..1

1..*

14
15

14
15

14

tape 4.
Nombre de tables : 8.

CREATE TABLE [Offert par]


([Code composant] VARCHAR(6)
NOT NULL
REFERENCES Composant([Code composant])
ON DELETE CASCADE
ON UPDATE CASCADE,
[No fournisseur] SMALLINT NOT NULL
REFERENCES Fournisseur([No fournisseur])
ON DELETE CASCADE
ON UPDATE CASCADE,
PRIMARY KEY([Code composant],
[No fournisseur]))





Conception de bases de donnes avec UML

Cas 3-3 VIDO CLUB


Traduire le modle relationnel rsultant du cas 2-3 en un modle physique quivalent.
Contraintes de domaine : lattribut Salaire employ est strictement suprieur 0 ; les valeurs
acceptables pour lattribut Catgorie sont Horreur, Tragdie, Comdie, Policier.
Contraintes dintgrit : Date location <= Date restitution.
Magasin
No agence : {PK}
No civique
Rue
Ville
Code postal
No tlphone
No employ : {FK}

Employ
1..1

1..*

1..1

0..1

No employ : {PK}
Nom employ
Prnom employ
Salaire employ
No agence : {FK}
Nom fonction : {FK}

Poste
1..1

0..*

Nom fonction : {PK}


Acteur
Nom acteur : {PK}
1..1

0..*

1..1

1..*
Membre
No membre : {PK}
Nom membre
Prnom membre
No civique
Rue
Ville
Code postal
Date d'inscription
No agence : {FK}

Location

Ralisateur

Comporte

No location : {PK}
Date location
Date restitution
No membre : {FK}
No cassette : {FK}

Nom ralisateur : {PK}

Nom acteur : {PK, FK}{Cascade}


No catalogue : {PK, FK}{Cascade}

1..1

1..*

0..*

1..*

Cassette

0..*

1..1
1..1

No cassette : {PK}
Montant location
Prix d'achat
Lou?
No catalogue : {FK}

Film
0..*
1..1

No catalogue : {PK}
Catgorie
Titre film
Nom ralisateur : {FK}

tape 1.
Table

Exigence

Instruction SQL

CREATE TABLE Poste


([Nom fonction] VARCHAR(30)
NOT NULL PRIMARY KEY)

CREATE TABLE Acteur


([Nom acteur] VARCHAR(30)
NOT NULL PRIMARY KEY)

CREATE TABLE Ralisateur


([Nom ralisateur] VARCHAR(30)
NOT NULL PRIMARY KEY)

Poste
Nom fonction : {PK}
Acteur
Nom acteur : {PK}
Ralisateur
Nom ralisateur : {PK}

1..1

Le modle physique de donnes

tape 2.
La ralisation de cette tape pose une difficult. Il existe deux tables qui sont filles lune de
lautre compte tenu de la prsence de deux associations un plusieurs entre elles. Une des
tables, Magasin, sera cre sans la cl trangre lassociant lautre et la suite de linstruction crant Employ, une instruction ALTER TABLE sera ncessaire pour ajouter la cl
trangre No employ la table Magasin. Rappelons que lon ne peut faire appel une
clause REFERENCES portant sur une table qui na pas encore t cre.
Table

Exigence

Magasin
No agence : {PK}
No civique
Rue
Ville
Code postal
No tlphone
No employ : {FK}

0..1 1..1

1..1

1..*
Film
No catalogue : {PK}
Catgorie
Titre film
Nom ralisateur : {FK}

4
3
10

Employ
No employ : {PK}
Nom employ
1..*
0..*
Prnom employ
1..1
1..1 Salaire employ
No agence : {FK}
Nom fonction : {FK}

4
3
4
3
7

Instruction SQL
CREATE TABLE Magasin
([No agence] SMALLINT
NOT NULL PRIMARY KEY,
[No civique] VARCHAR(6),
[Rue] VARCHAR(30),
[Ville] VARCHAR(30),
[Code postal] VARCHAR(6))
CREATE TABLE Film
([No catalogue] SMALLINT
NOT NULL PRIMARY KEY,
[Catgorie] VARCHAR(10),
[Titre film] VARCHAR(30),
[Nom ralisateur] VARCHAR(30)
NOT NULL
REFERENCES Ralisateur([Nom ralisateur]),
CONSTRAINT CatValide
CHECK(Catgorie IN (Horreur, Tragdie,
Comdie, Policier)))
CREATE TABLE Employ
([No employ] SMALLINT
NOT NULL PRIMARY KEY,
[Nom employ] VARCHAR(30),
[Prnom employ] VARCHAR(30),
[Salaire employ] CURRENCY,
[No agence] SMALLINT
NOT NULL
REFERENCES Magasin([No agence]),
[Nom fonction] VARCHAR(30)
NOT NULL
REFERENCES Poste([Nom fonction]),
CONSTRAINT SalSupZro
CHECK([Salaire employ]>0))





Conception de bases de donnes avec UML

4
9
3
Cassette
No cassette : {PK}
Montant location
Prix d'achat
Lou?
No catalogue : {FK}

1
0..*
1..1

4
3
1..1
1..*

CREATE TABLE Cassette


([No cassette] SMALLINT
NOT NULL PRIMARY KEY,
[Montant location] CURRENCY,
[Prix dachat] CURRENCY,
[Lou?] BIT,
[No catalogue] SMALLINT
NOT NULL
REFERENCES Film([No catalogue]))

4
3

CREATE TABLE Membre


([No membre] SMALLINT
NOT NULL PRIMARY KEY,
[Nom membre] VARCHAR(30),
[Prnom membre] VARCHAR(30),
[No civique] VARCHAR(6),
[Rue] VARCHAR(30),
[Ville] VARCHAR(30),
[Code postal] VARCHAR(6),
[Date dinscription] DATE,
[No agence] SMALLINT
NOT NULL
REFERENCES Magasin([No agence]))

Exigence

Instruction SQL

Membre
No membre : {PK}
Nom membre
Prnom membre
No civique
Rue
Ville
Code postal
Date d'inscription
No agence : {FK}

ALTER TABLE Magasin ADD COLUMN


[No employ] SMALLINT
NOT NULL
UNIQUE
REFERENCES Employ([No employ])

tape 3.
Table
Location
No location : {PK}
Date location
Date restitution
No membre : {FK}
No cassette : {FK}

0..*

0..*
1..1
1..1

4
3
4
3
12

CREATE TABLE [Location]


([No location] SMALLINT
NOT NULL PRIMARY KEY,
[Date location] DATE,
[Date restitution] DATE,
[No membre] SMALLINT
NOT NULL
REFERENCES Membre([No membre]),
[No cassette] SMALLINT
NOT NULL
REFERENCES Cassette([No cassette]),
CONSTRAINT LocationInfRestitution
CHECK([Date location]<=
[Date restitution]))

Le modle physique de donnes

0..*
1..1
Comporte
Nom acteur : {PK, FK}{Cascade}
No catalogue : {PK, FK}{Cascade}
1..*
1..1

14
15

14
15

14

tape 4.
Nombre de tables : 10.

CREATE TABLE [Comporte]


([Nom acteur] VARCHAR(30) NOT NULL
REFERENCES Acteur([Nom acteur])
ON DELETE CASCADE
ON UPDATE CASCADE,
[No catalogue] SMALLINT NOT NULL
REFERENCES Film([No catalogue])
ON DELETE CASCADE
ON UPDATE CASCADE,
PRIMARY KEY([Nom acteur],
[No catalogue]))



0

Conception de bases de donnes avec UML

Cas 3-4 GESTION DE STAGE


Traduire le modle relationnel rsultant du cas 2-4 en un modle physique quivalent.
Contraintes de domaine : lattribut Nombre dheures possde une valeur par dfaut = 1.
Contraintes dintgrit : lattribut Nombre dheures est strictement suprieur 1.
Stagiaire

1..1

Stage

No stagiaire : {PK}
Nom stagiaire
Prnom stagiaire
Date naissance

No stage : {PK}
Nom du stage
1..1
1..1

Session
Inscription
1..*

No stagiaire : {PK, FK}{Cascade}


No session : {PK, FK}{Cascade}

1..*

1..1

Professeur

1..*
0..*

0..*

Comporte
No module : {PK, FK}{Cascade}
No stage : {PK, FK}{Cascade}

1..1

No professeur : {PK}
Nom professeur
Prnom professeur
1..1

No session : {PK}
Date dbut session
Date fin session
No stage : {FK}

1..*

1..*

Prestation

1..1

No prestation : {PK}
Date dbut
Date fin
Nombre d'heures
No module : {FK}
No session : {FK}
No professeur : {PK}

Module
0..*

1..1

No module : {PK}
Titre du module

tape 1.
Mise en garde : Module et Session sont des mots cls du langage SQL. Aussi doivent-ils
apparatre entre crochets dans le script pour viter toute erreur de syntaxe.
Table

Exigence

Stagiaire
No stagiaire : {PK}
Nom stagiaire
Prnom stagiaire
Date naissance

Stage
No stage : {PK}
Nom du stage

Instruction SQL
CREATE TABLE Stagiaire
([No stagiaire] SMALLINT
NOT NULL PRIMARY KEY,
[Nom stagiaire] VARCHAR(30),
[Prnom stagiaire] VARCHAR(30),
[Date naissance] DATE)
CREATE TABLE Stage
([No stage] SMALLINT
NOT NULL PRIMARY KEY,
[Nom du stage] VARCHAR(30))

Le modle physique de donnes

Professeur
No professeur : {PK}
Nom professeur
Prnom professeur

CREATE TABLE Professeur


([No professeur] SMALLINT
NOT NULL PRIMARY KEY,
[Nom professeur] VARCHAR(30),
[Prnom professeur] VARCHAR(30))
CREATE TABLE [Module]
([No module] SMALLINT
NOT NULL PRIMARY KEY,
[Titre du module] VARCHAR(30))

Module
No module : {PK}
Titre du module

tape 2.
Table
Session
No session : {PK}
Date dbut session
Date fin session
No stage : {FK}

Exigence

Instruction SQL

4
3

CREATE TABLE [Session]


([No session] SMALLINT
NOT NULL PRIMARY KEY,
[Date dbut session] DATE,
[Date fin session] DATE,
[No stage] SMALLINT
NOT NULL
REFERENCES Stage([No stage]))

Exigence

Instruction SQL

1..1

1
0..*

tape 3.
Table
1..1
1..*

1..1
1..*

14
15

Inscription
No stagiaire : {PK, FK}{Cascade}
No session : {PK, FK}{Cascade}

14
15
14

CREATE TABLE [Inscription]


([No stagiaire] SMALLINT NOT NULL
REFERENCES Stagiaire([No stagiaire])
ON DELETE CASCADE
ON UPDATE CASCADE,
[No session] SMALLINT NOT NULL
REFERENCES [Session]([No session])
ON DELETE CASCADE
ON UPDATE CASCADE,
PRIMARY KEY([No stagiaire],
[No session]))

1



1..1

Conception de bases de donnes avec UML

1..*

14
15

Comporte
No module : {PK, FK}{Cascade}
No stage : {PK, FK}{Cascade}

14
15

1..*
1..1

14

1..1
1..*
1..1
0..*

1
Prestation
No prestation : {PK}
Date dbut
Date fin
Nombre d'heures
No module : {FK}
No session : {FK}
No professeur : {PK}

1..1

0..*

8
4
3
4
3
4
3
7

tape 4.
Nombre de tables : 8.

CREATE TABLE [Comporte]


([No module] SMALLINT NOT NULL
REFERENCES [Module]([No module])
ON DELETE CASCADE
ON UPDATE CASCADE,
[No stage] SMALLINT NOT NULL
REFERENCES Stage([No stage])
ON DELETE CASCADE
ON UPDATE CASCADE,
PRIMARY KEY([No module],
[No stage]))
CREATE TABLE Prestation
([No prestation] SMALLINT
NOT NULL PRIMARY KEY,
[Date dbut] DATE,
[Date fin] DATE,
[Nombre dheures] SMALLINT
DEFAULT 1,
[No module] SMALLINT
NOT NULL
REFERENCES [Module]([No module]),
[No session] SMALLINT
NOT NULL
REFERENCES [Session]([No session]),
[No professeur] SMALLINT
NOT NULL
REFERENCES Professeur([No professeur]),
CONSTRAINT HeuresSupUn
CHECK([Nombre dheures]>1))



Le modle physique de donnes

Cas 3-5 DOSSIER PATIENT


Traduire le modle relationnel rsultant du cas 2-5 en un modle physique quivalent.
Patient
No dossier : {PK}
Nom patient
Prnom patient
Date de naissance
No civique
Rue
Ville
Province
Code postal
Nom mre
No mdecin : {FK}

1..1

1..*

0..*
1..1

Sjour

Mdecin

1..1

No mdecin : {PK}
Nom mdecin
Prnom mdecin

1..1
0..*

1..1

0..*

No sjour : {PK}
Motif hospitalisation
Date admission
Date cong
No dossier : {FK}
Nom diagnostic : {FK}

Consultation

0..1

No mdecin : {PK, FK}{Cascade}


No sjour : {PK, FK}{Cascade}

0..*

0..*
1..1
Diagnostic

Nom diagnostic : {PK}

Traitement patient
1..*
Traitement
Type traitement : {PK}

1..1

0..*

No traitement : {PK}
Date
Dure
No sjour : {FK}
No mdecin : {FK}
Type traitement : {FK}

tape 1.
Table

Exigence

Instruction SQL

Mdecin

CREATE TABLE Mdecin


([No mdecin] SMALLINT
NOT NULL PRIMARY KEY,
[Nom mdecin] VARCHAR(30),
[Prnom mdecin] VARCHAR(30))

CREATE TABLE Diagnostic


([Nom diagnostic] VARCHAR(30)
NOT NULL PRIMARY KEY)

No mdecin : {PK}
Nom mdecin
Prnom mdecin

Diagnostic
Nom diagnostic : {PK}
Traitement
Type traitement : {PK}

CREATE TABLE Traitement


([Type traitement] VARCHAR(30)
NOT NULL PRIMARY KEY)



Conception de bases de donnes avec UML

tape 2.
Table

Exigence

Patient
No dossier : {PK}
Nom patient
Prnom patient
Date de naissance
No civique
Rue
Ville
Province
Code postal
Nom mre
No mdecin : {FK}

0..*
1..1

4
3

CREATE TABLE Patient


([No dossier] SMALLINT
NOT NULL PRIMARY KEY,
[Nom patient] VARCHAR(30),
[Prnom patient] VARCHAR(30),
[Date de naissance] DATE,
[No civique] VARCHAR(6),
[Rue] VARCHAR(30),
[Ville] VARCHAR(30),
[Province] VARCHAR(30),
[Code postal] VARCHAR(6),
[Nom mre] VARCHAR(30),
[No mdecin] SMALLINT
NOT NULL
REFERENCES Mdecin([No mdecin]))

4
3

CREATE TABLE Sjour


([No sjour] SMALLINT
NOT NULL PRIMARY KEY,
[Motif hospitalisation] VARCHAR(30),
[Date admission] DATE,
[Date cong] DATE,
[No dossier] SMALLINT
NOT NULL
REFERENCES Patient([No dossier]),
[Nom diagnostic] VARCHAR(30)
NOT NULL
REFERENCES Diagnostic([Nom diagnostic]))

Exigence

Instruction SQL

1..1

1
1..*
Sjour
No sjour : {PK}
Motif hospitalisation
Date admission
Date cong
0..*
No dossier : {FK}
1..1
Nom diagnostic : {FK}

Instruction SQL

4
3

tape 3.
Table
1..1
1..1
0..*

0..*

14
15

Consultation
No mdecin : {PK, FK}{Cascade}
No sjour : {PK, FK}{Cascade}

14
15

14

CREATE TABLE [Consultation]


([No mdecin] SMALLINT NOT NULL
REFERENCES Mdecin([No mdecin])
ON DELETE CASCADE
ON UPDATE CASCADE,
[No sjour] SMALLINT NOT NULL
REFERENCES Sjour([No sjour])
ON DELETE CASCADE
ON UPDATE CASCADE,
PRIMARY KEY([No mdecin],[No sjour]))

Le modle physique de donnes

0..1
0..*

1
Traitement patient

1..1
1..*

0..*

No traitement : {PK}
Date
Dure
No sjour : {FK}
No mdecin : {FK}
Type traitement : {FK}

4
3

1..1

4
3
4
3

tape 4.
Nombre de tables : 7.

CREATE TABLE [Traitement patient]


([No traitement] SMALLINT
NOT NULL PRIMARY KEY,
[Date] DATE,
[Dure] FLOAT,
[No sjour] SMALLINT
NOT NULL
REFERENCES Sjour([No sjour]),
[No mdecin] SMALLINT
NOT NULL
REFERENCES Mdecin([No mdecin]),
[Type traitement] VARCHAR(30)
NOT NULL
REFERENCES Traitement([Type traitement]))





Conception de bases de donnes avec UML

Cas 3-6 CLUB OLYMPIQUE


Traduire le modle relationnel rsultant du cas 2-8 en un modle physique quivalent.
Inscription

Membre
No membre : {PK}
Nom membre
Prnom membre
1..1

1..1

1..*

1..1

No inscription : {PK}
Anne
Frais
No membre : {FK}
Rfre

1..1

No inscription : {PK, FK}{Cascade}


Nom spcialit : {PK, FK}{Cascade}

0..*
0..1

1..1

0..1

0..*
Athlte
Bnvole

No membre : {PK, FK}{Cascade}

Spcialit

No membre : {PK, FK}{Cascade}


Sexe
Date de naissance
1..1

Nom spcialit : {PK}


Nom discipline : {FK}

1..*

0..*

Discipline
1..*

1..1

Nom discipline : {PK}

1..1

Possde
No membre : {PK, FK}{Cascade}
Nom spcialit : {PK, FK}{Cascade}

tape 1.
Table

Exigence

Instruction SQL

CREATE TABLE Membre


([No membre] SMALLINT
NOT NULL PRIMARY KEY,
[Nom membre] VARCHAR(30),
[Prnom membre] VARCHAR(30))

Membre
No membre : {PK}
Nom membre
Prnom membre

CREATE TABLE Discipline


([Nom discipline] VARCHAR(30)
NOT NULL PRIMARY KEY)

Exigence

Instruction SQL

Discipline
Nom discipline : {PK}

tape 2.
Table
1..1

0..*

Spcialit
Nom spcialit : {PK}
Nom discipline : {FK}
1..1
0..*

1
4
3

CREATE TABLE Spcialit


([Nom spcialit] VARCHAR(30)
NOT NULL PRIMARY KEY,
[Nom discipline] VARCHAR(30)
NOT NULL
REFERENCES Discipline([Nom discipline]))

Le modle physique de donnes

1..1

Inscription

1..*

No inscription : {PK}
Anne
Frais
No membre : {FK}
1..1
0..*

1..1

4
3

18

CREATE TABLE [Athlte]


([No membre] SMALLINT NOT NULL UNIQUE
REFERENCES Membre([No membre])
ON DELETE CASCADE
ON UPDATE CASCADE,
[Sexe] VARCHAR(1),
[Date de naissance] DATE,
PRIMARY KEY([No membre]))

Exigence

Instruction SQL

18,9
15

0..1
Athlte

No membre : {PK, FK}{Cascade}


Sexe
Date de naissance
1..1

CREATE TABLE Inscription


([No inscription] SMALLINT
NOT NULL PRIMARY KEY,
[Anne] SMALLINT,
[Frais] CURRENCY,
[No membre] SMALLINT
NOT NULL
REFERENCES Membre([No membre]))

1..*

tape 3.
Table
1..1

18,9
15

0..1
Bnvole
No membre : {PK, FK}{Cascade}

18
1..1

0..*
Rfre

14
15

No inscription : {PK, FK}{Cascade}


Nom spcialit : {PK, FK}{Cascade}
1..1
0..*

14
15
14

CREATE TABLE [Bnvole]


([No membre] SMALLINT NOT NULL UNIQUE
REFERENCES Membre([No membre])
ON DELETE CASCADE
ON UPDATE CASCADE,
PRIMARY KEY([No membre]))
CREATE TABLE [Rfre ]
([No inscription] SMALLINT NOT NULL
REFERENCES Inscription([No inscription])
ON DELETE CASCADE
ON UPDATE CASCADE,
[Nom spcialit] VARCHAR(30) NOT NULL
REFERENCES Spcialit([Nom spcialit])
ON DELETE CASCADE
ON UPDATE CASCADE,
PRIMARY KEY([No inscription],[Nom
spcialit]))





Conception de bases de donnes avec UML

1..1

1..1

0..*

1..*

14
15

Possde
No membre : {PK, FK}{Cascade}
Nom spcialit : {PK, FK}{Cascade}

14
15

14

tape 4.
Nombre de tables : 8.

CREATE TABLE [Possde]


([No membre] SMALLINT NOT NULL
REFERENCES Athlte([No membre])
ON DELETE CASCADE
ON UPDATE CASCADE,
[Nom spcialit] VARCHAR(30) NOT NULL
REFERENCES Spcialit([Nom spcialit])
ON DELETE CASCADE
ON UPDATE CASCADE,
PRIMARY KEY([No membre],[Nom spcialit]))



Le modle physique de donnes

Cas 3-7 CLUB OLYMPIQUE, VERSION PARTITION


Traduire le modle relationnel rsultant du cas 2-9 en un modle physique quivalent.
Membre
No membre : {PK}
Nom membre
Prnom membre
Sexe
Date de naissance
Type : enum{Bnvole, Athlte}{Non nul}

Inscription

1..1

1..*

No inscription : {PK}
Anne
Frais
No membre : {FK}
Rfre

1..1
1..1

0..*

No inscription : {PK, FK}{Cascade}


Nom spcialit : {PK, FK}{Cascade}

1..1

1..*
Possde

Spcialit

No membre : {PK, FK}{Cascade}


Nom spcialit : {PK, FK}{Cascade}

Nom spcialit : {PK}


Nom discipline : {FK}

0..*

1..1

0..*

Discipline
1..* 1..1

Nom discipline : {PK}

tape 1.
Table

Exigence

Membre
No membre : {PK}
Nom membre
Prnom membre
Sexe
Date de naissance
Type : enum{Bnvole, Athlte}{Non nul}

2
10
Discipline
Nom discipline : {PK}

Instruction SQL
CREATE TABLE Membre
([No membre] SMALLINT
NOT NULL PRIMARY KEY,
[Nom membre] VARCHAR(30),
[Prnom membre] VARCHAR(30),
[Sexe] VARCHAR(1),
[Date de naissance] DATE,
[Type] VARCHAR(10) NOT NULL,
CONSTRAINT TypeValide CHECK([Type]
IN (Bnvole, Athlte)))
CREATE TABLE Discipline
([Nom discipline] VARCHAR(30)
NOT NULL PRIMARY KEY)

0

Conception de bases de donnes avec UML

tape 2.
Table

Exigence

0..*

1..1

Spcialit
Nom spcialit : {PK}
Nom discipline : {FK}

4
3

Instruction SQL
CREATE TABLE Spcialit
([Nom spcialit] VARCHAR(30)
NOT NULL PRIMARY KEY,
[Nom discipline] VARCHAR(30)
NOT NULL
REFERENCES Discipline([Nom discipline]))

1..1
0..*
1..1

1..*

4
3

CREATE TABLE Inscription


([No inscription] SMALLINT
NOT NULL PRIMARY KEY,
[Anne] SMALLINT,
[Frais] CURRENCY,
[No membre] SMALLINT
NOT NULL
REFERENCES Membre([No membre]))

Exigence

Instruction SQL

Inscription
No inscription : {PK}
Anne
Frais
No membre : {FK}

1..1
0..*

tape 3.
Table
1..1

0..*

14
15

Rfre
No inscription : {PK, FK}{Cascade}
Nom spcialit : {PK, FK}{Cascade}
1..1

14
15

0..*

14

1..1

1..1

0..*

1..*

14
15

Possde
No membre : {PK, FK}{Cascade}
Nom spcialit : {PK, FK}{Cascade}

14
15

14

tape 4.
Nombre de tables : 6.

CREATE TABLE [Rfre ]


([No inscription] SMALLINT NOT NULL
REFERENCES Inscription([No inscription])
ON DELETE CASCADE
ON UPDATE CASCADE,
[Nom spcialit] VARCHAR(30) NOT NULL
REFERENCES Spcialit([Nom spcialit])
ON DELETE CASCADE
ON UPDATE CASCADE,
PRIMARY KEY([No inscription],[Nom
spcialit]))
CREATE TABLE [Possde]
([No membre] SMALLINT NOT NULL
REFERENCES Membre([No membre])
ON DELETE CASCADE
ON UPDATE CASCADE,
[Nom spcialit] VARCHAR(30) NOT NULL
REFERENCES Spcialit([Nom spcialit])
ON DELETE CASCADE
ON UPDATE CASCADE,
PRIMARY KEY([No membre],[Nom spcialit]))

1

Le modle physique de donnes

Cas 3-8 TRANSPORTEUR ARIEN, VERSION TOTALEMENT OPTIMISE

(FIGURE 2-40)
Traduire le modle relationnel de la figure 2-40 en un modle physique quivalent.
Client
No client : {PK}
Nom client
Prnom client

Concerne

1..*

No concerne : {PK auto}


No rservation : {FK}{Cascade}
No passager : {FK}{Cascade}

1..1

1..1

0..*

1..*

1..1

Passager

Enregistrement bagage

No passager : {PK}
Nom passager
Prnom passager
Sexe

No enregistrement : {PK}
Date
Heure
No bagage : {FK}
1..1
1..*

1..1

1..1

1..*

Rservation
No rservation : {PK}
Prix total
Date rservation
Paiement effectu?
No client : {FK}
No paiement : {Unique}
Date paiement
Montant paiement
Mode de paiement
No carte de crdit : {FK}

Bagage vol

Billet

1..*

1..1

0..*

0..*

No billet : {PK}
No passager : {FK}
No rservation : {FK}
0..*

0..*

No bagage vol : {PK auto}


No vol : {FK}{Cascade}
No enregistrement : {FK}{Cascade}
No passager : {FK}
1..1

0..*

1..1

0..*

Rservation vol
Bagage

No rservation vol : {PK auto}


No rservation : {FK}{Cascade}
No vol : {FK}{Cascade}
Code de tarif : {FK}

No bagage : {PK}

Aroport
0..*

0..1

1..1

Carte de crdit

1..1

0..*
1..1
Vol

No carte : {PK}
Expiration
Nom du titulaire

1..1
Tarif
Code de tarif : {PK}
Conditions

Code d'aroport : {PK}


Ville

No du vol : {PK}
Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive
Code aroport quitte : {FK}
Code aroport arrive : {FK}
No appareil : {FK}
No annulation : {Unique}
Raison annulation
No retard : {Unique}
Minutes au dpart
Minutes l'arrive
Raison retard
0..*

1..1

0..*

1..1

1..1

0..*

1..*

Employ

Responsabilit
No responsabilit : {PK auto}
No vol : {FK}{Cascade}
No employ : {FK}{Cascade}

No employ : {PK}
Date embauche
No licence
Date obtention licence

1..1
Avion
No appareil : {PK}
Fabricant
Modle
Date acquisition
Nombre de siges

Sige

1..1 1..*

No appareil : {PK, FK}{Cascade}


No sige : {PK}
Classe



Conception de bases de donnes avec UML

tape 1.
Table

Exigence

Instruction SQL

CREATE TABLE Client


([No client] SMALLINT
NOT NULL PRIMARY KEY,
[Nom client] VARCHAR(30),
[Prnom client] VARCHAR(30))

Client
No client : {PK}
Nom client
Prnom client

Passager
No passager : {PK}
Nom passager
Prnom passager
Sexe

Bagage
No bagage : {PK}

Aroport
Code d'aroport : {PK}
Ville

Carte de crdit
No carte : {PK}
Expiration
Nom du titulaire

Employ
No employ : {PK}
Date embauche
No licence
Date obtention licence

Tarif
Code de tarif : {PK}
Conditions

Avion
No appareil : {PK}
Fabricant
Modle
Date acquisition
Nombre de siges

CREATE TABLE Passager


([No passager] SMALLINT
NOT NULL PRIMARY KEY,
[Nom passager] VARCHAR(30),
[Prnom passager] VARCHAR(30),
[Sexe] VARCHAR(1))
CREATE TABLE Bagage
([No bagage] SMALLINT
NOT NULL PRIMARY KEY)
CREATE TABLE Aroport
([Code daroport] VARCHAR(3)
NOT NULL PRIMARY KEY,
[Ville] VARCHAR(30))
CREATE TABLE [Carte de crdit]
([No carte] VARCHAR(15)
NOT NULL PRIMARY KEY,
[Expiration] DATE,
[Nom du titulaire] VARCHAR(30))
CREATE TABLE Employ
([No employ] SMALLINT
NOT NULL PRIMARY KEY,
[Date embauche] DATE,
[No licence] VARCHAR(10),
[Date obtention licence] DATE)
CREATE TABLE Tarif
([Code de tarif] VARCHAR(10)
NOT NULL PRIMARY KEY,
[Conditions] VARCHAR(30))
CREATE TABLE Avion
([No appareil] SMALLINT
NOT NULL PRIMARY KEY,
[Fabricant] VARCHAR(30),
[Modle] VARCHAR(10),
[Date acquisition] DATE,
[Nombre de siges] SMALLINT)

Le modle physique de donnes

tape 2.
Table

Exigence

1..1
0..*
1..1

Vol
No du vol : {PK}
Date de dpart
Heure de dpart
Date d'arrive
Jour d'arrive
Code aroport quitte : {FK}
Code aroport arrive : {FK}
No appareil : {FK}
No annulation : {Unique}
Raison annulation
No retard : {Unique}
Minutes au dpart
Minutes l'arrive
Raison retard
1..1

0..*

0..*

4
3

4
3

4
3
17
17
1..1

0..*
Rservation
No rservation : {PK}
Prix total
Date rservation
Paiement effectu?
No client : {FK}
No paiement : {Unique}
Date paiement
Montant paiement
Mode de paiement
No carte de crdit : {FK}
0..*
0..1

4
3
17

9
4
3

Instruction SQL
CREATE TABLE Vol
([No du vol] SMALLINT
NOT NULL PRIMARY KEY,
[Date de dpart] DATE,
[Heure de dpart] DATE,
[Date darrive] DATE,
[Jour darrive] VARCHAR(10),
[Code aroport quitte] VARCHAR(3)
NOT NULL
REFERENCES Aroport([Code daroport]),
[Code aroport arrive] VARCHAR(3)
NOT NULL
REFERENCES Aroport([Code daroport]),
[No appareil] SMALLINT
NOT NULL
REFERENCES Avion([No appareil]),
[No annulation] SMALLINT UNIQUE,
[Raison annulation] VARCHAR(30),
[No retard] SMALLINT UNIQUE,
[Minutes au dpart] SMALLINT,
[Minutes larrive] SMALLINT,
[Raison retard] VARCHAR(30))
CREATE TABLE Rservation
([No rservation] SMALLINT
NOT NULL PRIMARY KEY,
[Prix total] CURRENCY,
[Date rservation] DATE,
[Paiement effectu] BIT,
[No client] SMALLINT
NOT NULL
REFERENCES Client([No client]),
[No paiement] SMALLINT UNIQUE,
[Date paiement] DATE,
[Montant paiement] CURRENCY,
[No carte de crdit] VARCHAR(15)
UNIQUE
NOT NULL
REFERENCES [Carte de crdit]([No carte]))





Conception de bases de donnes avec UML

Enregistrement bagage

0..*

No enregistrement : {PK}
Date
Heure
No bagage : {FK}

4
3

CREATE TABLE [Enregistrement bagage]


([No enregistrement] SMALLINT
NOT NULL PRIMARY KEY,
[Date] DATE,
[Heure] DATE,
[No bagage] SMALLINT
NOT NULL
REFERENCES Bagage([No bagage]))

Exigence

Instruction SQL

1..1

tape 3.
Table
1..1
1..1

11
Concerne

1..*

No concerne : {PK auto}


No rservation : {FK}{Cascade}
No passager : {FK}{Cascade}

1..*

14
15

14
15
1..1
1..*

1..1
Billet

1..*

No billet : {PK}
No passager : {FK}
No rservation : {FK}

4
3
4
3

0..*
1..1
Rservation vol
0..*

No rservation vol : {PK auto}


No rservation : {FK}{Cascade}
No vol : {FK}{Cascade}
Code de tarif : {FK}

11
4
15

0..*
1..1

1..1

4
15

4
3

CREATE TABLE Concerne


([No concerne] IDENTITY
NOT NULL PRIMARY KEY,
[No rservation] SMALLINT NOT NULL
REFERENCES Rservation([No rservation])
ON DELETE CASCADE
ON UPDATE CASCADE,
[No passager] SMALLINT NOT NULL
REFERENCES Passager([No passager])
ON DELETE CASCADE
ON UPDATE CASCADE)
CREATE TABLE [Billet]
([No billet] SMALLINT
NOT NULL PRIMARY KEY,
[No passager] SMALLINT
NOT NULL
REFERENCES Passager([No passager]),
[No rservation] SMALLINT
NOT NULL
REFERENCES Rservation([No rservation]))
CREATE TABLE [Rservation vol]
([No rservation vol] IDENTITY
NOT NULL PRIMARY KEY,
[No rservation] SMALLINT NOT NULL
REFERENCES Rservation([No rservation])
ON DELETE CASCADE
ON UPDATE CASCADE,
[No vol] SMALLINT NOT NULL
REFERENCES Vol([No du vol])
ON DELETE CASCADE
ON UPDATE CASCADE,
[Code de tarif] VARCHAR(10)
NOT NULL
REFERENCES Tarif([Code de tarif]))

Le modle physique de donnes

1..1
1..*

1..1

11

Bagage vol

0..*

No bagage vol : {PK auto}


No vol : {FK}{Cascade}
No enregistrement : {FK}{Cascade}
No passager : {FK}
0..*

4
15

1..1

4
15

4
3
1..1

1..1
1..*

11

0..*
Responsabilit

No responsabilit : {PK auto}


No vol : {FK}{Cascade}
No employ : {FK}{Cascade}

4
15

4
15

1..1

14
15
Sige

1..*

No appareil : {PK, FK}{Cascade}


No sige : {PK}
Classe

14

tape 4.
Nombre de tables : 17.

CREATE TABLE [Bagage vol]


([No bagage vol] IDENTITY
NOT NULL PRIMARY KEY,
[No vol] SMALLINT
NOT NULL
REFERENCES Vol([No du vol])
ON DELETE CASCADE
ON UPDATE CASCADE,
[No enregistrement] SMALLINT
NOT NULL
REFERENCES [Enregistrement bagage]([No
enregistrement])
ON DELETE CASCADE
ON UPDATE CASCADE,
[No passager] SMALLINT
NOT NULL
REFERENCES Passager([No passager]))
CREATE TABLE [Responsabilit]
([No responsabilit] IDENTITY
NOT NULL PRIMARY KEY,
[No vol] SMALLINT NOT NULL
REFERENCES Vol([No du vol])
ON DELETE CASCADE
ON UPDATE CASCADE,
[No employ] SMALLINT NOT NULL
REFERENCES Employ([No employ])
ON DELETE CASCADE
ON UPDATE CASCADE)
CREATE TABLE [Sige]
([No appareil] SMALLINT NOT NULL
REFERENCES Avion([No appareil])
ON DELETE CASCADE
ON UPDATE CASCADE,
[No sige] SMALLINT,
[Classe] VARCHAR(10),
PRIMARY KEY([No appareil],[No sige]))





Conception de bases de donnes avec UML

RAlisATion du Modle physique en sql Avec Ms Access


MS.Access.dispose,.comme.la.plupart.des.SGBD,.dun.langage.de.programmation.
pour.la.ralisation.dapplications.de.bases.de.donnes ..Il.porte.le.nom.Visual
Basic For Applications,.ou.plus.simplement.VBA,.langage.par.ailleurs.intgr.
.bon.nombre.de.logiciels.de.la.suite.MS.Office.dont.Excel.et.Word .
VBA.incorpore,.par.le.biais.de.la.bibliothque.de.programmes.ADO,.des.
mcanismes.pour.lexcution.de.requtes.de.dfinition.de.donnes.tels.que.
CREATE TABLE. ou. ALTER TABLE .. Pour. raliser. un. script. de. cration. de.
tables. en. MS. Access,. il. suffit. de. crer. un. module. Access. et. dy. incorporer.
une.procdure.regroupant.des.instructions.permettant.dexcuter.toutes.les.
requtes.de.cration.de.tables.du.modle.physique ..
La. figure. 3-6. montre. une. partie. de. la. fentre. qui. permet. de. crer,.
. odifier. et. excuter. des. objets. dune. BD. en. MS. Access .. La. cration. dun.
m
module.seffectue.en.slectionnant.le.bouton.Modules.et.en.cliquant.ensuite.
sur.le.bouton.Nouveau.situ.au.haut.de.la.fentre .
figuRe 3-6

Cration dun module en MS Access

.louverture.de.la.fentre.contenant.linstruction.:
Option Compare Database,
il.importe.dajouter..sa.suite.une.procdure.appele.par.exemple.:
Script_Creation_Tables().
et.possdant.les.instructions.suivantes ..Les.trois.apostrophes.au.centre.de.la.
procdure.devront.tre.remplaces.par.une.suite.dinstructions.ddies..la.
cration.des.tables .

Le modle physique de donnes



Private Sub Script_Creation_Tables()


Dim conDatabase As ADODB.Connection
Dim SQL As String
On Error GoTo Error_Handler
Set conDatabase = Application.CurrentProject.Connection

conDatabase.Close
Set conDatabase = Nothing
Exit Sub
Error_Handler :
MsgBox Err.Description, vbInformation
End Sub
Chaque. bloc. dinstructions. conu. pour. crer. une. table. appele. Client.
aura.un.contenu.similaire.au.bloc.donn.ci-dessous .
SQL = _
"CREATE TABLE Client" & _
" ([No client] SMALLINT" & _
" NOT NULL PRIMARY KEY," & _
" [Nom client] VARCHAR(30)," & _
" [Prnom client] VARCHAR(30))"
conDatabase.Execute SQL
MsgBox "Table Client cre", vbInformation
SQL. est. une. variable. dclare. dans. la. procdure. du. script. de. cration.
de.la.table ..Le.caractre.soulign._.,.indique.que.la.ligne.suivante.contient.
la.suite.de.linstruction.daffectation ..Les.lments.du.script.sont.ici.disposs.
sur.plusieurs.lignes ..Loprateur.de.concatnation.&.est.utilis.pour.indiquer.
que.le.contenu.de.chaque.lment.plac.entre.guillemets.doit.tre.combin.
.celui.de.la.ligne.suivante .
Linstruction.conDatabase.Execute SQL.excute.linstruction.stocke.
dans.la.variable.SQL ..Elle.procde.donc..la.cration.de.la.table.dans.la.BD .
La. dernire. instruction. fait. apparatre. . lcran. une. bote. de. dialogue.
informant.lutilisateur.que.la.table.a.t.cre.:
MsgBox "Table Client cre", vbInformation



Conception de bases de donnes avec UML

La. procdure. finale. doit. comporter. autant. de. blocs. dinstructions. de.
cette.nature.quil.y.a.de.tables..crer.dans.la.BD ..Nous.donnons.ci-aprs.le.
contenu. complet. de. la. procdure. requise. pour. crer. les. tables. du. modle.
physique. produit. dans. le. cadre. du. cas. 3-8 .. Pour. lancer. lexcution. de. la.
procdure,.il.suffit.de.placer.le.pointeur.au.dbut.de.la.procdure.et.de.cliquer.
ensuite.sur.le.bouton.dclenchant.lexcution.dune.procdure ..Le.bouton.
dexcution. .est.plac.en.haut.de.la.fentre.dans.la.barre.doutils .
Private Sub Script_Creation_Tables()
Dim conDatabase As ADODB.Connection
Dim SQL As String
On Error GoTo Error_Handler
Set conDatabase = Application.CurrentProject.Connection
SQL = _
"CREATE TABLE Client" & _

"
"
"
"

([No client] SMALLINT" & _


NOT NULL PRIMARY KEY," & _
[Nom client] VARCHAR(30)," & _
[Prnom client] VARCHAR(30))"

conDatabase.Execute SQL
MsgBox "Table Client cre", vbInformation
SQL = _
"CREATE TABLE Passager" & _
" ([No passager] SMALLINT" & _
" NOT NULL PRIMARY KEY," & _
" [Nom passager] VARCHAR(30)," & _
" [Prnom passager] VARCHAR(30)," & _
" [Sexe] VARCHAR(1))"
conDatabase.Execute SQL
MsgBox "Table Passager cre", vbInformation
SQL = _
"CREATE TABLE Bagage" & _
" ([No bagage] SMALLINT" & _
" NOT NULL PRIMARY KEY)"
conDatabase.Execute SQL

Le modle physique de donnes

MsgBox "Table Bagage cre", vbInformation


SQL = _
"CREATE TABLE Aroport" & _
" ([Code daroport] VARCHAR(3)" & _
" NOT NULL PRIMARY KEY," & _
" [Ville] VARCHAR(30))"
conDatabase.Execute SQL
MsgBox "Table Aroport cre", vbInformation
SQL = _
"CREATE TABLE [Carte de crdit]" & _
" ([No carte] VARCHAR(15)" & _
" NOT NULL PRIMARY KEY," & _
" [Expiration] DATE," & _
" [Nom du titulaire] VARCHAR(30))"
conDatabase.Execute SQL
MsgBox "Table Carte de crdit cre", vbInformation
SQL = _
"CREATE TABLE Employ" & _
" ([No employ] SMALLINT" & _
" NOT NULL PRIMARY KEY," & _
" [Date embauche] DATE," & _
" [No licence] VARCHAR(10)," & _
" [Date obtention licence] DATE)"
conDatabase.Execute SQL
MsgBox "Table Employ cre", vbInformation
SQL = _
"CREATE TABLE Tarif" & _
" ([Code de tarif] VARCHAR(10)" & _
" NOT NULL PRIMARY KEY," & _
" [Conditions] VARCHAR(30))"
conDatabase.Execute SQL
MsgBox "Table Tarif cre", vbInformation
SQL = _



00

Conception de bases de donnes avec UML

"CREATE TABLE Avion" & _


" ([No appareil] SMALLINT" & _
" NOT NULL PRIMARY KEY," & _
" [Fabricant] VARCHAR(30)," & _
" [Modle] VARCHAR(10)," & _
" [Date acquisition] DATE," & _
" [Nombre de siges] SMALLINT)"
conDatabase.Execute SQL
MsgBox "Table Avion cre", vbInformation
SQL = _
"CREATE TABLE Vol" & _
" ([No du vol] SMALLINT " & _
" NOT NULL PRIMARY KEY," & _
" [Date de dpart] DATE," & _
" [Heure de dpart] DATE," & _
" [Date darrive] DATE," & _
" [Jour darrive] VARCHAR(10)," & _
" [Code aroport quitte] VARCHAR(3)" & _
" NOT NULL" & _
" REFERENCES Aroport([Code daroport])," & _
" [Code aroport arrive] VARCHAR(3)" & _
" NOT NULL" & _
" REFERENCES Aroport([Code daroport])," & _
" [No appareil] SMALLINT" & _
" NOT NULL" & _
" REFERENCES Avion([No appareil])," & _
" [No annulation] SMALLINT UNIQUE," & _
" [Raison annulation] VARCHAR(30)," & _
" [No retard] SMALLINT UNIQUE," & _
" [Minutes au dpart] SMALLINT," & _
" [Minutes larrive] SMALLINT," & _
" [Raison retard] VARCHAR(30))"
conDatabase.Execute SQL
MsgBox "Table Vol cre", vbInformation
SQL = _
"CREATE TABLE Rservation" & _
" ([No rservation] SMALLINT " & _
" NOT NULL PRIMARY KEY," & _

Le modle physique de donnes

"
"
"
"
"
"
"
"
"
"
"
"
"
"

01

NOT NULL PRIMARY KEY," & _


[Prix total] CURRENCY, " & _
[Date rservation] DATE," & _
[Paiement effectu] BIT," & _
[No client] SMALLINT" & _
NOT NULL" & _
REFERENCES Client([No client])," & _
[No paiement] SMALLINT UNIQUE," & _
[Date paiement] DATE," & _
[Montant paiement] CURRENCY," & _
[No carte de crdit] VARCHAR(15) " & _
UNIQUE" & _
NOT NULL" & _
REFERENCES [Carte de crdit]([No carte]))"

conDatabase.Execute SQL
MsgBox "Table Rservation cre", vbInformation
SQL = _
"CREATE TABLE [Enregistrement bagage]" & _
" ([No enregistrement] SMALLINT " & _
" NOT NULL PRIMARY KEY, " & _
" [Date] DATE," & _
" [Heure] DATE," & _
" [No bagage] SMALLINT" & _
" NOT NULL" & _
" REFERENCES Bagage([No bagage]))"
conDatabase.Execute SQL
MsgBox "Table Enregistrement bagage cre", vbInformation
SQL = _
"CREATE TABLE Concerne" & _
" ([No concerne] IDENTITY " & _
" NOT NULL PRIMARY KEY," & _
" [No rservation] SMALLINT NOT NULL" & _
" REFERENCES Rservation([No rservation])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [No passager] SMALLINT NOT NULL" & _
" REFERENCES Passager([No passager])" & _
" ON DELETE CASCADE" & _

0

Conception de bases de donnes avec UML

" ON UPDATE CASCADE)"


conDatabase.Execute SQL
MsgBox "Table Concerne cre", vbInformation
SQL = _
"CREATE TABLE [Billet]" & _
" ([No billet] SMALLINT " & _
" NOT NULL PRIMARY KEY," & _
" [No passager] SMALLINT " & _
" NOT NULL" & _
" REFERENCES Passager([No passager])," & _
" [No rservation] SMALLINT " & _
" NOT NULL" & _
" REFERENCES Rservation([No rservation]))"
conDatabase.Execute SQL
MsgBox "Table Billet cre", vbInformation
SQL = _
"CREATE TABLE [Rservation vol]" & _
" ([No rservation vol] IDENTITY " & _
" NOT NULL PRIMARY KEY," & _
" [No rservation] SMALLINT NOT NULL" & _
" REFERENCES Rservation([No rservation])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [No vol] SMALLINT NOT NULL" & _
" REFERENCES Vol([No du vol])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [Code de tarif] VARCHAR(10)" & _
" NOT NULL" & _
" REFERENCES Tarif([Code de tarif]))"
conDatabase.Execute SQL
MsgBox "Table Rservation vol cre", vbInformation
SQL = _
"CREATE TABLE [Bagage vol] " & _
" ([No bagage vol] IDENTITY " & _
" NOT NULL PRIMARY KEY," & _

Le modle physique de donnes

" [No vol] SMALLINT " & _


" NOT NULL" & _
" REFERENCES Vol([No du vol])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [No enregistrement] SMALLINT " & _
" NOT NULL" & _
" REFERENCES [Enregistrement bagage]([No
enregistrement])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [No passager] SMALLINT" & _
" NOT NULL" & _
" REFERENCES Passager([No passager])) "
conDatabase.Execute SQL
MsgBox "Table Billet cre", vbInformation
SQL = _
"CREATE TABLE [Responsabilit]" & _
" ([No responsabilit] IDENTITY " & _
" NOT NULL PRIMARY KEY," & _
" [No vol] SMALLINT NOT NULL" & _
" REFERENCES Vol([No du vol])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [No employ] SMALLINT NOT NULL" & _
" REFERENCES Employ([No employ])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE)"
conDatabase.Execute SQL
MsgBox "Table Respo cre", vbInformation
SQL = _
"CREATE TABLE [Sige]" & _
" ([No appareil] SMALLINT NOT NULL" & _
" REFERENCES Avion([No appareil])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [No sige] SMALLINT," & _
" [Classe] VARCHAR(10)," & _

0

0

Conception de bases de donnes avec UML

" PRIMARY KEY([No appareil],[No sige]))"


conDatabase.Execute SQL
MsgBox "Table Sige cre", vbInformation
conDatabase.Close
Set conDatabase = Nothing
Exit Sub
Error_Handler :
MsgBox Err.Description, vbInformation
End Sub
Aprs. lexcution. de. la. procdure,. on. doit. sassurer. denregistrer. le.
module.en.lui.donnant.un.nom.pertinent .
La. ralisation. dun. modle. physique. de. donnes. en. faisant. appel. au.
langage.SQL.peut.tre.lourde,.surtout.si.le.modle.comporte.plusieurs.tables ..
De.plus,.elle.est.sujette..de.nombreuses.erreurs.quil.peut.tre.fort.difficile.
de.reprer.:
1 ..erreurs.de.syntaxe.:.virgule.manquante,.mot.cl.incorrectement.orthographi,.parenthse.manquante,.clause.CHECK incorrecte,.etc .
2 ..erreurs.de.logique.:.cration.dune.table.avec.une.cl.trangre.rfrant..
une. table. non. cre. pralablement,. type. de. donnes. de. la. cl. trangre.
incompatible.avec.le.type.de.la.cl.de.la.table.mre,.cl.simple.cre.sur.
une.colonne.alors.quelle.devrait.tre.compose,.etc .
MS. Access. offre. un. support. fort. limit. pour. localiser. les. erreurs. de.
syntaxe. dune. instruction. CREATE TABLE .. Un. message. apparat. . lcran.
lorsquune.erreur.est.dtecte ..Il.indique.simplement.Erreur.de.syntaxe.dans.
linstruction.de.cration.de.la.table.sans.autre.prcision.sur.sa.nature.et.sa.
localisation .
Il.existe.heureusement.une.faon.de.raliser.le.modle.physique.sans.
tre.contraint.aux.exigences.rigoureuses.de.la.syntaxe.du.langage.SQL ..Cette.
deuxime. approche,. mieux. adapte. au. novice,. est. traite. dans. la. section.
suivante .

Le modle physique de donnes

0

RAlisATion liMiTe du Modle physique sAns fAiRe Appel sql


Il.est.possible.de.raliser.un.modle.physique.en.MS.Access.sans.passer.par.
un.script.SQL ..Bien.que.moins.souple.quun.script.SQL,.qui.permet.dexprimer.
un.spectre.beaucoup.plus.large.de.contraintes.du.modle.logique,.le.mode.
dit.Cration de table.de.MS.Access.offre.au.novice.un.mcanisme.simple.et.
efficace.pour.raliser.et.modifier.un.modle.physique.de.donnes .
Contrairement.au.script.SQL,.qui.permet.dimplanter.un.modle.physique.
par.une.squence.dinstructions.excutes.dans.une.mme.procdure.en.une.
fraction.de.seconde,.la.ralisation.dun.modle.physique.sans.faire.appel..
SQL.doit.se.faire.en.deux.temps.:
Premier.temps.:.cration.de.toutes.les.tables.du.modle.logique.en.mode
Cration de table.;.chaque.table.doit.avoir.une.cl.primaire.et.le.cas.chant.
une.ou.des.cls.trangres.;
Deuxime.temps.:.tablir.les.associations.entre.les.tables.en.glissant.la.cl.
trangre. sur. la. cl. primaire. ou. la. cl. secondaire. . laquelle. elle. rfre. .
laide.de.loutil.Relations.et.spcifier.le.type.dintgrit.rfrentielle.applicable..chaque.association .
figuRe 3-7

Cration dune table en MS Access

La. cration. dune. table. en. MS. Access. se. fait,. comme. pour. tout. autre.
type.dobjet.dune.BD.Access,..travers.la.fentre.de.gestion.des.objets.de.la.
BD ..La.figure.3-7.reproduit.la.fentre.qui,.en.MS.Access,.permet.de.grer.les.
objets.avec.ses.catgories.dans.la.marge..gauche .

0

Conception de bases de donnes avec UML

. La. cration. dune. table. seffectue. en. slectionnant. le. bouton. Tables.
puis.en.double-cliquant.sur.Crer une table en mode Cration,.situ..droite.
dans.la.fentre ..Une.fentre.comme.celle.illustre..la.figure.3-8.souvre.alors.
pour.permettre.au.concepteur.de.crer.une.table.en.nommant.chaque.colonne.
puis. en. spcifiant. leur. type. de. donnes. et. les. contraintes. applicables. . la.
colonne .
figuRe 3-8

Cration dune table en MS Access

Temps 1 : cration de chaque table en mode cration de table


Dans. ce. mode,. chaque. table. doit. tre. cre. individuellement .. Comme. le.
montre.la.figure.3-8,.MS.Access.utilise.les.termes.Nom du champ.pour.faire.
rfrence.au.nom.dune.colonne ..Cette.appellation.est..notre.avis.inapproprie ..Chaque.colonne.est.dfinie.par.son.nom.et.par.un.type.de.donnes.
choisi..travers.une.zone.de.liste.droulante .
On. retrouve. dans. la. liste. droulante. les. principaux. types. de. donnes.
de. la. norme. ANSI-92 .. Le. tableau. 3-9. nous. indique. sous. quelle. appellation.
chaque.type.ANSI.est.identifi.dans.la.liste .
Lorsquun. champ. est. slectionn. en. marge. . gauche. de. son. nom,. ses.
proprits sont.affiches.au.bas.de.la.fentre ..Les.proprits.affiches.sous.longlet.Gnral.rfrent.notamment.aux.contraintes.applicables..cette.colonne ..

0

Le modle physique de donnes

TAbleAu 3-9

Types de donnes en MS Access et correspondance en ANSI-92

Type de donnes
Access
Numrique, taille du champ :
Entier court
Numrique, taille du champ :
Entier long
Numrique, taille du champ :
Rel simple
Numrique, taille du champ :
Rel double
Texte
Date/Heure
Oui/Non
Monnaie
Numroauto
Mmo

Signification

Type ANSI-92

Valeur numrique entire


infrieure 32 767
Valeur numrique entire
infrieure 2 147 483 647
Valeur numrique relle infrieure
3,402823E38
Valeur numrique relle infrieure
1,79769313486231E308
Chane de 255 caractres
ou moins
Date/heure du calendrier
Valeur Vrai ou Faux
Valeur numrique relle portant
symbole montaire
Valeur numrique entire
sans doublons
Chane de caractres de plus
de 255 caractres, mais moins
de 65 535

SMALLINT
INTEGER
FLOAT
DOUBLE PRECISION
VARCHAR
DATE
BIT
CURRENCY
IDENTITY(d,i)
MEMO

La.figure.3-9.montre.une.fentre.contenant.les.spcifications.de.la.table.

Client. et,. au. bas. de. la. fentre,. les. proprits. de. la. colonne. No client. slec-

tionne.plus.haut ..La.prsence.de.la.petite.cl.en.marge.gauche.du.nom.du.
champ. No client.( ),.indique.quil.sagit.de.la.cl.primaire.de.la.table ..Pour.
marquer.un.champ.comme.cl.primaire,.il.faut.au.pralable.slectionner.le.
champ.et.cliquer.sur.la.mme.cl. . dans.la.barre.doutils ..Sil.y.a.plusieurs.
de. ces. petites. cls. prsentes. pour. une. mme. table,. lensemble. des. champs.
constitue. une cl primaire compose .. Une. cl. primaire. compose. est. dfinie.
en.slectionnant.au.pralable.simultanment.les.champs.de.la.cl,.en tenant
la touche ctrl enfonce au cours de la slection multiple,.et.en.cliquant.
enfin.sur.la.mme.cl.dans.la.barre.doutils .
Les.proprits.du.champ.ou.plus.exactement.dune.colonne refltent.les.
contraintes. dintgrit. smantiques. donnes. pour. cette. colonne. au. niveau.
logique.par.le.modle.relationnel ..
Le.tableau.3-10.donne,.pour.chaque.exigence.que.lon.peut.retrouver.
dans. le. modle. relationnel,. les. modalits. dimplantation. dans. le. modle.
physique..travers.une.ou.des.proprits.du.champ ..Mais.toutes.les.exigences.
ne.peuvent.tre.mises.en.uvre.par.le.biais.des.proprits.des.champs ..En.

0

figuRe 3-9

Conception de bases de donnes avec UML

Cration de la table client en MS Access

Exigences formules au niveau logique et leur rendu en Mode cration de table


TAbleAu 3-10 dans les proprits du champ

Exigence

Niveau logique

Signification

Niveau physique :
proprits du champ utilises

1.

{PK}

Cet attribut constitue la cl primaire :


il ne peut avoir une valeur nulle et
avoir des doublons (intgrit dentit)

2.

{Non nul}

3.

{FK}

4.

Multiplicit
minimale 1 ct
mre

La valeur de cet attribut ne peut tre


nulle (laisse en blanc)
Cet attribut constitue une cl
trangre avec intgrit rfrentielle
en ajout
La cl trangre comporte
obligatoirement une valeur

Prsence en marge de ;
Proprits rgles ainsi :
Null interdit : Oui
Index : Oui- Sans doublons
Proprit rgle ainsi :
Null interdit : Oui
Doit tre implant au temps 2

7.

{>Nombre}

8.

{Dfaut valeur}

9.

Multiplicit
maximale 1 ct
fille

Cet attribut possde une contrainte


de domaine
Cet attribut dispose dune valeur
par dfaut
La cl trangre ne peut avoir
des doublons

Proprit rgle ainsi :


Null interdit : Oui
pour la cl trangre qui ralise
lassociation
Proprit rgle ainsi :
Valide si : >nombre
Proprit rgle ainsi :
Valeur par dfaut : valeur
Proprit rgle ainsi :
Index : Oui- Sans doublons
pour la cl trangre qui ralise
lassociation

0

Le modle physique de donnes

Exigences formules au niveau logique et leur rendu en Mode cration de table


TAbleAu 3-10 dans les proprits du champ (suite)

Exigence

Niveau logique

Signification

10.
11.

enum{val1, val2,
, valn }
{PK auto}

Cet attribut possde une contrainte


de domaine
Cet attribut constitue une cl primaire
avec gnration automatique
de valeurs

12.

{>Nom_attribut2}

Cet attribut possde une contrainte


voulant que sa valeur soit limite
par la valeur dun attribut sur la mme
ligne

13.

{<= Valeur hors


ligne}

14.

Nom_attribut1
{PK}

Nom_attributn
{PK}

15.

{FK}{Cascade}

16.

{Nom_attribut1 :
Type, ,
Nom_attributn :
Type}{FK}
{Unique}

17.
18.

19.

{PK, FK}
Lattribut est
le seul attribut
de la cl primaire
{ENTRE val1
et val2}

Cet attribut possde une contrainte


voulant que sa valeur soit limite par
la valeur dun attribut sur une autre
ligne de la mme table ou une ligne
dune autre table
Ces attributs forment une cl primaire
compose : aucun de ces attributs ne
peut avoir une valeur nulle et leur
combinaison ne peut avoir de
doublons (intgrit dentit)
Cet attribut constitue une cl
trangre avec intgrit rfrentielle
en ajout, suppression et mise jour
Ce groupe dattributs constituent
une cl trangre avec intgrit
rfrentielle en ajout

Niveau physique :
proprits du champ utilises
Proprit rgle ainsi :
Valide si : DANS(val1, , valn)
Le type de donnes du champ doit
tre NumroAuto
La gnration de valeurs dbute 1 et
suivent des valeurs incrmentes de 1
Cliquer sur le bouton Proprits
,
de la table de la barre doutils
une nouvelle fentre souvre,
la proprit suivante de la table
est rgle ainsi :
Valise si
> Nom_attribut2
Ne peut tre ralis en mode cration
de tables

Prsence en marge de chaque champ


de la cl
Proprits rgles ainsi pour chaque
champ de la cl compose :
Null interdit : Oui
Doit tre implant au temps 2
Doit tre implant au temps 2

Attribut sans doublons

Proprit rgle ainsi :


Index : Oui- Sans doublons

Cet attribut est une cl primaire


simple mais il est aussi cl trangre.

Prsence en marge de
Proprits rgles ainsi :
Null interdit : Oui
Index : Oui- Sans doublons
Proprit rgle ainsi :
Valide si : ENTRE(val1, , valn)

10

Conception de bases de donnes avec UML

effet,.dans.certains.cas,.il.faudra.attendre.le.temps.2.pour.raliser.quelquesunes.dentre.elles.(exigences.3,.15.et.16) ..Dans.dautre.cas,.il.sera.impossible.
de.le.faire.sans.passer.par.un.script.SQL.(exigence.13) .
Les. exigences. du. modle. relationnel. qui. ne. peuvent. tre. implantes.
dans.un.premier.temps.concernent.essentiellement.ltablissement.du.lien.
entre. une. cl. trangre. et. la. cl. primaire. ou. secondaire. . laquelle. la. cl.
trangre. rfre .. Elles. seront. mises. en. uvre. ds. lors. que. toutes. les. tables.
du.modle.relationnel.auront.t.cres ..Nous.aborderons.ceci..la.prochaine.
section .

Temps 2 : liaison des cls trangres aux cls primaires


des tables rfrences
Avant. daborder. cette. tape. de. la. ralisation. dun. modle. physique. en. MS.
Access.sans.script.SQL,.les.tables.du.modle.relationnel.doivent.tre.toutes.
prsentes.dans.la.BD.avec.leur(s).cl(s).trangre(s).sil.y.a.lieu .
Cest.grce..loutil.Relations.de.la.barre.doutils.que.le.travail.de.ralisation.du.modle.physique.pourra.tre.men..son.terme.
..Une.fentre.
Relations. souvre. sur. une. fentre. vide. ou. affiche. les. associations. ralises.
auparavant ..Considrons.le.cas.o.aucune.association.nexiste.encore ..Comme.
le. dmontre. la. figure. 3-10,. la. fentre. Relations. est. initialement. vide. mais.
loutil.Afficher la table.va.permettre.dajouter..la.fentre,..tour.de.rle,.une.
reprsentation.graphique.de.chaque.table.prsente.dans.la.BD .
figuRe 3-10 Ouverture de la fentre montrant les associations ralises

Le modle physique de donnes

11

figuRe 3-11 afficher la table permet dajouter la fentre Relations les tables de la BD

La.figure.3-11.montre.que.MS.Access.fait.apparatre.par.ordre.alphabtique.toutes.les.tables.disponibles.dans.la.BD ..Il.incombe..lutilisateur.dajouter. . la. fentre. toutes. les. tables. de. la. BD. de. manire. . raliser. ensuite. les.
associations ..
Lorsque.les.tables.sont.toutes.affiches.dans.la.fentre.Relations,.lutilisateur.peut.implanter.les.associations.en.slectionnant.dabord.le.nom.dune.
cl.trangre.puis.en.la.glissant.sur.le.nom.de.la.cl.primaire.ou.secondaire.
de.la.table.rfrence .
Une.bote.de.dialogue.souvre.alors,.permettant..lutilisateur.dtablir.
le.type.dintgrit.rfrentielle..mettre.en.uvre.pour.cette.association ..La.
figure. 3-12. prsente. la. bote. de. dialogue. Modification des relations,. affiche.
ds.lors.que.lutilisateur.a.gliss.le.nom.de.la.colonne. No client.de.la.table.
Rservation. sur. le. nom. de. la. colonne. No client. de. la. table. Client .. On. note.
que. lutilisateur. a. le. loisir. de. choisir. la. nature. de. lintgrit. rfrentielle. .
appliquer.:
en.cochant.Appliquer lintgrit rfrentielle,.elle.sera.applique.en.ajout.
en.cochant.Mettre jour en cascade,.elle.sera.applique.en.mise..jour
en.cochant.Effacer en cascade,.elle.le.sera.en.suppression .
Lutilisateur.doit.sassurer.que.le.type.de.donnes.de.la.cl.trangre.est.
le.mme.que.celui.de.la.cl.rfrence.dans.lautre.table,.sinon.lassociation.
va.chouer ..Sil.sagit.dune.association.impliquant.la.mme.table,.soit.une.
association.rflexive,.lutilisateur.doit.afficher.deux.fois.la.table.et.procder.
ensuite. . lassociation. entre. les. deux. occurrences. de. la. mme. table .. La.
deuxime. fois. quune. table. est. affiche. dans. la. fentre. Relations,. son. nom.
est.suivi.de._1.pour.la.distinguer.de.la.premire.occurrence .

1

Conception de bases de donnes avec UML

Choix du type dintgrit rfrentielle appliquer sur lassociation


figuRe 3-12 entre la table Client et la table Rservation

Dans.le.cas.particulier.o.la.cl.trangre.est.une.cl.trangre.compose,.
lutilisateur.doit.dabord.glisser.un.lment.de.la.cl.trangre.sur.llment.
correspondant.de.la.cl.primaire.rfrence.et.ensuite,.lorsque.la.bote.de.dialogue.Modification des relations.saffiche,.les.autres.lments.de.la.cl.sont.choisis.
de.part.et.dautre.de.lassociation..laide.de.zones.de.listes.droulantes ..
La.figure.3-13.prsente.une.version.du.modle.de.la.figure.3-12.o.la.cl.
trangre.liant.les.tables. Rservation.. Client.est.cette.fois.compose.de. Nom
client.et. Prnom client ..Lutilisateur.doit.choisir.dans.les.zones.de.liste.droulante.les.deux.colonnes.impliques.dans.lassociation.de.part.et.dautre .
figuRe 3-13 Construction dune association impliquant une cl trangre compose

Le modle physique de donnes

1

vAlidATion du Modle physique de donnes


Le. modle. physique. ralis. . partir. dun. modle. relationnel. devrait. tre.
valid.sur.deux.plans.:
1 ..la.cohrence.avec.le.modle.relationnel.;
2 ..la.validit.du.modle.sur.le.plan.syntaxique.et.smantique .
Le.volet.de.validation.le.plus.important.est.celui.de.la.cohrence.avec.
le. modle. relationnel. car. seul. le. modlisateur. peut. leffectuer .. Ce. volet.
concerne.plus.spcifiquement.les.points.suivants.:
les.tables.du.modle.relationnel.doivent.toutes.se.retrouver.dans.le.modle.
physique.;
les.colonnes.dune.table.du.modle.relationnel.doivent.toutes.tre.prsentes.
dans.la.table.correspondante.du.modle.physique.;
la. cl. primaire. dune. table. du. modle. relationnel. doit. tre. la. mme. au.
niveau.physique.;
les.cls.trangres.refltent.toutes.les.associations.dune.table.fille.et.elles.
doivent.se.retrouver.toutes.dans.la.table.correspondante.au.niveau.physique.
avec.leurs.exigences.dintgrit.rfrentielle.;
chaque. colonne. dune. table. du. modle. physique. possde. un. type. de.
.donnes.et.des.contraintes.dintgrit.conformes.aux.exigences.du.modle.
relationnel .
La.validation.du.modle.physique.sur.le.plan.syntaxique.et.smantique.
est.gnralement.prise.en.charge.par.les.outils.disponibles.dans.le.SGBD.pour.
implanter. le. modle. et. ne. relve. donc. pas. directement. du. concepteur .. Il.
sagit.notamment.de.dtecter.les.anomalies.suivantes.:
labsence.de.cl.primaire.pour.une.table.;
un.type.de.donnes.absent.ou.invalide.;
une.incompatibilit.entre.le.type.de.donnes.de.la.cl.trangre.et.le.type.
de.la.cl.rfrence.dans.lautre.table.;
dans.le.cas.dune.cl.trangre.compose,.le.nombre.de.colonnes.et.leur.
type. respectif. doivent. tre. conformes. . la. cl. compose. rfrence. dans.
la.deuxime.table.;
une.formulation.inadquate.des.contraintes.dintgrit.smantique.;
une.cl.primaire.dont.la.colonne.ou.les.colonnes.ne.portent.pas.la.contrainte.
Non nul.;
une. cl. primaire. simple. ou. compose. qui. pourrait. comporter. des.
doublons .

1

Conception de bases de donnes avec UML

Ces.quelques.considrations.nous.amnent..conclure.le.chapitre.3 .
Le.prochain.chapitre.se.veut.une.dmarche.intgre.justifiant.la.pertinence. et. lutilit. des. principes. et. des. techniques. de. modlisation. couverts.
au. cours. des. trois. premiers. chapitres .. Lobjectif. recherch. est. de. prsenter.
une.mthode.simplifie,.quoique.complte.et.dintrt.pratique,.pour.lanalyse,. la. conception. et. la. ralisation. dune. application. de. base. de. donnes ..
La.mthode.prconise.sera.illustre.par.de.nombreux.exemples ..Elle.reprend.
les.principes.et.les.techniques.de.modlisation.pour.laborer.lossature.dune.
application.de.bases.de.donnes.cohrente.et.structure .

Le modle physique de donnes

1

exeRcices de ModlisATion physique des donnes


ExErCICE 3-1

Traduire le modle relationnel de donnes (MRD) optimis, prsent comme solution de


lexercice 2-1, en un modle physique de donnes. Valider le modle final et implanter le
script en MS Access.

ExErCICE 3-2

Traduire le modle relationnel de donnes (MRD) non optimis, prsent comme solution
de lexercice 2-2, en un modle physique de donnes. Ajouter la table Occupation
fonction une contrainte voulant que Date entre en fonction soit toujours infrieure
ou gale Date de dpart de la fonction et une autre contrainte voulant que Salaire
la fin soit strictement suprieur zro. Valider le modle final et implanter le script en
MS Access.

ExErCICE 3-3

Traduire le modle relationnel de donnes (MRD) optimis, prsent comme solution de


lexercice 2-3, en un modle physique de donnes. Valider le modle final et implanter le
script en MS Access.

ExErCICE 3-4

Traduire le modle relationnel de donnes (MRD) optimis, prsent comme solution de


lexercice 2-4, en un modle physique de donnes. Ajouter la table Processus une
contrainte voulant que le champ Type soit un entier entre 1 et 10. Valider le modle final
et implanter le script en MS Access.

ExErCICE 3-5

Traduire le modle relationnel de donnes (MRD), prsent comme solution de lexercice 2-5, en un modle physique de donnes. Valider le modle final et implanter le script
en MS Access.

ExErCICE 3-6

Traduire le modle relationnel de donnes (MRD) optimis, prsent comme solution de


lexercice 2-6, en un modle physique de donnes. Valider le modle final et implanter le
script en MS Access.

1

Conception de bases de donnes avec UML

soluTions des exeRcices de ModlisATion physique des donnes


ExErCICE 3-1

tape 1.
Table

Exigence

Permis conduire
No permis : {PK}
Province
Pays
Tlphone client : {Non nul, Unique}
Nom client
Adresse client

2
17

CREATE TABLE [Catgorie vhicule]


([Nom catgorie] VARCHAR(30)
NOT NULL PRIMARY KEY)

Catgorie vhicule
Nom catgorie : {PK}
Tarif

CREATE TABLE [Permis conduire]


([No permis] SMALLINT
NOT NULL PRIMARY KEY,
[Province] VARCHAR(30),
[Pays] VARCHAR(30),
[Tlphone client] VARCHAR(12) NOT NULL
UNIQUE,
[Nom client] VARCHAR(30),
[Adresse client] VARCHAR(50))
CREATE TABLE Marque
([Nom marque] VARCHAR(30)
NOT NULL PRIMARY KEY)

Marque
Nom marque : {PK}

Instruction SQL

No tarif : {PK}
Tarif horaire
Tarif quotidien
Tarif hebdomadaire
Tarif kilomtrage
Tarif assurance
Montant franchise
Tarif suppression franchise

CREATE TABLE Tarif


([No tarif] SMALLINT
NOT NULL PRIMARY KEY,
[Tarif horaire] CURRENCY,
[Tarif quotidien] CURRENCY,
[Tarif hebdomadaire] CURRENCY,
[Tarif kilomtrage] CURRENCY,
[Tarif assurance] CURRENCY,
[Montant franchise] CURRENCY,
[Tarif suppression franchise] CURRENCY)

tape 2.
Modle doit tre cr avant Vhicule.
Table
1..1
1..*
Modle
Nom modle : {PK}
Nom marque : {FK}
Nom catgorie : {FK}
1..*
1..1

Exigence

1
4
3
4
3

Instruction SQL
CREATE TABLE Modle
([Nom modle] VARCHAR(30)
NOT NULL PRIMARY KEY,
[Nom marque] VARCHAR(30)
NOT NULL
REFERENCES Marque([Nom marque]),
[Nom catgorie] VARCHAR(30)
NOT NULL
REFERENCES [Catgorie vhicule]([Nom
catgorie]))

1

Le modle physique de donnes

4
3

CREATE TABLE Vhicule


([No srie] SMALLINT
NOT NULL PRIMARY KEY,
[No immatriculation] SMALLINT,
[Anne] SMALLINT,
[Kilomtrage actuel] SMALLINT,
[Climatisation ?] BIT,
[Automatique ?] BIT,
[Nombre portes] SMALLINT,
[Nom marque] VARCHAR(30)
NOT NULL
REFERENCES Marque([Nom marque]),
[Nom modle] VARCHAR(30)
NOT NULL
REFERENCES Modle([Nom modle]),
[No tarif] SMALLINT
NOT NULL
REFERENCES Tarif([No tarif]))

Exigence

Instruction SQL

Vhicule
No srie : {PK}
No immatriculation
Anne
Kilomtrage actuel
Climatisation?
Automatique?
Nombre portes
Nom marque : {FK}
Nom modle : {FK}
No tarif : {FK}
0..*

1..1

0..*
0..*

1..1

1..1

4
3
4
3

tape 3.
Table
1..1

0..*

Contrat location

1..1

0..*

No contrat : {PK}
Date contrat
Lieu prise
Heure prise
Date remise
Lieu remise
Heure remise
Code de rabais
Kilomtrage inclus
Assurance collision?
Supression franchise?
Nombre jours location
Heures en sus
Kilomtres parcourus
Montant factur
No srie : {FK}
Tlphone client : {FK}

4
3
4
3

CREATE TABLE [Contrant location]


([No contrat] SMALLINT
NOT NULL PRIMARY KEY,
[Date contrat] DATE,
[Lieu prise] VARCHAR(30),
[Heure prise] DATE,
[Date remise] DATE,
[Lieu remise] VARCHAR(30),
[Heure remise] DATE,
[Code rabais] VARCHAR(10),
[Kilomtrage inclus] SMALLINT,
[Assurance collision ?] BIT,
[Suppression franchise ?] BIT,
[Nombre jours location] SMALLINT,
[Heures en sus] VARCHAR(30),
[Kilomtrage parcourus] SMALLINT,
[Montant factur] CURRENCY,
[No srie] SMALLINT
NOT NULL
REFERENCES Vhicule([No srie]),
[Tlphone client] VARCHAR(12)
NOT NULL
REFERENCES [Permis conduire]([Tlphone
client]))

1

Conception de bases de donnes avec UML

Script de ralisation du modle en VBA.


Private Sub Script_Creation_Ex3_1()
Dim conDatabase As ADODB.Connection
Dim SQL As String
On Error GoTo Error_Handler
Set conDatabase = Application.CurrentProject.Connection
SQL = _
"CREATE TABLE [Permis conduire]" & _
" ([No permis] SMALLINT" & _
" NOT NULL PRIMARY KEY, " & _
" [Province] VARCHAR(30), " & _
" [Pays] VARCHAR(30), " & _
" [Tlphone client] VARCHAR(12) NOT NULL" & _
" UNIQUE, " & _
" [Nom client] VARCHAR(30), " & _
" [Adresse client] VARCHAR(50))"
conDatabase.Execute SQL
MsgBox "Table Permis conduire cre", vbInformation
SQL = _
"CREATE TABLE Marque" & _
" ([Nom marque] VARCHAR(30)" & _
" NOT NULL PRIMARY KEY)"
conDatabase.Execute SQL
MsgBox "Table Marque cre", vbInformation
SQL = _
"CREATE TABLE [Catgorie vhicule]" & _
" ([Nom catgorie] VARCHAR(30)" & _
" NOT NULL PRIMARY KEY)"
conDatabase.Execute SQL
MsgBox "Table Catgorie vhicule cre", vbInformation
SQL = _
"CREATE TABLE Tarif" & _
" ([No tarif] SMALLINT" & _
" NOT NULL PRIMARY KEY," & _
" [Tarif horaire] CURRENCY," & _
" [Tarif quotidien] CURRENCY," & _
" [Tarif hebdomadaire] CURRENCY," & _
" [Tarif kilomtrage] CURRENCY," & _
" [Tarif assurance] CURRENCY," & _
" [Montant franchise] CURRENCY," & _
" [Tarif suppression franchise] CURRENCY)"

Le modle physique de donnes

conDatabase.Execute SQL
MsgBox "Table Tarif cre", vbInformation
SQL = _
"CREATE TABLE Modle" & _
" ([Nom modle] VARCHAR(30) " & _
" NOT NULL PRIMARY KEY, " & _
" [Nom marque] VARCHAR(30) " & _
" NOT NULL" & _
" REFERENCES Marque([Nom marque]), " & _
" [Nom catgorie] VARCHAR(30)" & _
" NOT NULL" & _
" REFERENCES [Catgorie vhicule]([Nom catgorie]))"
conDatabase.Execute SQL
MsgBox "Table Modle cre", vbInformation
SQL = _
"CREATE TABLE Vhicule" & _
" ([No srie] SMALLINT" & _
" NOT NULL PRIMARY KEY, " & _
" [No immatriculation] SMALLINT," & _
" [Anne] SMALLINT, " & _
" [Kilomtrage actuel] SMALLINT, " & _
" [Climatisation ?] BIT, " & _
" [Automatique ?] BIT, " & _
" [Nombre portes] SMALLINT, " & _
" [Nom marque] VARCHAR(30) " & _
" NOT NULL" & _
" REFERENCES Marque([Nom marque]), " & _
" [Nom modle] VARCHAR(30) " & _
" NOT NULL" & _
" REFERENCES Modle([Nom modle]), " & _
" [No tarif] SMALLINT " & _
" NOT NULL" & _
" REFERENCES Tarif([No tarif])) "
conDatabase.Execute SQL
MsgBox "Table Vhicule cre", vbInformation
SQL = _
"CREATE TABLE [Contrant location] " & _
" ([No contrat] SMALLINT" & _
" NOT NULL PRIMARY KEY, " & _
" [Date contrat] DATE, " & _
" [Lieu prise] VARCHAR(30), " & _
" [Heure prise] DATE, " & _
" [Date remise] DATE, " & _
" [Lieu remise] VARCHAR(30), " & _
" [Heure remise] DATE, " & _

1

0

"
"
"
"
"
"
"
"
"
"
"
"
"
"

Conception de bases de donnes avec UML

[Code rabais] VARCHAR(10), " & _


[Kilomtrage inclus] SMALLINT, " & _
[Assurance collision ?] BIT, " & _
[Suppression franchise ?] BIT, " & _
[Nombre jours location] SMALLINT, " & _
[Heures en sus] VARCHAR(30), " & _
[Kilomtrage parcourus] SMALLINT, " & _
[Montant factur] CURRENCY, " & _
[No srie] SMALLINT" & _
NOT NULL" & _
REFERENCES Vhicule([No srie]), " & _
[Tlphone client] VARCHAR(12) " & _
NOT NULL" & _
REFERENCES [Permis conduire]([Tlphone client]))"

conDatabase.Execute SQL
MsgBox "Table Contrat location cre", vbInformation
conDatabase.Close
Set conDatabase = Nothing
Exit Sub
Error_Handler :
MsgBox Err.Description, vbInformation
End Sub

Schma des associations dans MS Access.

1

Le modle physique de donnes

ExErCICE 3-2

tape 1.
Table

Exigence

Candidat
No candidat : {PK}
Nom candidat
Prnom candidat
No tlphone
Date de naissance

CREATE TABLE [Institution enseignement]


([Nom institution] VARCHAR(30)
NOT NULL PRIMARY KEY)

CREATE TABLE Langue


([Nom langue] VARCHAR(30)
NOT NULL PRIMARY KEY)

CREATE TABLE Fonction


([Dsignation] VARCHAR(30)
NOT NULL PRIMARY KEY)

Institution enseignement
Nom institution : {PK}
Langue
Nom langue : {PK}
Fonction
Dsignation : {PK}
Poste
No affichage : {PK}
Nom poste

CREATE TABLE [Centre dintrt]


([Dsignation] VARCHAR(30)
NOT NULL PRIMARY KEY)

Exigence

Instruction SQL

Centre d'intrt
Dsignation : {PK}

CREATE TABLE Poste


([No affichage] SMALLINT
NOT NULL PRIMARY KEY,
[Nom poste] VARCHAR(30))
CREATE TABLE Employeur
([Raison sociale] VARCHAR(30)
NOT NULL PRIMARY KEY)

Employeur
Raison sociale : {PK}

CREATE TABLE Candidat


([No candidat] SMALLINT
NOT NULL PRIMARY KEY,
[Nom candidat] VARCHAR(30),
[Prnom candidat] VARCHAR(30),
[No tlphone] VARCHAR(12),
[Date de naissance] DATE)
CREATE TABLE Diplme
([Nom diplme] VARCHAR(30)
NOT NULL PRIMARY KEY)

Diplme
Nom diplme : {PK}

Instruction SQL

tape 2.
N/A
tape 3.
Table
Postule
No affichage : {PK, FK}{Cascade}
No candidat : {PK, FK}{Cascade}
0..*

1..1

1..*

14
15

1..1

14
15
14

CREATE TABLE Postule


([No affichage] SMALLINT NOT NULL
REFERENCES Poste([No affichage])
ON DELETE CASCADE
ON UPDATE CASCADE,
[No candidat] SMALLINT NOT NULL
REFERENCES Candidat([No candidat])
ON DELETE CASCADE
ON UPDATE CASCADE,
PRIMARY KEY([No affichage],[No
candidat]))



Conception de bases de donnes avec UML

1..1
0..*

1..1
0..*

14
15

Diplm
No candidat : {PK, FK}{Cascade}
Nom diplme : {PK, FK}{Cascade}
Nom institution : {FK}
0..*

14
15

1..1

4
3
14
1..1
1..*

1
Occupation fonction
No occupation : {PK}
Date d'entre en fonction
Date de dpart de la fonction
Salaire la fin
No candidat : {FK}
No dsignation : {FK}
0..*

1..1

4
3
4
3
12

1..1
1..*

Priode emploi
No priode : {PK}
Date d'embauche
Date de dpart
No candidat : {FK}
Raison sociale : {FK}

4
3
4
3

0..*
1..1

CREATE TABLE Diplm


([No candidat] SMALLINT NOT NULL
REFERENCES Candidat([No candidat])
ON DELETE CASCADE
ON UPDATE CASCADE,
[Nom diplme] VARCHAR(30) NULL
REFERENCES Diplme([Nom diplome])
ON DELETE CASCADE
ON UPDATE CASCADE,
[Nom institution] VARCHAR(30)
NOT NULL
REFERENCES [Institution
enseignement]([Nom institution]),
PRIMARY KEY([No candidat],[Nom
diplme]))
CREATE TABLE [Occupation fonction]
([No occupation] SMALLINT
NOT NULL PRIMARY KEY,
[Date entre en fonction] DATE,
[Date de dpart de la fonction] DATE,
[Salaire la fin] CURRENCY,
[No candidat] SMALLINT
NOT NULL
REFERENCES Candidat([No candidat]),
[Dsignation] VARCHAR(30)
NOT NULL
REFERENCES Fonction([Dsignation]),
CONSTRAINT EntreInfDpart CHECK([Date
entre en fonction]<= [Date de dpart de
la fonction]),
CONSTRAINT SalSupZro CHECK([Salaire
la fin]>0))
CREATE TABLE [Priode emploi]
([No priode] SMALLINT
NOT NULL PRIMARY KEY,
[Date dembauche] DATE,
[Date de dpart] DATE,
[No candidat] SMALLINT
NOT NULL
REFERENCES Candidat([No candidat]),
[Raison sociale] VARCHAR(30)
NOT NULL
REFERENCES Employeur([Raison sociale]))



Le modle physique de donnes

1..1
0..*

1..1

Connaissance langue
1..*

14
15

No candidat : {PK, FK}{Cascade}


Nom langue : {PK, FK}{Cascade}
Niveau

14
15

15

1..1

0..*

14
15

Possde
No candidat : {PK, FK}{Cascade}
Dsignation : {PK, FK}{Cascade}
0..*
1..1

14
15
14

CREATE TABLE [Connaissance langue]


([No candidat] SMALLINT NOT NULL
REFERENCES Candidat([No candidat])
ON DELETE CASCADE
ON UPDATE CASCADE,
[Nom langue] VARCHAR(30) NOT NULL
REFERENCES Langue([Nom langue])
ON DELETE CASCADE
ON UPDATE CASCADE,
[Niveau] SMALLINT,
PRIMARY KEY([No candidat],[Nom
langue]))
CREATE TABLE Possde
([No candidat] SMALLINT NOT NULL
REFERENCES Candidat([No candidat])
ON DELETE CASCADE
ON UPDATE CASCADE,
[Dsignation] VARCHAR(30) NOT NULL
REFERENCES [Centre
dintrt]([Dsignation])
ON DELETE CASCADE
ON UPDATE CASCADE,
PRIMARY KEY([No
candidat],[Dsignation]))

Script de ralisation du modle en VBA.


Private Sub Script_Creation_Ex3_2()
Dim conDatabase As ADODB.Connection
Dim SQL As String
On Error GoTo Error_Handler
Set conDatabase = Application.CurrentProject.Connection
SQL = _
"CREATE TABLE Candidat" & _
" ([No candidat] SMALLINT" & _
" NOT NULL PRIMARY KEY," & _
" [Nom candidat] VARCHAR(30)," & _
" [Prnom candidat] VARCHAR(30)," & _
" [No tlphone] VARCHAR(12)," & _
" [Date de naissance] DATE)"
conDatabase.Execute SQL
MsgBox "Table Candidat cre", vbInformation
SQL = _
"CREATE TABLE Diplme" & _
" ([Nom diplme] VARCHAR(30)" & _
" NOT NULL PRIMARY KEY)"



Conception de bases de donnes avec UML

conDatabase.Execute SQL
MsgBox "Table Diplme cre", vbInformation
SQL = _
"CREATE TABLE [Institution enseignement]" & _
" ([Nom institution] VARCHAR(30)" & _
" NOT NULL PRIMARY KEY)"
conDatabase.Execute SQL
MsgBox "Table Institution cre", vbInformation
SQL = _
"CREATE TABLE Langue" & _
" ([Nom langue] VARCHAR(30)" & _
" NOT NULL PRIMARY KEY)"
conDatabase.Execute SQL
MsgBox "Table Langue cre", vbInformation
SQL = _
"CREATE TABLE Fonction" & _
" ([Dsignation] VARCHAR(30)" & _
" NOT NULL PRIMARY KEY)"
conDatabase.Execute SQL
MsgBox "Table Fonction cre", vbInformation
SQL = _
"CREATE TABLE Poste" & _
" ([No affichage] SMALLINT" & _
" NOT NULL PRIMARY KEY," & _
" [Nom poste] VARCHAR(30))"
conDatabase.Execute SQL
MsgBox "Table Poste cre", vbInformation
SQL = _
"CREATE TABLE Employeur" & _
" ([Raison sociale] VARCHAR(30)" & _
" NOT NULL PRIMARY KEY)"
conDatabase.Execute SQL
MsgBox "Table Employeur cre", vbInformation
SQL = _
"CREATE TABLE [Centre dintrt]" & _
" ([Dsignation] VARCHAR(30)" & _
" NOT NULL PRIMARY KEY)"
conDatabase.Execute SQL



Le modle physique de donnes

MsgBox "Table Centre intrt cre", vbInformation


SQL = _
"CREATE TABLE Postule" & _
" ([No affichage] SMALLINT NOT NULL" & _
" REFERENCES Poste([No affichage])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [No candidat] SMALLINT NOT NULL" & _
" REFERENCES Candidat([No candidat])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" PRIMARY KEY([No affichage],[No candidat]))"
conDatabase.Execute SQL
MsgBox "Table Postule cre", vbInformation
SQL = _
"CREATE TABLE Diplm" & _
" ([No candidat] SMALLINT NOT NULL" & _
" REFERENCES Candidat([No candidat])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [Nom diplme] VARCHAR(30) NULL" & _
" REFERENCES Diplme([Nom diplme])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [Nom institution] VARCHAR(30)" & _
" NOT NULL" & _
" REFERENCES [Institution enseignement]([Nom institution])," & _
" PRIMARY KEY([No candidat],[Nom diplme]))"
conDatabase.Execute SQL
MsgBox "Table Diplm cre", vbInformation
SQL = _
"CREATE TABLE [Occupation fonction]" & _
" ([No occupation] SMALLINT " & _
" NOT NULL PRIMARY KEY," & _
" [Date entre en fonction] DATE," & _
" [Date de dpart de la fonction] DATE,"
" [Salaire la fin] CURRENCY," & _
" [No candidat] SMALLINT" & _
" NOT NULL" & _
" REFERENCES Candidat([No candidat])," &
" [Dsignation] VARCHAR(30)" & _
" NOT NULL" & _
" REFERENCES Fonction([Dsignation])," &
" CONSTRAINT EntreInfDpart CHECK([Date
dpart de la fonction])," & _

& _

_
entre en fonction]<= [Date de



Conception de bases de donnes avec UML

" CONSTRAINT SalSupZro CHECK([Salaire la fin]>0))"


conDatabase.Execute SQL
MsgBox "Table Occupation fonction cre", vbInformation
SQL = _
"CREATE TABLE [Priode emploi]" & _
" ([No priode] SMALLINT " & _
" NOT NULL PRIMARY KEY," & _
" [Date dembauche] DATE," & _
" [Date de dpart] DATE," & _
" [No candidat] SMALLINT" & _
" NOT NULL" & _
" REFERENCES Candidat([No candidat])," & _
" [Raison sociale] VARCHAR(30)" & _
" NOT NULL" & _
" REFERENCES Employeur([Raison sociale]))"
conDatabase.Execute SQL
MsgBox "Table Priode emploi cre", vbInformation
SQL = _
"CREATE TABLE [Connaissance langue]" & _
" ([No candidat] SMALLINT NOT NULL" & _
" REFERENCES Candidat([No candidat])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [Nom langue] VARCHAR(30) NOT NULL" & _
" REFERENCES Langue([Nom langue])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [Niveau] SMALLINT," & _
" PRIMARY KEY([No candidat],[Nom langue]))"
conDatabase.Execute SQL
MsgBox "Table Connaissance langue cre", vbInformation
SQL = _
"CREATE TABLE Possde" & _
" ([No candidat] SMALLINT NOT NULL" & _
" REFERENCES Candidat([No candidat])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [Dsignation] VARCHAR(30) NOT NULL" & _
" REFERENCES [Centre dintrt]([Dsignation])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" PRIMARY KEY([No candidat],[Dsignation]))"
conDatabase.Execute SQL

Le modle physique de donnes

MsgBox "Table Possdecre", vbInformation


conDatabase.Close
Set conDatabase = Nothing
Exit Sub
Error_Handler :
MsgBox Err.Description, vbInformation
End Sub

Schma des associations dans MS Access.





ExErCICE 3-3

Conception de bases de donnes avec UML

tape 1.
Table

Exigence

Instruction SQL

CREATE TABLE [Champ de course]


([Nom du champ] VARCHAR(30)
NOT NULL PRIMARY KEY)

CREATE TABLE [Catgorie course]


([Nom catgorie] VARCHAR(30)
NOT NULL PRIMARY KEY)

CREATE TABLE [Type de course]


([Nom type] VARCHAR(30)
NOT NULL PRIMARY KEY)

Champ de course
Nom du champ : {PK}
Catgorie course
Nom catgorie : {PK}
Type de course
Nom type : {PK}

Cheval
Nom cheval : {PK}
Sexe cheval
Date naissance cheval
Gains cette saison

Jockey
No licence jockey : {PK}
Nom jockey

CREATE TABLE Jockey


([No licence jockey] SMALLINT
NOT NULL PRIMARY KEY,
[Nom jockey] VARCHAR(30))

CREATE TABLE Propritaire


([Nom propritaire] VARCHAR(30)
NOT NULL PRIMARY KEY)

Exigence

Instruction SQL

Propitaire
Nom propritaire : {PK}

CREATE TABLE Cheval


([Nom cheval] VARCHAR(30)
NOT NULL PRIMARY KEY,
[Sexe cheval] VARCHAR(1),
[Date naissance cheval] DATE,
[Gains cette saison] CURRENCY)

tape 2.
Table
1..1
1..*
1..1

0..*

0..*

Course
No course : {PK}
Saison
Dsignation course
Date de la course
Dotation en dollars
Nom du champ : {FK}
Nom catgorie : {FK}
Type de course : {FK}
1..1

4
3
4
3
4
3

CREATE TABLE Course


([No course] SMALLINT
NOT NULL PRIMARY KEY,
[Saison] VARCHAR(30),
[Dsignation cours] VARCHAR(30),
[Date de la course] DATE,
[Dotation en dollars] CURRENCY,
[Nom du champ] VARCHAR(30) NOT NULL
REFERENCES [Champ de course]([Nom du
champ]),
[Nom catgorie] VARCHAR(30) NOT NULL
REFERENCES [Catgorie course]([Nom
catgorie])
[Nom type] VARCHAR(30) NOT NULL
REFERENCES [Type de course]([Nom type]))



Le modle physique de donnes

tape 3.
Note : La multiplicit 2..2 est en fait du type 1..*.
Table

Exigence

Parent

0..*

No parent : {PK auto}


Nom cheval parent : {FK}{Cascade}
Nom cheval rejeton : {FK}{Cascade}
1..1

11

2..2
1..1

14
15

14
15

1..1
1..1
1..*

0..*

11

Participation
0..*

No participation : {PK auto}


No course : {FK}{Cascade}
Nom cheval : {FK}{Cascade}
No dossard
No licence jockey : {FK}

14
15

1..1

14
15

4
3
1..1
1..*

11

Possde
No possde : {PK auto}
Nom cheval : {FK}{Cascade}
Nom propritaire : {FK}{Cascade}

14
15

1..*
1..1

14
15

Instruction SQL
CREATE TABLE Parent
([No parent] IDENTITY
NOT NULL PRIMARY KEY,
[Nom cheval parent] VARCHAR(30)
NOT NULL
REFERENCES Cheval([Nom cheval])
ON DELETE CASCADE
ON UPDATE CASCADE,
[Nom cheval rejeton] VARCHAR(30)
NOT NULL
REFERENCES Cheval([Nom cheval])
ON DELETE CASCADE
ON UPDATE CASCADE)
CREATE TABLE Participation
([No participation] IDENTITY
NOT NULL PRIMARY KEY,
[No course] SMALLINT
NOT NULL
REFERENCES Course([No course])
ON DELETE CASCADE
ON UPDATE CASCADE,
[Nom cheval] VARCHAR(30)
NOT NULL
REFERENCES Cheval([Nom cheval])
ON DELETE CASCADE
ON UPDATE CASCADE,
[No dossard] SMALLINT,
[No licence jockey] SMALLINT
NOT NULL
REFERENCES Jockey([No licence jockey]))
CREATE TABLE Possde
([No possde] IDENTITY
NOT NULL PRIMARY KEY,
[Nom cheval] VARCHAR(30)
NOT NULL
REFERENCES Cheval([Nom cheval])
ON DELETE CASCADE
ON UPDATE CASCADE,
[Nom propritaire] VARCHAR(30)
NOT NULL
REFERENCES Propritaire([Nom
propritaire])
ON DELETE CASCADE
ON UPDATE CASCADE)

0

Conception de bases de donnes avec UML

Script de ralisation du modle en VBA.


Private Sub Script_Creation_Ex3_3()
Dim conDatabase As ADODB.Connection
Dim SQL As String
On Error GoTo Error_Handler
Set conDatabase = Application.CurrentProject.Connection
SQL = _
"CREATE TABLE [Champ de course]" & _
" ([Nom du champ] VARCHAR(30)" & _
" NOT NULL PRIMARY KEY)"
conDatabase.Execute SQL
MsgBox "Table Champ de course cre", vbInformation
SQL = _
"CREATE TABLE [Catgorie course]" & _
" ([Nom catgorie] VARCHAR(30)" & _
" NOT NULL PRIMARY KEY)"
conDatabase.Execute SQL
MsgBox "Table Catgorie cre", vbInformation
SQL = _
"CREATE TABLE [Type de course]" & _
" ([Nom type] VARCHAR(30)" & _
" NOT NULL PRIMARY KEY)"
conDatabase.Execute SQL
MsgBox "Table Type de course cre", vbInformation
SQL = _
"CREATE TABLE Cheval" & _
" ([Nom cheval] VARCHAR(30)" & _
" NOT NULL PRIMARY KEY," & _
" [Sexe cheval] VARCHAR(1)," & _
" [Date naissance cheval] DATE," & _
" [Gains cette saison] CURRENCY)"
conDatabase.Execute SQL
MsgBox "Table Cheval cre", vbInformation
SQL = _
"CREATE TABLE Jockey" & _
" ([No licence jockey] SMALLINT" & _
" NOT NULL PRIMARY KEY," & _
" [Nom jockey] VARCHAR(30))"
conDatabase.Execute SQL
MsgBox "Table Jockey cre", vbInformation
SQL = _
"CREATE TABLE Propritaire" & _

Le modle physique de donnes

" ([Nom propritaire] VARCHAR(30)" & _


" NOT NULL PRIMARY KEY)"
conDatabase.Execute SQL
MsgBox "Table Propritaire cre", vbInformation
SQL = _
"CREATE TABLE Course" & _
" ([No course] SMALLINT" & _
" NOT NULL PRIMARY KEY," & _
" [Saison] VARCHAR(30)," & _
" [Dsignation cours] VARCHAR(30)," & _
" [Date de la course] DATE," & _
" [Dotation en dollars] CURRENCY," & _
" [Nom du champ] VARCHAR(30) NOT NULL" & _
" REFERENCES [Champ de course]([Nom du champ])," & _
" [Nom catgorie] VARCHAR(30) NOT NULL" & _
" REFERENCES [Catgorie course]([Nom catgorie])," & _
" [Nom type] VARCHAR(30) NOT NULL" & _
" REFERENCES [Type de course]([Nom type]))"
conDatabase.Execute SQL
MsgBox "Table Course cre", vbInformation
SQL = _
"CREATE TABLE Parent" & _
" ([No parent] IDENTITY" & _
" NOT NULL PRIMARY KEY," & _
" [Nom cheval parent] VARCHAR(30) " & _
" NOT NULL" & _
" REFERENCES Cheval([Nom cheval])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [Nom cheval rejeton] VARCHAR(30) " & _
" NOT NULL" & _
" REFERENCES Cheval([Nom cheval])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE)"
conDatabase.Execute SQL
MsgBox "Table Parent cre", vbInformation
SQL = _
"CREATE TABLE Participation" & _
" ([No participation] IDENTITY" & _
" NOT NULL PRIMARY KEY," & _
" [No course] SMALLINT " & _
" NOT NULL" & _
" REFERENCES Course([No course])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [Nom cheval] VARCHAR(30) " & _
" NOT NULL" & _

1



"
"
"
"
"
"
"

Conception de bases de donnes avec UML

REFERENCES Cheval([Nom cheval])" & _


ON DELETE CASCADE" & _
ON UPDATE CASCADE," & _
[No dossard] SMALLINT," & _
[No licence jockey] SMALLINT" & _
NOT NULL" & _
REFERENCES Jockey([No licence jockey]))"

conDatabase.Execute SQL
MsgBox "Table Participation cre", vbInformation
SQL = _
"CREATE TABLE Possde" & _
" ([No possde] IDENTITY" & _
" NOT NULL PRIMARY KEY," & _
" [Nom cheval] VARCHAR(30) " & _
" NOT NULL" & _
" REFERENCES Cheval([Nom cheval])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [Nom propritaire] VARCHAR(30) " & _
" NOT NULL" & _
" REFERENCES Propritaire([Nom propritaire])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE)"
conDatabase.Execute SQL
MsgBox "Table Possde cre", vbInformation
conDatabase.Close
Set conDatabase = Nothing
Exit Sub
Error_Handler :
MsgBox Err.Description, vbInformation
End Sub

Schma des associations dans MS Access.



Le modle physique de donnes

ExErCICE 3-4

tape 1.
Table

Exigence

Processus
No processus : {PK}
Type
Responsable
Date dernier changement

19

Instruction SQL
CREATE TABLE Processus
([No processus] SMALLINT
NOT NULL PRIMARY KEY,
[Type] SMALLINT,
[Responsable] VARCHAR(30),
[Date dernier changement] DATE,
CONSTRAINT TypeValide CHECK(Type
BETWEEN 1 AND 10)
CREATE TABLE Outillage
([No Outillage] SMALLINT
NOT NULL PRIMARY KEY,
[Description] VARCHAR(30))

Outillage
No outillage : {PK}
Description

CREATE TABLE Machine


([No machine] SMALLINT
NOT NULL PRIMARY KEY,
[Description] VARCHAR(30),
[Cot utilisation/min] CURRENCY)

Machine
No machine : {PK}
Description
Cot utilisation/min.

tape 2.
Mise en garde : toute cl trangre lie une cl primaire de type IDENTITY doit tre de
type INTEGER (entier long)
Table

Exigence

1..1

11
1..*
Opration
No opration : {PK auto}
No processus : {FK}{Cascade}
No squence
Description
Temps standard

4
15

0..1 1..*

1
Produit
No produit : {PK}
No processus : {FK}

Instruction SQL
CREATE TABLE Opration
([No opration] IDENTITY
NOT NULL PRIMARY KEY,
[No processus] SMALLINT NOT NULL
REFERENCES Processus([No processus])
ON DELETE CASCADE
ON UPDATE CASCADE,
[No squence] SMALLINT,
[Description] VARCHAR(30),
[Temps standard] FLOAT)
CREATE TABLE Produit
([No produit] SMALLINT
NOT NULL PRIMARY KEY,
[No processus] SMALLINT
REFERENCES Processus([No processus]))



Conception de bases de donnes avec UML

1..1
0..*

Ordre production
No ordre : {PK}
Statut
Quantit produire
Quantit produite
No produit : {FK}

1..1

4
3

0..*
1..1

Utilisation machine

0..*

No utilisation machine : {PK auto}


No ordre : {FK}{Cascade}
No machine : {FK}{Cascade}
No opration : {FK}{Cascade}
Date prvue utilisation
Dure utilisation
Quantit ralise
Quantit rebute
1..1

0..*

11
4
15

4
15

5
15

CREATE TABLE [Ordre production]


([No ordre] SMALLINT
NOT NULL PRIMARY KEY,
[Quantit produire] SMALLINT,
[Quantit produite] SMALLINT,
[No produit] SMALLINT NOT NULL
REFERENCES Produit([No produit]))

CREATE TABLE [Utilisation machine]


([No utilisation machine] IDENTITY
NOT NULL PRIMARY KEY,
[No ordre] SMALLINT NOT NULL
REFERENCES [Ordre production]([No
ordre])
ON DELETE CASCADE
ON UPDATE CASCADE,
[No machine] SMALLINT NOT NULL
REFERENCES Machine([No machine])
ON DELETE CASCADE
ON UPDATE CASCADE,
[No opration] INTEGER NOT NULL
REFERENCES Opration([No opration])
ON DELETE CASCADE
ON UPDATE CASCADE,
[Date prvue utilisation] DATE,
[Dure utilisation] FLOAT,
[Quantit ralise] SMALLINT,
[Quantit rebute] SMALLINT)

tape 3.
Table

Exigence
1..1

0..*

11

Produit utilis

0..*

No produit utilis : {PK auto}


No opration : {FK}{Cascade}
No produit : {FK}{Cascade}
Quantit utilise

14
15

1..1

14
15

Instruction SQL
CREATE TABLE [Produit utilis]
([No produit utilis] IDENTITY
NOT NULL PRIMARY KEY,
[No opration] INTEGER NOT NULL
REFERENCES Opration([No opration])
ON DELETE CASCADE
ON UPDATE CASCADE,
[No produit] SMALLINT NOT NULL
REFERENCES Produit([No produit])
ON DELETE CASCADE
ON UPDATE CASCADE,
[Quantit utilise] SMALLINT)



Le modle physique de donnes

Cdule opration

0..*

No cdule opration : {PK auto}


No ordre : {FK}{Cascade}
No opration : {FK}{Cascade}
Date planifie
Date fin prvue
1..1
1..1
1..*

11
14
15

14
15

1..1

0..*

1..1

Outil utilis
No outil utilis : {PK auto}
No outillage : {FK}{Cascade}
No utilisation machine : {FK}{Cascade}
Quantit

11
0..*

14
15

14
15

CREATE TABLE [Cdule opration]


([No cdule opration] IDENTITY
NOT NULL PRIMARY KEY,
[No ordre] SMALLINT NOT NULL
REFERENCES [Ordre production]([No
ordre])
ON DELETE CASCADE
ON UPDATE CASCADE,
[No opration] INTEGER NOT NULL
REFERENCES Opration([No opration])
ON DELETE CASCADE
ON UPDATE CASCADE,
[Date planifie] DATE,
[Date fin prvue] DATE)
CREATE TABLE [Outil utilis]
([No outil utilis] IDENTITY
NOT NULL PRIMARY KEY,
[No outillage] SMALLINT NOT NULL
REFERENCES Outillage([No outillage])
ON DELETE CASCADE
ON UPDATE CASCADE,
[No utilisation machine] INTEGER NOT
NULL
REFERENCES [Utilisation machine]([No
utilisation machine])
ON DELETE CASCADE
ON UPDATE CASCADE,
[Quantit] SMALLINT)

Script de ralisation du modle en VBA.


Private Sub Script_Creation_Ex3_4()
Dim conDatabase As ADODB.Connection
Dim SQL As String
On Error GoTo Error_Handler
Set conDatabase = Application.CurrentProject.Connection
SQL = _
"CREATE TABLE Processus" & _
" ([No processus] SMALLINT" & _
" NOT NULL PRIMARY KEY," & _
" [Type] SMALLINT," & _
" [Responsable] VARCHAR(30)," & _
" [Date dernier changement] DATE," & _
" CONSTRAINT TypeValide CHECK(Type BETWEEN 1 AND 10))"
conDatabase.Execute SQL
MsgBox "Table Processus cre", vbInformation



Conception de bases de donnes avec UML

SQL = _
"CREATE TABLE Outillage" & _
" ([No Outillage] SMALLINT" & _
" NOT NULL PRIMARY KEY," & _
" [Description] VARCHAR(30))"
conDatabase.Execute SQL
MsgBox "Table Outillage cre", vbInformation
SQL = _
"CREATE TABLE Machine" & _
" ([No machine] SMALLINT" & _
" NOT NULL PRIMARY KEY," & _
" [Description] VARCHAR(30)," & _
" [Cot utilisation/min] CURRENCY)"
conDatabase.Execute SQL
MsgBox "Table Machine cre", vbInformation
SQL = _
"CREATE TABLE Opration" & _
" ([No opration] IDENTITY " & _
" NOT NULL PRIMARY KEY," & _
" [No processus] SMALLINT NOT NULL" & _
" REFERENCES Processus([No processus])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [No squence] SMALLINT," & _
" [Description] VARCHAR(30)," & _
" [Temps standard] FLOAT)"
conDatabase.Execute SQL
MsgBox "Table Opration cre", vbInformation
SQL = _
"CREATE TABLE Produit" & _
" ([No produit] SMALLINT "
" NOT NULL PRIMARY KEY," &
" [No processus] SMALLINT"
" REFERENCES Processus([No

& _
_
& _
processus]))"

conDatabase.Execute SQL
MsgBox "Table Produit cre", vbInformation
SQL = _
"CREATE TABLE [Ordre production]" & _
" ([No ordre] SMALLINT " & _
" NOT NULL PRIMARY KEY," & _
" [Quantit produire] SMALLINT," & _
" [Quantit produite] SMALLINT," & _
" [No produit] SMALLINT NOT NULL" & _
" REFERENCES Produit([No produit]))"

Le modle physique de donnes

conDatabase.Execute SQL
MsgBox "Table Ordre production cre", vbInformation
SQL = _
"CREATE TABLE [Utilisation machine]" & _
" ([No utilisation machine] IDENTITY " & _
" NOT NULL PRIMARY KEY," & _
" [No ordre] SMALLINT NOT NULL" & _
" REFERENCES [Ordre production]([No ordre])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [No machine] SMALLINT NOT NULL" & _
" REFERENCES Machine([No machine])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [No opration] INTEGER NOT NULL" & _
" REFERENCES Opration([No opration])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [Date prvue utilisation] DATE," & _
" [Dure utilisation] FLOAT," & _
" [Quantit ralise] SMALLINT," & _
" [Quantit rebute] SMALLINT)"
conDatabase.Execute SQL
MsgBox "Table Utilisation machine cre", vbInformation
SQL = _
"CREATE TABLE [Produit utilis]" & _
" ([No produit utilis] IDENTITY " & _
" NOT NULL PRIMARY KEY," & _
" [No opration] INTEGER NOT NULL" & _
" REFERENCES Opration([No opration])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [No produit] SMALLINT NOT NULL" & _
" REFERENCES Produit([No produit])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [Quantit utilise] SMALLINT)"
conDatabase.Execute SQL
MsgBox "Table Produit utilis cre", vbInformation
SQL = _
"CREATE TABLE [Cdule opration]" & _
" ([No cdule opration] IDENTITY " & _
" NOT NULL PRIMARY KEY," & _
" [No ordre] SMALLINT NOT NULL" & _
" REFERENCES [Ordre production]([No ordre])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [No opration] INTEGER NOT NULL" & _





"
"
"
"
"

Conception de bases de donnes avec UML

REFERENCES Opration([No opration])" & _


ON DELETE CASCADE" & _
ON UPDATE CASCADE," & _
[Date planifie] DATE," & _
[Date fin prvue] DATE)"

conDatabase.Execute SQL
MsgBox "Table Cdule opration cre", vbInformation
SQL = _
"CREATE TABLE [Outil utilis]" & _
" ([No outil utilis] IDENTITY " & _
" NOT NULL PRIMARY KEY," & _
" [No outillage] SMALLINT NOT NULL" & _
" REFERENCES Outillage([No outillage])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [No utilisation machine] INTEGER NOT NULL" & _
" REFERENCES [Utilisation machine]([No utilisation machine])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [Quantit] SMALLINT)"
conDatabase.Execute SQL
MsgBox "Table Outil utilis cre", vbInformation
conDatabase.Close
Set conDatabase = Nothing
Exit Sub
Error_Handler :
MsgBox Err.Description, vbInformation
End Sub

Schma des associations dans MS Access.



Le modle physique de donnes

ExErCICE 3-5

tape 1.
Table

Exigence

Produit
No produit : {PK}
Dsignation produit

Instruction SQL
CREATE TABLE Produit
([No produit] SMALLINT
NOT NULL PRIMARY KEY,
[Dsignation produit] VARCHAR(30))

tape 2.
Table

Exigence

4
3

Exigence

Instruction SQL

1..1
Composition
No composition : {PK auto}
No produit composite : {FK}{Cascade}
No produit composant : {FK}{Cascade}
Quantit du produit
1..1

1..*

Instruction SQL
CREATE TABLE Composition
([No composition] IDENTITY
NOT NULL PRIMARY KEY,
[No produit composite] SMALLINT
NOT NULL
REFERENCES Produit([No produit]),
[No produit composant] SMALLINT
NOT NULL
REFERENCES Produit([No produit]))

0..*

1
4
3

tape 3.
Table
1..1

1..1
0..*

Substitut
No substitut : {PK auto}
No composition : {FK}{Cascade}
No produit : {FK}{Cascade}

11
14
15

0..*

14
15

CREATE TABLE Substitut


([No substitut] IDENTITY
NOT NULL PRIMARY KEY,
[No composition] INTEGER NOT NULL
REFERENCES Composition([No
composition])
ON DELETE CASCADE
ON UPDATE CASCADE,
[No produit] SMALLINT NOT NULL
REFERENCES Produit([No produit])
ON DELETE CASCADE
ON UPDATE CASCADE)

Script de ralisation du modle en VBA.


Private Sub Script_Creation_Ex3_5()
Dim conDatabase As ADODB.Connection
Dim SQL As String
On Error GoTo Error_Handler
Set conDatabase = Application.CurrentProject.Connection
SQL = _
"CREATE TABLE Produit" & _
" ([No produit] SMALLINT" & _
" NOT NULL PRIMARY KEY," & _
" [Dsignation produit] VARCHAR(30))"
conDatabase.Execute SQL

0

Conception de bases de donnes avec UML

MsgBox "Table Produit cre", vbInformation


SQL = _
"CREATE TABLE Composition" & _
" ([No composition] IDENTITY" & _
" NOT NULL PRIMARY KEY," & _
" [No produit composite] SMALLINT" & _
" NOT NULL" & _
" REFERENCES Produit([No produit])," & _
" [No produit composant] SMALLINT" & _
" NOT NULL" & _
" REFERENCES Produit([No produit]))"
conDatabase.Execute SQL
MsgBox "Table Composition cre", vbInformation
SQL = _
"CREATE TABLE Substitut" & _
" ([No substitut] IDENTITY" & _
" NOT NULL PRIMARY KEY," & _
" [No composition] INTEGER NOT NULL" & _
" REFERENCES Composition([No composition])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [No produit] SMALLINT NOT NULL" & _
" REFERENCES Produit([No produit])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE)"
conDatabase.Execute SQL
MsgBox "Table Substitut cre", vbInformation

conDatabase.Close
Set conDatabase = Nothing
Exit Sub
Error_Handler :
MsgBox Err.Description, vbInformation
End Sub

Schma des associations dans MS Access.

1

Le modle physique de donnes

ExErCICE 3-6

tape 1.
Table

Exigence

Diplm
No diplm : {PK}
Nom diplm
Prnom diplm
Date de naissance
Tlphone bureau
Tlphone domicile
Adresse domicile
Adresse travail
Membre CA?
Membre excutif?

Type de cotisation
No cotisation : {PK}
Montant annuel

Facult
No facult : {PK auto}
Nom facult

11

Priode de campagne
No priode : {PK}
Anne campagne
Date dbut
Date fin

Organisme
No organisme : {PK auto}
Nom organisme
Premier tlphone
Deuxime tlphone

11

Instruction SQL
CREATE TABLE Diplm
([No diplm] SMALLINT
NOT NULL PRIMARY KEY,
[Nom diplm] VARCHAR(30),
[Prnom diplm] VARCHAR(30),
[Tlphone bureau] VARCHAR(12),
[Date de naissance] DATE,
[Tlphone domicile] VARCHAR(12),
[Adresse domicile] VARCHAR(50),
[Adresse travail] VARCHAR(50),
[Membre CA?] BIT,
[Membre excutif?] BIT)
CREATE TABLE [Type cotisation]
([No cotisation] SMALLINT
NOT NULL PRIMARY KEY,
[Montant annuel] CURRENCY)
CREATE TABLE Facult
([No facult] IDENTITY
NOT NULL PRIMARY KEY,
[Nom facult] VARCHAR(30))
CREATE TABLE [Priode de campagne]
([No priode] SMALLINT
NOT NULL PRIMARY KEY,
[Anne campagne] SMALLINT,
[Date dbut] DATE,
[Date fin] DATE)
CREATE TABLE Organisme
([No organisme] IDENTITY
NOT NULL PRIMARY KEY,
[Nom organisme] VARCHAR(30),
[Tlphone premier] VARCHAR(12),
[Tlphone deuxime] VARCHAR(12))

tape 2.
Table

Exigence

Dpartement
No dpartement : {PK auto}
Nom dpartement
No facult : {FK}
1..*
1..1

4
3

Instruction SQL
CREATE TABLE Dpartement
([No dpartement] IDENTITY
NOT NULL PRIMARY KEY,
[Nom dpartement] VARCHAR(30),
[No facult] INTEGER
NOT NULL
REFERENCES Facult([No facult]))



Conception de bases de donnes avec UML

1..1

11

Diplme
No diplme : {PK auto}
Dsignation diplme
No cotisation : {FK}
No dpartement : {FK}

1..*

4
3

1..*
1..1

4
3

1..1
1..*

1..1

CREATE TABLE Sollicitation


([No priode sollicitation] IDENTITY
NOT NULL PRIMARY KEY,
[No priode] SMALLINT NOT NULL
REFERENCES [Priode de campagne]([No
priode])
ON DELETE CASCADE
ON UPDATE CASCADE,
[No sollicitation] SMALLINT,
[Date sollicitation] DATE,
[No fiche sollicitation] SMALLINT,
[Diplm ?] BIT,
[No diplm solliciteur] SMALLINT
REFERENCES Diplm([No diplm]),
[No diplm sollicit] SMALLINT
NOT NULL
REFERENCES Diplm([No diplm]),
[No organisme] INTEGER
REFERENCES Organisme([No organisme]))

Exigence

Instruction SQL

11

Sollicitation

0..*

No priode solicitation : {PK auto}


No priode : {FK}{Cascade}
No sollicitation
Date sollicitation
No fiche sollicitation
Diplm?
No diplm solliciteur : {FK}
No diplm sollicit : {FK}
No organisme : {FK}

CREATE TABLE Diplme


([No diplme] IDENTITY
NOT NULL PRIMARY KEY,
[Dsignation diplme] VARCHAR(30),
[No cotisation] SMALLINT
NOT NULL
REFERENCES [Type cotisation]([No
cotisation]),
[No dpartement] INTEGER
NOT NULL
REFERENCES Dpartement([No
dpartement]))

4
15
0..*

0..1
0..*
0..1

3
4
3

tape 3.
Table
1..*

1..1

Diplmation
No diplmation : {PK auto}
No diplm : {FK}{Cascade}
No diplme : {FK}{Cascade}
Anne obtention
0..*

11
14
15

1..1

14
15

CREATE TABLE Diplmation


([No diplmation] IDENTITY
NOT NULL PRIMARY KEY,
[No diplm] SMALLINT NOT NULL
REFERENCES Diplm([No diplm])
ON DELETE CASCADE
ON UPDATE CASCADE,
[No diplme] INTEGER NOT NULL
REFERENCES Diplme([No diplme])
ON DELETE CASCADE
ON UPDATE CASCADE,
[Anne obtention] DATE)



Le modle physique de donnes

1..1
1..*

1..1

Sollicitation

0..*

No priode solicitation : {PK auto}


No priode : {FK}{Cascade}
No sollicitation
Date sollicitation
No fiche sollicitation
Diplm?
No diplm solliciteur : {FK}
No diplm sollicit : {FK}
No organisme : {FK}
0..1
0..*

3
0..*

0..1

CREATE TABLE Versement


([No versement] SMALLINT
NOT NULL PRIMARY KEY,
[Date versement] DATE,
[Montant versement] CURRENCY,
[Cotisation ?] BIT,
[Anne] SMALLINT,
[No diplm] SMALLINT
REFERENCES Diplm([No diplm]),
[No priode sollicitation] INTEGER
REFERENCES Sollicitation([No priode
sollicitation]))

Script de ralisation du modle en VBA.


Private Sub Script_Creation_Ex3_6()
Dim conDatabase As ADODB.Connection
Dim SQL As String
On Error GoTo Error_Handler
Set conDatabase = Application.CurrentProject.Connection
SQL = _
"CREATE TABLE Diplm" & _
" ([No diplm] SMALLINT" & _
" NOT NULL PRIMARY KEY," & _
" [Nom diplm] VARCHAR(30)," & _
" [Prnom diplm] VARCHAR(30)," & _
" [Tlphone bureau] VARCHAR(12)," & _
" [Date de naissance] DATE," & _
" [Tlphone domicile] VARCHAR(12)," & _
" [Adresse domicile] VARCHAR(50)," & _
" [Adresse travail] VARCHAR(50)," & _
" [Membre CA ?] BIT," & _
" [Membre excutif ?] BIT)"
conDatabase.Execute SQL
MsgBox "Table Diplm cre", vbInformation
SQL = _
"CREATE TABLE [Type cotisation]" & _
" ([No cotisation] SMALLINT" & _
" NOT NULL PRIMARY KEY," & _
" [Montant annuel] CURRENCY)"
conDatabase.Execute SQL
MsgBox "Table Type cotisation cre", vbInformation
SQL = _
"CREATE TABLE Facult" & _



Conception de bases de donnes avec UML

" ([No facult] IDENTITY" & _


" NOT NULL PRIMARY KEY," & _
" [Nom facult] VARCHAR(30))"
conDatabase.Execute SQL
MsgBox "Table Facult cre", vbInformation
SQL = _
"CREATE TABLE [Priode de campagne]" & _
" ([No priode] SMALLINT" & _
" NOT NULL PRIMARY KEY," & _
" [Anne campagne] SMALLINT," & _
" [Date dbut] DATE," & _
" [Date fin] DATE)"
conDatabase.Execute SQL
MsgBox "Table Priode de campagne cre", vbInformation
SQL = _
"CREATE TABLE Organisme" & _
" ([No organisme] IDENTITY" & _
" NOT NULL PRIMARY KEY," & _
" [Nom organisme] VARCHAR(30)," & _
" [Tlphone premier] VARCHAR(12)," & _
" [Tlphone deuxime] VARCHAR(12))"
conDatabase.Execute SQL
MsgBox "Table Organisme cre", vbInformation
SQL = _
"CREATE TABLE Dpartement" & _
" ([No dpartement] IDENTITY " & _
" NOT NULL PRIMARY KEY," & _
" [Nom dpartement] VARCHAR(30)," & _
" [No facult] INTEGER" & _
" NOT NULL" & _
" REFERENCES Facult([No facult]))"
conDatabase.Execute SQL
MsgBox "Table Dpartement cre", vbInformation
SQL = _
"CREATE TABLE Diplme" & _
" ([No diplme] IDENTITY " & _
" NOT NULL PRIMARY KEY," & _
" [Dsignation diplme] VARCHAR(30)," & _
" [No cotisation] SMALLINT" & _
" NOT NULL" & _
" REFERENCES [Type cotisation]([No cotisation])," & _
" [No dpartement] INTEGER" & _

Le modle physique de donnes

" NOT NULL" & _


" REFERENCES Dpartement([No dpartement]))"
conDatabase.Execute SQL
MsgBox "Table Diplme cre", vbInformation
SQL = _
"CREATE TABLE Sollicitation" & _
" ([No priode sollicitation] IDENTITY " & _
" NOT NULL PRIMARY KEY," & _
" [No priode] SMALLINT NOT NULL" & _
" REFERENCES [Priode de campagne]([No priode])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [No sollicitation] SMALLINT," & _
" [Date sollicitation] DATE," & _
" [No fiche sollicitation] SMALLINT," & _
" [Diplm ?] BIT," & _
" [No diplm solliciteur] SMALLINT" & _
" REFERENCES Diplm([No diplm])," & _
" [No diplm sollicit] SMALLINT" & _
" NOT NULL" & _
" REFERENCES Diplm([No diplm])," & _
" [No organisme] INTEGER" & _
" REFERENCES Organisme([No organisme]))"
conDatabase.Execute SQL
MsgBox "Table Sollicitation cre", vbInformation
SQL = _
"CREATE TABLE Diplmation" & _
" ([No diplmation] IDENTITY" & _
" NOT NULL PRIMARY KEY," & _
" [No diplm] SMALLINT NOT NULL" & _
" REFERENCES Diplm([No diplm])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [No diplme] INTEGER NOT NULL" & _
" REFERENCES Diplme([No diplme])" & _
" ON DELETE CASCADE" & _
" ON UPDATE CASCADE," & _
" [Anne obtention] DATE))"
conDatabase.Execute SQL
MsgBox "Table Diplmation cre", vbInformation
SQL = _
"CREATE TABLE Versement" & _
" ([No versement] SMALLINT" & _
" NOT NULL PRIMARY KEY," & _





"
"
"
"
"
"
"
"

Conception de bases de donnes avec UML

[Date versement] DATE," & _


[Montant versement] CURRENCY," & _
[Cotisation ?] BIT," & _
[Anne] SMALLINT," & _
[No diplm] SMALLINT" & _
REFERENCES Diplm([No diplm])," & _
[No priode sollicitation] INTEGER" & _
REFERENCES Sollicitation([No priode sollicitation]))"

conDatabase.Execute SQL
MsgBox "Table Versement cre", vbInformation
conDatabase.Close
Set conDatabase = Nothing
Exit Sub
Error_Handler :
MsgBox Err.Description, vbInformation
End Sub

Schma des associations dans MS Access.

Chapitre

Analyse, conception
et ralisation dune application
de base de donnes
Objectifs
Comment aborder un projet de dveloppement dune application
de base de donnes en suivant une mthode systmatique.

Principes sous-jacents la mthode propose et identification


des donnes persistantes ds la premire phase de la mthode.

Description de la phase danalyse et formulation des besoins


en matire de donnes persistantes pour lapplication.

Dcoupage de lapplication en units fonctionnelles selon


le formalisme appel Diagramme de cas dutilisation
et recensement des donnes persistantes.

Description de la phase de conception et de ralisation.



Conception de bases de donnes avec UML

Au.fil.des.chapitres.prcdents,.nous.avons.tudi.les.trois.types.de.modles.
de.donnes.qui.mnent..la.ralisation.dune.base.de.donnes ..Nous.avons.
vu.quils.sinscrivent.dans.un.continuum.dont.la.cohrence.est.assure.par.
un.certain.nombre.de.rgles.de.passage.dun.niveau.de.modlisation..lautre ..
Nous. allons. maintenant. nous. attarder. . lintgration. de. la. dmarche. de.
modlisation.des.donnes.dans.un.processus.plus.large.visant.la.ralisation.
complte.dune.application.de.base.de.donnes ..
La. ralisation. des. divers. modles. abords. aux. chapitre. prcdents,. et.
visant. . concevoir. une. base. de. donnes,. nest. pas. une. fin. en. soi .. Cette.
dmarche.sinscrit.habituellement.dans.le.cadre.dun.projet.de.mise.en.uvre.
dune.application.informatique.permettant.de.saisir,.de.traiter,.de.stocker.et.
dexploiter.les.donnes.ncessaires.au.bon.fonctionnement.dune.organisation.ou.dun.secteur.spcifique.dune.organisation ..Dans.notre.introduction,.
nous. avons. dfini. une. telle. application,. qui. exploite. une. ou. des. bases. de.
donnes,.sous.lappellation.application de base de donnes ..Une.application. de. base. de. donnes. doit. tre. ralise. en. suivant. une. mthode. qui.
permette.non.seulement.llaboration.de.modles.qui.traduisent.les.besoins.
des. utilisateurs. en. matire. de. donnes. mais. aussi. de. modles. dune. autre.
nature. exprimant. les. besoins. gnraux. de. ces. derniers. envers. le. fonctionnement.de.lapplication ..
Ces. besoins. gnraux. concernent. entre. autres. les. exigences. quant. .
linterface.utilisateur.de.lapplication.et.sa.logique.applicative ..Cest.dans.la.
logique. applicative. que. sexpriment. notamment. les. rgles. de. gestion. de.
certains.processus.ou.de.certaines.activits.de.lorganisation ..Cette.logique.
applicative.doit.tre.en.phase.avec.la.structure.de.la.BD .
Le.chapitre.a.pour.objectif.premier.de.prsenter.une.mthode.concrte,.
quoique.simplifie,.pour.mener..bien.la.ralisation.dune.BD.et.de.lapplication.qui.saura.lexploiter.efficacement ..La.mthode.est.fortement.structure ..
Elle.fait.appel.aux.rgles.de.modlisation.des.donnes.abordes.aux.chapitres.
prcdents. auxquelles. sajoutent. des. rgles. et. principes. de. dfinition. des.
exigences. portant. sur. dautres. aspects. de. lapplication .. La. mthode. doit.
encadrer.le.travail.du.modlisateur.pour.recenser.dans.une.organisation.les.
donnes.ncessaires..son.bon.fonctionnement.et.mettre.en.uvre.la.logique.
applicative.qui.doit.assurer.notamment.la.saisie,.la.validation.et.la.persistance.
de.donnes.cohrentes ..
La.mthode.prconise.dans.cet.ouvrage.comporte.deux.phases.:
1 ..la. phase. danalyse. des. besoins,. tourne. vers. lidentification. des. besoins.
en. matire. de. donnes. et. des. exigences. de. lapplication. qui. en. assure.
lexploitation.;

Analyse, conception et ralisation dune application de base de donnes



2 ..la. phase. de. conception. et. de. ralisation. de. lapplication,. centre. sur. les.
aspects.techniques.de.lapplication.qui.devra.rpondre.efficacement.aux.
besoins.et.exigences.formules.dans.la.phase.danalyse .
Notre.mthode.sinspire.des.mthodes.dites.orientes objets.et.en.particulier. de. la. mthode. du. Processus unifi. [JBR. 99]qui. suggre. une. approche.
lgre. et. itrative. pour. le. dveloppement. dune. application. informatique ..
Elle. emprunte. de. plus. . la. mthode. DATARUN. [PAS. 90]. certains. principes.
permettant.de.guider.le.modlisateur,.au.cours.de.la.phase.danalyse,.pour.
le.recensement.efficace.des.donnes.persistantes ..Chaque.phase.de.la.mthode.
mne..la.production.de.modles.dont.certains.ont.fait.lobjet.dune.tude.
approfondie.au.cours.des.chapitres.prcdents ..Au.cours.de.la.phase.danalyse.
des.besoins,.la.tche.du.modlisateur.porte.surtout.sur.le.modle.conceptuel.
de.donnes ..Toutefois.les.modles.logique.et.physique.de.donnes.rsultent.
de.la.deuxime.phase,.la.phase.de.conception.et.de.ralisation .
Voyons.maintenant.plus.en.dtail.la.nature.exacte.de.chaque.phase.de.
la.mthode .

lAnAlyse des besoins


Cette.section.porte.sur.la.dmarche.de.formulation.des.besoins.des.utilisateurs.
en. regard. dune. application. de. base. de. donnes .. Le. terme. besoins. sinscrit.
ici. dans. un. contexte. bien. particulier .. Aussi. adopterons-nous. la. dfinition.
technique.donne.ci-aprs .

Besoins } Conditions auxquelles un systme et plus gnralement un projet doit

rpondre.

La.phase.danalyse.reprsente.un.travail.systmatique.de.recherche,.de.
documentation,.dorganisation.et.de.suivi.des.besoins.des.parties.intresses.
sachant.que.les.souhaits.et.les.besoins.exprims.ne.sont.pas.toujours.explicites.et.peuvent.changer.dans.le.temps ..Il.est.donc.futile.de.viser.lexhaustivit ..Le.modlisateur.peut.difficilement.identifier.et.dfinir.tous.les.besoins.
avant.de.sengager.dans.la.ralisation.de.lapplication ..La.mthode.que.nous.
proposons.est.beaucoup.plus.raliste ..Elle.consiste..rechercher.les.besoins.
les.plus.immdiats,.ceux.qui.font.consensus.entre.les.parties.intresses,.de.
procder.rapidement..la.conception.et.la.ralisation.dune.premire.version.
de.lapplication.qui.en.dcoule,.quitte..affiner.les.besoins.connus.et..en.
ajouter.de.nouveaux.au.cours.des.cycles.danalyse.ultrieurs .

0

Conception de bases de donnes avec UML

Lobjectif. premier. de. la. phase. danalyse. des. besoins. est. de. dfinir. les.
besoins.des.utilisateurs.en.matire.de.donnes ..Cette.tche.consiste..identifier.les.donnes.prsentes.dans.une.organisation.ou.un.secteur.de.lorganisation.dont.il.est.ncessaire.dassurer.la.persistance.et.de.les.modliser.sous.
forme.de.diagramme.entit-association ..Cela.revient..dire.que.le.modlisateur.doit.identifier.les.donnes.qui.seront.conserves.dans.la.BD.de.lapplication. de. manire. . rpondre. aux. besoins. exprims. par. les. utilisateurs .. Le.
modle.conceptuel.de.donnes.ralis.au.cours.de.cette.phase.constitue.la.
reprsentation.graphique.des.donnes persistantes.de.lapplication .

Donne } Une donne gnre dans le cadre des activits dune organisation ou provenant
persistante de lextrieur de cette organisation quil est ncessaire de conserver long

terme pour assurer le bon fonctionnement de lorganisation. Cette dfinition


oppose le concept de donne persistante celui de donne volatile qui, elle,
disparat peu de temps aprs avoir t gnre ou reue sans que cela nait de
consquence pour lorganisation (Persistent Data).

La.notion.de.donnes.persistante.correspond..une.notion.quivalente.
introduite. dans. la. mthode. DATARUN,. celle. de. donne vitale,. notion. dont.
nous.avons.dj.fait.tat ..En.vertu.de.cette.mthode,.leffort.du.modlisateur.
au.stade.de.lanalyse.des.besoins.doit.porter.en.priorit.sur.le.recensement.
des.donnes.que.lorganisation.ne.peut.se.permettre.dignorer.ou.de.ne.pas.
mmoriser.au.risque.de.compromettre.sa.mission.et.son.bon.fonctionnement ..
On.qualifie.ces.donnes.de.vitales.car.elles.sont.rputes.vitales..lorganisation.
notamment..des.fins.de.contrle.et.de.support..la.dcision .
Le. recensement. des. donnes. persistantes,. ou. vitales,. ne. peut. se. faire.
quen.suivant.une.dmarche.systmatique.appuyant.une.rflexion.rigoureuse.
.laquelle.prend.part.non.seulement.le.modlisateur.mais.aussi.les.utilisateurs.
ou.les.clients.du.systme..raliser ..Lidentification.dune.donne.persistante.
est.avant.tout.une.affaire.de.jugement ..Elle.dpend.fortement.du.contexte.
et.du.domaine.o.sexerce.le.travail.danalyse.des.besoins.par.le.modlisateur ..
Ce.jugement.peut.sexercer.en.suivant.certaines.lignes.directrices ..En.voici.
deux ..Elles.reprsentent..notre.avis.des.conditions.ncessaires.mais.elles.ne.
sauraient.en.aucun.cas.tre.considres.comme.suffisantes .
Une donne est considre comme persistante si elle ne peut
tre drive dune autre donne persistante connue .. Si. nous. avons.
identifi.la.date de naissance de lemploy.comme.une.donne.persistante,.la.
donne. ge de lemploy. na. pas. . tre. persistante. puisque. nous. pouvons.
facilement.driver.sa.valeur.de.la.premire.et.ce.en.tout.temps ..Il.est.donc.
inutile.de.conserver.dans.la.base.de.donnes.ces.deux.donnes..la.fois.car.
lune. peut. tre. facilement. calcule. . partir. de. lautre .. Cette. rgle. nest. pas.
absolue .. Considrons. le. cas. dune. commande. pour. laquelle. on. considre.

Analyse, conception et ralisation dune application de base de donnes

1

comme. donnes. persistantes. le. prix. de. larticle. command. ainsi. que. sa.
. uantit ..On.pourrait.en.conclure.quil.est.inutile.de.considrer.le.total.de.la.
q
commande.comme.une.donne.persistante.car.on.peut.le.calculer.en.faisant.
la.somme.des.produits.du.prix.par.la.quantit.de.larticle..laquelle.les.taxes.
sont.ajoutes ..Lutilisateur.du.systme.peut.voir.les.choses.autrement ..Pour.
ce.dernier.le.total.de.la.commande.est.une.donne..caractre.contractuel.
qui.doit.tre.strictement.conforme..la.facture.remise.au.client.qui.a.pass.
la.commande ..La.donne.total de la commande.devrait.dans.ce.contexte.tre.
mmorise.pour.chaque.commande,.telle.quelle.apparat.sur.la.facture,.sans.
gard..la.manire.dont.elle.a.t.calcule ..Il.se.peut.en.effet.que.la.formule.
de. calcul. change. dans. le. temps. car. les. taux. des. taxes. applicables. sont.
.susceptibles.dtre.modifis.dune.anne..lautre .
Une donne est persistante si elle est dterminante pour le bon
fonctionnement de lorganisation ..La.couleur des yeux de lemploy.nest.
pas.une.donne.dterminante.pour.une.organisation ..Il.ne.sagit.donc.pas.
dune.donne.qui.devrait.tre.considre.comme.persistante.pour.les.organisations. en. gnral .. Quen. est-il. dune. agence. de. mannequins. o. cette.
donne. peut. tre. vue. comme. vitale. . son. fonctionnement.?. Cette. ligne.
directrice.doit.tre.applique.en.tenant.compte.du.contexte.o.elle.sexerce ..
Une.organisation.pourrait.conclure.quune.donne.particulire.sur.ses.clients.
est.dterminante.pour.son.fonctionnement.bien.que.lexigence.faite.au.client.
de.fournir.cette.donne.et.sa.mmorisation.pourraient.contrevenir..la.Loi.
sur.les.renseignements.personnels.des.citoyens.dun.tat ..Il.serait.en.consquence.illgal.den.faire.une.donne.persistante .
Sil.est.impossible.de.prescrire.des.rgles.absolues.pour.lidentification.
des. donnes. persistantes. propres. . une. organisation. ou. . un. domaine.
.dactivit,.on.peut.nanmoins.proposer.une.dmarche.systmatique.facilitant.
leur.recensement ..Notre.exprience.de.modlisateur.nous.a.permis.de.constater.quil.existe.deux.approches.complmentaires.pour.recenser.les.donnes.
sur.lesquelles.le.modlisateur.devra.exercer.en.priorit.son.jugement,.avec.
le. concours. des. utilisateurs,. pour. en. faire. le. cas. chant. des. donnes.
persistantes .

le recensement des donnes persistantes


Les.deux.formes.que.peut.prendre.la.dmarche.de.recensement.des.donnes.
persistantes. dcoulent. dun. certain. nombre. de. constats. qui. justifient. leur.
pertinence .. Avant. dtudier. chaque. forme. que. la. dmarche. peut. prendre,.
attardons-nous..quelques-uns.de.ces.constats .



Conception de bases de donnes avec UML

Bien. quune. organisation. ou. un. secteur. dactivit. de. lorganisation. ne.
soient.pas.dots.dun.systme.dinformation.formel,.on.peut.y.retrouver.
des.pratiques.de.gestion,.des.mcanismes.de.contrle,.des.protocoles,.des.
rgles.de.gestion.qui.constituent.les.lments.dun.systme.dinformation.
informel.mais.bien.rel.;
Ce.systme.dinformation.informel.fait.gnralement.appel..des.documents,.
des. bordereaux,. des. fiches,. des. dossiers. assurant. en. quelque. sorte. une.
forme.de.mmoire.des.donnes.du.systme.informel.;
De.tels.documents.reprsentent.des.sources.privilgies.de.donnes.persistantes.pour.une.application.de.base.de.donnes.qui.sera.ralise.dans.
le. but. dautomatiser. en. tout. ou. en. partie. le. systme. dinformation.
informel.;
Sil.savre.quon.ne.peut.compter.sur.un.systme.dinformation.existant.
formel. ou. informel. ou. que. lapplication. de. base. de. donnes. . raliser.
repose.sur.des.donnes.originales.dont.ne.dispose.pas.encore.lorganisation.
.travers.ses.documents.imprims.ou.lectroniques,.il.est.possible.dlaborer.
de. concert. avec. les. utilisateurs. un. prototype visuel. de. lapplication. .
raliser.;
Un.prototype.visuel.est.le.pendant.pour.une.application.informatique.du.
story-board.dessin.par.le.ralisateur.dun.film.et.son.scnariste.avant.de.
procder.au.tournage.;
Le. prototype. visuel. est. constitu. dune. srie. de. dessins,. le. plus. souvent.
sur. papier,. des. panoramas. dcran. qui. correspondent. . une. bauche. de.
linterface.utilisateur.de.lapplication.;
Chaque.panorama.est.une.source.privilgie.de.donnes.persistantes.pour.
une.application.de.base.de.donnes.en.absence.de.systme.dinformation.
formel.ou.informel .
Les.dessins.de.ces.panoramas.peuvent.facilement.tre.raliss.par.affinage.
progressif.lors.de.sances.de.remue-mninges.(brainstorming).impliquant.
les.utilisateurs.et.les.concepteurs ..
Les.constats.voqus.ici.sont..la.base.des.deux.approches.prconises.
pour. le. recensement. des. donnes. persistantes .. La. premire. approche. est.
applicable..une.situation.o.un.systme.dinformation,.mme.informel.ou.
embryonnaire,.est.dj.en.place.dans.lorganisation ..La.seconde.vise.la.ralisation.dune.application.originale,.sans.quivalent.formel.ou.informel,.o.
les. utilisateurs. expriment. leurs. besoins. principalement. . travers. un. projet.
dinterface. utilisateur,. labore. . la. manire. dun. story-board. au. cinma,.
appel.prototype visuel de lapplication de base de donnes ..Les.deux.approches.
peuvent.tre.appliques.concurremment.pour.la.dfinition.des.besoins.des.

Analyse, conception et ralisation dune application de base de donnes



utilisateurs.tout.en.sachant.que.lapplication.en.matire.de.donnes.repose.
.la.fois.sur.un.systme.dinformation.existant.et.sur.des.besoins.originaux.
non.assurs.par.le.systme.en.place .
La. premire. approche. pourrait. tre. qualifie. dapproche. descendante.
puisquelle.dbute.par.une.analyse.dun.systme.existant.pour.modliser.en.
dtail.le.nouveau.systme..raliser ..Lautre.approche.est.ascendante ..Lanalyse.
dbute.en.laborant.une.reprsentation.visuelle.de.linterface.utilisateur.du.
systme.que.lon.souhaite.raliser,.pour.en.tirer.ensuite.les.modles.ncessaires..sa.ralisation ..
Nous. allons. aborder,. . tour. de. rle,. chacune. des. approches. et. les.
i. llustrer. par. des. tudes. de. cas .. Ces. deux. approches. de. la. phase. danalyse,.
bien. que. diffrentes. au. dbut,. mnent. au. mme. rsultat.:. la. production.
dun.modle.conceptuel.pour.les.donnes.persistantes.de.lapplication.de.
base. de. donnes. que. lon. souhaite. raliser .. Daucune. manire,. elles. ne.
remettent.en.cause.les.rgles.et.les.principes.de.modlisation.conceptuelle.
dcrits. au. chapitre. 1 .. Bien. au. contraire .. Elles. permettent. didentifier. et.
dinventorier.en.amont.les.donnes.pertinentes.au.modle.conceptuel.de.
donnes. qui. conduira. ultrieurement,. durant. la. phase. de. conception. et.
de.ralisation,..la.production.des.modles.logique.et.physique.de.la.base.
de.donnes .

une approche descendante :


le modle de fonctionnement du systme dinformation
Cette.premire.approche.consiste..faire.lanalyse.dun.systme.dinformation.
existant,.formel.ou.informel,.et..en.tirer.les.besoins.en.matire.de.donnes.
pour. automatiser. certains. aspects. de. son. fonctionnement. . laide. dune.
application.de.base.de.donnes .
La.premire.difficult.de.cette.approche.est.de.formuler.une.reprsentation.abstraite.du.fonctionnement.de.ce.systme.dinformation.avant.daborder.la.modlisation.conceptuelle.des.donnes.persistantes.du.systme ..Cette.
reprsentation. abstraite. du. systme. dinformation. sappelle. un. modle de
fonctionnement du systme dinformation .. Elle. fait. appel. . un. formalisme.
nouveau.appel.Diagramme de cas dutilisation ..La.notation.UML,.qui.permet.
dlaborer.de.tels.modles,.est.conforme..celle.introduite.dans.les.mthodes.
danalyse.dites.orientes.objets.qui.ont.donn.naissance.au.formalisme .



Conception de bases de donnes avec UML

Diagramme } Formalisme qui permet de modliser le fonctionnement dun systme par un


de cas dcoupage de celuici en fonctionnalits. Il illustre de plus la nature des inter
dutilisation actions avec ces fonctionnalits, offertes titre de services des acteurs externes

au systme. Le dcoupage peut tre global ou trs clat. La nature des inter
actions peut tre dcrite de manire sommaire ou dtaille selon le niveau de
dtail recherch par le modlisateur. Chaque fonctionnalit est appel un cas
dutilisation (Use Case Diagram).
Un.diagramme.de.cas.dutilisation.comporte.une.composante.graphique,.
o.sont.illustrs.les.fonctionnalits.du.systme.et.les.acteurs.qui.interagissent.
avec.elles ..Lautre.composante.du.diagramme.de.cas.dutilisation,.tout.aussi.
importante,. est. la. documentation. textuelle. de. chaque. fonctionnalit. sous.
une.forme.que.nous.appellerons.scnario de cas dutilisation ..La.composante.
graphique. permet. davoir. une. vue. densemble. des. fonctionnalits. dun.
systme,.de.situer.la.frontire.entre.le.systme.et.les.acteurs.extrieurs.qui.
gravitent.autour.de.celui-ci ..Elle.illustre.de.plus.les.fonctionnalits.du.systme.
auxquelles.un.acteur.en.particulier.peut.faire.appel ..
La. composante. textuelle. dcrit. sous. forme. de. scnarios,. pour. chaque.
fonctionnalit,.comment.se.droule.chronologiquement.une.sance.dinteraction.entre.un.acteur.(par.exemple.un.utilisateur.du.systme.dinformation.
qui.requiert.des.services.de.celui-ci).et.une.fonctionnalit.du.systme ..Elle.
stipule.notamment.comment.est.amorce.une.sance,.quelles.sont.les.options.
dont.dispose.lacteur.pour.interagir.avec.la.fonctionnalit.et.quelles.sont.les.
conditions.pour.terminer.une.sance.avec.succs .
tudions. maintenant. de. faon. plus. dtaille. chaque. composante. du.
diagramme.de.cas.dutilisation ..Dsormais,.pour.rester.en.phase.avec.la.terminologie.utilise.gnralement.pour.traiter.des.cas.dutilisation,.nous.utiliserons. le. terme. cas dutilisation. au. lieu. de. fonctionnalit,. et. scnario de cas
dutilisation. pour. faire. rfrence. . la. description. textuelle. du. cas.
dutilisation .

le ct graphique dun diagramme de cas dutilisation


La.reprsentation.graphique.des.cas.dutilisation.fait.appel..quatre.symboles.
lmentaires.:
1 ..lacteur.(petit.bonhomme),.
2 ..le. cas. dutilisation. (losange),. correspondant. . une. fonctionnalit. du.
systme
3 ..les.limites.du.systme.(grand.rectangle.entourant.les.cas.dutilisation).
4 ..larc.ou.segment.de.droite.liant.lacteur..un.cas.dutilisation ..

Analyse, conception et ralisation dune application de base de donnes



La.figure.4-1.montre.un.diagramme.de.cas.dutilisation.incomplet.qui.
nous. servira. dexemple. tout. au. long. de. la. dmonstration. suivante. et. qui.
portera.sur.le.rle.jou.par.chacun.de.ces.symboles.dans.la.modlisation.du.
fonctionnement.dun.systme .

figuRe 4-1

Diagramme de cas dutilisation incomplet modlisant un systme dinformation


pour la Gestion acadmique dun collge

Gestion acadmique

Gestion demandes
d'admission
Direction de programme

Systme informatique
Systme comptes recevoir

Inscription des
tudiants

tudiant

...

Acteurs
principaux
gauche

Limites du
systme et
cas
dutilisation

Acteurs
auxillaires
droite

Tout.diagramme.de.cas.dutilisation.porte.une.identification.du.systme.
modlis,.ici.Gestion acadmique ..Dans.ce.cas,.il.sagit.dun.systme.dinformation. qui. nest. pas. informatis. mais. fait. appel. . un. systme. informatis.
pour.la.gestion.des.comptes..recevoir.des.tudiants ..Les.limites.du.systme.
tracent.une.frontire.entre.les.acteurs.extrieurs.au.systme.et.les.fonctionnalits.du.systme.dsormais.appeles.cas dutilisation ..Notons.au.passage.
quun.diagramme.de.cas.dutilisation.peut.aussi.tre.utilis.pour.modliser.
un.systme.informatis.ou.un.logiciel ..Dans.la.mthode.descendante,.prconise.dans.cette.section,.nous.en.faisons.usage.pour.la.modlisation.dun.



Conception de bases de donnes avec UML

systme. dinformation. existant,. quil. soit. formel. ou. informel .. . la. section.
suivante.nous.verrons.comment.lexploiter.pour.modliser.le.fonctionnement.
dune.application.de.base.de.donnes,.selon.une.approche.ascendante .

Acteur } Une entit quelconque ayant un comportement qui inclut dautres systmes

faisant appel au systme modlis ou auquel le systme modlis fait appel. Plus
gnralement, il sagit dune catgorie de personnes qui peut agir comme utilisateur
du systme et interagir avec ce dernier (Actor).

La. notion. dacteur. ne. doit. pas. tre. vue. comme. trop. restrictive .. Elle.
englobe. des. acteurs. dit. principaux,. soit. des. utilisateurs. qui. ont. des. buts.
bien.prcis..atteindre.en.utilisant.les.services.du.systme ..Dans.lexemple.
de.la.figure.4-1,. tudiant.est.un.acteur.de.ce.type ..Il.fait.appel..un.service.
du. systme. pour. que. soit. traite. sa. demande. dadmission. au. Collge .. Par.
convention,.les.acteurs.principaux.sont.disposs..gauche.dans.un.diagramme.
de.cas.dutilisation ..
Pourquoi.identifier.les.acteurs.principaux.?.Pour.pourvoir.identifier.les.
services.que.leur.livre.le.systme.et.les.donnes.gnres.lors.de.la.prestation.
de.ces.services .
Un.acteur.peut.tre.auxiliaire ..Il.sagit.ici.dun.acteur.qui.fournit.un.
service.au.systme.modlis,.au.contraire.de.lacteur.principal.qui.les.sollicite ..
Ce.service.peut.tre.une.donne.o.un.ensemble.de.donnes.dont.le.systme.
a.besoin.pour.rpondre..un.service.sollicit.par.un.acteur.principal ..Lacteur.
auxiliaire.est.souvent.un.autre.systme,.notamment.un.systme.informatis,.
mais.il.peut.aussi.sagir.dune.autre.organisation.ou.mme.dune.personne.
externe.au.systme.que.lon.modlise.et.qui.agit.comme.prestataire.de.services.
auprs.du.systme .
Pourquoi.identifier.les.acteurs.auxiliaires.?.Pour.pourvoir.identifier.les.
donnes. acquises. par. le. systme. de. sa. propre. initiative .. Cette. acquisition.
peut.se.faire.par.dautres.moyens.quun.formulaire.ou.la.saisie.lectronique.
de.donnes.via.un.dispositif.de.saisie.tel.quun.clavier.ou.un.cran.sensible ..
Ce.seront.souvent.des.donnes.acquises.directement.qui.exigeront.la.mise.
en.uvre.dinterfaces.logicielles.avec.dautres.systmes.lors.de.la.ralisation.
de.lapplication.de.base.de.donnes ..

Cas } Une collection de scnarios qui dcrit la faon dont un ou plusieurs acteurs
dutilisation interagissent avec un systme pour atteindre un but. Les scnarios prennent la

forme dune description textuelle dactions ou dinteractions entre un ou des


acteurs et le systme modlis (Use Case).

Analyse, conception et ralisation dune application de base de donnes



Dans. le. diagramme. de. cas. dutilisation. 4-1,. on. note. la. prsence. de.
lacteur.tudiant,.susceptible.de.sengager.dans.une.interaction.avec.Gestion
demandes dadmission .. Ce. cas. dutilisation. fait. intervenir. un. autre. acteur.
soit. une. Direction de programme. responsable. daccepter. o. de. refuser. une.
demande.dadmission.faite.par.ltudiant.pour.un.programme.dtude.dont.
elle.a.la.responsabilit .
.la.lecture.des.scnarios.du.cas.dutilisation.Gestion demandes dadmission,.
le.lecteur.comprendra.que.lacteur.Direction de programme.est.aussi.utilisateur.
du.systme ..En.effet,.il.fera.appel.priodiquement..ses.services.pour.obtenir.
des.informations.sur.les.tudiants.qui.ont.soumis.une.demande.dadmission.
dans. un. des. programmes. sous. sa. responsabilit,. tudiants. qui. ont. de. plus.
t.admis.et.qui.ont.ensuite.accept.loffre.dadmission .
Considrons.maintenant.en.quoi.consiste.les.scnarios.associs..chacun.
des.cas.dutilisation .
Les.scnarios.associs.au.cas.dutilisation Gestion demandes dadmission.
sont.donns.dans.le.tableau.4-1 ..Cet.exemple.prsente.une.description.abrge.
du.cas.dutilisation ..Il.sagit.dun.rsum.qui.montre.un.scnario.de.base.et.
quelques. scnarios. alternatifs. pour. tenir. compte. de. cas. particuliers. ou. de.
situations.dexception .
Aux.fins.de.modliser.le.fonctionnement dun systme dinformation,.il.ny.
a. pas. lieu. de. scnariser. les. moindres. dtails. dun. cas. dutilisation .. Dans.
lexemple.du.tableau.4-1,.il.est.inutile.de.spcifier.en.dtail.comment.procde.
le.Bureau.du.registraire.pour.attribuer.un.code..ltudiant.ou.pour.crer.un.
compte.dans.le.systme.des.comptes..recevoir ..Il.est.par.ailleurs.trs.important.didentifier les documents qui servent de support aux donnes.exploites.
dans.le.cadre.des.activits.scnarises.dans.le.cas.dutilisation ..Notamment.
les. documents. papiers .. De. tels. documents. sont. la. source. privilgie. pour.
recenser. les. donnes. dont. le. systme. dinformation. doit. assurer. la.
persistance .
Sous. cette. rubrique,. nous. tentons. de. montrer. comment. modliser. le.
fonctionnement. dun. systme. dinformation. existant. afin. de. formuler. les.
besoins. en. matire. de. donnes. pour. une. application. de. base. de. donnes.
assurant.la.persistance.des.donnes.du.systme.dinformation .
Les.objectifs.de.la.dmarche.de.reprsentation.du.fonctionnement.dun.
systme.dinformation,.fut-il.formel.ou.informel,.sous.forme.de.diagramme.
de.cas.dutilisation,.peuvent.se.rsumer.ainsi.:
1 ..Le. modle. de. fonctionnement. du. systme. dinformation. constitue. une.
reprsentation. graphique. du. contexte. de. ce. systme,. donc. de. son.
environnement.;.



TAbleAu 4-1

Conception de bases de donnes avec UML

Scnarios du cas dutilisation Grer demande dadmission

Scnarios
Principal

Cas dutilisation : Gestion des demandes dadmission


Ltudiant complte le formulaire Demande dadmission, y joint
les documents exigs tels quune copie de ses attestations dtudes
et un chque libell au nom du Collge couvrant les frais dadmission.
Ltudiant transmet le formulaire complt et les documents requis
au Bureau du registraire du Collge.
Le Bureau du registraire reoit la demande et procde la vrification
des documents reus.
Si ces derniers sont conformes et complets, le Bureau attribut un code
ltudiant et ouvre un compte dans le systme des comptes recevoir si
ltudiant nen a pas dj un. Il encaisse le chque et ne crdite le compte
du montant vers que si le chque couvre la totalit des frais dadmission.
Si ltudiant ne dispose daucun solde de compte payer son dossier,
le Bureau transmet son dossier de candidature chaque Direction de
programme pour lequel ltudiant soumet une demande dadmission.
chaque dossier de candidature est joint le formulaire Dcision de
la direction du programme.
La Direction du programme reoit le dossier, en fait ltude et complte
le formulaire Dcision de la direction du programme o elle inscrira
sa dcision et en cas de refus, les raisons qui ont conduit au refus.
Le Bureau reoit la o les dcisions et en informe ltudiant en lui
transmettant le formulaire Dcision dadmission. Ltudiant accept
dans un ou plusieurs programmes doit retourner ce formulaire au Bureau
du registraire en confirmant son acceptation dadmission pour un seul
programme o il est admis.

Alternatif :
Les documents
reus de
ltudiant
ne sont pas
conformes
Alternatif :
Une Direction
de programme
souhaite un tat
des tudiants
qui ont accept
leur admission

Le Bureau reoit le formulaire et inscrit la confirmation de ltudiant son


dossier pour le programme mentionn.
Le Bureau du registraire informe ltudiant de la nature des corrections
apporter sa demande pour quelle soit conforme. Le Bureau complte
le formulaire Avis de non conformit de la demande dadmission
pour informer ltudiant des raisons de non conformit (Ex. Chque
sans provision ou non remis, Attestations incompltes, etc.).
Ltudiant transmet les documents exigs pour assurer la poursuite
du traitement de sa demande.
La Direction de programme complte un formulaire Demande dtat
des candidatures confirmes o elle inscrit la session et les
programmes pour lesquels elle souhaite recevoir un tat jour des
candidatures confirmes. Elle le transmet au Bureau du registraire.
Le Bureau produit cet tat et le transmet la Direction de programme.

Analyse, conception et ralisation dune application de base de donnes



. il.permet.de.tracer.les.frontires.du.systme.pour.circonscrire.les.sources.
de.donnes.externes.et.les.cas.dutilisation.susceptibles.de.les.exploiter.
ou.den.gnrer.de.nouvelles.dont.on.assurera.la.persistance.par.le.biais.
dune.base.de.donnes.;
il.permet.dinventorier.les.formulaires.et.les.documents.qui.constituent.
la.source.principale.de.donnes.persistantes.du.systme.;
il.est..lorigine.de.la.ralisation.dun.modle.conceptuel.de.donnes.
produit. aprs.le.recensement.des.donnes. persistantes.prsentes.dans.
les. formulaires. et. les. documents. ou. driv. des. scnarios. de. cas.
dutilisation .
2 ..Les.cas.dutilisation.doivent.assurer.une.reprsentation.de.ce.que.le.systme.
fait.et.donc.de.ses.fonctionnalits.telles.que.vues.par.les.acteurs.(personnes.
ou.systmes.externes.au.systme).;.
ils.dcrivent.le.comportement.du.systme.en.regard.dactivits.logiquement.regroupes.:.par.exemple.la.gestion.des.admissions.dans.le.collge,.
la.gestion.des.inscriptions..chaque.session,.le.processus.dmission.des.
diplmes.;.
ils.sont.axs.sur.les.fonctions.du.systme.dinformation.et.sur.les.donnes.
quils.consomment.ou.quils.gnrent .
3 ..Les.cas.dutilisation.doivent.permettre.dassurer.le.dcoupage.fonctionnel.
du. systme. dinformation. de. manire. . permettre. la. planification. du.
processus.danalyse,.de.conception.et.de.ralisation.dune.application.de.
base.de.donnes.;.
le. dcoupage. fonctionnel. devrait. faciliter. la. planification. des. phases.
successives. de. ralisation. de. lapplication. assurant. la. persistance. des.
donnes.pour.le.systme.;.
. laide. dun. tel. dcoupage,. la. planification. consistera. . produire. un.
ordonnancement. chronologique. des. cas. dutilisation. (donc. des. fonctionnalits)..mettre.en.uvre.dans.lapplication.de.base.de.donnes .

difficults rencontres dans la ralisation du modle de fonctionnement


dun systme dinformation
La. production. du. modle. de. fonctionnement. dun. systme. dinformation.
exige.de.la.part.du.modlisateur.une.grande.capacit.de.synthse ..Il.pourrait.
se.voir.confront..trois.grandes.difficults.:
1 ..choisir.les.limites.du.systme.;

0

Conception de bases de donnes avec UML

2 ..distinguer. les. acteurs. principaux,. les. acteurs. auxiliaires. et. les. personnes.
ou.les.groupes.de.personnes.qui.ne.sont.pas.acteurs.mais.qui.font.partie.
intgrante.du.systme.dinformation.;
3 ..identifier. les. cas. dutilisation. en. tentant. de. regrouper. les. activits. du.
systme.par.blocs,.chaque.bloc.dactivits.logiquement.apparentes.reprsentant.une.fonctionnalit.de.haut.niveau,.pour.les.rattacher.ensuite.aux.
acteurs .
Nous.proposons.de.produire.le.modle.en.attaquant.les.difficults.dans.
cet.ordre ..
tablir en premier lieu les limites du systme ..Comment.choisir.
les.limites.du.systme.?.Dabord.en.tentant.de.donner.au.systme..modliser.
un. nom. pertinent .. Lappellation Gestion acadmique dit. bien. ce. que. ce.
systme. dinformation. supporte.:. les. activits. de. gestion. qui. touchent. aux.
aspects.acadmiques.exclusivement ..Il.nassure.pas.la.gestion.comptable.ou.
financire.du.collge,.ni.la.gestion.de.ses.terrains,.btiments.et.quipements ..
Une.appellation.approprie.est.un.bon.point.de.dpart.pour.circonscrire.les.
frontires.du.systme..modliser ..
On.tente.didentifier.ensuite.les.agents.extrieurs.au.systme.qui.traitent.
avec.lui,.soit.les.acteurs ..On.prendra.en.considration.les.personnes.dabord ..
Quelles.sont.les.personnes.qui.sont.les.dclencheurs.de.services.offerts.par.le.
systme.ou.en.sont.les.bnficiaires.et.qui.ne.sont.pas.parties.prenantes.dans.
les.oprations.du.systme.dinformation.?.Rappelons.quun.systme.dinformation.est.constitu.de.procdures,.de.documents,.de.personnes,.de.matriels.
et.de.logiciels.qui.supportent.ses.oprations ..Le.bureau.du.registraire.reprsente.un.groupe.de.personnes.qui.font.fonctionner.en.tout.ou.en.partie.le.
systme. de. gestion. acadmique .. Il. ne. peut. en. aucun. cas. tre. vu. comme.
externe.au.systme.;.il.en.est.une.composante.essentielle ..On.dira.plutt.que.
le. bureau. du. registraire. est. une. ressource. du. systme. dinformation,. tout.
comme.les.procdures.et.la.rglementation.qui.dictent.les.rgles.de.gestion.
administrative. du. collge. ou,. . un. niveau. de. moindre. importance,. les.
.machines..crire.qui.servent..complter.le.formulaire.Dcision dadmission ..
Le.bureau.du.registraire.ne.dclenche.aucun.service.command.de.lextrieur.
du.systme,.ce.nest.donc.pas.un.acteur.(sous-entendu.externe.au.systme) ..
Cest. ltudiant. qui,. en. adressant. une. demande. dadmission. au. collge,.
.dclenche.un.service.et.en.devient.le.bnficiaire ..Voil.un.vritable.acteur.
au.sens.o.on.lentend.pour.la.rdaction.des.cas.dutilisation ..La.direction.
dun.programme.intervient.certes.dans.la.gestion.des.admissions.comme.le.
montre. le. cas. dutilisation. o. son. rle. consiste. . sanctionner. ou. non. une.
candidature .. Son. rle. dans. le. fonctionnement. du. systme. dinformation.
pourrait.en.faire..cet.gard.une.ressource ..Mais.elle.agit.aussi.comme.acteur.

Analyse, conception et ralisation dune application de base de donnes

1

car.elle.requiert.de.plus.des.services.au.systme.en.demandant.priodiquement.
la. production. dtats. qui. lui. sont. remis. par. le. bureau. du. registraire .. . ce.
titre,.elle.est.aussi.un.acteur .
Quelles. sont. les. organisations. ou. les. autres. systmes. qui. peuvent.
. clencher. des. services. offerts. par. le. systme. ou. en. tre. bnficiaires.?. Quels.
d
sont.les.organisations.ou.les.autres.systmes.qui.peuvent.agir.comme.fournisseurs.de.donnes.ou.prestataires de services..la.demande.pour.que.le.systme.
dinformation. puisse. rpondre. . un. service. dclench. par. un. autre. acteur ..
Le.systme.de.gestion.des.comptes..recevoir.est.nettement.un.acteur.car.il.
agit..titre.de.prestataire.de.service,.pour.indiquer.que.ltudiant.est.en.dette.
ou. non. envers. le. collge .. Il. est. nettement. . lextrieur. des. frontires. du.
systme.dinformation.car.on.fait.compltement.abstraction.des.oprations.
internes. de. ce. systme. pour. modliser. le. fonctionnement. du. systme. de.
Gestion.acadmique .
Distinguer en deuxime lieu les acteurs principaux et les
acteurs auxiliaires ..Si.le.choix.des.acteurs.a.t.fait.correctement,.on.aura.
vit.dassimiler.un.acteur..une.ressource.interne.du.systme.dinformation.
.modliser ..Un.acteur.principal.est.un.dclencheur de services.pour.le.systme.
.modliser.ou.un.bnficiaire.de.services ..Il.peut.sagir.dune.personne,.un.
groupe. de. personnes,. dune. organisation. ou. dun. autre. systme .. Ce. qui.
intresse.le.modlisateur,.cest.la.nature.des.donnes.transmises.par.lacteur.
pour.dclencher.le.service.requis.ainsi.que.les.changes.de.donnes.subsquents.qui.vont.assurer.la.prestation.du.service..cet.acteur.principal .
Un. acteur. auxiliaire. est. un. prestataire externe de services. auquel. le.
systme.peut.faire.appel.pour.rpondre..un.service.dclench.gnralement.
par.un.acteur.principal ..Son.fonctionnement.interne.est.sans.intrt.pour.le.
modlisateur .. Ce. qui. intresse. le. modlisateur. cest. la. nature. des. donnes.
que. le. systme. change. avec. ce. prestataire. et. non. pas. la. manire. dont. le.
prestataire.les.a.gnres.au.bnfice.du.systme.dinformation .
laborer en dernier lieu les cas dutilisation ..Considrer..tour.
de. rle. chaque. acteur. principal .. . ce. titre. il. dclenche. un. ou. des. services.
qui.sont.mis.en.uvre..travers.un.ou.plusieurs.cas.dutilisation.et/ou.il.est.
le.bnficiaire.de.services.que.les.ressources.internes.du.systme.ont.dclenchs ..On.sintressa.dabord.aux.services.dclenchs.par.un.acteur.principal ..
Les. services. de. nature. diffrente. dclenchs. par. des. vnements. diffrents.
devraient.donner.lieu..des.cas.dutilisation.distincts.pour.le.mme.acteur.
principal,.surtout.si.lun.prcde.lautre.chronologiquement ..Par.exemple.le.
cas.Gestion demandes dadmission.est.dclench.par.ltudiant.en.soumettant.
sa. demande. dadmission .. Si. ltudiant. confirme. son. admission. et. sinscrit.
ultrieurement,. cette. inscription. sera. prise. en. charge. par. un. second. cas.
dutilisation,. Inscription des tudiants,. car. ce. dernier. est. dclench. par. un.



Conception de bases de donnes avec UML

Un acteur peut tre la fois principal dans un cas dutilisation et auxiliaire pour un
autre cas. Dans une telle situation, on le considrera avant tout comme acteur principal. Considrons un systme dinformation appel Gestion des approvisionnements. Ce systme possde deux cas dutilisation : Produire les commandes
aux fournisseurs et Traiter la rception de marchandises. Lacteur Fournisseur
est nettement un prestataire de services car il traitera les commandes produites par
notre systme. Cela en fait un acteur auxiliaire. Par ailleurs, lors de la rception des
marchandises quil nous livre, il dclenche dans notre systme les services de mise
jour de linventaire et de paiement aux fournisseurs. Cette dernire activit en fait
aussi un acteur principal. Notons enfin que les services dun systme dinformation
ne sont pas toujours dclenchs par un acteur principal. Certains services sont
dclenchs par les ressources internes du systme dinformation. Par exemple, les
commandes aux fournisseurs sont mises si le niveau de stock de certains produits
atteint le point de rupture, sans intervention dacteur, donc dagent externe. Par
convention, on dispose sur le diagramme de cas dutilisation les acteurs principaux
gauche et les acteurs auxiliaires droite.

vnement. diffrent.:. linscription. de. ltudiant .. Il. sagit. bien. de. deux. cas.
dutilisation. dclenchs. par. la. mme. catgorie. dacteurs,. mais. par. le. biais.
dvnements.diffrents.qui.se.droulent.dans.des.temps.diffrents ..Chaque.
cas. pourrait. par. ailleurs. faire. intervenir. des. ressources. de. nature. diffrente.
dans.le.systme.dinformation .
Ds.que.le.cas.dutilisation.dclench.par.un.acteur.principal.est.identifi,.
il.y.a.lieu.de.voir.quels.sont.les.acteurs.auxiliaires.qui.interviennent.dans.ce.
cas,.bien.quils.puissent.agir.aussi..titre.dacteur.principal.dans.dautres.cas ..
Tous.les.acteurs.du.cas.tant.connus,.on.procde.finalement..la.rdaction.
des.scnarios.du.cas .
On.terminera.la.rdaction.des.cas.dutilisation.par.ceux.qui.ne.sont.pas.
dclenchs.par.des.acteurs.principaux.mais.bien.par.des.ressources.internes.
au.systme.dinformation.pour.servir.un.ou.des.acteurs.principaux ..On.les.
rattachera,. sil. y. a. lieu,. . des. acteurs. auxiliaires. si. les. services. font. appel. .
des.prestataires.externes .
Il. est. fort. possible,. notamment. en. rdigeant. un. scnario,. que. le. cas.
dutilisation. donne. lieu. . la. cration. de. nouveaux. acteurs. auxiliaires. non.
prvus. initialement .. Il. peut. mme. arriver. que. lon. dcouvre. de. nouveaux.
acteurs.principaux.aprs.avoir.identifi.un.certain.nombre.de.cas.dutilisation,.
car.la.prsence.dun.cas.dutilisation.peut.en.induire.un.autre.qui.le.prcde.
ou.le.suit.chronologiquement.dans.les.processus.de.gestion.de.lentit.dont.
on.modlise.le.systme.dinformation .

Analyse, conception et ralisation dune application de base de donnes



Nous.avons.prsent.quelques.principes.de.construction.des.diagrammes.
de.cas.dutilisation ..Nous.allons.maintenant.poursuivre.ltude.de.la.modlisation.du.fonctionnement.dun.systme.dinformation..travers.deux.tudes.
de.cas ..Pour.chaque.cas,.il.nous.faudra.partir.dune.description.de.certaines.
activits. dune. organisation. pour. arriver. . en. tirer. un. modle. partiel. de.
fonctionnement.de.son.systme.dinformation ..Il.sagit.dune.vue.thorique.
des.choses.car,.en.pratique,.on.ne.planche.pas.sur.un.modle.de.fonctionnement.du.systme.dinformation..partir.dune.description.des.activits.de.
lorganisation .. Le. modlisateur. doit. plutt. se. dplacer. dans. lorganisation.
ou.le.secteur.vis.par.le.projet.dautomatisation.du.systme.dinformation,.
en.tudier.les.processus.daffaires,.collecter.des.exemplaires.des.documents.
utiliss.dans.ces.processus,.discuter.avec.les.personnes.qui.traitent.les.donnes.
contenues.dans.ces.documents,.comprendre.les.rgles.de.gestion.qui.assurent.
le.bon.fonctionnement.du.systme.dinformation,.bien.assimiler.le.vocabulaire. du. domaine. ou. du. mtier. concern,. pour. finalement. produire. une.
synthse. de. cette. cueillette. dinformations. sous. la. forme. dun. modle. de.
fonctionnement.du.systme.dinformation ..Le.modle.devra.par.ailleurs.tre.
valid.avec.les.parties.prenantes.au.cours.de.sances.de.travail.qui.pourraient.
donner.lieu..des.ajustements.majeurs.o..laffinage.du.modle .
Nos.vises.tant.avant.tout.didactiques,.il.est.hors.de.question.dentraner.
le.lecteur.dans.toute.la.complexit.du.travail.dun.analyste.ou.modlisateur.
professionnel ..Nous.prfrons.proposer.une.version.simplifie.dune.situation.
et.mettre.en.lumire.lapplication.de.la.dmarche.prconise.ainsi.que.lutilisation. judicieuse. des. principes. et. des. techniques. introduits. plus. tt,. de.
manire..produire.un.modle.qui.soit.comprhensible.et.conforme..lexpos.
du.cas .



Conception de bases de donnes avec UML

Cas 4-1 TANNERIE TANBEC


(DP) partir dune description sommaire des activits de la tannerie TANBEC, proposer un
modle de fonctionnement de leur systme dinformation bien quil nexiste pas sur une base
formelle. Procder systmatiquement en tablissant dabord les frontires dun systme ne
supportant que les activits dcrites dans le cas. Identifier ensuite les acteurs principaux et
les acteurs auxiliaires. Dessiner le diagramme de cas dutilisation, et rdiger deux scnarios,
un premier dclench par un acteur, un deuxime dclench de lintrieur du systme par
une ressource interne.

nonc du cas :
La tannerie TANBEC est une petite tannerie qui travaille la demande. Les clients sont des
clients rguliers qui apportent directement les peaux tanner (en spcifiant le type de tannage
requis) ou commandent une peau tanne de surface spcifie sans fournir les peaux. Dans
chaque cas, il y a un seul type de tannage par commande. Lorsque le client se prsente, le
commis rdige une commande laide du formulaire Commande client o sont inscrites
les informations sur le client (peaux fournies ou non, nombre de peaux, surface brute des
peaux fournies, type de tannage requis). Une grille de tarification appele Tarification permet
de dterminer un prix par unit de surface tanne livre, selon que la peau est fournie ou
non pour un type de tannage donn. La commande du client comporte de plus une date
estime de livraison. Ds lors que le tannage est termin, on complte la commande en
inscrivant la date de livraison relle, la surface tanne livre, et on calcule enfin le cot total
de la commande.
Lorsque le client napporte pas les peaux, la tannerie doit commander les peaux ncessaires auprs dun de ses fournisseurs, en tenant compte de la surface nette exige. On
complte alors une Commande au fournisseur. Une commande au fournisseur spcifie la
surface brute ncessaire dun type de peau donn et reprend le prix de vente entendu lors
dune conversation tlphonique avec le fournisseur. Un seul type de peau est command au
fournisseur et cette commande rfre au client pour lequel elle est requise.
La Facture au client est mise la fin du mois pour les commandes compltes et
livres au cours du mois. On fait un suivi du solde du compte du client laide dun Dossier
client de faon ne plus prendre de commandes de sa part si ce solde est suprieur
100 $ et en souffrance depuis plus de 30 jours. Un Reu est transmis au client sur encaissement dun paiement sur facture. Par ailleurs, une Facture de fournisseur donne lieu
lenvoi au fournisseur dun paiement complet dans les 30 jours suivant sa rception.

tude du cas :
Pour bien dcrire le systme dinformation qui supporte les activits de la tannerie TANBEC,
lappellation Gestion des commandes clients et des approvisionnements serait la
plus approprie, car le systme doit agir comme mmoire la fois de ce que les clients lui
commandent mais aussi des approvisionnements qui dcoulent de ces commandes.

Analyse, conception et ralisation dune application de base de donnes

Deux acteurs se profilent nettement : le client et le fournisseur. Tous les deux dclenchent
tour de rle des services du systme dinformation. Dabord le client en soumettant sa
commande et le fournisseur en livrant les peaux commandes et en mettant sa facture. Il
sont nettement hors des frontires du systme. Quant au commis qui complte la commande
du client ou qui procde une commande un fournisseur, il sagit bien dune ressource
interne au systme dinformation et non dun acteur externe.
Le dcoupage en cas dutilisation doit reflter les processus de gestion de la tannerie.
Elle reoit une commande qui peut exiger ou non la prestation dun fournisseur, elle reoit
du fournisseur le matriel requis, elle livre au client le produit fini. Elle facture son client, paie
son fournisseur et encaisse le paiement du client. Chacune de ces activits peut donner lieu
un cas dutilisation diffrent car il est dclench par un vnement donn, dont la source
est soit un acteur soit une ressource interne au systme.
Le diagramme de cas dutilisation suivant reflte assez fidlement le fonctionnement
du systme dinformation.

Gestion des commandes clients


et approvisionnements
Livraison client

Client
Facturation client

Encaissement
paiement
Prise de commande
client
Rception
fournisseur

Fournisseur

Paiement
fournisseur





Conception de bases de donnes avec UML

Le cas dutilisation Prise de commande client est le premier qui a t mis en


vidence car il fait intervenir les deux acteurs la fois. Il initie une cascade dactivits qui
se succderont pour assurer la gestion des commandes et approvisionnements. Il met en
cause lacteur Client comme dclencheur et lacteur Fournisseur comme prestataire de
services. Le cas stipule que si une commande de client ne comporte pas de peaux, une
commande un fournisseur doit tre faite pour donner suite la commande du client. Les
services de ce cas dutilisation se droulent dans un mme temps.
Le cas Rception fournisseur est dclench par lacteur Fournisseur lorsque ce
dernier livre les peaux commandes. Il est donc dclench par un vnement autre que
celui qui a dclench la Prise de commande client et surtout par un autre acteur. Il sagit
bien de deux cas diffrents.
Le cas Livraison client est dclench de lintrieur mme du systme ds lors quune
commande client a t excute. La Facturation client est dclenche de lintrieur du
systme mais dans un temps diffrent que la Livraison client, car le mode dopration de
la tannerie montre clairement que la facturation ne seffectue qu la fin du mois pour tous
les clients dont une ou des commandes ont t ralises au cours du mois qui se termine.
Deux vnements dclencheurs diffrents justifient ici deux cas dutilisation.
Le cas Encaissement paiement est dclench par lacteur Client lors de la rception
de son paiement. Par ailleurs, la rception dune facture de lacteur Fournisseur dclenche
le cas Paiement fournisseur.
Ce nest pas une rgle absolue que de suggrer quun vnement dclencheur devrait
donner lieu un cas dutilisation. Tout dpend de la complexit du systme modliser.
Rappelons que le modle de fonctionnement du systme dinformation doit donner une vue
densemble du contexte dun systme. Un trop grand nombre de cas dutilisation peut rendre
lexercice futile. Aussi, pour les systmes de grande envergure, le modlisateur choisira des
cas dutilisation regroupant ventuellement plusieurs services. Chaque cas pourrait alors tre
dclench par un vnement principal suivi dvnements subsidiaires qui lui sont logiquement lis et pris en charge lintrieur du mme cas dutilisation de manire viter un trop
grand clatement des cas dutilisation. Cest ce que nous avons fait pour le systme Gestion
acadmique avec le cas Gestion demandes dadmission. Lvnement dclencheur
principal du cas est la demande soumise par ltudiant. Le cas prend par ailleurs en charge
des vnements subsidiaires tels que la confirmation par ltudiant de son acceptation ou
la demande de production par une direction de programme dun tat des tudiants admis et
confirms. Au del de dix ou quinze cas dutilisation, la comprhension dun modle pourrait
tre compromise, notamment cause du croisement des arcs liant les cas aux acteurs.
Considrons maintenant la rdaction des scnarios des cas dutilisation. Pour cet
exercice, nous retiendrons le cas Prise de commande client dclench par le client et
Facturation client dclench de lintrieur du systme.

Analyse, conception et ralisation dune application de base de donnes

Chaque scnario principal devrait dbuter par lidentification de lvnement principal


qui dclenche le cas. Le scnario doit imprativement faire tat des documents et des formulaires utiliss dans les activits dcrites aux scnarios et qui agissent comme mmoire
de donnes pour le systme dinformation. Ces documents sont identifis en caractres gras
dans les scnarios.
Scnarios
Principal

Cas dutilisation :
Prise de commande client
Le Client se prsente pour passer une commande.
Sil sagit dun client connu, le commis sassure quil ny a pas au
Dossier client un compte payer de plus de 100$ et en souffrance
depuis plus de 30 jours.
Le commis rdige une commande laide du formulaire Commande
client o sont inscrites en outre les informations sur le client
(peaux fournies ou non, nombre de peaux, surface brute des peaux,
type de tannage requis).

Alternatif : Le client
ne fournit pas les
peaux tanner

laide dune grille de tarification appele Tarification le commis inscrit


sur la commande un prix par unit de surface tanne livre, selon que la
peau est fournie ou non pour un type de tannage donn. Il note de plus
sur la commande du client une date estime de livraison.
Lorsque le client napporte pas les peaux, la tannerie doit commander
les peaux ncessaires auprs dun de ses fournisseurs en tenant compte
de la surface nette exige.
Le commis doit trouver un fournisseur pour le type de peau requis et pour
la surface exige par le client. Il complte alors une Commande au
fournisseur. Une commande au fournisseur spcifie la surface brute
ncessaire dun type de peau donn et reprend le prix de vente convenu
lors dune conversation tlphonique avec le fournisseur. Un seul type
de peau est command par commande au fournisseur et la commande fait
rfrence au client pour lequel elle est requise.

Scnario
Principal

Cas dutilisation : Facturation client


La facturation des clients est effectue par un commis le dernier jour
du mois.
Une Facture au client est mise pour toutes les commandes compltes
et livres au cours du mois. Elle est transmise au client.
Le commis met jour au Dossier client le solde du compte recevoir
en y incluant la nouvelle facture mise.





Conception de bases de donnes avec UML

Bien quincomplet, car les scnarios de cas dutilisation ne sont pas tous rdigs, le
modle de fonctionnement du systme dinformation de la tannerie TANBEC rpond bien
aux objectifs poursuivis avec un tel modle :
1. Le modle de fonctionnement du systme dinformation constitue une reprsentation
graphique du contexte du systme et met en vidence les sources de donnes externes ; il
permet dinventorier les formulaires et les documents qui sont la source des donnes
persistantes du systme.
2. Il assure une reprsentation de ce que le systme fait et donc de ses fonctionnalits
telles que vues par les acteurs.
3. Il fournit un dcoupage fonctionnel du systme dinformation qui servira de base
la planification de la ralisation dune application de base de donnes.

Analyse, conception et ralisation dune application de base de donnes

Cas 4-2 CLUB DE VOILE


(DP) partir dune description sommaire des activits dun club de voile, proposer un modle
de fonctionnement de leur systme dinformation bien quil nexiste pas sur une base formelle.
Procder systmatiquement en tablissant dabord les frontires dun systme ne supportant
que les activits dcrites dans le cas. Identifier ensuite les acteurs principaux et les acteurs
auxiliaires. Dessiner le diagramme de cas dutilisation, et rdiger tous les scnarios.

nonc du cas :
Le club de voile planifie en janvier de chaque anne les rgates quil compte organiser pour
une saison donne. Cest la responsabilit de son comit de rgate. Une rgate peut comporter plusieurs tapes, chaque tape est caractrise par un lieu, un jour et une date prvue
de dpart. Il arrive cependant que la date de dpart dune tape puisse changer ou mme
quune tape soit annule. Le comit de rgate est responsable de prendre de telles dcisions
et den informer les clubs associs et les skippers inscrits.
Avant le dbut de la saison, le club transmet son calendrier de rgates aux autres
clubs de voile associs la Fdration de voile du Qubec et rpond leurs demandes
dinformation. Ce calendrier est transmis sur un document appel Calendrier des rgates
de la saison. Chaque skipper est responsable dinscrire un voilier une rgate sur la Fiche
dinscription. Linscription porte sur une seule rgate. Le Skipper doit joindre un chque
vis couvrant les frais dinscription. Pour des raisons dassurance, le comit de rgate exige
que tout participant une rgate soit licenci de la fdration qubcoise de voile (FVQ). Il
faut donc que le skipper (chef de bord effectuant linscription et capitaine du voilier) fournisse
au comit au moment de son inscription le numro FVQ du skipper ainsi que des membres
de son quipage. Le comit sassure quils sont tous inscrits sur la Liste des licencis de
la FVQ pour confirmer leur inscription. Cette liste est commande priodiquement la
Fdration par le club.
Il y a deux types de licence, les skippers (S) et les quipiers (E). Le skipper doit tre
le mme pour toutes les tapes dune rgate mais lquipage peut changer chaque tape.
Un mme voilier peut tre skipp par diffrents skippers licencis dune rgate lautre. Les
noms des membres de lquipage doivent tre communiqus au plus tard deux heures avant
le dpart dune tape.
Ce sont les voiliers qui sont inscrits au classement dune rgate et non pas les skippers.
Un voilier est connu par son nom, sa longueur et lanne de sa construction. Du point de
vue des rgates, chaque voilier appartient une classe (il y a 3 classes en vigueur actuellement) et possde un rating. Un rating est une sorte de handicap qui permet de faire
concourir des voiliers diffrents et de calculer le temps compens (en multipliant le temps
rel par le rating).



0

Conception de bases de donnes avec UML

Le comit dresse une Liste des participants une rgate. Elle servira de base
pour compiler un classement par tape, un classement par rgate et un classement par
saison. Ces documents de classement portent respectivement les noms Classement dune
tape, Classement de la rgate, Classement de la saison. On retrouve deux types de
classement applicables pour une rgate : le classement en temps rel et le classement en
temps compens. Pour chaque tape et chaque rgate, seul un classement bas sur les
temps compenss est donn. Tous ces classements sont publis et remis aux skippers
participants.
Chaque tape doit tre supervise par un juge. Au dbut de la saison, aprs avoir pris
connaissance du Calendrier des rgates de la saison, les juges indiquent toutes les
tapes pour lesquelles ils sont disponibles. Le comit affecte par la suite un juge pour chaque
tape en fonction de leurs disponibilits. Entre autres fonctions, les juges doivent recueillir
les rclamations. Chaque document Rclamation est numrot et le juge y inscrit les parties
prenantes, voiliers et skippers, ainsi quun rsum de lobjet du litige. Une rclamation est
faite dans le contexte dune tape et dpose auprs du juge prsidant ltape par le skipper
dun voilier. Elle peut concerner plusieurs voiliers incrimins.

tude du cas :
Les activits dcrites dans le cas mettent en lumire lOrganisation de rgates. Cest
pourquoi nous avons retenu ce nom pour le systme dinformation qui les supporte. Le nom
montre bien la porte du systme qui ne concerne aucunement les autres activits du club,
telles que linscription des membres du club ou sa gestion financire par exemple.
Considrant son rle dans linscription dun voilier et de son quipage une rgate,
un acteur principal merge : le skipper. Il agit nettement comme lment dclencheur de
services. Dautres acteurs de moindre importance sont prsents notamment titre de prestataires de services ou bnficiaires de services. La Fdration de voile du Qubec qui
fournit une Liste des services licencis de la FVQ est du nombre des prestataires. Cette
liste permet au club daccepter ou de rejeter une inscription une rgate. Tout club associ
est aussi un acteur car le systme produit leur intention un Calendrier des rgates de
la saison. On doit le considrer comme un bnficiaire de services et, ce titre, comme
acteur principal.
Un grande question se pose sur le rle jou par le juge. Agit-il titre de ressource du
systme ou dacteur externe ? Son rle consiste sanctionner le classement des voiliers
inscrits une rgate et recevoir les rclamations en cas de litige. Il sagit dactivits internes
au systme, probablement encadres par des protocoles et des procdures inhrentes au
systme dinformation. Il faut prendre garde ici de confondre le rle dune personne dans
une organisation et son appartenance lorganisation. Le juge nest pas obligatoirement
membre du club, il pourrait donc tre externe lorganisation. Nanmoins cela nen fait pas
un acteur externe dans le contexte du systme dinformation qui supporte lorganisation des
rgates. Il en est un rouage essentiel, au mme titre que les personnes qui prparent le
calendrier des rgates ou traitent les inscriptions des skippers et de leurs voiliers.

1

Analyse, conception et ralisation dune application de base de donnes

Nous identifions donc trois acteurs :


le Skippeur, acteur principal, qui agit comme dclencheur de services
le club associ, acteur principal mais bnficiaire de services
La Fdration de voile du Qubec, acteur auxiliaire car prestataire de services.
Le diagramme de cas dutilisation que nous proposons ne retient que ces trois acteurs.
Il met en uvre la fois des cas dutilisation dclenchs par les acteurs et des cas dclenchs
par les ressources internes du systme.

Organisation de rgates
Planification des
rgates

Club associ
Inscription la
rgate

Skipper

Tenue du
classement de rgate
FVQ
Traitement de
rclamation

Tenue du
classement de la saison

Notre discussion portera dans un premier temps sur les cas dutilisation dclenchs
par les acteurs et dans un deuxime temps sur ceux dclenchs par les ressources du
systme.



Conception de bases de donnes avec UML

Lacteur Skipper dclenche deux cas dutilisation dans deux temps diffrents. Seul le
Skipper peut dclencher une inscription une rgate ou bien encore le traitement dune
rclamation comme le dcrivent les scnarios suivants.
Scnarios
Principal

Cas dutilisation : inscription la rgate


Le Skipper complte une Fiche dinscription pour inscrire son voilier
une rgate en mentionnant notamment le nom du voilier et des membres
de son quipage avec pour chacun leur numro de licence FVQ. Il y joint
un chque couvrant les frais dinscription.
Le comit de rgate prend connaissance de la Fiche dinscription et
sassure, en consultant la liste Licencis de la FVQ, que le skipper
possde une licence de type S et que chaque quipier est membre en rgle
de la FVQ.
Si tout est en rgle, le comit inscrit le voilier et son skipper dans la classe
demande sur la liste Participants une rgate. Sinon linscription
est rejete et le comit demande au Skipper de soumettre une nouvelle
inscription.
Lorsque le skipper apporte des changements son quipage, la liste
Participants une rgate est mise jour pour reflter le changement
dquipage touchant une ou plusieurs tapes. Aucun changement nest
accept moins de deux heures avant le dbut dune tape. Pour assurer
cette vrification, on doit conserver, pour chaque changement dquipage,
la date et lheure du changement.

Scnarios
Principal

Cas dutilisation : traitement de rclamation


la fin dune tape dune rgate, un skippeur soumet au juge de la rgate
une rclamation.
Le juge contact complte un document Rclamation prnumrot et
y inscrit les parties prenantes, voiliers et skippers, ainsi quun rsum
de lobjet du litige.
Le litige ne doit concerner quune seule tape dune rgate.
Aprs avoir pris en dlibr la rclamation, le juge rend son verdict.
Celui-ci peut comporter une sanction sous forme de pnalit de temps
impose un ou des voiliers viss par la rclamation. La sanction peut
donc mener un changement au classement de ltape.
Son verdict est sans appel.

Analyse, conception et ralisation dune application de base de donnes

Le lecteur pourra noter, dans ce dernier cas dutilisation, quil offre plus de dtails sur
le traitement dune rclamation que lnonc de ltude de cas nen fait tat. Nous voulons
ainsi mettre en vidence le rle que joue le scnario dans lidentification prcise des donnes
gnres lors dune activit de gestion et surtout limportance de viser lexhaustivit. Dans
le scnario Traitement de rclamation, les donnes sur le verdict et la sanction impose
par le juge constituent des donnes dont il faudra sans doute assurer la persistance. Il
incombe au modlisateur de faire ressortir dans chaque scnario toutes les activits
susceptibles de gnrer des donnes persistantes.
Considrons maintenant les cas dutilisation dclenchs par les ressources internes
du systme dinformation. Il savre que tous les autres cas dutilisation sont dans cette
catgorie. Procdons la rdaction des scnarios sur la base de la chronologie des vnements qui dclenchent les scnarios.
Scnarios
Principal

Cas dutilisation : Planification des rgates


Le cas dbute au dbut dune anne de calendrier. Le comit de rgate
se runit alors pour planifier les rgates qui seront tenues durant la saison
estivale de lanne.
Une rgate peut comporter plusieurs tapes. Chaque tape est caractrise
par un lieu, un jour et une heure prvue de dpart. Chaque rgate prvue
est inscrite au document Calendrier des rgates de la saison.
Le Calendrier est transmis tous les clubs associs avant le dbut de
la saison.
Le comit de rgate transmet aussi le calendrier aux juges qui ont agi
ce titre aux cours des saisons passes en leur demandant dindiquer
leurs disponibilits pour les rgates courir lors de la prochaine saison.
Chaque tape doit tre supervise par un juge. Les juges consults
fournissent toutes les tapes pour lesquelles ils sont disponibles ;
le comit affecte par la suite un juge pour chaque tape en fonction
de leurs disponibilits.
Lorsque des changements sont apports au Calendrier des rgates
de la saison, telle une modification une date de dpart ou lannulation
dune tape, les clubs associs en sont informs. De plus, si des
inscriptions ont t reues pour une rgate affecte par un changement,
les skippers inscrits en sont aussitt informs.





Scnarios
Principal

Conception de bases de donnes avec UML

Cas dutilisation : tenue du classement de rgate


Le cas dbute lorsquune tape est courue. Le juge compile lheure de
dpart et darrive de chaque voilier puis calcule leur temps rel et leur
temps compens.
Du point de vue des rgates, chaque voilier appartient une classe (il y a
3 classes en vigueur actuellement) et possde un rating. Le rating est
utilis pour calculer le temps compens en multipliant le temps rel par
le rating du voilier.
Il tablit alors un classement de ltape, sur le document Classement
dun tape, dress selon le temps compens de chaque voilier
participant dans une classe donne.
Si une rclamation donne lieu une sanction pour un voilier incrimin,
le verdict du juge peut entraner un ajout au temps compens dun ou
de plusieurs voiliers. Cet ajustement au temps compens peut entraner un
nouveau classement de ltape.
Lorsque toutes les tapes dune rgate sont courues, il tablit un
classement final pour la rgate en additionnant les temps compenss
de chaque voilier dans chaque classe. Ce classement est publi dans
le document Classement de la rgate qui est remis aux skippers
inscrits la rgate.

Scnarios
Principal

Cas dutilisation : tenue du classement de la saison


Le comit se runit la fin dune saison. Il tablit alors un classement
des voiliers participant toutes les rgates laide du document
Classement de la saison.
Le classement dun voilier dans une rgate lui confre un certain nombre
de points au classement final de la saison. Une premire place donne
10 points, une deuxime 7 points, etc. Le total des points accumuls au
cours dune saison pour chaque voilier inscrit aux rgates du club fournit
son classement pour la saison dans la classe laquelle il appartient.
Le document Classement de la saison est transmis tous les
skippers des voiliers inscrits au cours de la saison.

On constate que le dernier scnario fait ressortir des dtails sur le calcul du classement
dune saison que lexpos de ltude de cas ne fournit pas. Rappelons quil est impratif que
les scnarios fassent tat des donnes gnres par une activit de gestion et en particulier,
lorsquil y a calcul dune donne numrique, le scnario doit faire tat de sa mthode de
calcul.
Les scnarios de cas dutilisation ont tous t rdigs. Le modle de fonctionnement
du systme dinformation pour la gestion des rgates rpond bien aux objectifs poursuivis
avec un tel modle :

Analyse, conception et ralisation dune application de base de donnes

1. Le modle de fonctionnement du systme dinformation constitue une reprsentation


graphique du contexte du systme et met en vidence les sources de donnes externes ;
il permet dinventorier les formulaires et les documents qui sont la source des donnes
persistantes du systme ; il permet de faire voir de plus comment une donne est gnre,
par exemple de quelle manire on fait le choix des juges pour une tape ou on tablit le
classement dun voilier pour une saison de rgate.
2. Il assure une reprsentation de ce que le systme fait et donc de ses fonctionnalits telles
que vues par les acteurs.
3. Il fournit un dcoupage fonctionnel du systme dinformation qui pourra servir de base
la planification de la ralisation dune application de base de donnes.





Conception de bases de donnes avec UML

inventaire des documents exploits dans le systme dinformation


et recensement des donnes persistantes
La. production. dun. modle. de. fonctionnement. du. systme. dinformation.
nest. pas. un. exercice. sans. suite .. Il. devrait. permettre. au. modlisateur. de.
recenser.les.donnes.persistantes.du.systme.dinformation.en.vue.den.faire.
un.modle.conceptuel.de.donnes ..Mais.comment.y.arriver.?
Nous.proposons.la.dmarche.suivante.:
1 ..Parcourir. tous. les. scnarios. des. cas. dutilisation. et. faire. linventaire. des.
documents.mentionns.;
2 ..tablir.la.structure.de.donnes.de.chaque.document.sous.la.forme.dun.
descriptif.du.document.tel.que.prconis.au.chapitre.1.;
3 ...la.lecture.des.scnarios,.relever.les.donnes.gnres.dans.le.cadre.dune.
activit. qui. ne. sont. pas. ncessairement. prsentes. dans. les. documents.
identifis.dans.les.scnarios.;
4 ..Dterminer.enfin,.parmi