Jean-Yves Février
Développement d’applications
informatiques et génie logiciel
Cours 1 (Merise)
La place de l’analyse
Dans le référentiel
Le cours que vous êtes en train de lire vous permettra d’acquérir la pratique de la méthode d’ana-
lyse Merise.
C’est un cours essentiel pour le BTS informatique de gestion car, dans cette branche de l’infor-
matique, la programmation doit impérativement être précédée d’une phase d’analyse pour bien
cerner le travail à effectuer.
Dans le référentiel de la formation, ce cours est inclus dans le savoir S3 DAIGL (Développement
d’Applications Informatiques et Génie Logiciel) avec la programmation. Plus précisément, nous
traiterons ici le savoir S32 du référentiel intitulé « Analyse et conception de systèmes logiciels :
méthodes et outils ».
Les neuf séquences de ce cours abordent les différents concepts du savoir S32.
Dans la formation
En formation initiale (en lycée), la première année s’étend sur 35 semaines, le volume horaire
hebdomadaire de l’analyse étant 2 heures de cours et 1 heure et demie de travaux dirigés. Cela
représente plus de 120 heures !
Faut-il donc passer 120 heures sur ce support ? Non, sans doute pas, car bien qu’apportant les
mêmes connaissances (vous n’êtes pas volé !) il est présenté de façon plus concise et l’apprentis-
sage est plus rapide. Néanmoins, il ne faut pas espérer maîtriser l’analyse en lisant d’une traite ce
cours. Vous devez apprendre à passer du temps sur les concepts présentés.
En effet, il y a une grande différence entre « comprendre plus ou moins le principe » et « parfaite-
ment assimiler un concept ». Dans le premier cas, le savoir n’est pas assimilé et cela vous bloquera
dans la suite du cours ; dans le second cas, tout ira bien.
Pour chacun des concepts que nous verrons, il faudra d’une part apprendre parfaitement sa défini-
tion (travail de mémoire) et d’autre part identifier ce que cela signifie (travail de compréhension).
Quand on commence un nouveau cours, on est toujours dubitatif face à tous les concepts et défi-
nitions. Certes, c’est du jargon et on a toujours l’impression que l’on passe son temps à redéfinir
des notions déjà connues. Ce n’est pas tout à fait vrai : il est nécessaire de tout redéfinir pour évi-
ter l’à-peu-près. On rencontrera d’ailleurs de nombreux cas où l’à-peu-près n’est pas acceptable.
3
8 3932 TG PA 01
Séquence 1
Le cours est constitué de deux fascicules : le cours proprement dit et un fascicule « autocorrection »
contenant la correction de tous les exercices.
Organisation
Le fascicule de cours contient différentes choses :
• neuf séquences de cours correspondant aux savoirs de S32 ; à la fin de chaque séquence, vous
trouverez une fiche « synthèse » vous rappelant les choses essentielles (à apprendre !) ;
• des exercices intégrés aux séquences de cours. Vous devez faire ces exercices quand vous arri-
vez dessus puis aller consulter la correction. Attention, ces exercices permettent de vérifier
votre assimilation du cours. Leur corrigé, très détaillé, ne doit pas être négligé : j’y présente
des situations, des techniques, des idées et des raisonnements qui ne sont pas anecdotiques
et font partie intégrante du cours. S’ils n’y sont pas physiquement, c’est uniquement pour
conserver une certaine lisibilité au document ;
• trois séries d’exercices jouant le rôle de travaux dirigés. Elles sont placées à des endroits stra-
tégiques du cours ;
• une étude de cas et d’analyse grandeur réelle équivalent à un BTS blanc. À faire à la fin de
l’année, il reprend tous les concepts abordés dans le cours.
Le fascicule de correction comprend :
• la correction des exercices intégrés aux séquences ;
• la correction des séquences de TD ;
• la correction de l’étude de cas.
En plus de vous donner la solution des exercices, j’ai essayé de détailler ces corrections pour envi-
sager les différentes solutions possibles, les erreurs à éviter… Plus que des corrections, ce sont de
véritables éléments de cours. Il ne faut donc pas les prendre à la légère !
Contenu
Les neuf séquences abordent cinq notions distinctes mais néanmoins liées :
• le modèle conceptuel des données (MCD) est étudié de la 1re à la 4e séquence avec un
complément dans la 6e ;
• la 5e séquence fait un sort au modèle logique des données (MLD) ;
• les dépendances fonctionnelles et leur utilisation pour construire le MCD sont étudiées dans
les 7e et 8e séquences. La 8e séquence aborde également le dictionnaire des données ;
• le graphe acteur/flux est disséqué dans la 9e séquence.
Vous remarquerez que le découpage des séquences ne correspond pas aux notions étudiées puis-
que, si le MLD tient en une séquence, le MCD s’étale sur cinq séquences. En effet, les séquences
ont été définies pour vous aider à établir votre progression. Elles représentent donc approxima-
tivement un volume de travail identique. Le découpage n’est néanmoins pas arbitraire : les diffé-
rents concepts ont été répartis au mieux pour que chaque séquence reste cohérente.
Notations
Pour vous aider à identifier les différents constituants du cours, j’ai utilisé les représentations
suivantes :
• tous les paragraphes dont les caractères sont en couleur doivent être appris par cœur.
Cela correspond aux définitions ou explications qu’il est absolument nécessaire de connaître
pour s’en sortir en analyse. Quand je dis apprendre, ce n’est pas retenir pour l’heure qui suit afin
d’épater les convives au prochain repas. Il s’agit d’une vraie leçon, dont vous devez vous souvenir
tout au long de votre vie d’informaticien, ou, plus prosaïquement, au moins jusqu’à l’examen.
Ces informations sont reprises à la fin de chaque séquence dans la fiche « synthèse » ;
4
8 3932 TG PA 01
Introduction
• les exercices intégrés dans les séquences et destinés à vérifier votre compréhension sont numé-
rotés et présentés sur fond couleur. Il faut donc les faire au fur et à mesure de la lecture du
cours. Leur correction se trouve dans le fascicule « autocorrection ».
Quelques conseils
Le seul conseil utile que je puisse vous donner est de garder à l’esprit la fable de La Fontaine
Le lièvre et la tortue : il ne sert à rien de travailler comme un fou en juin ; travaillez plutôt dès
maintenant quelques heures par semaine ré-gu-li-è-re-ment (j’aurais pu écrire régulièrement ou
RÉGULIÈREMENT, mon but étant juste d’insister sur le mot).
La difficulté de l’enseignement par correspondance réside dans le fait que, par définition, vous
êtes seul face au cours, personne n’est là pour vous guider, insister sur l’essentiel ou établir la
progression du cours.
Pour vous aider à suivre un rythme correct, une durée indicative est mentionnée en tête de chaque
séquence.
Attention ! Vous avez sans doute le souvenir de vos études où, pour obtenir un même résultat,
certains travaillaient toute la soirée et d’autres se contentaient d’être présents en cours. Il en est de
même ici. Par exemple, si 4 heures sont indiquées, ce n’est qu’un ordre de grandeur.
Cela signifie juste que 15 minutes, ce n’est pas assez, mais 25 heures, c’est trop.
Retenez qu’il vaut mieux passer 8 heures sur une séquence et la comprendre parfaitement, que
faire exactement 240 minutes (4 heures) en passant à côté de l’essentiel.
De plus, le cours contient des dizaines de petits exercices à faire au fur et à mesure. Plus vous pas-
serez du temps dessus (et c’est conseillé), plus vous risquez de dépasser les durées indiqueés.
Sommaire
Séquence 1 : Introduction 7
Séquence 2 : MCD : les concepts de base 1/2 17
Séquence 3 : MCD : les concepts de base 2/2 29
Travaux dirigés 1 51
Séquence 4 : MCD : fin 57
Séquence 5 : le MLD 71
Séquence 6 : règles de validation du MCD 89
Travaux dirigés 2 103
Séquence 7 : les dépendances fonctionnelles (théorie) 107
Séquence 8 : les dépendances fonctionnelles (utilisation) 121
Travaux dirigés 3 145
Séquence 9 : graphe acteurs/flux 151
Étude de cas récapitulative 167
5
8 3932 TG PA 01
Séquence 1
Introduction
Durée indicative : 2 heures
Capacités attendues
• Percevoir l’importance et le rôle de l’analyse
• Maîtriser le vocabulaire et la démarche de la méthode Merise
Contenu
1. Introduction à l’analyse ....................................................................... 8
1A. Pourquoi l’analyse ? ..................................................................................... 8
1B. L’informatique de gestion ........................................................................... 8
1C. Les méthodes d’analyse ............................................................................. 10
3. Programme de la formation............................................................. 13
7
8 3932 TG PA 01
Séquence 1
1. Introduction à l’analyse
8
8 3932 TG PA 01
Introduction
En effet, on va manipuler non plus de « bêtes » chiffres, mais des objets réels.
Voici quelques exemples classiques d’objets manipulés en gestion :
• un client, caractérisé par son nom, son adresse, son téléphone ;
• un produit, caractérisé par son nom, son type, sa marque, son prix ;
• un fournisseur, caractérisé par son nom et son adresse.
De plus, il va falloir gérer la façon dont tous ces objets interagissent entre eux.
Prenons l’exemple suivant :
L’entreprise que l’on étudie achète le produit Pomme de terre au fournisseur LaFritte,
épluche, coupe et cuit ce produit puis le revend au client MacRé.
Cela semble simple ? Certes ! Mais c’est un cas d’école. Dans la réalité, l’entreprise va
mettre en concurrence plusieurs fournisseurs par produit, elle livrera beaucoup de
clients, emploiera des acheteurs qui négocieront les prix auprès des fournisseurs et des
commerciaux qui tenteront de convaincre des prospects (clients potentiels) d’acheter
leurs produits. Bien entendu, acheteurs et commerciaux seront rémunérés avec un fixe
plus une commission proportionnelle à leur résultat et à leur ancienneté. Évidemment, il
faut tenir compte des différents contrats possibles (CDD, CDI, stage), des congés, arrêts
maladie… J’oubliais les états fiscaux à sortir, les déclarations de TVA, d’URSSAF.
Si maintenant je vous demande de me donner la liste des commerciaux ayant plus de cinq
ans d’ancienneté et ayant réalisé moins de 80 % de leur objectif, comment ferez-vous ?
Deux solutions : soit vous compulsez pendant des heures des classeurs pleins de chiffres
pour trouver ceux dont vous avez besoin, puis vous faites les calculs. Et si ce n’est plus
cinq ans d’ancienneté, mais dix ? Il faut tout refaire. Seconde solution, vous utilisez un
programme informatique et, en quelques secondes, vous obtenez le résultat.
Mais comment fera le programme ? Exactement comme vous, mais en plus rapide. Il va
prendre la liste des commerciaux et ne conservera que ceux qui ont plus de cinq ans
d’ancienneté. Pour chacun d’eux, il comparera l’objectif avec le résultat. Si ce dernier est
inférieur à 80 % de l’objectif, il l’imprimera. Et l’utilisateur obtient la liste.
On voit ici la complexité du stockage des données : avoir deux listes indépendantes, la
liste des commerciaux d’un côté et la liste de leur objectif de l’autre, cela n’apporte rien.
Ce qu’il faut, c’est obtenir, pour un commercial donné, l’objectif qui lui est fixé. Bref, on
a besoin de relier les données entre elles de façon cohérente.
De même, on ne peut pas mélanger clients et fournisseurs : pas question d’envoyer un
chèque au client au lieu d’une facture ! On peut multiplier les exemples à l’envi : que le
CNED possède toutes les notes des inscrits ne sert à rien s’il ne peut pas attribuer la note
à l’étudiant concerné.
L’entreprise possède donc des données (liste des clients, fournisseurs, produits, compta-
bilité), dont l’ensemble forme le système d’information de l’entreprise. C’est une posses-
sion immatérielle, au contraire de bâtiments, d’outils, de véhicules… mais c’est la plus
importante car elle est irremplaçable et unique.
9
8 3932 TG PA 01
Séquence 1
å En fait, les méthodes d’analyse modélisent les données mais aussi les traitements (ce que l’on fait).
Mais l’essentiel du travail reste la gestion des données, sur laquelle on travaille cette année.
10
8 3932 TG PA 01
Introduction
Cette définition n’a l’air de rien, mais, comme souvent, chaque mot possède un sens très
précis qu’il faut comprendre :
« Technique »
« Ensemble de procédés employés pour [...] obtenir un résultat déterminé. » (Petit Robert)
Cela signifie que l’utilisation d’une méthode d’analyse ne se fait pas « au pif », mais en
utilisant une démarche et des règles précises, qui sont l’objet de ce cours.
« Modélisation du réel »
Représentation simplifiée mais fiable (correcte) du monde réel, qui permet une compré-
hension plus aisée de la réalité.
« Représentation normalisée »
Permet que toute personne connaissant la méthode puisse lire la modélisation et donc
assimiler le réel sous-jacent.
Je reviens sur mon grand mot : l’informatique n’a rien inventé. Ce besoin de représenter
la réalité de façon précise et codifiée n’est pas nouveau. C’est le rôle du dessin technique
par exemple.
Le travail d’analyse, fait par un analyste, consiste donc à comprendre parfaitement le réel
(comment l’entreprise fonctionne, quelles données elle manipule, ce qu’elle fait), puis à le
représenter. Ce n’est pas du tout évident car il faut obtenir les informations, les agencer…
La représentation obtenue (l’analyse) sera la base de travail du programmeur, qui pro-
grammera ce qui est modélisé. Il n’aura donc pas à faire l’effort de comprendre le réel.
Pour un petit projet, analyse et programmation peuvent être faites par une seule per-
sonne : un analyste-programmeur. Mais cela ne veut pas dire qu’il faut négliger l’analyse.
Car, répétons-le encore, sans travail d’analyse, il n’y a pas de compréhension du réel ;
l’informatisation sera donc nécessairement un échec.
Pour un gros projet, on aura plusieurs personnes pour réaliser l’analyse, puis une équipe
de programmeurs créant le programme, d’autres personnes étant chargées des tests
pour vérifier que le programme respecte bien l’analyse.
2. La méthode Merise
Cette partie n’est qu’une sensibilisation aux principes de la méthode Merise. Ne vous
inquiétez pas si cela ne vous semble pas très clair. C’est normal puisque vous n’avez pas
encore commencé le cours. Il serait judicieux de relire cette partie dans quelques semai-
nes. Tout s’éclairera !
La méthode d’analyse la plus utilisée en France dans l’informatique de gestion est la
méthode Merise, développée en 1979 par des industriels et universitaires français. C’est
elle que nous étudierons dans ce cours.
Merise modélise séparément les données et les traitements. Expliquons ces termes.
11
8 3932 TG PA 01
Séquence 1
Traitements
C’est ce que l’on fait (en cuisine, ce serait la recette). La modélisation des traitements
permet de décortiquer la façon dont le travail est fait, ce qui permet ensuite de l’infor-
matiser en écrivant un programme. C’est ici que l’on dira que l’entreprise de location
d’espaces publicitaires installe un panneau après avoir reçu une commande d’un client,
envoie la facture après l’installation du panneau et éventuellement une relance si la
facture n’est pas payée au bout d’un mois.
Chacune de ces modélisations (données et traitements) se fera en trois étapes successi-
ves, du plus abstrait au plus concret. Ces étapes, appelées niveaux de modélisation, sont
dans l’ordre le niveau conceptuel, le niveau logique et enfin le niveau physique.
De même, en construction, on va dessiner le plan d’une maison (conceptuel), puis on
choisit les matériaux (logique), enfin on réalise la construction (physique).
12
8 3932 TG PA 01
Introduction
En pratique, une informatisation réussie suivra le schéma suivant (on laisse de côté les
traitements) :
Compréhension Développement
Élaboration Élaboration
du métier de la base
du MCD du MLD
à informatiser de données
3. Programme de la formation
En première année, on étudiera les niveaux conceptuels et logiques des données (c.-à-d.
les MCD et MLD).
En seconde année, vous étudierez le reste. Notons que, depuis 1979, les techniques et
outils de programmation ont évolué. La méthode Merise également. Vous verrez donc
aussi en seconde année les extensions de Merise.
Vous pouvez maintenant apprécier la cohérence de l’organisation de vos cours :
• vous devez étudier l’analyse et l’algorithmique en parallèle ;
• ces deux savoirs étant acquis, vous pouvez ensuite étudier Access.
On retrouve le schéma de développement précédent : d’abord l’analyse puis la création
de la base de données. Les cours d’informatique ne sont pas du tout indépendants !
Comme promis, le paragraphe suivant synthétise toutes les informations importantes de
cette séquence. Il faut donc l’apprendre !
13
8 3932 TG PA 01
Synthèse
Les trois étapes MCD, MCT et MLD sont incontournables. L’essentiel de la forma-
tion portera sur elles.
15
8 3932 TG PA 01
Séquence 2
MCD : les concepts de base 1/2
Durée indicative : 5 heures
Dans cette séquence, nous allons étudier une partie des constituants élémentaires
du MCD. Nous allons apprendre ce que sont les entités, les propriétés et les associa-
tions. Nous verrons également comment représenter graphiquement ces notions.
u Capacités attendues
• Maîtriser le vocabulaire de Merise
• Assimiler les concepts véhiculés par ces termes
• Représenter graphiquement un MCD
u Contenu
1. Analyse du sujet ................................................................................... 18
2. Les entités ............................................................................................... 19
2A. Présentation ................................................................................................ 19
2B. Représentation graphique ......................................................................... 20
Synthèse
17
8 3932 TG PA 01
Séquence 2
1. Analyse du sujet
Nous allons travailler sur l’exemple suivant :
Le Cned vous demande de réaliser le MCD de la gestion des inscriptions de l’année sco-
laire courante en vue de son informatisation.
Bien, cela ne semble pas sorcier ! Si vous lisez ce document, c’est que vous vous êtes
inscrit au Cned ; vous connaissez donc la démarche de l’inscription, vous avez lu les con-
signes pour l’envoi des devoirs… sur cet exemple précis, vous avez donc l’avantage de
connaître déjà le « monde réel » que l’on veut modéliser.
Peut-on donc passer immédiatement à la modélisation des données ? Non, car il y a plu-
sieurs choses à préciser ! Relisons le sujet :
« de l’année scolaire courante »
Cela signifie que le Cned ne conserve pas l’historique des inscriptions des années précé-
dentes (on dira que l’on n’historiseå pas). En fin d’année scolaire, les données relatives
aux inscriptions sont détruites. Cette précision est importante car la modélisation sera
différente selon que l’on historise ou pas.
« gestion des inscriptions »
Déjà une remarque : on ne parle que d’inscription. Inutile donc de gérer les copies, les
notes… En première approximation, la phrase du sujet signifie qu’une personne va payer
pour suivre un cours. L’objectif sera donc de gérer le lien entre les personnes et les cours
pour savoir qui s’est inscrit à quoi. Cela permettra notamment d’envoyer les cours corres-
pondant à l’inscription. Mais qu’appelle-t-on une personne ? Déjà, il vaut mieux être pré-
cis ! Les personnes concernées ne sont pas n’importe qui dans la rue, mais quelqu’un qui
suit une formation. On utilisera donc plutôt le terme d’étudiant.
De même, qu’est-ce qu’un cours ? Deux possibilités.
• Ce peut être une formation (par exemple BTS informatique de gestion).
• Ce peut être un module inclus ou non dans une formation (par exemple ce module
d’analyse, inclus dans la formation BTS). On pourrait ruser en disant que l’inscription à
une formation signifie l’inscription à chacun de ses modules. Mais c’est une bien pau-
vre ruse, puisque cela obligerait le secrétariat à vous inscrire aux cours de français, de
maths, d’anglais, d’économie, d’analyse, de programmation… au lieu de vous inscrire
simplement à la formation BTS informatique de gestion. Dans le monde réel (dans la
« vraie vie »), vous pouvez vous inscrire :
• à une formation, comme le BTS informatique de gestion ;
• à un module d’une formation comme Préparation à l’épreuve pratique, issu du BTS
informatique ;
• à un module indépendant comme maîtrise de l’anglais ou initiation à l’informatique.
Vous remarquerez qu’un sujet d’une ligne peut amener à un travail poussé ! Nous allons tem-
porairement simplifier et dire que le Cned ne gère que les inscriptions à des cours indépen-
dants. Autrement dit, on ne gère pas la notion de formation regroupant plusieurs cours.
« Le Cned vous demande »
Quoi, il faut aussi décortiquer cette petite phrase toute simple ? Oui et non ! Il s’agit juste
de préciser que l’on veut modéliser l’intérieur du Cned. On ne va donc pas représenter
18
8 3932 TG PA 01
MCD : les concepts de base 1/2
le Cned lui-même, qui reste implicite. Et, bien entendu, on modélise le fonctionnement
du Cned et non celui de votre ancien lycée. Donc attention à ne pas inventer des infor-
mations qui n’existent pas.
2. Les entités
2A. Présentation
Bien. Après une demi-page d’explications, on peut enfin produire le schéma suivant :
étudiant cours
Rien d’impressionnant. La flèche représente le lien entre un étudiant et un cours, à savoir
qu’un étudiant s’inscrit à un cours. Cependant, on pourrait tout aussi bien dire qu’un
cours est suivi par un étudiant. Bref, si l’étudiant est relié au cours, alors le cours est éga-
lement relié à l’étudiant. Le nouveau schéma sera alors :
étudiant cours
Bien, on progresse ! Mais en fait, à quoi sert une flèche ? À indiquer une direction. Ainsi,
le fait de mettre une flèche de chaque côté signifie finalement qu’il n’y a pas de sens
privilégié puisque le lien entre étudiant et cours peut se lire dans les deux sens. Dans ce
cas, on simplifie en ne mettant aucune flèche ! Ce qui donne :
étudiant cours
Maintenant, soyons réalistes : ce schéma représente-t-il toutes les données nécessaires
à la gestion des inscriptions ? Il faut bien avouer que non ! Concrètement, qui sont les
étudiants ? À quels cours sont-ils inscrits ? Informatique, économie, anglais ?
Si vous voulez gérer les étudiants et les intégrer dans votre base de données, c’est pour
leur envoyer les cours. Il faut donc un nom et une adresse pour chaque étudiant. Bien
entendu, un étudiant possède d’autres données : un numéro de téléphone, une date
de naissance… mais aussi des références bancaires, des parents, une formation scolaire,
peut-être un permis de conduire, un aliment préféré, etc. Cette énumération a pour
objet de bien vous faire comprendre qu’un étudiant est caractérisé par beaucoup (voire
une infinité) de données. Quand on parle de décrire un étudiant, ce n’est donc pas dans
l’absolu, mais en fonction de « l’usage » que l’on en fera. On ne lui attribuera pas les
mêmes caractéristiques selon que l’on veut représenter l’étudiant :
• dans le système d’information Gestion des inscriptions au Cned ;
• dans le système Sécurité Sociale étudiante ;
• dans le système Prêt étudiant d’une banque…
Dans notre exercice, on aura besoin des nom et prénom de l’étudiant et de son adresse
(rue, code postal et ville). On peut se poser la question de stocker le numéro de télé-
phone ou une adresse e-mail. Si vous informatisiez réellement les inscriptions, vous
demanderiez au responsable du Cned s’il désire (s’il a besoin de) ces informations.
Dans un devoir (ou l’examen du BTS), vous aurez plus ou moins clairement la liste des
informations nécessaires : certaines seront tout à fait explicites, tandis que d’autres ne se
laisseront débusquer qu’après une lecture très attentive du sujet. Cela fait partie de la
difficulté de l’exercice.
19
8 3932 TG PA 01
Séquence 2
O Leen fait de mettre un maximum d’informations partant du principe qu’il vaut mieux
mettre dix de trop qu’en oublier une n’est pas acceptable. D’une part ce n’est
pas intellectuellement défendable (on masque une incompréhension du modèle
par une profusion d’informations), d’autre part une telle démarche vous conduirait
à demander à l’étudiant de fournir des informations qui seraient sans rapport avec
l’inscription, ce qui ne lui plairait pas.
Encore une fois, il nous faut expliquer les mots de cette définition.
« chose du monde réel »
L’objectif de l’analyse est d’informatiser des activités humaines réelles. Ces activités
exploitent des données complexeså : un médecin ne traite pas un numéro de Sécurité
Sociale, mais un patient, décrit entre autres par ce numéro, un nom, un prénom… Ce
concept est à rapprocher des données structurées que vous verrez en programmation.
« possède une existence propre »
C’est une conséquence directe de l’expression précédente (« chose du monde réel »). Je
l’ai répété pour bien vous faire assimiler le fait qu’il s’agit de gérer des entités qui exis-
tent vraiment, qui sont cohérentes. D’où la notion d’unité matérielle.
« caractéristiques définies »
On manipule des objets réels ; il faut pouvoir les décrire complètement afin de les stocker
correctement dans le système d’information. Notons bien que seules les caractéristiques
utiles à l’entreprise seront retenues (en non toutes les caractéristiques décrivant l’entité
dans l’absolu). Ainsi la même entité pourra être valablement définie avec des caracté-
ristiques différentes dans deux systèmes d’information (par exemple une banque et une
entreprise de formation représenteront différemment l’entité Client).
« un intérêt et un sens pour le système d’information étudié »
C’est toujours la même chose : un objet réel possède des caractéristiques qui le décrivent com-
plètement, mais aussi une fonction précise, qui dépendra de ce que l’on veut informatiser.
å Complexe, dans le sens « qui contient, qui réunit plusieurs éléments différents ».
20
8 3932 TG PA 01
MCD : les concepts de base 1/2
3. Les propriétés
3A. Définition
Propriété : donnée élémentaire et pertinente pour le système d’information étudié. Le
regroupement cohérent de propriétés définit les entités. Symétriquement, une entité
sera décrite par ses propriétés.
C’est maintenant devenu une coutume… revenons sur quelques termes de cette définition :
« donnée pertinente pour le système d’information »
Nous l’avons déjà dit, on ne retient que les informations utiles à l’entreprise que l’on
informatise.
« donnée élémentaire pour le système d’information »
Voici un point théorique très discuté. Une donnée élémentaire est une donnée que l’on
ne peut plus décomposer (c’est l’équivalent d’un corps simple en chimie). Dit autrement,
si l’on décompose une donnée élémentaire, on n’obtient plus rien de significatif.
Par exemple, mon nom complet « Jean-Yves Février » n’est pas une donnée élémentaire,
puisque je peux le décomposer en « Jean-Yves » (mon prénom) et « Février » (mon nom).
En revanche, mon prénom et mon nom sont élémentaires puisqu’en les décomposant, je
n’obtiens qu’un groupe de lettres sans signification.
21
8 3932 TG PA 01
Séquence 2
Les données doivent être décomposées pour que l’informatisation se passe bien. Je ne
peux vous le démontrer, mais, de façon informelle, vous serez d’accord qu’il est plus sim-
ple d’accéder à un prénom s’il est directement fourni que s’il faut aller le chercher dans
une suite de mots.
Si l’on s’arrête à ce point de la définition, l’adresse « 1, boulevard Jean-Jaurès 54000
NANCY » n’est pas du tout élémentaire.
Exercice 1
D’ailleurs, pourriez-vous décomposer cette adresse en données élémentaires ?
O Ild’une
ne s’agit pas de passer des heures à s’interroger sur l’éventuelle non-élémentarité
donnée. La difficulté n’est pas là. Il suffit d’utiliser son bon sens.
Exercice 2
Pourriez-vous nommer les propriétés de l’entité Étudiant du système d’information étudié
(inscriptions au Cned) ?
Revenons sur notre gestion des inscriptions. Après l’étude d’Étudiant, occupons-nous de
Cours. Il vous faut toutes les informations relatives à un cours. Vous demandez au res-
ponsable du Cned ce qui caractérise un cours. On vous répond qu’un cours possède un
titre et une durée en mois.
(On est d’accord que, face à un non-informaticien, vous éviterez d’employer des mots
tels que entité et propriété qui n’ont de sens que pour un analyste.)
22
8 3932 TG PA 01
MCD : les concepts de base 1/2
Exercice 3
1. Le fait qu’un cours soit une entité dans le système étudié doit être assez naturel. Mais, à
votre avis, est-ce une entité concrète ou abstraite ?
2. Imaginez deux informaticiens discutant. Le second répond au premier « titre et durée en
mois ». Quelle était la question du premier ? (Utilisez les termes techniques.)
3. Dessinez l’entité Cours d’après le formalisme Merise.
4. Les associations
4A. Présentation
Bien. Dans notre schéma, j’ai remplacé les mots étudiant et cours par des entités. Nous
obtenons alors :
ÉTUDIANT
Nom COURS
Prénom
Rue Titre
Code postal Durée
Ville
Je ne connais pas votre façon de travailler. Peut-être que vous n’avez pas posé ce docu-
ment depuis que vous l’avez commencéå. En revanche, moi, j’ai fait une pause et viens
de reprendre la rédaction après deux jours d’interruption. Et je vous avouerai que le trait
entre les deux entités… je ne sais plus trop s’il signifie inscription, demande de rensei-
gnements ou autre. J’ai été obligé de relire les pages précédentes pour m’assurer de sa
signification (il représente une inscription).
C’est assez ennuyeux car dans un schéma réel, on aura d’autres intervenants en plus des
étudiants et des cours et ces intervenants seront reliés entre eux. On aurait donc une ou
plusieurs dizaines de traits ? Tout ceci serait complètement illisible.
Le formalisme Merise impose donc de nommer les traits. De façon assez logique, on va
leur donner un nom proche de leur fonction. Ainsi, le trait entre un étudiant et un cours
signifie que l’étudiant est inscrit à un cours.
å Et dans ce cas, je me demande si vous avez vraiment pu assimiler tout ce que l’on a vu ! Mine de rien,
il y a déjà beaucoup de concepts et de définitions.
23
8 3932 TG PA 01
Séquence 2
ÉTUDIANT
Nom COURS
Prénom s’inscrire à
Rue Titre
Code postal Durée
Ville
Devinez ! Je vais vous donner une définition formelle d’un lien. Et, du coup, on oubliera
le mot lien au profit d’association.
Association : une association représente un lien sémantique entre des entités. On
parlera d’association binaire (ou plus simplement de binaire) si elle relie deux enti-
tés, de ternaire si elle relie trois entités…
Exceptionnellement, il y a peu de choses à expliquer. Le lien sémantique représente les
interactions des entités entre elles. On ajoute le terme sémantique car le lien vient du
sens des entités : si on relie l’entité Étudiant à Cours, c’est à cause de ce que représentent
les étudiants et les cours dans le monde réel.
On notera que l’association se fait entre plusieurs entités (au minimum deux, pas de
maximum). En pratique, on aura quasi exclusivement des binaires et des ternaires. Une
association quaternaire (4 entités) ou plus peut exister, mais c’est souvent une erreur de
conception.
Il semble y avoir une différence fondamentale entre entité et association ; pourtant, nous
verrons que pour modéliser certains objets, on peut valablement hésiter entre une entité
ou une association. Je vous l’avais promis : l’analyse est un loisir créatif.
On notera que l’association est un lien sémantique ; rien n’empêche qu’une entité soit
reliée par plusieurs associations, chacune représentant un lien. (On y reviendra.) Bien. On
progresse ! Mais on a vu il y a « longtemps » (quand on en était encore à relier les mots
étudiant et cours par une flèche) que l’association entre les deux entités est symétrique.
D’ailleurs, j’ai placé Étudiant à gauche et Cours à droite, mais je pourrais faire le contraire
puisqu’il n’y a pas d’ordre entre les deux concepts. Cela donnerait le schéma qui suit.
ÉTUDIANT
COURS Nom
s’inscrire à Prénom
Titre
Rue
Durée
Code postal
Ville
C’est toujours juste… mais un peu déroutant à la lecture, qui se fait habituellement de
gauche à droite. On préférera alors nommer l’association en prenant le cours comme
sujet, soit « est suivi par », comme dans le schéma page suivante.
24
8 3932 TG PA 01
MCD : les concepts de base 1/2
ÉTUDIANT
COURS Nom
est suivi par Prénom
Titre
Rue
Durée
Code postal
Ville
On est confronté à un problème qui n’est pas du tout évident : essayer de nommer l’as-
sociation en fonction de la position des entités dans le schéma. Notre raisonnement va
d’ailleurs nous mener à une impasse car :
1. Il n’est pas question de privilégier arbitrairement une entité ou une autre pour donner
le sens de lecture. Si l’on peut dire ici qu’Étudiant l’emporte sur Cours (un étudiant est
un humain, donc on va nommer le lien « s’inscrire à »), on ne va pas lancer de débat
théorique pour savoir qui l’emporte entre Facture et Produit.
2. La façon dont on dispose les entités (Étudiant à gauche, Cours à droite ou l’inverse)
est uniquement guidée par la lisibilité du schéma : si Cours n’est lié qu’à Étudiant, on
aura tendance à le mettre sur un bord. En revanche, si Cours est lié à d’autres entités
(par exemple Correcteur, Rédacteur…), on le mettra au centre pour pouvoir tracer les
associations sans qu’elles se chevauchent. En pratique, la position de Cours par rapport
à Étudiant sera quelconque (une entité sous l’autre, en diagonale…)
Ainsi, un MCD n’aura pas de sens de lecture prédéfini (notamment pas de haut en bas et
de gauche à droite). On évitera donc d’ajouter artificiellement un ordre de lecture par
le nom des liens. La solution sera d’utiliser un verbe à l’infinitif.
Ici, on pourra utiliser s’inscrire ou suivre, et on ne relancera pas le débat pour savoir lequel
de ces deux verbes est le plus adéquat. En effet, je vois chaque année des étudiants passer
plus de temps à choisir un nom d’entité ou d’association qu’à élaborer le MCD lui-même. Or,
ces noms ne servent qu’à se repérer dans le schéma. Mettre s’inscrire, suivre, apprendre… est
totalement indifférent. L’essentiel est d’avoir un descriptif compréhensible et lié à l’associa-
tion que l’on décrit (on ne mettrait pas vendre, nourrir ou soigner entre Cours et Étudiant !).
Pour illustrer cela, vous trouverez ci-après trois représentations différentes, mais tout à
fait correctes, de notre schéma.
COURS
ÉTUDIANT
Titre
Nom COURS
suivre Durée
Prénom
Titre
Rue
Durée
Code postal apprendre
Ville
COURS ÉTUDIANT
ÉTUDIANT
Titre Nom
Durée Nom Prénom
Prénom Rue
s'inscrire Rue Code postal
Code postal Ville
Ville
25
8 3932 TG PA 01
Séquence 2
On remarque en passant que l’association reliant les deux entités peut s’articuler, la seule
contrainte étant que les entités soient clairement reliées. On ne s’autorisera néanmoins
que des segments de droites et aucune courbe.
Enfin, on s’obligera à écrire horizontalement et de gauche à droite tous les noms d’entités
et d’associations. Sinon, le modèle serait illisible. Cette association est donc proscrite :
COURS
Titre
Durée
Apprendre
ÉTUDIANT
Nom
Prénom
Rue
Code postal
Ville
5. Compléments
L’étudiant Jean Dupond s’inscrit au cours initiation à Internet. Comment vais-je le repré-
senter dans mon schéma ?
Eh bien, je ne le représente pas ! Ce qui m’intéresse dans le MCD, c’est l’interconnexion
des données entre elles (un étudiant s’inscrit à un cours) indépendamment des données
elles-mêmes (quel étudiant s’inscrit à quel cours).
Pourtant, l’intérêt de l’informatisation des inscriptions est d’obtenir la liste des étudiants
à un cours donné. Comment faire le lien entre la représentation théorique des associa-
tions entre les entités et les données réelles ?
Ce sera le rôle des autres niveaux de modélisation (si vous avez joué le jeu et appris le
cours, vous comprenez de quoi je parle). Par exemple, le MLD décrira la façon dont les
données réelles seront stockées.
Ainsi, c’est le MLD qui va déterminer comment je vais stocker :
• l’étudiant Jean Dupond (et tous les autres) ;
• le cours initiation à Internet (et tous les autres) ;
• le fait que M. Jean Dupond soit inscrit au cours initiation à Internet (et toutes les
autres inscriptions).
26
8 3932 TG PA 01
Synthèse
Je vous rappelle pour la dernière fois que la synthèse reprend toutes les notions
imprimées en vert ; il faut donc l’apprendre.
Les définitions
Entité : une entité est une « chose » du monde réel qui possède une existence
propre (concrète ou abstraite), des caractéristiques bien définies, qui présente un
intérêt et a un sens pour le système d’information étudié.
Dit autrement : une entité est un objet cohérent vu (décrit) avec l’œil de l’entre-
prise étudiée.
Propriété : donnée élémentaire et pertinente pour le système d’information étu-
dié. Le regroupement cohérent de propriétés définit les entités. Symétriquement,
une entité sera décrite par ses propriétés.
On ne prend donc en compte que les références de l’entreprise que l’on informa-
tise pour savoir jusqu’où décomposer les données. Ce qui est considéré comme
élémentaire dans un cas ne le sera pas forcement dans un autre.
Association : une association représente un lien sémantique entre des entités.
On parlera d’association binaire (ou plus simplement de binaire) si elle relie deux
entités, de ternaire si elle relie trois entités…
Dans tout travail d’analyse, il faut prendre le point de vue de l’entreprise étudiée.
27
8 3932 TG PA 01
Séquence 3
MCD : les concepts de base 2/2
Durée indicative : 10 heures
Dans cette séquence, nous allons étudier les derniers constituants élémentaires
du MCD. Nous allons apprendre ce que sont les occurrences, les identifiants et
les cardinalités. Nous verrons également comment représenter graphiquement
ces notions, puis une technique assez empirique pour construire un MCD à partir
d’un sujet.
u Capacités attendues
• Maîtriser le vocabulaire de Merise
• Assimiler les concepts véhiculés par ces termes
• Représenter graphiquement un MCD
• Se doter d’une démarche rigoureuse pour pouvoir bâtir un MCD
u Contenu
1. Les occurrences...................................................................................... 30
1A. Occurrence d’entité .................................................................................... 30
1B. Occurrence d’association ........................................................................... 31
Synthèse
29
8 3932 TG PA 01
Séquence 3
1. Les occurrences
å Oui, il n’y a plus de limite. J’avais commencé par écrire « seuls existent des animaux qui font
partie […] », mais, de la même façon, l’Animal n’existe pas. On peut juste dire qu’il existe des
choses faisant partie de la famille des animaux, et encore, il n’existe pas de Chose, mais seulement
des occurrences de Chose. (Et ne me dites pas qu’une Occurrence n’existe pas, mais juste des occur-
rences d’Occurrence, car là, je craque.)
ç Ceci est la démonstration que l’on ne définit pas des termes pour le plaisir. Ces subtilités
sont obligatoires en analyse car on manipule autant les types d’objets que les objets eux-mêmes.
Heureusement, cette précision dans les termes n’a aucun intérêt dans la vie courante.
30
8 3932 TG PA 01
MCD : les concepts de base 2/2
Quand vous déclarez une variable : On lit « i est un entier » mais cela signifie « i fait partie de la famille
var i : entier des entiers » et non « i est l’entier ». (sinon on aurait le syllogisme 0
est un entier, 1 est un entier donc 0 est 1 !)
Quand vous écrivez un test : Là, on dit « si a égale b », mais on pourrait dire « si a est b » car il
si a = b alors s’agit vraiment d’une équivalence absolue (d’ailleurs, vous savez
depuis longtemps que si a = 2 et a = b, alors b = 2).
On retrouve mon grand mot : non seulement, l’informatique n’invente rien, mais en plus
les mêmes concepts se retrouvent d’une discipline informatique à l’autre.
Exercice 4
Vous vous doutez sans doute de la question ! Citez-moi une occurrence d’Étudiant (sous-
entendu : une occurrence de l’entité Étudiant). Et, tant qu’à faire, pouvez-vous m’en donner
une seconde ?
Exercice 5
Après avoir lu le corrigé de l’exercice précédent, donnez trois occurrences de l’entité Cours.
Exercice 6
Sans lire ce qui suit, essayez de donner une définition d’« occurrence d’association », sachant
que c’est tout à fait similaire à l’occurrence d’entité. Essayez de donner ensuite une occurrence
de l’association suivre (entre Étudiant et Cours) de notre MCD.
31
8 3932 TG PA 01
Séquence 3
Exercice 7
Comment faire pour représenter l’inscription de Jean Dupond à ces deux cours ?
2. Les identifiants
2A. Approche par le MLD
Ce n’était pas prévu, mais nous allons passer temporairement au MLD (vous êtes sensé
savoir exactement ce que c’est !).
Le MCD permet d’indiquer comment les données structurées (les entités, pas les données
réelles que sont les occurrences) sont reliées entre elles.
Le MLD va indiquer, pour un mode de stockage donné, de quelle façon on va organiser
les données physiques (réelles, donc les occurrences) pour maintenir les liens établis dans
le MCD.
Cela doit vous paraître plus clair que lors de l’introduction du cours ! Et cela va l’être
encore plus dans les lignes qui suivent.
32
8 3932 TG PA 01
MCD : les concepts de base 2/2
Nous avons dit dans l’introduction que le MCD donnait naissance à des MLD différents
selon le mode de stockage choisi. Jadis, le mode de stockage était les fichiers. Depuis
l’avènement des bases de donnéeså, on n’utilise plus qu’elles. L’avenir nous fournira
sans doute de nouvelles techniques de stockage.
Oubliez temporairement tout ce que vous avez vu dans ce cours. Imaginez-vous travaillant
au CNED, sans avoir d’ordinateur à disposition. Comment allez-vous stocker la liste des
étudiants ? Dit autrement, comment stocker les occurrences de l’entité Étudiant ?
Eh bien, comme je viens de le dire, vous allez en faire une liste.
Si les informations qui vous intéressent sont les nom, prénom, adresse, code postal et
ville de l’étudiant, vous aurez la liste des étudiants écrite sur une feuille. Cela donnera,
en se limitant à quatre étudiants :
Jean Dupond 1, boulevard Jean-Jaurès 54000 NANCY
Pollen LeChat 8, avenue de la Libération 45000 ORLÉANS
Nina LeTeckel 13, rue de l’Europe 95000 CERGY
Alf LeLapin Square Fleuri 34830 CLAPIERS
De même, vous aurez une liste des cours (qui ont un titre et une durée) :
Initiation à Internet 2
Word 2
Excel 3
Access 6
Linux 4
(les données inscrites dans les listes sont mises sans ordre particulier.)
Le problème est que ces listes ne sont pas parlantes. S’il est évident que la première
est une liste de personnes et d’adresses, on peut s’interroger sur la seconde colonne de
la seconde liste : on ne peut pas deviner ce que représentent les chiffres. Dans la vraie
vie, vous mettrez donc une ligne d’en-tête, et vous obtenez… un tableau, ce qui vous
ramène en terrain connu…
On obtient donc les tableaux présentés ci-après.
Étudiant
PRÉNOM NOM ADRESSE CODE POSTAL VILLE
Jean Dupond 1, boulevard Jean-Jaurès 54000 NANCY
Pollen LeChat 8, avenue de la Libération 45000 ORLÉANS
Nina LeTeckel 13, rue de l’Europe 95000 CERGY
Alf LeLapin Square Fleuri 34830 CLAPIERS
Cours
TITRE DURÉE (MOIS)
Initiation à Internet 2
Word 2
Excel 3
Access 6
Linux 4
åTrès schématiquement, une base de données est un outil (un logiciel) gérant des données de façon
structurée. Ce logiciel propose à l’utilisateur un langage (SQL) pour récupérer les données utiles en for-
mulant une requête ; par exemple, on peut interroger la base de données des inscriptions pour deman-
der la liste des étudiants habitant Lyon qui se sont inscrits à un cours d’une durée de 3 à 6 mois.
L’intérêt est qu’il suffit d’écrire la requête car c’est le logiciel de base de données qui se « débrouillera »
pour récupérer les données. C’est une grande avancée face au stockage avec des fichiers où le déve-
loppeur d’applications devait programmer lui-même tous les accès aux données.
33
8 3932 TG PA 01
Séquence 3
Les tableaux, c’est peut-être un peu ringard. Mais, sans le savoir, que vient-on de faire ?
Eh bien, nous venons de définir le MLD ! Nous avons choisi le type de stockage des
données (les tableaux). Le MLD a consisté à définir les colonnes (combien de colonnes,
quelles données elles contiennent) ; le MLD est donc constitué de l’en-tête des tableaux
(la première ligne, grisée).
La phase suivante a consisté à remplir ces tableaux avec des données (les occurrences).
Exercice 8
Un bémol toutefois… notre MLD n’est pas complet : toutes les informations représentées dans
le MCD ne sont pas dans le MLD. Pouvez-vous trouver ce qui manque et le rajouter ?
Nous allons donc ajouter un tableau pour contenir les occurrences de suivre. Chaque
ligne du tableau contiendra le fait qu’un étudiant est inscrit à un cours :
Suivre
TITRE NOM
Excel LeTeckel
Initiation à Internet LeLapin
Access Dupond
Initiation à Internet Dupond
Initiation à Internet LeChat
Word Dupond
Quelques remarques
1. On avait dit qu’une occurrence de suivre était formée d’une occurrence d’Étudiant et
d’une occurrence de Cours. Dans le tableau, nous devrions donc avoir toutes les propriétés
de Cours et d’Étudiant et pas seulement le titre et le nom. Mais cela ferait un tableau un
peu long, donc je me suis permis de ne pas le faire, vu qu’a priori, cela ne change rien.
2. J’ai arbitrairement inscrit les étudiants à divers cours.
3. Tous les étudiants sont inscrits à au moins un cours. C’est logique, car sinon ils ne seraient
pas des étudiants (on reviendra sur ce point). En revanche, certains cours n’ont aucun
inscrit. On représentera cela avec les cardinalités dans la suite de cette séquence.
4. Comme pour les deux autres tableaux, il n’y a toujours pas d’ordre particulier, ni pour
les occurrences, ni pour les colonnes.
Nous pouvons être satisfaits de notre travail. En première approximation, nous pouvons
d’ailleurs estimer qu’il est terminé. En effet, si l’on veut envoyer les supports de forma-
tion aux inscrits du cours Initiation à Internet, notre tableau nous indique que Dupond,
LeChat et LeLapin sont concernés, leur prénom et adresse étant accessibles dans le
tableau contenant les étudiants comme le prouve le dessin suivant :
Suivre Étudiant
TITRE NOM PRÉNOM NOM ADRESSE CODE POSTAL VILLE
Excel LeTeckel Jean Dupond 1, boulevard Jean-Jaurès 54000 NANCY
Initiation à Internet LeLapin Pollen LeChat 8, avenue de la Libération 45000 ORLÉANS
Access Dupond Nina LeTeckel 13, rue de l’Europe 95000 CERGY
Initiation à Internet Dupond Alf LeLapin Square Fleuri 34830 CLAPIERS
Initiation à Internet LeChat
Word Dupond
34
8 3932 TG PA 01
MCD : les concepts de base 2/2
Tout se passe donc bien… jusqu’à ce que Mlle Frédérique Dupond (11, rue des Arbres
60100 CREIL) s’inscrive aux cours d’Access et d’Excel.
Exercice 9
Mettez à jour les tableaux pour qu’ils contiennent les inscriptions de Mlle Dupond. Mettez en
évidence le problème qui se pose lorsque l’on désire la liste des adresses des étudiants inscrits
à la formation Excel ou si l’on veut retrouver à quels cours s’est inscrite Mlle Dupond.
Exercice 10
Après avoir consulté le corrigé de l’exercice précédent, proposez une solution pour remédier
au problème.
La correction de l’exercice précédent nous indique que le couple nom/prénom n’est pas
suffisant pour identifier à coup sûr un étudiant. En généralisant, on ne peut pas se con-
tenter de rajouter l’une ou l’autre des propriétés. Le risque d’homonymie n’est pas levé.
La seule solution est donc de mettre toutes les propriétés d’Étudiant dans le tableau
suivre. Bref, on met dans suivre toutes les informations dont on dispose sur les étudiants.
On obtient :
Suivre
TITRE PRÉNOM NOM ADRESSE CODE POSTAL VILLE
Excel Nina LeTeckel 13, rue de l’Europe 95000 CERGY
Initiation à Internet Alf LeLapin Square Fleuri 34830 CLAPIERS
Access Jean Dupond 1, boulevard Jean-Jaurès 54000 NANCY
Initiation à Internet Jean Dupond 1, boulevard Jean-Jaurès 54000 NANCY
35
8 3932 TG PA 01
Séquence 3
Exercice 11
Corrigez les différents tableaux pour tenir compte du changement d’adresse.
Vous observerez que les trois adresses ont été écrites différemment, de façon de plus
en plus abrégée. Certes, je l’ai fait sciemment. Mais je vous assure que, dans la vraie
vie, c’est ce qui se passerait. Au bout de quelques semaines, les données ne seraient pas
toutes à jour, chacun les saisissant comme il le veut, sans parler des problèmes de fautes
de frappe !
Ce problème porte le nom technique d’intégrité : l’intégrité des données (leur cohé-
rence) n’est pas assurée. Autre problème technique : la redondance d’informations. Rien
que dans le petit tableau ci-dessus, l’adresse de Jean Dupond est écrite trois fois.
Résumons-nous :
1. Avoir mis toutes les propriétés d’Étudiant dans le tableau des inscriptions a supprimé
tout problème d’ambiguïté. Mais…
2. …on paye cela au prix fort. En effet, le tableau des inscriptions devient volumineux
pour rien (redondance), il est difficile à mettre à jour.
3. Pire encore, les mises à jour peuvent introduire des erreurs dans les données (on en
oublie une, on fait une faute de frappe…).
Maintenant, pensez au cas général d’une informatisation et non à ce cas jouet. Imaginez
que vous informatisiez un cabinet médical gérant l’historique de plusieurs milliers de
patients, certains ayant plusieurs dizaines d’ordonnances archivées. Les problèmes de
redondance et d’intégrité deviennent réellement préoccupants !
Bien entendu, j’ai une solution à vous proposer. Eh oui…
Si l’on a rajouté toutes les propriétés d’Étudiant dans le tableau des inscriptions (suivre),
c’était uniquement pour identifier sans ambiguïté chaque étudiant. Le problème ne s’est
pas posé avec les cours puisque leur titre les identifie sans ambiguïté.
36
8 3932 TG PA 01
MCD : les concepts de base 2/2
Exercice 12
En pensant aux différents contrats (EDF, téléphone…), commandes (vente à distance) ou relations
avec des organismes (Impôts, Sécurité Sociale, CNED) qui peuvent vous concerner dans la vraie
vie, pourriez-vous dire de quelle façon assez simple et naturelle toutes ces entreprises ou organis-
mes, qui ont un nombre considérable de clients, règlent le problème d’homonymie ?
37
8 3932 TG PA 01
Séquence 3
Exercice 13
Attention à bien comprendre cet exercice, il y a une subtilité !
L’identifiant détermine l’occurrence ; or, le numéro de Sécurité Sociale est identifiant. Ainsi, le
numéro 1 70 11 54 395 997 88 correspond à une seule personne que l’on supposera être Jean
Dupond, 58 000 NEVERS.
Or, dans mon système d’information, j’ai aussi l’occurrence « 1 07 03 57 110 005 27, Jean Dupond,
58 000 NEVERS ».
J’ai l’impression qu’une même personne a deux numéros de Sécurité Sociale. Que pensez-vous
de cette situation ? Expliquez pourquoi elle peut néanmoins être correcte.
(On définira plus tard de façon théorique l’identifiant dans la partie de cours
sur les dépendances fonctionnelles. On verra alors le cas où un identifiant est
constitué par plusieurs propriétés.)
38
8 3932 TG PA 01
MCD : les concepts de base 2/2
Exercice 14
On mettra donc systématiquement un identifiant à chaque entité. Donnez un identifiant pour
chaque entité Étudiant et Cours. Précisez si ces identifiants sont naturels ou artificiels.
Exercice 15
Après avoir vu le corrigé de l’exercice précédent, rajoutez les identifiants dans le MCD puis
modifiez en conséquence la définition et le contenu des tableaux, notamment suivre.
Exercice 16
Exercice 17
Nous avons vu la notion d’identifiant d’entité. La notion d’identifiant d’association existe éga-
lement. Partant du principe que l’identifiant identifie l’occurrence concernée, essayez de réflé-
chir à ce que peut être l’identifiant d’une association sans regarder la suite du cours. Donnez
l’identifiant de l’association suivre.
39
8 3932 TG PA 01
Séquence 3
40
8 3932 TG PA 01
MCD : les concepts de base 2/2
Exercice 18
Essayez d’établir le MCD. Une petite aide : il y a deux entités et une association.
Exercice 19
Au vu du corrigé de l’exercice précédent, faites le MLD (avec des tableaux) et mettez deux ou
trois terrains et propriétaires fictifs. Essayez d’avoir un jeu d’essai (des données) significatif, à
savoir représentatif de la réalité (c’est tout un art !). Quel est l’identifiant de posséder ?
4. Les cardinalités
Exercice 20
Vous remarquerez que le descriptif précédent concerne les occurrences. Pouvez-vous faire la
même chose entre les entités Propriétaire et Terrain ? Je vous conseille de relire le sujet, qui
contient explicitement la réponse.
Où est la différence avec les inscriptions ? Dans le cas des inscriptions, l’association est symétri-
que : chaque occurrence d’une entité peut être associée à plusieurs occurrences de l’autre. En
revanche, on ne retrouve pas cette symétrie dans la gestion des permis de construire.
À quoi va nous servir cette constatation ? À optimiser notre MLD, c’est-à-dire la façon
dont on stockera les données. Le MCD est par définition conceptuel. Mais il importe qu’il
41
8 3932 TG PA 01
Séquence 3
« embarque » le plus d’informations possible sur le réel pour que l’implantation future
sur ordinateur soit efficace.
Dit autrement, les niveaux de modélisation sont par principe tout à fait distincts. En
poussant le raisonnement jusqu’au bout, il n’est pas gênant qu’un niveau abstrait com-
porte des informations que l’on ne sache pas exploiter dans les niveaux plus élevés. En
effet, il est tout à fait possible que, la technique évoluant, l’on sache implanter cela dans
l’avenir. Cela dit, pas d’affolement : le raffinement que l’on va introduire sera exploité
dans le MLD.
La phrase qui m’intéresse est « un terrain n’a qu’un propriétaire ». Voyez-vous où je veux
en venir ? Je pourrais dire aussi « un terrain n’a qu’une surface ». Cela vous éclaire ? Vous
pensez que le propriétaire est en fait une propriété du terrain ? Eh bien, SURTOUT PAS !
Enfin, l’idée va revenir en gros au même, mais pas sous cette forme. En effet, comme
le propriétaire et le terrain sont des objets réels et autonomes (c’est la définition d’une
entité), on ne peut pas inclure l’un dans l’autre ; l’entité Terrain englobant un proprié-
taire n’est pas un objet réel.
J’insiste ! Oubliez à jamais toute idée du genre de celles présentées ci-après.
TERRAIN TERRAIN
RéférenceCadastrale RéférenceCadastrale
Surface Surface
Type Type
NuméroPropriétaire Propriété fautive PROPRIÉTAIRE
Nom NuméroPropriétaire
Nom
Prénom Concept fautif
Prénom
DateDeNaissance DateDeNaissance
Code Adresse
CodePostal
Ville Ville
Cela peut sembler séduisant, notamment la deuxième solution. Mais c’est un leurre !
Vous n’avez pas optimisé le modèle Merise, ni inventé un nouveau concept. C’est une
erreur de logique à laquelle on s’est tous fait prendre. Un tel Terrain n’a aucun sens
puisque vous imbriquez deux objets réels.
La remarque « un terrain n’a qu’un propriétaire » n’aura donc aucune incidence sur le
MCD, mais uniquement sur le MLD. On va pouvoir se passer du tableau posséder. En
effet, même si d’un point de vue conceptuel terrain et propriétaire sont des objets dis-
tincts, le fait est que l’on peut associer le propriétaire au terrain. Et c’est ce que l’on fera
en ajoutant une colonne.
J’insiste encore ! Vous voyez que le MCD ne change pas, seule l’implantation (MLD) est
modifiée. C’est ça, l’intérêt de la modélisation en niveaux différents. Dit autrement, inu-
tile d’utiliser un tableau posséder puisque l’on peut s’en passer. Et le fonctionnement du
programme sera d’autant plus rapide : pour trouver le propriétaire d’un terrain donné,
on gagne une étape puisque l’on passe par un tableau de moins.
42
8 3932 TG PA 01
MCD : les concepts de base 2/2
Terrain
1B19GH 20 constructible 2
BB2GH 15,5 constructible 1
FRRR88 10 inondable 1
Propriétaire est inchangé, terrain possède une colonne de plus (mise arbitrairement à la
fin) et posséder a disparu. Bien entendu, si les règles du jeu (le réel) changeaient et qu’un
terrain pouvait avoir plusieurs propriétaires, il faudrait revenir aux tableaux initiaux.
Normalement, quelque chose doit vous chiffonner : je vous dis que l’on modifiera le MLD en
fonction du réel en passant par dessus le MCD qui ne bouge pas. Cela va à l’encontre du prin-
cipe même de Merise, où toute modification du réel ne doit être répercutée que sur le MCD,
sachant qu’en cascade, les modifications du MCD en entraîneront d’autres sur le MLD.
Bref, il faut que l’on représente sur le MCD le nombre d’occurrences d’entité auxquelles
une occurrence d’entité donnée peut être reliée à travers une association donnée. Bon,
cette phrase n’est pas claire du tout, bien que j’aie passé dix minutes à la concevoir.
Soyons plus explicite : concrètement, on représentera combien un terrain peut avoir de
propriétaires, combien un propriétaire peut avoir de terrains, combien un étudiant peut
suivre de cours, combien d’étudiants peuvent être inscrits à un cours.
Maintenant, si je vous demande combien un propriétaire peut posséder de terrains,
ou à combien de cours vous pouvez vous inscrire au CNED… ma foi, vous n’avez pas la
réponse et moi non plus : la majorité des français ne possèdent qu’un terrain, sur lequel
ils ont fait construire leur maison. En revanche, il existe des investisseurs qui possèdent
des dizaines de terrains. Idem pour les cours : tant que vous payez chaque inscription, il
n’existe aucune limite théorique au nombre de cours que vous pouvez suivre.
Mais alors, comment faire ? Mettre un nombre arbitraire, par exemple 1 000 terrains
maximum par propriétaire, 10 cours par étudiant ? Et, dans ce cas, combien de comman-
des par client si l’on modélise l’activité d’un magasin ? Cela ne va pas !
La solution sera donc pragmatique : on ne distinguera que des cas généraux, en disant
qu’une occurrence d’entité sera reliée à 0, à 1 ou à plusieurs occurrences d’entité. Cette
simplification ne pose aucun problème puisque l’on vient de voir que les deux seuls cas
que l’on distingue sont :
• une occurrence d’entité est reliée à au plus une autre (comme le terrain relié au
propriétaire) ;
• une occurrence d’entité est reliée à plusieurs autres (un cours est relié à plusieurs
étudiants).
43
8 3932 TG PA 01
Séquence 3
ÉTUDIANT
NuméroÉtudiant
Nom COURS
Prénom suivre Titre
0, n
Rue 0, n Durée
CodePostal
Ville
(1) (2)
Première remarque
(1) et (2) vous indiquent les cardinalités. Vous remarquerez que les premières se trou-
vent sur « la patte » de l’association. Tandis que les secondes sont en-dessous. Rassurez-
vous, cela ne signifie rien ! C’est le logiciel que j’utilise pour dessiner les MCD qui place
les cardinalités là où il le veut. Lorsque vous faites le MCD à la main, il est préférable
d’écrire les cardinalités sous la patte comme dans le cas (2). Tout simplement car c’est
plus rapide !
å Attention ! Les étudiants les moins sérieux n’apprennent pas suffisamment leur cours. Je vois tou-
jours des étudiants de seconde année qui se trompent de côté et mettent les cardinalités relatives à
une entité à côté de l’autre. La position des cardinalités étant arbitraire (les méthodes américaines
les mettent dans l’autre sens), il faut l’apprendre par cœur, il n’y a rien à comprendre.
ç J’insiste : les cardinalités à côté de l’entité Étudiant concernent les occurrences d’Étudiant, non
de Cours.
é Mais alors, est-ce un étudiant ? On va y revenir !
è Ce plusieurs signifiant « un nombre quelconque ».
44
8 3932 TG PA 01
MCD : les concepts de base 2/2
Exercice 21
Les cardinalités (2) sont identiques aux cardinalités (1). Essayez de les expliquer comme on vient
de le faire.
Remarquez bien que le raisonnement est globalement fait pour l’entité, c’est-à-dire pour
l’ensemble des occurrences possibles et à venir. On ne discute donc pas de l’étudiant
Machin ou Truc. On prend l’occurrence en toute généralité. Notamment, si l’étude des
inscriptions montre que, sur 1 000 étudiants, un seul est inscrit à plus d’un cours, il faudra
néanmoins utiliser la cardinalité maximale n.
Nous avons un petit souci : le CNED propose des cours et les étudiants choisissent ceux qui
les intéressent. L’éventail des cours étant très large, il est tout à fait possible qu’un cours
ne recueille aucun inscrit. En revanche, un étudiant ne suivant aucun cours… n’est pas un
étudiant d’après la définition que nous avons donnée en présentant le sujet.
Exercice 22
Bon, qu’à cela ne tienne… il y a juste un chiffre à corriger sur le MCD ; pouvez-vous le faire ?
45
8 3932 TG PA 01
Séquence 3
å Certains auteurs mettent des valeurs précises au lieu de n quand ils possèdent l’information.
Par exemple, si le CNED vous dit que pour des raisons matérielles, un cours ne peut avoir que 100
inscrits au maximum, on peut mettre 0,100 au lieu de 0, n. Cela va dans le sens de la précision
que je prônais dans le MCD. Pourtant, j’estime que cela va un peu loin. En effet, au niveau con-
ceptuel (MCD), qu’il y ait 100, 5, 2 ou n étudiants, c’est pareil. Ensuite, le chiffre 100 venant d’un
problème d’organisation qui peut être réglé à tout moment, on s’éloigne du conceptuel. Je préconise
donc de laisser le n et de rajouter en règle de gestion (on y reviendra) le fait que n vaut pour le
moment 100. En revanche, si la valeur du n est déterminée par le concept étudié, on peut la mettre.
En tout état de cause, les deux solutions sont acceptables et acceptées.
46
8 3932 TG PA 01
MCD : les concepts de base 2/2
Exercice 23
Vérifions votre compréhension. Je n’ai pas parlé de certains couples de cardinalités « n, 1 »,
« 1,0 » Est-ce un oubli de ma part ou est-ce normal ? (bien entendu, il faut justifier !)
Exercice 24
Je n’ai plus parlé du cas gestion des permis de construire car je vous propose en exercice de
compléter le MCD correspondant (voir l’exercice 18) pour y rajouter les cardinalités.
47
8 3932 TG PA 01
Séquence 3
48
8 3932 TG PA 01
Synthèse
Définitions
Occurrence d’entité : une occurrence d’entité est une réalisation (concrétisa-
tion) de cette entité. Une occurrence d’entité aura une valeur pour chaque pro-
priété de l’entité. L’ensemble de ces valeurs caractérise cette occurrence.
Occurrence d’association : une occurrence d’association est une réalisation
(concrétisation) de cette association.
Identifiant d’entité : l’identifiant d’une entité est une propriété ou un ensem-
ble de propriétés de cette entité. La valeur de l’identifiant doit être stable, non
nulle et caractériser de façon unique l’occurrence correspondante. L’identifiant
peut être naturel ou artificiel.
Identifiant d’association : l’identifiant d’une association est la concaténation
des identifiants des entités reliées.
Cardinalités : les cardinalités d’une entité vis-à-vis d’une association indiquent
le nombre minimum (0 ou 1) et maximum (1 ou n) d’occurrences de l’association
auxquelles participe chaque occurrence de l’entité. Chaque association compor-
tera autant de cardinalités (couple nombre minimum, nombre maximum) que
d’entités reliées. Les cardinalités seront écrites au bout de chaque patte de l’asso-
ciation, à côté de l’entité correspondante. On séparera les cardinalités minimum
et maximum par une virgule.
Conseils
Le nom de l’entité est au singulier car l’entité (le concept) est unique. Il n’y aura pas
deux entités Étudiant. Mettre un pluriel serait une confusion entre les occurrences
de l’entité et l’entité elle-même. En effet, s’il n’y a qu’une entité Étudiant, il y aura
plusieurs occurrences d’Étudiant.
Sur le MCD, une association relie des entités. En revanche, une occurrence d’asso-
ciation ne concerne que des occurrences d’entité. Elle sera formée par une (et une
seule) occurrence de chaque entité reliée.
Dans le MCD, on fait figurer toutes les propriétés de chaque entité. Pour distin-
guer l’identifiant, on le souligne et on le met en tête des propriétés.
Par définition, toute valeur d’identifiant (d’entité ou d’association) est unique.
C’est pourquoi on ne peut pas relier deux fois les mêmes occurrences d’entité par
une même association.
On peut caractériser une association par ses cardinalités maximales : Une associa-
tion [1–n] est une binaire dont une cardinalité maximale vaut 1, l’autre n. Une asso-
ciation [n–n] est une association dont toutes les cardinalités maximales valent n.
49
8 3932 TG PA 01
Travaux dirigés 1
L’objet des exercices qui suivent est de mettre en œuvre de façon systémati-
que les concepts vus dans le cours pour que cela devienne un automatisme.
Je ne peux que vous rappeler une dernière fois la nécessité de bien connaître
le cours avant de commencer. Sinon, les exercices ne vous permettront pas
l’assimilation des différentes notions. Ces exercices vous permettront égale-
ment d’étudier des cas classiques. Plus que de simples exercices d’application,
ils sont plutôt un complément de cours. Ne les bradez pas !
Enfin, faites les exercices dans l’ordre, la difficulté (bien que modeste) étant
croissante.
Exercice 1
Plusieurs kinésithérapeutes se sont regroupés en un cabinet de kinésithérapie. Chacun d’eux
est identifié par un numéro identifiant attribué par le ministère de la Santé. Ils ont un nom et
un prénom. Chaque praticien possède une clientèle indépendante : chaque patient n’a affai-
re qu’à un seul praticien. On retiendra les nom, prénom et téléphone de chaque patient.
Travail à faire
Faites le MCD modélisant le cabinet.
Exercice 2
L’entreprise X est spécialisée dans la vente de produits informatiques. Elle vous demande
d’informatiser sa gestion des stocks. Comme vous débutez dans le métier (tout le monde a
commencé un jour, n’est-ce pas ?), vous ne savez pas trop ce que tout cela signifie. Le res-
ponsable de X, qui a conscience que vous ne pourrez informatiser la gestion du stock qu’en
la comprenant, vous donne les informations suivantes :
Nous vendons du matériel informatique à toute sorte de clients : particuliers, entreprises,
administrations… En général, les entreprises et administrations passent des commandes de
plusieurs dizaines de postes. Il n’est pas question de les livrer dans la journée. Les pièces en
stock ne leur sont pas destinées. En fait, nous réservons nos stocks aux particuliers qui vien-
nent directement au magasin ou passent leur commande par correspondance. Nous voulons
lancer le concept « votre PC prêt en 48 heures » : le client choisit sa configuration (quelle
carte mère, quel processeur, quelle carte graphique…) et nous assemblons son PC en deux
jours. Mais bien entendu, pour pouvoir réaliser l’assemblage, nous devons avoir les pièces en
51
8 3932 TG PA 01
Séquence 3
Bon, pour répondre à votre questionå, c’est très simple ! Une famille de produits (je pré-
férerais d’ailleurs le terme type à famille, cela fait plus professionnel) possède un nom (par
exemple carte mère) et un numéro d’étagère (car, comprenez-vous, on essaye de stocker les
produits de même type ensemble. Et, quitte à informatiser, j’aimerais avoir le numéro d’éta-
gères où sont stockés les produits d’une famille, euh non, d’un type donné).
Un produit a un nom, une marque, un prix hors taxes et fait partie d’une seule famille de
produits.
Travail à faire
1. Réalisez le MCD représentant les types de produits et les produits.
Le commercial de l’entreprise, qui est informaticien, vient vous voir discrètement pour vous
dire que le dirigeant que vous avez rencontré était avant tout un brillant gestionnaire, mais
n’était pas un spécialiste de l’informatique. Notamment, il n’a pas pris en compte le fait qu’un
produit pouvait appartenir à plusieurs types ; par exemple, une carte mère peut posséder un
circuit son voire vidéo, donc être à elle seule carte mère, carte son et carte graphique.
2. Corrigez le MCD en conséquence.
Vous êtes rappelé en catastrophe par le responsable : « pour gérer efficacement les stocks,
vous dit-il, il faut savoir combien l’on a d’exemplaires de chaque produit en stock. Et j’aime-
rais aussi savoir le nombre de produits de chaque type que je possède. »
3. Adaptez le MCD en conséquence si besoin est (une aide : repensez au cas de la gestion des
permis de construire quand on voulait la surface du terrain en ares et en m2).
Note sur cet exercice : cet exercice est important car la notion de couple produit/type de
produits est un classique.
Exercice 3
Un cabinet médical est constitué par une dizaine de médecins. Chacun d’eux est identifié
par un numéro attribué par le ministère de la Santé. Ils ont un nom, un prénom, un numéro
de poste téléphonique et une spécialité (généraliste, cardiologue…). Chaque praticien pos-
sède une clientèle indépendante : un patient ne consultera qu’un médecin par spécialité (le
patient d’un généraliste n’ira jamais consulter un autre généraliste du cabinet). En revanche,
un même patient peut consulter des spécialistes différentsç (comme un généraliste et un
cardiologue). On retiendra les nom, prénom et téléphone de chaque patient.
Travail à faire
Faites le MCD modélisant le cabinet.
å Oui, vous avez réussi à glisser une question dans ce discours fleuve qui, bien qu’intéres-
sant pour la culture générale, a peu d’intérêt pour ce que vous avez à faire.
52
8 3932 TG PA 01
MCD : les concepts de base 2/2
Exercice 4
Le responsable d’un cabinet d’architectes souhaite informatiser la gestion des différentes éta-
pes pour construire une maison. Pour cela, il a distingué 20 étapes essentielles (fondations,
charpente, toiture, hors d’eau…). Chaque étape aura un nom l’identifiant sans ambiguïté,
une durée en jours et un lieu de réalisation (intérieur ou extérieur de la maison).
Le responsable du cabinet dispose d’une liste de 1 à 8 entreprises sérieuses pour chaque
étape, certaines entreprises pouvant être retenues pour plusieurs étapes. Une entreprise
seracaractérisée par les propriétés habituelles. Pour chaque étape, on aura le nom d’une
personne du cabinet apte à vérifier la bonne réalisation du travail fait.
Travail à faire
Faites le MCD modélisant la gestion des étapes.
Exercice 5
Je commence à être à court d’exercices 2 entités et une association binaire. Plus précisément,
je suis à court. De plus, ce n’est pas franchement intéressant. Nous allons donc aller un peu
au-delà. Cela ne rend pas les exercices plus compliqués pour autant !
On reprend le sujet précédent, sauf le contrôleur qu’on laisse dans l’exercice 4. Ce qui donne
(j’ai résumé) :
Une maison est construite par étapes (nom l’identifiant sans ambiguïté, une durée en jours, un
lieu de réalisation – intérieur ou extérieur de la maison –). Pour chaque étape, on dispose d’entre-
prises pouvant les réaliser. Certaines entreprises pouvent être retenues pour plusieurs étapes.
On rajoute ce qui suit : le cabinet d’architectes fait aussi bureau d’études, maîtrise d’ouvrage…
C’est une entreprise d’une taille importante, divisée en multiples services. Notamment, tous les
salariés compétents pour suivre une étape donnée du chantier sont regroupés dans un service.
On aura donc un service compétent par étape de construction. Pour faire la toiture d’une mai-
son, le cabinet prendra donc une des entreprises habilitées pour cette étape toiture et deman-
dera à l’un des salariés du service compétent dans la toiture de contrôler le travail.
Un service possède un libellé et une date de création. Un salarié possède un nom, un prénom,
une adresse, un téléphone et une date d’embauche. Un salarié pouvant être compétent dans
plusieurs domaines, il peut être affecté à différents services.
Travail à faire
Mettez à jour le MCD pour prendre en compte ces modifications.
Si vous avez du mal, travaillez par étapes : réalisez le MCD des services et salariés, puis reliez
les deux MCD.
Exercice 6
On reprend le sujet de l’exercice 4, en enlevant toute référence aux contrôles :
Une maison est construite par étapes (nom l’identifiant sans ambiguïté, une durée en jours, un
lieu de réalisation – intérieur ou extérieur de la maison –). Pour chaque étape, on dispose d’en-
treprises pouvant les réaliser. Certaines entreprises peuvent être retenues pour plusieurs étapes.
53
8 3932 TG PA 01
Séquence 3
Pour éviter tout problème de fraude, le cabinet décide d’externaliser le contrôle des chan-
tiers qu’elle dirige. Ainsi, ce n’est plus un salarié du cabinet qui ira vérifier la bonne réalisa-
tion d’une étape de la construction, mais une entreprise tierce. Pour chaque étape, le cabinet
a sélectionné une entreprise de vérification (jamais une entreprise déjà retenue pour réaliser
une étape). Chaque entreprise de vérification ne pourra vérifier qu’une étape.
Travail à faire
1. Mettez à jour le MCD pour prendre en compte l’entreprise de vérification. Il y a deux solu-
tions possibles : soit l’on regroupe toutes les entreprises (on n’a alors qu’une association
à rajouter), soit l’on distingue entreprises de construction et entreprises de vérification
(dans ce cas, il faut ajouter une entité et une association). Faites un MCD pour chaque
solution.
Exercice 7
Gestion des permis de construire (deuxième partie). Rappel du sujet initial (j’ai enlevé les
fioritures) :
Un terrain est caractérisé par une référence cadastrale, une surface en ares, un type (cons-
tructible, inondable, indéterminé…). Un propriétaire est caractérisé par ses nom, prénom,
adresse et date de naissance.
Un terrain appartient à un seul propriétaire.
On rajoute la gestion des maisons.
Une maison est décrite par une surface au sol, un nombre de pièces, un type de chauffage (gaz
ou électrique), une date d’achèvement. Elle appartient à un propriétaire unique. Bien entendu,
le terrain et le(s) maison(s) qui y sont bâties doivent appartenir à la même personne : pas ques-
tion d’aller construire une maison sur le terrain du voisin quand il est parti en vacances !
Travail à faire
Faites le MCD correspondant (attention aux redondances !)
Exercice 8
Changeons un peu de type d’exercice. Je vous donne un MCD, vous me donnez la description
du réel correspondant sans paraphraser le schéma. Bien entendu, la difficulté est de retrou-
ver les règles de gestion au travers des associations et cardinalités (aucune n’est anodine),
sachant que vous avez droit à une primeur : une ternaire !
Premier MCD :
ÉTUDIANT
NuméroÉtudiant
Nom COURS
Prénom suivre Titre
1,n 0,n
Rue Durée
Code postal
Ville
54
8 3932 TG PA 01
MCD : les concepts de base 2/2
Second MCD :
ÉTUDIANT
NuméroÉtudiant
suivre COURS
Nom 1,n 0,n
Titre
Prénom
Durée
Rue 1,n
Code postal
Ville ANNÉE
AAAA
L’entité Année ne dois pas vous angoisser. L’identifiant AAAA indique juste que l’on stocke
l’année (A pour Année) sur quatre chiffres (p. ex. 2001). L’entité est assez particulière puis-
qu’elle n’a qu’une seule propriété. Mais bon, que rajouter à une date ? La question à laquelle
vous devez répondre est en fait : « Pourquoi a-t-on besoin de gérer la date comme une
entité, donc d’utiliser une ternaire et non une binaire ? Hein ? »
Travail à faire
Donnez le réel représenté par le second MCD et comparez avec le premier, que vous con-
naissez déjà.
Exercice 9
Exploitons les ternaires !
Transportons-nous dans un lycée pour gérer les inspections des enseignants.
Un enseignant (nom, prénom, adresse, téléphone et date d’obtention du concours) est
inspecté à plusieurs reprises dans sa carrière. Bien entendu, toutes les informations liées à
chaque inspection (date [notée JJMMAAAA] et nom de l’inspecteur) sont mémorisées et
suivent l’enseignant tout au long de sa carrière. Un inspecteur est caractérisé par ses nom,
prénom, adresse et date d’arrivée dans le corps des inspecteurs. Tous les membres de l’Édu-
cation Nationale, dont les inspecteurs et enseignants, sont identifiés par un Numen (NUMéro
d’Éducation Nationale, identifiant interne à l’Éducation Nationale).
Travail à faire
Pour changer, faites donc le MCD de la gestion des inspections au sein du lycée !
Exercice 10
Encore plus qu’une ternaire !
Retournons dans le lycée pour terminer la gestion des inspections. On rajoute au sujet la
contrainte suivante :
Un professeur enseigne dans une discipline donnée. Un inspecteur n’est habilité que pour
une discipline. L’inspecteur ne visitera que les enseignants de sa discipline. Une discipline est
caractérisée par la matière (français, mathématiques…) et le niveau d’enseignement (collège,
lycée, lycée professionnel, BTS…).
Travail à faire
Rajoutez cette contrainte dans le MCD précédent (celui avec l’association inspecter).
55
8 3932 TG PA 01
Séquence 4
MCD : fin
Durée indicative : 6 heures
Nous allons étudier ici les derniers concepts relatifs au MCD : les porteuses de
données, les réflexives et les entités faibles. Ce ne sont pas des choses nouvelles,
plutôt des cas particuliers d’associations.
u Capacités attendues
• Maîtriser le vocabulaire de Merise
• Assimiler les concepts véhiculés par ces termes
• Représenter graphiquement un MCD.
u Contenu
1. Association porteuse de données ................................................ 58
1A. Introduction ............................................................................................... 58
1B. Définition ................................................................................................... 59
Synthèse
57
8 3932 TG PA 01
Séquence 4
1A. Introduction
Revenons à l’inspection des enseignants vue dans les travaux dirigés. Ce n’est pas
quelque chose du style « descente de police ». L’enseignant ne risque pas son poste.
Cependant, ce n’est pas non plus une visite de courtoisie. L’inspecteur attribuera une
note et un commentaire (rapport d’inspection) qui influera sur la vitesse d’avancement
de carrière de l’enseignant.
Autant dire que l’important dans la visite n’est pas vraiment le nom de l’inspecteur qui
n’est conservé qu’à des fins de contrôle. C’est avant tout la note attribuée, ainsi que la
date de l’inspection qui indique quand prendre en compte la note.
Il faut donc stocker ces données (notes et commentaires) dans notre système d’informa-
tion, sachant que chaque inspection donne une note et un commentaire. Nous allons
travailler sur le sujet initial (exercice 9 des travaux dirigés précédents) que je complète
un peu, ce qui donne :
Un enseignant (nom, prénom, adresse, téléphone et date d’obtention du concours) est
inspecté à plusieurs reprises dans sa carrière.
Les informations liées à chaque inspection (date, inspecteur, note et commentaire) sont
mémorisées et suivent l’enseignant tout au long de sa carrière.
Un inspecteur est caractérisé par ses nom, prénom, adresse et date d’arrivée dans le corps
des inspecteurs.
Tous les membres de l’Éducation Nationale, dont les inspecteurs et les enseignants, sont
identifiés par un Numen (NUMéro d’Éducation Nationale, identifiant interne à l’Éduca-
tion Nationale).
Exercice 25
En reprenant le MCD où l’inspection était représentée par une entité (voir la correction de
l’exercice 9 des travaux dirigés précédents), prenez en compte les nouvelles données relatives
à l’inspection : la note et le commentaire.
Dans l’exercice 9, nous avions représenté l’inspection de deux façons différentes : avec
une entité puis une association. Le cas de l’entité vient d’être réglé facilement dans
l’exercice précédent. Reste donc l’association. Je vous rappelle le MCD :
INSPECTEUR ENSEIGNANT
Numenlnsp NumenEns
Nomlnsp NomEns
Prénomlnsp inspecter PrénomEns
1, n 0, n
Adrlnsp AdrEns
Codelnsp CodeEns
Villelnsp 1, n VilleEns
Datelnsp DateEns
DATE
JJMMAAAA
58
8 3932 TG PA 01
MCD : fin
INSPECTEUR ENSEIGNANT
Numenlnsp NumenEns
Nomlnsp NomEns
Prénomlnsp inspecter PrénomEns
1, n 0, n
Adrlnsp note AdrEns
commentaire
Codelnsp CodeEns
Villelnsp VilleEns
1, n
Datelnsp DateEns
DATE
JJMMAAAA
Notez le formalisme : les données (propriétés) sont écrites dans le rond de l’association, sous son nom (nom et
propriétés étant séparés par un trait).
1B. Définition
Association porteuse de données : une association est porteuse de données si elle
possède une ou plusieurs propriétés.
L’identifiant de l’association déterminant l’occurrence de l’association, il détermi-
nera aussi la valeur de ces propriétés (comme pour une entité).
Finalement, on peut faire un parallèle entre entité et association, puisque les deux ont
des occurrences, des identifiants et des propriétés. Ce parallèle est si fort qu’on hésite
parfois entre une entité et une association pour représenter un concept. On fera le point
sur ce problème dans la séquence suivante.
Très souvent, on est en plein ravissement lorsque l’on découvre un nouveau concept et
l’on tente de l’utiliser partout. Il ne faut donc pas se laisser aller et utiliser les associations
porteuses de données à tout bout de champ.
On ne mettra des propriétés dans une association que si ces propriétés sont déterminées
(identifiées) par tout l’identifiant de l’association.
59
8 3932 TG PA 01
Séquence 4
Exercice 26
Reprenons notre vieil exercice sur les étudiants s’inscrivant au CNED. Je vous rappelle le MCD :
ÉTUDIANT
NumeroÉtudiant
Nom COURS
Prénom suivre Titre
1, n 0, n
Rue Durée
Code postal
Ville
Pour assurer le suivi pédagogique des étudiants, le CNED veut conserver la moyenne annuelle
des étudiants pour chaque cours suivi. Modélisez cela sur le MCD.
Attention, il y a une astuce !
Exercice 27
Simplifions le sujet : le CNED s’est aperçu que la multiplication des inscriptions nuisait aux étu-
diants, qui ne pouvaient pas valablement suivre plusieurs enseignements à la fois. Il est donc
décidé de n’admettre qu’une inscription annuelle. Modifiez le MCD de l’exercice précédent en
conséquence.
Attention, il y a une astuceå !
60
8 3932 TG PA 01
MCD : fin
2. Association réflexive
2A. Introduction
Ce n’est pas un nouveau concept théorique, mais un cas particulier d’association. Nous
allons travailler sur le sujet suivant :
Nous sommes à la mairie pour informatiser la gestion de l’état civil, notamment les
mariages. Les conditions sont simples : une personne possède un nom, prénom, sexe,
adresse, date et lieu de naissance. Un mariage est réalisé entre deux personnes de sexes
différents. On considère qu’une personne peut être mariée plusieurs fois (bien entendu
à des dates différentes, mais on ne gère pas les dates pour le moment).
Exercice 28
Faites le MCD du sujet ci-dessus en prenant bien garde de respecter la contrainte du mariage
entre personnes de sexes différents.
La solution vue dans le corrigé de l’exercice n’est pas satisfaisante car, pour relier deux
personnes par les liens sacrés du mariage (pour relier deux occurrences de Personne par
une occurrence d’épouser), nous avons représenté deux fois la même entité.
Mais, au fait, pourquoi nous sommes-nous senti obligés de faire cela ? Regardez l’« ani-
mation » suivante :
VilleP
PERSONNE
NumeroP PERSONNE
1, n NumeroP 1, n
NomP u
PrénomP épouser NomP PERSONNE
SexeP PrénomP
NumeroP épouser
1, n SexePNomP
DateNaissanceP
AdrP DateNaissanceP
PrénomP
CodeP AdrPSexeP
1, n
VilleP CodePDateNaissanceP
VilleP
AdrP
CodeP
VilleP
Il ne s’agit pas de mettre les deux entités Personne l’une sur l’autre. Je voulais juste vous mon-
O trer pourquoi il était intuitif et naturel de relier une entité avec elle-même par une association.
En fait, une occurrence d’épouser relie bien deux occurrences d’entité… que ces occurrences
appartiennent à la même entité est secondaire. Une telle association sera dite réflexive.
61
8 3932 TG PA 01
Séquence 4
Vous remarquerez que le problème évoqué dans la correction de l’exercice précédent est
résolu : on a bien unicité de l’entité et donc aucune partition des différentes occurrences.
Les deux pattes d’épouser symbolisent toujours la même chose : l’une des personnes est
le mari, l’autre est la femme. Sauf qu’avant, c’était évident (la patte reliée à Homme
représentait le mari, celle reliée à Femme représentait la femme). Maintenant, on ne sait
plus quelle patte représente qui puisque le MCD est parfaitement symétrique : les deux
pattes étant identiques, elles sont interchangeables.
Lorsque c’est utile pour la compréhension du MCD, on peut nommer les pattes des
réflexives pour savoir quel est le rôle de chacune d’elles.
Cela donnerait ici :
Remarques
1. Indiquer le rôle de chaque patte obligera à le respecter lors de la saisie des données.
Si la première patte indique l’homme et la seconde la femme, cela signifie que le pro-
gramme devra vérifier que la première personne indiquée pour le mariage a pour sexe
homme, la seconde ayant pour sexe femme. Il est inutile d’ajouter la moindre règle de
gestion puisque l’information est contenue dans le MCD.
2. À notre niveau, choisir l’une ou l’autre des pattes et l’appeler époux, l’autre étant
épouse, n’a aucune importance. En revanche, lorsque l’on créera la base de données,
des raisons d’efficacité du traitement rendront le choix moins anodin. Mais ces consi-
dérations opérationnelles n’ont aucune valeur au niveau conceptuel.
3. Si l’on est déterminé à faire des âneries, le MCD n’empêche pas qu’une personne
s’épouse elle-même ! (Sauf à mettre en œuvre la vérification par le programme vue
dans la première remarque.)
Je vous conseille d’indiquer systématiquement les rôles des pattes des réflexives pour
augmenter la lisibilité du modèle.
Oh là ! Tout à notre excitation de découverte de ce nouveau jouet qu’est la réflexive,
nous avons oublié nos réflexes de base : la vérification des cardinalités.
Exercice 29
Dans le MCD ci-dessus mettant en œuvre la réflexive, les cardinalités sont fausses. Pourtant,
elles sont justes dans les MCD représentant la même chose mais sans réflexive. Expliquez pour-
quoi, puis corrigez ces cardinalités.
62
8 3932 TG PA 01
MCD : fin
J’insiste ! on retiendra :
Lorsque l’on bâtit une nouvelle association sur une entité en comportant déjà (donc
quand on rajoute une patte d’association à une entité), les cardinalités déjà existan-
tes doivent être revisitées.
2B. Définition
Ah, j’oubliais la définition ! Il fallait me la réclamer !
Association réflexive : une association est réflexive si une entité participe plus
d’une fois à cette association. Il est préférable de toujours indiquer les rôles des pat-
tes et il faut vérifier soigneusement les cardinalités.
Vous remarquerez que la définition n’est pas restrictive ; les trois associations suivantes
sont donc des réflexives :
ENTITÉ
0,n
Propriété_1
ENTITÉ_1 0,n ENTITÉ_2
Propriété_2 association association
0,n (propriétés) (propriétés)
(etc)
0,n 1,n
Propriété_n 0,n
ENTITÉ_3
(propriétés)
0,n
ENTITÉ_1 0,n 0,n ENTITÉ_2
association
(propriétés) 0,n (propriétés)
0,n 0,n
Si ces associations sont correctes d’un point de vue modélisation, il n’est pas du
O tout évident que la sémantique qu’elles apportent ait un sens dans la vie réelle.
C’est d’ailleurs parce que je n’ai pas trouvé d’exemple que je n’ai pas donné de nom
aux associations et entités.
Dit autrement, si vous êtes amené à produire de tels mutants, vérifiez une dizaine de
fois leur validité.
Bien, nous allons exploiter notre nouvelle connaissance dans trois exercices sympathiques.
Exercice 30
Nous reprenons le sujet précédent (le mariage). Cette fois, nous voulons faire les choses cor-
rectement : un mariage est célébré à une date précise. Il prend éventuellement fin à une date
précise (correspondant à la date du divorce). Une personne ne peut contracter qu’un mariage
à la fois. Faites le MCD correspondant.
J’insiste ! On retiendra :
Lorsqu’un événement matérialisé par une association doit être historisé, la propriété
date devient une entité participant à l’association.
63
8 3932 TG PA 01
Séquence 4
Exercice 31
On rajoute les témoins : un mariage doit être célébré en présence de deuxå témoins (nom, pré-
nom, adresse, date de naissance… les choses classiques). Rajoutez les témoins dans le MCD.
Exercice 32
On n’a pas encore donné la correction de l’exercice précédent, mais ce nouvel exercice est sensé
vous aider. Je vous rajoute les contraintes suivantes : un mariage est célébré non seulement à
une date précise, mais aussi à une heure précise. Les époux peuvent avoir signé un contrat de
mariage auprès d’un notaire (nom, prénom, adresse…). Il y a plusieurs types de contrats : com-
munauté, communauté réduite aux acquêts, séparation de biens… Évidemment, il faut stocker
le type du contrat et le notaire pour pouvoir rédiger les actes officiels. Les époux doivent dési-
gner de 2 à 4 témoins. Enfin, le maire ou l’un de ses adjoints peut célébrer le mariage. Chacune
de ces personnes est identifiée par ses nom, prénom, date de naissance et date d’élection en
tant que maire ou adjoint. Faites le MCD. Attention, cet exercice n’est pas spécialement diffi-
cile, mais il contient des pièges potentiels.
å C’est inexact puisque en réalité, il doit y avoir de 2 à 4 témoins. Cette simplification sera
supprimée dès l’exercice suivant.
3A. Présentation
Pas question de leur faire faire de la musculation ! Elles ne sont pas faibles par manque
de muscle, mais parce qu’elles sont dépendantes d’autres entités, un peu comme un
bébé teckel dépend de sa maman teckel.
Exercice 33
Le fait qu’une entité dépende d’une autre doit vous choquer affreusement ; pourquoi ?
Nous allons voir que les entités faibles permettent de traduire un concept de la vraie vie :
la notion de dépendance, qui ne peut être correctement représenté par une association.
Étudions le cas suivant :
Une centrale hôtelière vous demande de gérer son parc de chambres d’hôtel. La descrip-
tion du réel est la suivante : la centrale gère une dizaine d’hôtels, chacun étant décrit
par un nom, une adresse et un nombre de chambres. Chaque chambre est décrite par son
étage, son numéro de porte, sa capacité (une, deux ou trois personnes) et la présence ou
l’absence de cabinet de toilette.
Exercice 34
Faites le MCD modélisant le système d’information de la centrale hôtelière.
64
8 3932 TG PA 01
MCD : fin
Analysons la solution de l’exercice : l’identifiant artificiel des chambres est très lourd.
Dans la réalité, on ne parlera pas de la chambre 984, mais plutôt de la chambre 27 de
l’hôtel numéro cinq. De plus, ces deux chiffres (27 et 5) sont stockés dans le système
d’information.
Exercice 35
Où sont stockées ces informations ? En d’autres termes, comment puis-je savoir dans quel
hôtel est la chambre d’identifiant artificiel 984 et quel est son numéro réel ?
Résumons-nous
1. Dans la vraie vie, on parlera de la chambre d’un hôtel donné (chambre 27 de l’hôtel
5) plutôt que de la chambre seule (chambre 984), puisque ce numéro 984 n’existe pas
dans la réalité.
2. La chambre est toujours liée à un et un seul hôtel (patte 1,1). Une chambre sans hôtel
associé n’a pas de sens.
On a déjà la solution intuitive à ce problème : on va supprimer l’identifiant artificiel
de Chambre et dire que chaque chambre est identifiée par son numéro d’hôtel et son
numéro de porte. Cela donnera le MCD suivant :
HÔTEL
CHAMBRE
NumeroHôtel
NuméroHôtel
NomHôtel
contenir NuméroChambre
NbrChambres 1,n 1,1
Étage
AdrHôtel
NbrPersonnes
CodeHôtel
Cabinet
VilleHôtel
Exercice 36
Hélas pour nous, cette solution n’est pas conforme aux règles du MCD. Quel est le problème ?
65
8 3932 TG PA 01
Séquence 4
Ce n’est pas le seul problème : à la suite de notre raisonnement, il est évident, pour nous,
que la chambre et l’hôtel associés par contenir ont une même valeur pour NuméroHôtel.
Mais cela n’est pas évident pour quelqu’un prenant le cours en route.
En clair, ce que l’on veut représenter n’est pas modélisable pour le moment ; nous avons donc
besoin d’un outil supplémentaire. C’est outil, ce n’est pas une surprise, c’est l’entité faible.
Dans notre exercice, on dira que l’entité Chambre est une entité faible, dépendante de
l’entité Hôtel. On représentera cela en encadrant la propriété NuméroHôtel de Chambre
par des caractères # comme suit :
HÔTEL
CHAMBRE
NumeroHôtel
#NuméroHôtel#
NomHôtel
NuméroChambre
NbrChambres contenir
AdrHôtel 1,n 1,1 Étage
CodeHôtel NbrPersonnes
VilleHôtel Cabinet
C’est un peu décevant… la seule différence entre ce MCD et le précédent, ce sont deux #.
Mais il est important de comprendre que ces deux caractères changent tout !
Les # indiquent que l’on a affaire à une entité faible : les occurrences de Chambre et
Hôtel reliées par contenir ont la même valeur pour NuméroHôtel, cela traduisant le fait
que la chambre appartient à un hôtel précis.
Nous sommes prêts à aborder la définition.
3B. Définition
Entité faible : une entité faible est une « chose » du monde réel qui possède une exis-
tence propre dépendant de l’existence d’une autre entité, des caractéristiques bien
définies, qui présente un intérêt et a un sens pour le système d’information étudié.
(on retrouve la définition d’entité, j’ai mis en gras ce qui était nouveau.)
66
8 3932 TG PA 01
MCD : fin
La chambre est physiquement dans un seul hôtel, toujours Tant qu’il travaille dans l’entreprise, un salarié est toujours
le même. On dit alors que l’association contenir est stable affecté à un seul service. Mais, au fur et à mesure de sa
(sous entendu stable dans le temps) : lorsqu’une chambre est carrière, il peut changer de service. L’association travailler n’est
associée à un hôtel, c’est pour longtemps ! L’emploi d’une donc pas stable. On ne pourra pas utiliser d’entité faible.
entité faible est valide.
Ainsi, non seulement l’entité faible doit être liée à une autre entité, mais chaque
occurrence de l’entité faible doit être liée de façon permanente à une occurrence de
l’autre entité.
Classiquement, on utilisera une entité faible lorsque l’on aura explicitement un numéro
d’occurrence vis-à-vis d’une autre occurrence (un numéro de chambre dans un hôtel, un
numéro de place dans un train…).
Étudions cela au travers de quelques exercices.
Exercice 37
Nous voulons modéliser l’activité d’une médiathèque. Une inscription est faite au nom d’une
famille. Comme chaque enfant a droit à un nombre d’emprunts différent selon son âge, on
souhaite stocker, pour chaque inscription, la liste des enfants avec leur rang (le premier, le
deuxième…). Faites le MCD correspondant.
Exercice 38
Le service d’état civil d’une préfecture possède une base de données référençant les habitants.
Chaque personne est donc une occurrence d’une entité Personne contenant classiquement le
nom et l’adresse en propriétés.
Le service souhaite maintenant réaliser des statistiques sur les prénoms des habitants. Une per-
sonne possède de 1 à 3 prénoms dont l’ordre importe. Un prénom est décrit par son libellé et
par sa date d’apparition en France.
On vous demande de rajouter une entité Prénom et de mettre à jour le MCD en conséquence.
HÔTEL
CHAMBRE
NumeroHôtel
NuméroChambre
NomHôtel
Étage
NbrChambres contenir
1,n (1,1) NbrPersonnes
AdrHôtel
Cabinet
CodeHôtel
VilleHôtel
67
8 3932 TG PA 01
Séquence 4
C’est encore plus discret que les # ! Avez-vous vu le formalisme ? Les cardinalités 1,1
du côté de l’entité faible sont entre parenthèses. Et c’est tout ! Attention, notez bien
que cette représentation signifie toujours la même chose, à savoir que l’identifiant de
Chambre est constitué de NuméroHôtel et NuméroChambre même si cela n’est pas
repris explicitement dans le MCD.
Comme je trouve qu’il y a trop d’implicite dans ce formalisme, je vous conseille les #.
Vous pouvez, dès maintenant, faire et envoyer à la correction le devoir 1 (voir fasci-
cule « devoirs » réf. 3932 DG).
68
8 3932 TG PA 01
Synthèse
Définitions
Association porteuse de données : une association est porteuse de données
si elle possède une ou plusieurs propriétés. L’identifiant de l’association détermi-
nant l’occurrence de l’association, il déterminera aussi la valeur de ces propriétés
(comme pour une entité).
Association réflexive : une association est réflexive si une entité participe plus
d’une fois à cette association. Il est préférable de toujours indiquer les rôles des
pattes et il faut vérifier soigneusement les cardinalités.
Entité faible : une entité faible est une « chose » du monde réel qui possède
une existence propre dépendant de l’existence d’une autre entité, des
caractéristiques bien définies, qui présente un intérêt et a un sens pour le système
d’information étudié.
Conseils
Si une association est porteuse de propriétés. Vérifiez que ces propriétés sont déterminées
(identifiées) par tout l’identifiant de l’association.
Lorsque l’on bâtit une nouvelle association sur une entité en comportant déjà (donc quand
on rajoute une patte d’association à une entité), les cardinalités déjà existantes doivent
être revisitées.
Lorsqu’un événement matérialisé par une association doit être historisé, la propriété date-
devient une entité participant à l’association.
Une occurrence d’entité faible n’existe que vis-à-vis de l’occurrence d’une autre entité. On
ne peut donc pas avoir d’autres cardinalités que 1,1 du côté de l’entité faible.
Ainsi, non seulement l’entité faible doit être liée à une autre entité, mais chaque occurrence
de l’entité faible doit être liée de façon permanente à une occurrence de l’autre entité.
69
8 3932 TG PA 01
Séquence 5
Le MLD
Durée indicative : 4 heures
Cela ne vous posera aucun problème. Bien que simple, c’est une étape primordiale
car elle fait le lien entre le conceptuel et l’informatisation. Outre son intérêt dans
la compréhension globale du système d’information étudié, c’est une production
souvent demandée à l’examen.
Capacités attendues
• Comprendre l’importance du MLD
• Savoir réaliser un MLD prenant en compte toutes les particularités
du MCD
Contenu
1. Introduction ........................................................................................... 72
1A. Rappel de la définition ............................................................................. 72
1B. Rappel du sermon ..................................................................................... 72
2. Le MLD .................................................................................................... 73
2A. Utilisation du MLD .................................................................................... 73
2B. Rappel de vocabulaire .............................................................................. 73
2C. Notation ..................................................................................................... 74
2D. Règles de passage MCD " MLD .............................................................. 75
2E. Exemples .................................................................................................... 76
2F. Vérification ................................................................................................ 76
2G. Démarche et exemple ............................................................................... 78
2H. Quelques cas particuliers .......................................................................... 79
3. Conclusion (brève !) ........................................................................... 86
Synthèse
71
8 3932 TG PA 01
Séquence 5
1. Introduction
72
8 3932 TG PA 01
Le MLD
2. Le MLD
Notons que lorsqu’une propriété (notion conceptuelle) devient un champ, on doit lui
attribuer son type de données puisé dans le dictionnaire des données.
On justifie donc finalement l’emploi de termes différents : en première approximation,
les concepts sont identiques, mais, si l’on est rigoureux, le vocabulaire du SGBD corres-
pond à des notions beaucoup plus ancrées dans le réel.
Il existe un concept propre au MLD : la clé étrangère. Sa définition est simple.
Clé étrangère : une clé étrangère est un champ d’une table qui est clé primaire dans
une autre table.
Retournez très exactement à la séquence 3, paragraphe 4A. et regardez les tableaux
propriétaire et terrain… NuméroPropriétaire est une clé étrangère dans terrain puisque
c’est à la fois un champ de terrain et une clé primaire de propriétaire.
å En fait, le SGBD peut être vu comme un système de tableaux dont l’organisation et la gestion
sont réalisées automatiquement par le SGBD lui-même (évidemment, ce sont l’organisation et la
gestion qui font toute la puissance de ces outils). Lorsque vous ajoutez des données dans une table,
l’interface dans laquelle vous travaillez est un tableau.
73
8 3932 TG PA 01
Séquence 5
2C. Notation
Dans le MCD, on distingue l’identifiant des autres propriétés en le soulignant. De la
même façon, on doit distinguer les clés primaires et les clés étrangères dans le MLD.
Comment faire ?
On devrait utiliser des effets tels le gras et l’italique car rien d’autre n’existe en typogra-
phie, notamment pas le soulignement. En effet, l’italique est l’équivalent typographique
du souligné manuscritå.
Hélas, la communauté informatique a pris l’habitude de souligner les clés primaires, que
le travail soit fait à la main ou sur traitement de texte. Même si ce n’est pas correct, je
reprendrai cette notation pour ne pas me distinguer inutilement.
Notez que sur votre copie, la question ne se pose pas : vous ne pouvez ni écrire en gras,
ni en italique. Il ne vous reste que le soulignement.
La notation pour la clé étrangère est assez tordue. En effet, on fait suivre tout champ clé
étrangère d’un caractère #. Par exemple : NuméroProduit#. C’est une notation tellement
bizarre que je vais tenter de la justifier un peu :
• pourquoi un # ? Parce que l’on est sûr que ce caractère se distinguera du nom du
champ (pas question d’utiliser un e par exemple ; mais on aurait pu choisir %, $…) ;
• pourquoi le mettre en fin de mot ? Bah oui, on aurait également pu le mettre au
début. Je suppose que l’intérêt est de pouvoir lire de gauche à droite : Champ# se
lira Champ est clé étrangère ;
• pourquoi ne pas utiliser un autre soulignement, par exemple en pointillés ? Tout
simplement car un champ peut être à la fois identifiant et clé étrangère. Si vous
pouvez juxtaposer deux soulignements sous un mot à la main, on ne peut pas le
faire aisément avec le traitement de texte ! Word permet le souligné double mais
ne sait pas faire l’un des deux soulignements en pointillés.
Pour résumer, vous noterez que de bêtes problèmes techniques nous font utiliser les
notations suivantes :
Vous reprendrez ces notations dans vos devoirs, en les rappelant toujours puisqu’elle ne
sont pas particulièrement normalisées.
Pour décrire une table, on met son nom, suivi entre parenthèses de la liste des champs
séparés par des virgules. On mettra l’identifiant en première position et les clés étrangè-
res éventuelles à la fin pour que ce soit plus lisible. Deux exemples :
NomTable (clé primaire, champ1, champ2…champn)
NomTable (clé primaire, champ1, champ2…champn, clé étrangère1#, clé étrangère2#)
Quelle que soit la notation que vous emploierez pour distinguer les identifiants et les
clés étrangères, je vous conseille de la rappeler après chaque MLD… car l’important n’est
pas la notation, mais le concept qu’elle représente.
å Par exemple, les titres d’œuvres se soulignent à la main et s’écrivent en italique en imprimerie.
74
8 3932 TG PA 01
Le MLD
Exercice 39
Au fait, je vous dis que le soulignement n’est pas correct en typographie. Or, les identifiants
Merise le sont. Pourquoi ? Les pères fondateurs se seraient-ils eux aussi trompés ?
å Je vous rappelle que la notation [x–y] représente les deux cardinalités maximales de l’association
(voir la séquence 3 § 4D). Une association [n–n] signifie que les cardinalités seront 0,n ou 1,n,
quel que soit le nombre de pattes. Le cas [n–n] couvre donc toute association dont les pattes ont
comme cardinalité maximale n.
ç [1–n] indique une patte 0,1 ou 1,1 et une autre 0,n ou 1,n (si une patte a une cardinalité maxi-
male de 1, on a vu que l’association ne pouvait être qu’une binaire).
75
8 3932 TG PA 01
Séquence 5
2E. Exemples
On va étudier le passage du MCD vers le MLD d’une entité, d’une association [n–n] por-
teuse ou non, puis d’une [1–n].
2F. Vérification
On vérifie aisément que la sémantique des données est conservée (on a déjà fait cette
démarche avec les MLD sous forme de tableau). Je vous répète que même dans un SGBD
relationnel, les données sont présentées sous la forme d’un tableau, la machinerie étant
masquée. Le cours ci-dessus vient donc juste de présenter de façon formelle ce que l’on
a fait intuitivement dans la troisième séquence.
Reprenons le deuxième MCD du tableau ci-dessus (association emprunter). Voici un
exemple de contenu des tables (vous remarquerez qu’elles sont sans ordre particulier).
76
8 3932 TG PA 01
Le MLD
Personne Emprunter
NUMERO PERS. NOM ADRESSE VILLE NUMERO PERS. JJMMAAAA ISBN
13 LeChat 8, avenue de la Libération Orléans 8 22/08/2000 2.264.02454.2
8 LeTeckel 13, rue de l’Europe Cergy 13 13/04/2000 2.02.025380.1
9 LeLapin Square Fleuri Clapiers 8 19/05/2000 2.02.025380.1
9 15/10/2000 2.02.025380.1
8 18/11/2000 2.07.036209.4
Livre Date
ISBN TITRE LIVRE DATE ACHAT JJMMAAAA
2.264.02454.2 L’âge difficile 18/04/1999 13/04/2000
2.02.025380.1 American Psycho 07/12/2000 19/05/2000
2.264.01095.9 Moins que zéro 15/04/2000 22/08/2000
2.07.036209.4 Les célibataires 08/12/1999 15/10/2000
18/11/2000
Nous allons vérifier que l’organisation des données est en adéquation avec le monde
réel en cherchant les titres des livres empruntés par M. LeTeckel de Cergy. Comment
faire ? Les emprunts sont stockés dans la table Emprunter (c’est logique puisqu’ils étaient
matérialisés par l’association emprunter du MCD). Mais un coup d’œil au contenu de la
table Emprunter nous rappelle que pour des raisons d’efficacité et de non-redondance,
les occurrences concernées (livre, personne et date) ne sont représentées que par leur
identifiant. On va donc procéder en trois étapes :
1. Dans Personne, on cherche le numéro de M. LeTeckel. C’est le numéro 8.
2. Dans Emprunter, on relève les ISBN des livres empruntés par la personne numéro 8.
Il y a 2.264.02454.2, 2.02.025380.1 et 2.07.036209.4.
3. Dans Livre, on récupère le titre correspondant à chacun des ISBN retenus et on
obtient la réponse : L’âge difficile, American Psycho et Les célibataires.
Cette recherche est illustrée graphiquement dans le schéma suivant :
Personne
NUMÉRO PERS. NOM ADRESSE VILLE
13 LeChat 8, avenue de la Libération Orléans
1re étape 8 LeTeckel 13, rue de l’Europe Cergy
9 LeLapin Square Fleuri Clapiers
Emprunter Livre
NUMÉRO PERS. JJMMAAAA ISBN ISBN TITRE LIVRE DATE ACHAT
8 22/08/2000 2.264.02454.2 2.264.02454.2 L’âge difficile 18/04/1999
13 13/04/2000 2.02.025380.1 2.02.025380.1 American Psycho 07/12/2000
3e étape
77
8 3932 TG PA 01
Séquence 5
Deuxième étape : les [1–n]. Ici, on n’a que être qui est concernée, d’où la table Produit :
Produit (NuméroProduit, LibelléProduit, prixHT, NuméroTypeProduit#)
Troisième étape : on ferme les parenthèses (non représenté ici, je ne suis pas payé à la
ligne !)
Quatrième étape : les [n–n]
Comporter (NuméroFacture#, NuméroProduit#, quantité)
Stocker (NuméroTypeProduit#, NuméroEntrepôt#)
å Et là, vous pouvez fermer la parenthèse sans problème puisque qu’une [n–n] ne peut contenir de
patte avec une cardinalité maximale de 1 donc ne générera pas de clé étrangère.
78
8 3932 TG PA 01
Le MLD
79
8 3932 TG PA 01
Séquence 5
Graphiquement :
Emprunter Date
NUMÉRO PERS. JJMMAAAA ISBN JJMMAAAA
8 22/08/2000 2.264.02454.2 13/04/2000
13 13/04/2000 2.02.025380.1 19/05/2000
8 19/05/2000 2.02.025380.1 22/08/2000
9 15/10/2000 2.02.025380.1 15/10/2000
8 18/11/2000 2.07.036209.4 18/11/2000
Mais alors, à quoi nous sert Date ? Livre est utile car Emprunter ne contient que l’identi-
fiant ISBN, le reste des informations relatives aux livres se trouvant dans Livre. De même,
seul le numéro de personne se trouve dans Emprunter, le reste des informations sur les
emprunteurs se trouvant dans Personne.
Mais pour Date, rien de tel ! Toutes les informations se trouvant dans Emprunter, on n’a
aucune raison de se référer à Date, qui ne sert alors à rien !
L’entité Date ne sera donc pas traduite dans le MLD, qui se réduira alors aux 3 tables
suivantes :
Personne (NuméroPersonne, Nom, Adresse, Ville)
Livre (ISBN, TitreLivre, DateAchat)
Emprunter (NuméroPersonne#, JJMMAAAA, ISBN#)
(Du coup, JJMMAAAA n’est plus clé étrangère : le # disparaît.)
O laCetable
n’est pas une règle absolue concernant les entités Date. Si, pour diverses raisons,
Date contient des dates précises indépendamment des dates utilisées dans
des occurrences d’association – par exemple la liste des jours ouvrables –, alors on
créera une table Date.
Finalement, une entité ne sera pas transformée en table si les deux conditions sui-
vantes sont réunies :
1. L’entité ne possède qu’un identifiant et aucune propriété.
2. Toutes les occurrences de l’entité sont utilisées par des occurrences d’association.
Généralement, seule l’entité Date (ou Heure ou Année) peut remplir ces conditions.
L’infinie diversité des situations fait qu’il peut arriver qu’une autre entité que celles
mesurant le temps remplisse ces conditions. Mais bon… de ma vie d’informaticien je n’en
ai jamais croisé.
Souvenez-vous de l’exercice sur les prénoms.
Lorsque vous omettez de traduire Date dans le MLD, vous devez le justifier briè-
O vement (il s’agit juste de dire que les occurrences de Date sont redondantes puis-
que reprises dans les associations truc et bidule). Sinon, le correcteur pensera que
vous avez oublié de traiter l’entité Date, le fait qu’elle ne doive pas être conservée
n’étant qu’un coup de chance.
80
8 3932 TG PA 01
Le MLD
Exercice 40
On veut informatiser la gestion du paiement des factures dans une entreprise. Une facture est
identifiée par un numéro, un montant à payer, une date de facture et une date limite de paie-
ment. Un paiement est caractérisé par son type (chèque, virement, lettre de change…) et son
numéro éventuel (numéro de chèque ou numéro de virement). On supposera que le règlement
d’une facture se fait en une fois à une date qu’il faut conserver.
Faites le MCD correspondant.
Nous allons voir comment traduire payer dans le MLD. En fait, il y a trois solutions corres-
pondant à l’application de la règle générale des associations [1–n] selon trois points de
vue différents. En effet, on peut considérer que chaque patte joue le rôle du 1 que l’on
avait traité dans les [1–n]. Chaque identifiant devient donc clé étrangère dans la table
issue de l’autre entité. Notons que cette solution apporte de la redondance.
Exercice 41
Faites le MLD du sujet de l’exercice précédent en adoptant ce point de vue (chaque patte
joue le rôle du 1).
On peut aussi considérer que l’une des pattes joue le rôle du 1, l’autre jouant le rôle
du n. Un des identifiants seulement devient donc un champ clé étrangère. Cela donne
deux solutions, selon que l’un ou l’autre identifiant est choisi.
Exercice 42
Faites les deux MLD possibles correspondant à ce point de vue : la patte de Facture joue le
rôle du 1 puis la patte de Règlement joue ce rôle.
Laquelle des trois solutions adopter ? Les trois sont acceptables. Selon le contexte, on
pourra éventuellement dire que l’une ou l’autre est maladroite.
Tout va dépendre des traitements généralement effectués :
• si on recherche habituellement le règlement à partir de la facture, on mettra le
numéro de règlement en clé étrangère ;
• si on recherche plutôt la facture pour un règlement donné, on mettra le numéro de
facture en clé étrangère ;
• si on recherche indifféremment l’un des deux en fonction de l’autre, on mettra les
deux identifiants en clés étrangères, la redondance étant contrebalancée par le gain
d’efficacité ;
å D’après les règles vues précédemment, dès que l’on a une cardinalité maximale de 1, on ne peut
avoir qu’une binaire.
81
8 3932 TG PA 01
Séquence 5
82
8 3932 TG PA 01
Le MLD
PERSONNE
NuméroPersonne porter PRÉNOM
1,3 rang
0,n Prénom
Nom
Adresse
Ville
Exercice 43
Avant de parler de porter, faites le MLD des deux entités. Vous traiterez très attentivement
le cas de Prénom pour décider s’il relève du cas 2H1.
83
8 3932 TG PA 01
Séquence 5
PERSONNE
NumeroP 0,n époux
NomP épouser
PrénomP épouse
SexeP 0,n
DateNaissanceP
AdrP
CodeP
VilleP
Le raisonnement que l’on a toujours utilisé avec les réflexives était de dire que, fina-
lement, c’étaient des associations binaires normales, sauf que les deux entités reliées
étaient… les mêmes, ce qui reste un détail.
Exercice 44
Faites le MLD du MCD précédent en gardant à l’esprit qu’il faut traiter la réflexive comme
une association normale.
Exercice 45
Décrivez précisément le réel modélisé par le MCD suivant qui représente les liens hiérarchi-
ques dans une entreprise, puis faites le MLD.
SALARIÉ
0,n dirige
NumeroS
NomS diriger
PrénomS est dirigé
AdrS
0,1
VilleS
On retiendra donc :
Pour traduire une association réflexive dans le MLD, on utilisera les règles classi-
ques, à ceci près que l’on renommera souvent l’identifiant pour en faire un nom de
champ intelligible.
84
8 3932 TG PA 01
Le MLD
HÔTEL
CHAMBRE
NumeroHôtel
#NuméroHôtel#
NomHôtel
1,n contenir 1,1 NuméroChambre
NbrChambres
Étage
AdrHôtel
NbrPersonnes
CodeHôtel
Cabinet
VilleHôtel
Imaginons que l’on ne soit pas confronté à une entité faible. Que ferait-on face à ce MCD
sans entité faible donc avec une association [1–n] classique ? On créerait deux tables
Hôtel et Chambre et l’identifiant d’Hôtel serait rajouté en clé étrangère dans Chambre.
Or, ici, c’est déjà fait par le principe même de l’entité faible puisque NuméroHôtel est
une propriété de Chambre.
Ainsi, le MLD va consister à créer une table pour chaque entité sans se poser de question
particulière. L’association est purement et simplement mise de côté. Cela donne :
Hôtel (NuméroHôtel, NomHôtel, NbrChambres, AdrHôtel, CodeHôtel, VilleHôtel)
Chambre (NuméroHôtel#, NuméroChambre, Étage, NbrPersonnes, Cabinet).
Notez que le champ NuméroHôtel dans Chambre est souligné et suivi de #. En effet, il
est clé primaire dans Chambre (donc souligné), mais il est aussi clé étrangère puisqu’on
le retrouve en clé primaire dans Hôtel. On lui greffe donc un #.
J’insiste : ne tenez pas compte de l’association contenir, sinon vous auriez deux fois
NuméroHôtel dans la table Chambre.
Il faut bien comprendre que cette règle de passage dépend du formalisme utilisé.
Rappelez-vous l’autre formalisme que l’on trouve dans la littérature avec les cardinalités
du côté de l’entité faible entre parenthèses :
HÔTEL
CHAMBRE
NuméroHôtel
NuméroChambre
NomHôtel
1,n contenir (1,1) Étage
NbrChambres
NbrPersonnes
AdrHôtel
Cabinet
CodeHôtel
VilleHôtel
Pour passer au MLD avec ce formalisme, on dira que les deux entités deviennent des
tables et que l’identifiant d’Hôtel formera avec NuméroChambre l’identifiant de
Chambre. Bien entendu, le MLD obtenu reste le même !
85
8 3932 TG PA 01
Séquence 5
On retiendra donc :
Pour traduire une entité faible dans le MLD, on se contente de traduire les deux entités
sans se soucier de l’association (dans le cas du formalisme # utilisé dans le cours).
3. Conclusion (brève !)
Si l’on enlève le blabla d’introduction et les cas particuliers longuement discutés, le MLD
se résume à une demi-page de règles : les entités et les associations [n–n] deviennent des
tables, les [1-n] donnent naissances aux clés étrangères.
Il est donc dommage de perdre des points sur une question qui vous les offre ! Notons
que dans un sujet d’examen, vous aurez généralement un MCD à concevoir puis à tra-
duire en MLD. Il est bien évident que vous serez noté sur votre capacité à traduire votre
MCD en MLD, donc à utiliser les règles de passage de l’un à l’autre. Ainsi, même si votre
MCD est complètement faux, vous pouvez avoir tous les points pour le MLD. D’où une
petite supplique de prof : faites le MCD et le MLD sur deux feuilles différentes que l’on
puisse les mettre côte à côte : vous gagnerez beaucoup de temps pour écrire le MLD, et
nous, à le corriger !
Vous pouvez dès à présent commencer le cours Access (réf. 3932 TG PA 02) et le cours
SQL, (réf. 3999 TG PA 02).
86
8 3932 TG PA 01
Synthèse
Définition du MLD
Le MLD se dérive du MCD. Alors que le MCD présente la connexion des données
entre elles de façon théorique (conceptuelle), l’objet du MLD est d’indiquer com-
ment ces données vont être stockées dans le système informatique pour conser-
ver l’interconnexion établie dans le MCD.
Notations
Notion Notation Exemple
identifiant souligné NuméroClient
clé étrangère # en fin de mot NuméroProduit#
Cas particuliers
Une entité ne sera pas transformée en table si les deux conditions suivantes sont
réunies :
1. L’entité ne possède qu’un identifiant et aucune propriété.
2. Toutes les occurrences de l’entité sont utilisées par des occurrences d’as-
sociation. L’expérience montre que généralement seule l’entité Date (ou
Heure ou Année) peut remplir ces conditions.
Pour traduire une association [1–1] dans un MLD, on se rapprochera du cas
[1–n] pour une des pattes ou pour les deux. Le choix se fera en fonction de la
sémantique des données et des traitements à venir.
Pour traduire une association [i–n] dans un MLD, on pourra appliquer le cas
[1–n] (i petit) ou [n–n] (i grand).
87
8 3932 TG PA 01
Séquence 5
Méthodologie de construction
Elle tient en quatre étapes :
1. Vous écrivez toutes les tables issues des entités sans fermer la parenthèse
pour laisser la place aux clés étrangères éventuelles.
2. Pour chaque entité comportant des pattes 0,1 ou 1,1, vous rajoutez les clés
étrangères correspondantes.
3. Vous fermez toutes les parenthèses.
4. Vous écrivez toutes les tables issues des associations [n–n].
88
8 3932 TG PA 01
Séquence 6
Règles de validation du MCD
Durée indicative : 5 heures
Nous sommes arrivés au milieu du cours. Vous pourriez vous en tenir là et avoir
des bases raisonnables. Mais, bien entendu, il vous manquerait l’aisance et l'en-
traînement que vous apporteront les séquences suivantes. Cette nouvelle séquen-
ce a pour objet la vérification de la correction des MCD. On va donc se situer à un
niveau moins terre à terre !
u Capacités attendues
• Savoir vérifier son MCD pour éviter les fautes de logique.
u Contenu
1. Revenons sur l’identifiant ............................................................... 90
2. Revenons sur les associations ........................................................ 90
3. Entité ou association ......................................................................... 92
4. Règles de validation ............................................................................ 93
4A. Introduction en forme de sermon .............................................................. 93
4B. Les règles ................................................................................................... 94
Synthèse
89
8 3932 TG PA 01
Séquence 6
Rien à dire concernant l’association contenir. Elle n’est là que pour augmenter un peu la
taille du MCD. Ce qui m’intéresse, c’est livrer. A priori, tout va bien : elle traduit fidèle-
ment les contraintes du réel suivantes :
• une commande est passée par un client unique ;
• une commande est livrée en une fois à une date de livraison, depuis un seul entrepôt.
90
8 3932 TG PA 01
Règles de validation du MCD
Exercice 46
Est-il parfait ? Toujours pas. On vient juste de réviser en passant la notion « une 1,1 ne peut
être porteuse de données ». L’exercice reste entier. Et c’est toujours livrer qui me déplaît.
Étudions les cardinalités de livrer.
Sur Commande : 1,1 signifie qu’une commande ne concerne qu’un client et un entrepôt.
Sur Entrepôt : 0,n signifie qu’un entrepôt livre plusieurs commandes et donc clients
sans plus de précision.
Sur Client : 0,n signifie qu’un client pourra se faire livrer plusieurs commandes
(éventuellement 0, je suppose donc qu’une personne ayant juste
demandé des informations sans pour autant passer commande est un
client… cela est sans importance).
Tout ceci est-il correct ? Oui. Tout ceci est-il satisfaisant ? Non !
L’association relie les trois entités, donc les relie sémantiquement. Or, intuitivement, le
fait qu’un client passe une commande est une chose, le fait que la commande soit livrée
est autre chose.
Ensuite, la cardinalité 1,1 de Commande indique deux choses distinctes et sans rapport
entre elles :
• premier point, une commande correspond à (est passée par) un client et un seul ;
• deuxième point, une commande correspond à (est livrée par) un et un seul entrepôt.
Ces deux liens peuvent se modéliser séparément. Et donc on va le faire, en transformant
la ternaire livrer en deux binaires commander et livrer.
Exercice 47
Eh bien, allez-y, transformez la ternaire livrer en deux binaires commander et livrer, en pre-
nant soin de relier les bonnes entités et de veiller aux cardinalités.
3. Entité ou association
Il n’est pas vraiment utile de revenir sur ce point car on l’a abordé plusieurs fois dans les
exercices. J’ai pourtant envie de pratiquer la redondance pour être sûr que vous preniez
conscience du problème. Je serai brefå.
Il en est de même des choix de représentation des objets réels (par une entité ou une
association) que des cardinalités :
• parfois, on n’hésite pas : un client ne peut être qu’une entité. Un lien d’apparte-
nance entre un produit et un type de produit sera une association ;
• parfois, les deux sont possibles, un concept pouvant être valablement représenté par
une association ou une entité. Nous l’avons vécu avec l’inscription et le mariage.
Le drame est que, lorsque l’on se pose la question de l’entité ou de l’association, le choix
est véritablement cornélien. Les quelques indices rappelés ci-dessous vous permettront
de choisir plus sereinement.
Avant de commencer : un constat. Le problème se pose toujours dans le sens association vers
entité : on fait une association, on lui rajoute des pattes, des propriétés, on n’est pas satisfait
du résultat, on hésite et alors on se dit « et si je faisais une entité ? », mais on n’ose pas.
Voici les arguments en faveur d’une entité :
– plus l’association possède de pattes, plus cela milite pour une entité fortement
ancrée dans le MCD, chaque patte devenant une association ou une propriété
liée à cette entité ;
– plus l’association possède de propriétés, plus on est fondé à créer une entité
pour y mettre ces propriétés ;
– plus l’objet réel concerné a d’importance dans le système d’information, plus on
sera amené à le promouvoir en entité (être une entité, cela se mérite).
Je reprends le dernier tiret :
– si l’on souhaite modéliser les emprunts dans une bibliothèque, il est assez naturel
de faire une entité Emprunt car ce concept est l’élément clé auquel tout se rapporte
(nombre de livres empruntés, emprunteur, dates d’emprunt et de retour…) ;
– si je modélise une petite bibliothèque d’école primaire, je souhaite juste savoir qui a
emprunté quoi pour pouvoir le récupérer en fin d’année. Une association emprun-
ter entre Exemplaire et Lecteur porteuse de la date de retour me suffira ;
– en revanche, si nous voulons modéliser le fonds documentaire (livres, thèmes,
auteurs, éditeurs…) pour améliorer sa qualité, on mettra au mieux une propriété
booléenne Emprunté dans l’entité Exemplaire. Cela nous permettra accessoirement
d’éditer en fin d’année la liste des livres qui ne sont pas empruntés et donc qui doi-
vent être en rayon pour réaliser l’inventaire.
Vous voyez l’astuce ? Dans les trois cas, nous gérons les emprunts, mais de façon de plus
en plus périphérique. Cette notion passe de centre de la modélisation (cas gestion des
emprunts) à information tout à fait annexe (cas gestion du fond).
Il est donc raisonnable de traiter chaque concept selon son importance. Dans la réalité,
c’est ce qui se passe : dans mon BTS, nous avons une armoire de livres et de revues pour
les 60 étudiants de la formation. Quand ils prennent un livre, ils l’écrivent sur un cahier
92
8 3932 TG PA 01
Règles de validation du MCD
et le rayent quand ils le rendent. Dans le CDI du lycée (10 000 ouvrages, 1 600 élèves), la
gestion des emprunts est évidemment informatisée, chaque élève doit s’inscrire…
Bien entendu, ces considérations ne sont qu’une aide méthodologique, vous devez déve-
lopper votre intuition puis vous y fier.
4. Règles de validation
å Et encore ! Le caractère « ≤ » n’existe pas, il faut utiliser « <= ». Mais là, on ne viole aucu-
ne règle grammaticale.
93
8 3932 TG PA 01
Séquence 6
4B1. Propriétés
Une propriété ne peut apparaître qu’une fois dans le MCD.
En effet, une propriété est un concept unique du monde réel qu’il est illogique de matéria-
liser plusieurs fois. Une propriété dédoublée marque souvent l’oubli d’une association.
Le dédoublement dont je parle peut être discret : vous ne pouvez bien sûr pas
O utiliser deux fois le même nom, mais vous ne pouvez pas non plus faire référence
au même concept (à la même « chose ») par deux propriétés, même si elles ont un
nom différent.
Exercice 48
Corrigez-moi vite cet horrible MCD ne respectant pas la règle précédente !
Bien entendu, on se dépêche de s’accorder des dérogations : les dates et les adresses (villes)
sont employées tellement fréquemment qu’on s’autorise à en mettre dans chaque entité
ou association si nécessaire pour éviter de multiplier artificiellement les associations.
94
8 3932 TG PA 01
Règles de validation du MCD
Le MCD suivant est correct d’après la règle ci-dessus, mais beaucoup trop lourd. En pra-
tique, si l’on appliquait cette règle pour les dates, les trois quarts des entités seraient
reliées à Date !
signer
CONTRAT 1,1 0,n DATE
NuméroContrat JJMMAAAA
1,1 prendre effet 0,n
TypeContrat
NatureContrat 0,n
1,1
payer
En fait, le seul cas où l’on « sort » la date pour en faire une des pattes de l’association est
lorsque l’on veut historiser le concept réel sous-jacent. En effet, la date doit alors faire
partie de l’identifiant de l’association (revoir l’exercice 30).
Une propriété doit être monovaluée et élémentaire vis-à-vis du système d’information
étudié.
Élémentaire signifie qu’elle ne peut pas être décomposée en données pertinentes pour
le système d’information, monovaluée signifie qu’elle ne possède qu’une seule valeur ;
une propriété ne peut pas être un tableau de valeurs par exemple.
Exercice 49
Nous gérons l’état civil dans une mairie et voulons absolument stocker les trois prénoms des
gens dans l’ordre. Que penser de la solution suivante (prénoms vaudra par exemple ; « André
Paul Martin » si ce sont les trois prénoms de M. Durand) ? De plus, la propriété ville contient le
code postal et la ville. Cela est-il grave ?
Corrigez le MCD pour régler le problème des prénoms (il y a deux solutions possibles).
PERSONNE
NuméroPersonne
Nom
Prénoms
Adresse
Ville
95
8 3932 TG PA 01
Séquence 6
On retiendra :
Un identifiant a obligatoirement une valeur stable, unique et non nulle ; les autres
propriétés ont une valeur facultative.
Vu le rôle particulier de l’identifiant (identifier une occurrence), il doit avoir une valeur
(unique) pour chaque occurrence et cette valeur ne doit pas pouvoir changer. Un numéro
de téléphone, bien qu’identifiant un abonné, n’est pas assez stable pour servir d’identi-
fiant… sauf chez un opérateur téléphonique !
En revanche, les autres propriétés peuvent ne pas avoir de valeur, soit parce que le
moment n’est pas venu, soit parce que la nature de l’occurrence l’interdit : observons les
trois MCD suivants :
Cas suivant :
ÉTUDIANT COURS
NuméroÉtudiant s'inscrire 0,n NuméroCours
Nom
1,n note
Libellé
Prénom
L’inscription est validée (donc l’occurrence de s’inscrire est créée) dès le début de l’année,
mais la note finale de l’étudiant n’est connue qu’en fin d’année.
Dernier exemple :
RÉPARATION VÉHICULE
NuméroRéparation effectuer 0,n NuméroVéhicule
1,1
Description DateVente
HeureDébut DateImmat
HeureFin ÉtatGénéral
Avant toute intervention, on rentrera dans la base les réparations demandées par le client
pour que les mécaniciens sachent ce qu’ils doivent faire. On ne pourra mettre l’heure de
début qu’au commencement de chaque réparation et l’heure de fin qu’à la fin. Les diffé-
rentes propriétés des occurrences de Réparation seront donc renseignées en trois fois.
4B2. Entités
Une entité n’ayant pas d’occurrence est une erreur. Une entité n’ayant qu’une ou
deux occurrences est très suspecte.
Si vous créez de telles entités, il y a très certainement une erreur d’analyse. Vérifiez donc
très soigneusement votre MCD.
96
8 3932 TG PA 01
Règles de validation du MCD
Une entité n’ayant qu’une propriété (par force l’identifiant) doit être considérée d’un
œil attentif.
Hormis les entités Date qui n’ont classiquement qu’une propriété, toute autre entité de
cet acabit doit être justifiée par une contrainte très précise du réel étudié (voir l’exercice
42 ci-dessus).
Bien entendu, ne croyez pas valablement régler le problème en ajoutant un identifiant
artificiel doublant le nombre de propriétés (qui passe de 1 à 2).
4B3. Associations
Une occurrence d’association doit être définie sur toutes les entités reliées par l’as-
sociation.
Moins pompeusement : les pattes des associations ne sont pas facultatives. Par exemple,
une ternaire ne pourra pas avoir d’occurrence avec seulement deux entités.
Étudions le cas d’un restaurateur dont le concept est de proposer des dizaines d’entrées,
de plats et de desserts, le client devant faire son choix pour créer son propre menu à 3
plats (une entrée, un plat principal et un dessert). L’originalité est que le prix du menu
varie notamment en fonction des calories des différents plats (ce n’est donc pas une
donnée calculée, il faut la faire figurer dans le MCD).
ENTRÉE DESSERT
NuméroEntrée coûter 1,n NuméroDessert
DescriptionEntrée
1,n montant
DescriptionDessert
CaloriesEntrée CaloriesDessert
1,n
PLAT PRINCIPAL
NuméroPlatPrincipal
DescriptionPlat
CaloriesPlat
Le restaurateur, que vos questions d’analyste ont fait réfléchir, vous dit « finalement,
pour le midi, je voudrais proposer une formule rapide à deux plats (une entrée et un plat
principal) basée sur le même modèle de prix variable. Le client aurait donc le choix entre
deux formules : entrée et plat ou entrée, plat et dessert »
Exercice 50
Cela change-t-il quelque chose à votre modèle ? Si oui, modifiez-le en conséquence.
Deux occurrences d’une association ne peuvent pas être définies sur les mêmes
occurrences d’entité.
O X,NeYpaset lire de travers cette phrase : si une association est définie sur les trois entités
Z, chaque occurrence de l’association sera définie sur des occurrences de X,
Y et Z. Mais il ne faut pas que ces occurrences soient les mêmes.
97
8 3932 TG PA 01
Séquence 6
Dans ce schéma, soit un professeur ne peut pas enseigner la même matière plus d’une
fois, soit je ne peux stocker que la dernière année où le professeur l’a enseignée. En
effet, un enseignant et une matière déterminent une seule occurrence d’enseigner donc
une seule valeur pour année.
Si je veux historiser et autoriser qu’un professeur enseigne la même matière plusieurs
années, je rajoute une entité Année à l’association, ce qui donne le MCD suivant.
ENSEIGNANT
NumenEns
NomEns
MATIÈRE
PrénomEns
NuméroMatière enseigner 1,n
1,n AdrEns
LibelléMatière
CodeEns
Niveau
1,n VilleEns
ANNÉE DateConc
AAAA
Une association ayant une cardinalité maximale à 1 ne peut être qu’une binaire non
porteuse de données.
Dès qu’une patte possède une cardinalité 0,1 ou 1,1, la donnée que vous avez envie de
rendre portée doit être intégrée à l’entité de cette patte. Si votre association est plus
qu’une binaire, vous l’éclaterez en binaires basées sur cette entité (voir le paragraphe 2
de cette séquence).
98
8 3932 TG PA 01
Règles de validation du MCD
4B4. Cardinalités
Certaines cardinalités minimales sont discutables (donc toute réponse est accepta-
ble), d’autres ne sont pas négociables.
À l’examen, les points seront attribués sur les cardinalités où il n’y a qu’une réponse
possible. Ne mettez donc pas les cardinalités trop mécaniquement.
Lorsqu’une entité est reliée à plusieurs associations, les cardinalités minimales sont
souvent 0.
Le piège classique se pose avec l’entité Date ; regardons les deux extraits de MCD sui-
vants :
Les cardinalités 1,n sont correctes puisque dans les deux cas, toutes les dates du calen-
drier ne seront pas des occurrences de Date, mais seulement celles où un achat (pour le
premier MCD) ou une location (pour le second) a lieu.
Si ces deux extraits de MCD correspondent au même système d’information, on ne peut
accepter la redondance des entités Date. Il faut donc réunir les deux associations sur une
seule entité. Les cardinalités deviennent alors automatiquement 0,n puisqu’une date d’achat
ne correspond pas forcément à une date de location et inversement. Ce qui donne :
louer
DATE 0,n
JJMMAAAA acheter
0,n
99
8 3932 TG PA 01
Synthèse
Pour représenter un concept, on peut hésiter entre une entité ou une association.
Voici les arguments en faveur d’une entité :
– plus l’association possède de pattes, plus cela milite pour une entité forte-
ment ancrée dans le MCD, chaque patte devenant une association ou une
propriété liée à cette entité ;
– plus l’association possède de propriétés, plus on est fondé à créer une entité
pour y mettre ces propriétés ;
– plus l’objet réel concerné a d’importance dans le système d’information, plus
on sera amené à le promouvoir en entité (être une entité, cela se mérite).
101
8 3932 TG PA 01
Travaux dirigés 2
Même conseil que pour le premier TD : il s’agit ici de mettre en pratique les
différents concepts du cours. Ainsi, si vous ne connaissez pas votre cours, ces
exercices ne vous serviront à rien. Ne vous étonnez pas si vous retrouvez ici
les réflexives, les entités faibles et les associations porteuses !
Exercice 1
Le CNED souhaite informatiser son activité. Une analyse détaillée de l’organisation actuelle
fait apparaître que le CNED propose des inscriptions à des formations décrites comme suit :
Une formation possède un titre (par exemple 1re année BTS Informatique de Gestion), un
niveau initial requis (par exemple le bac) et une durée en mois. La formation est composée
de modules (cours). Par exemple, la formation 1re année BTS Informatique de Gestion com-
prend les modules français, anglais, économie, ALSI, AMSI…
Un module possède un titre, un nombre de devoirs, une durée approximative en heures et un
coefficient vis-à-vis de la formation. Il est important de noter qu’un module n’appartient qu’à
une formation. En effet, les programmes n’étant pas les mêmes, le module de français de la
première année de BTS n’est pas le même que celui de la formation CAPES lettres modernes.
Travail à faire
Faites le MCD modélisant les formations.
Exercice 2
Continuons l’exercice précédent. Un étudiant (nom, prénom, adresse) s’inscrit à des forma-
tions. Il peut arriver qu’un étudiant suive plusieurs formations. Pour chacune d’elles, l’étu-
diant aura une moyenne.
Travail à faire
Complétez le MCD pour prendre en compte ces nouveaux éléments.
Exercice 3
Nous voulons gérer un tournoi de football. Une équipe est décrite par son nom, sa ville d’ori-
gine et son niveau (amateur ou professionnel). Un match est constitué par la rencontre de deux
équipes. Il se déroule à une date et une heure données. On doit conserver le score de chaque
match ainsi que l’endroit où il a eu lieu. Nous allons envisager successivement trois cas :
• deux équipes ne peuvent se rencontrer plus d’une fois ;
• deux équipes se rencontrent une fois et une seule ;
• deux équipes peuvent se rencontrer plusieurs fois.
103
8 3932 TG PA 01
Séquence 6
Travail à faire
1. Faites le MCD modélisant le tournoi dans le premier cas (deux équipes ne peuvent se
rencontrer plus d’une fois).
2. Faites le MCD modélisant le tournoi dans le deuxième cas (deux équipes se rencontrent
une fois et une seule).
3. Faites le MCD modélisant le tournoi dans le troisième cas (deux équipes peuvent se ren-
contrer plusieurs fois).
Exercice 4
Nous informatisons maintenant l’organisation d’un tournoi de judo. Le tournoi se déroule
sur deux jours sous forme de tours éliminatoires jusqu’à la finale. Comme dans les premiers
tours il y a des repêchages, les judokas peuvent se rencontrer plusieurs fois au cours du tour-
noi. Avant chaque match, un tirage au sort détermine qui portera le kimono blanc ; l’autre
adversaire portera un kimono bleu. Le score est indiqué en donnant d’abord celui du judoka
en blanc. Un judoka possède un numéro de licence, un nom, un prénom et un club d’affi-
liation. Un combat est programmé entre deux judokas à un moment (jour et heure) précis.
Pour pouvoir éditer les résultats, il faut savoir à quel tour (premier tour, demi-finale…) se
situe chaque combat. Notons que plusieurs combats peuvent avoir lieu simultanément, évi-
demment entre des adversaires différents ! Tout au long des deux jours de compétition, les
combats sont programmés par demi-heure (à 8 h, 8 h 30…).
Travail à faire
1. Faites le MCD modélisant le tournoi en utilisant une entité Combat.
2. Faites le MCD modélisant le tournoi sans entité Combat.
3. Quelle solution vous semble la meilleure ?
Exercice 5
Un organisme de vente par correspondance veut revoir son système informatique et fait
appel à vous pour réaliser l’analyse. Voici les notes que vous avez prises :
Un produit possède un prix, un libellé, des dimensions (longueur, largeur et hauteur) et un
poids. Les articles textiles ont également une composition : il faut stocker la liste des diffé-
rentes matières présentes et leur pourcentage. Par exemple, un tee-shirt sera 80 % coton,
20 % polyamide. Les meubles en kit auront une durée de montage, une difficulté (facile,
moyen ou difficile) et un nombre de personnes nécessaires pour le montage. Enfin, un pro-
duit appartient à une famille de produits et une seule. Une famille est caractérisée par son
nom (textile, meuble, meuble en kit…), son encombrement (faible, moyen, fort), son type de
livraison (par la Poste ou par transporteur) et sa garantie (aucune, un an ou cinq ans).
Ne sachant pas trop ce que contient une commande ni comment représenter un client,
vous demandez à votre interlocuteur de vous décrire précisément les caractéristiques d’une
commande. Comme cette personne estime qu’un document vaut mieux qu’un long discours,
104
8 3932 TG PA 01
Règles de validation du MCD
vous donne un bon de commande vierge en vous disant que toutes les informations qui y
figurent sont nécessaires. Le bon de commande en question est repris ci-après.
TOTAL COMMANDE
PORT (forfait) 10 €
NET À PAYER
Mode de paiement :
q chèque postal q chèque bancaire q carte bleue
Une commande est passée à une date donnée par un client. On supposera qu’elle est livrée
d’un bloc à une date donnée. Le règlement peut se faire en plusieurs fois. On veut conserver
les caractéristiques des différents règlements (date, nature – chèque, carte… –).
Travail à faire
Réalisez le MCD modélisant ce système d’information. Faites cet exercice sérieusement car
il est très formateur : relativement long, il possède plusieurs pièges potentiels et met en
œuvre des objets métiers classiques (la commande en l’occurrence).
105
8 3932 TG PA 01
Séquence 6
Exercice 6
Votre travail d’analyse est tellement digne d’éloges que l’on se bouscule pour faire appel à
vos services. Maintenant, c’est une médiathèque qui envisage d’informatiser son activité. Elle
fait appel à vous pour modéliser son système d’information. Voici ce que vos entretiens vous
ont permis d’apprendre :
Nous identifions les documents par un code barre. C’est un identifiant que nous attri-
buons à chaque document de notre fonds documentaire. Nous n’employons pas l’ISBN
qui est pourtant un identifiant dans le monde de l’édition car d’une part c’est un nombre
long à taper et d’autre part tous les documents (cassettes, revues) n’en possèdent pas.
Un document sera d’une nature donnée (livre, périodique, cassette…), aura une durée
en minutes ou un nombre de pages selon sa nature, une date de première parution, une
date et un prix d’achat. Tout document provient d’un éditeur unique et a été créé par
un ou plusieurs auteurs… Enfin, éventuellement 0 pour certains livres anonymes. Si le
document a été traduit, on souhaite savoir par qui. Un document sera dans un état précis
(neuf, moyen, abîmé, à changer).
Un auteur sera décrit par des renseignements pédagogiques (nom, prénom, date et lieu
de naissance et éventuellement de décès). Pour emprunter un document, il faut être ins-
crit à la bibliothèque. Tout emprunteur est décrit par les caractéristiques habituelles ainsi
que par sa date d’inscription (l’inscription est annuelle). Tout emprunteur n’a droit qu’à 3
documents à la fois et ne peut les garder que 3 semaines maximum.
Il faut bien entendu conserver les dates d’emprunt et de retour des documents pour véri-
fier que le délai n’est pas dépassé. Au fait, on peut avoir plusieurs exemplaires d’un même
document. Par exemple, les livres de Stephen King plaisent tellement à nos lecteurs que
nous en achetons toujours 5 exemplaires pour satisfaire la demande.
Travail à faire
Faites le MCD modélisant ce système d’information.
Attention, la notion de document est assez complexe à modéliser. La notion d’emprunt est
également délicate. D’ailleurs, vous envisagerez et modéliserez deux cas :
– celui où l’on emprunte et rend des documents comme on veut, la seule contrainte étant
de ne pas avoir plus de trois documents à un moment donné ; vous supposerez alors
qu’un exemplaire ne peut être emprunté plusieurs fois par la même personne ;
– celui où les documents (qu’il y en ait 1, 2 ou 3) sont empruntés et rendus en une fois.
Pour pouvoir emprunter d’autres documents, il faut avoir rendu celui ou ceux précé-
demment empruntés. Dans ce cas, la contrainte précédente est levée : un lecteur peut
emprunter plusieurs fois le même exemplaire.
106
8 3932 TG PA 01
Séquence 7
Les dépendances fonctionnelles
(théorie)
Durée indicative : 4 heures
Nous allons étudier un concept assez théorique, mais pouvant être d’une grande
aide. Ne laissez donc pas tomber maintenant ! C’est dans la séquence suivante
que l’on abordera son utilisation pratique.
u Capacités attendues
• Maîtriser le concept des dépendances fonctionnelles et leurs propriétés
u Contenu
1. Les dépendances fonctionnelles (DF) ........................................ 108
1A. Définition (cas simple) ............................................................................ 108
1B. Soyons précis sur les DF ! ....................................................................... 110
1C. Nouvelle définition (cas général) ........................................................... 111
Synthèse
107
8 3932 TG PA 01
Séquence 7
å J’ai fait la confusion assez longtemps, d’où certaines incompréhensions ultérieures que j’aime-
rais vous éviter.
ç Définition parfaite ? Je viens de vérifier, c’est bien la définition que j’ai donnée dans la
séquence 2. Je suis assez fier de moi.
éAttention ! J’insiste sur le fait que détermine signifie que la valeur est unique et pas qu’on
la connaît !
108
8 3932 TG PA 01
Les dépendances fonctionnelles (théorie)
Fonctionnelle
Fonctionnelle : relatif à une fonction. (Petit Robert)
Fonction : rôle caractéristique que joue une chose dans l'ensemble dont elle fait partie.
(Bob)
Comme nous parlons de propriétés, le rôle dont on parle correspond à la valeur de la
propriété.
Dépendance
Dépendance : rapport qui fait qu’une chose dépend d’une autre. (idem)
Dépendre : ne pouvoir se réaliser sans l'action ou l'intervention. (idem)
La dépendance fonctionnelle indique donc que la valeur de la propriété dépend de la
valeur d’une autre propriété. Passons sans plus attendre à la définition théorique.
Dépendance fonctionnelle : on dira que la propriété Q dépend fonctionnellement de
la propriété P (noté P " Q) si la valeur de P détermine celle de Q, donc si à une valeur
de P ne correspond qu’une unique valeur de Q.
P est la source de la dépendance, Q est la cible.
Comme « Q dépend fonctionnellement de la propriété P » est difficile à lire et à pro-
noncer, on dénombre dans la littérature un nombre proprement stupéfiant de variantes,
chaque auteur préférant sa version :
– Q est en dépendance fonctionnelle avec P ;
– Q est en dépendance fonctionnelle vis-à-vis de P ;
– Q est en DF avec P ; [DF pour Dépendance Fonctionnelle]
– Q dépend fonctionnellement de P ;
– Q dépend de P. (J’utiliserai cette version, moins coûteuse en touches de clavierå.)
La flèche est assez explicite. On a bien l’idée d’implication, de détermination.
Métaphoriquement, la dépendance fonctionnelle est un lien de cause à effet sémanti-
que. En travaillant sur l’identifiant, on a donc bien déjà réfléchi sur les dépendances. On
notera que les dépendances s’écrivent sur des propriétés (dans P " Q, P et Q sont des
propriétés), mais qu’elles s’appliquent (se définissent) sur les valeurs de ces propriétés.
Exercice 51
D’une façon générale, y a-t-il un lien de dépendance fonctionnelle entre Prénom et
DateNaissance ? Si oui, lequel ?
Idem entre NuméroSécu et Prénom, puis entre NuméroSécu et DateNaissance.
å Attention ! Dans une copie ou oralement, placez au moins une fois les deux mots « dépendan-
ce fonctionnelle » pour montrer que vous les connaissez. Ensuite, vous avez le droit d’abréger
en « dépendance ».
109
8 3932 TG PA 01
Séquence 7
Exercice 52
Dans le cas de la famille que l’on vient d’étudier, pouvons-nous avoir la DF
DateNaissance " Prénom ?
Exercice 53
Les dépendances fonctionnelles sont liées aux propriétés et à leur sémantique in situ, c’est-à-
dire leur sémantique dans le système d’information considéré (dans le monde réel).
Un MCD est donc un support particulièrement adapté pour travailler sur les dépendances, puis-
qu’il a pour objet de modéliser parfaitement le réel. Je vous demande d’énumérer toutes les
dépendances fonctionnelles que vous trouverez avec les propriétés du MCD suivant (une aide, il
y en a 14, dont 8 tellement évidentes que l’on n’y pense pas forcément).
å J’y pense seulement maintenant… cette notion que « tout dépend du système d’information
observé » se retrouve en physique. Vous faites un raisonnable 130 km/h sur l’autoroute. Pouvez-
vous dire que vous bougez ? Oui si vous prenez comme référence un poteau indicateur, non si
votre référence est votre passager. D’où la formule tout est relatif. (Qui veut dire tout s’exprime
relativement (par rapport) au contexte.)
110
8 3932 TG PA 01
Les dépendances fonctionnelles (théorie)
ÉTUDIANT
NuméroÉtudiant
Nom
COURS
Prénom suivre 0,n Titre
Rue 1,n
Durée
CodePostal
Ville
{
P1 " Q
P2 " Q
u
Enfin, cela peut arriver, mais c’est une coïnci-
P1, P2… Pn " Q
… dence et pas le cas général.
Pn " Q
La phrase signifie que si chaque P1 à une valeur (ainsi la concaténation de P1, P2… Pn
possède une valeur) alors la valeur de Q sera déterminée.
En fait, si l’on pose P = P1, P2… Pn, on retrouve P " Q.
Vous remarquerez qu’il n’y a aucune notion d’ordre dans les propriétés sources :
A, B " C est équivalent à B, A " C.
Exercice 54
Dans le MCD suivant, donnez toutes les DF (ne tenez pas compte des DF d’une propriété vers
elle-même). Il y en a 14.
INSPECTEUR ENSEIGNANT
NumenInsp inspecter NumenEns
NomInsp note NomEns
PrénomInsp commentaire PrénomEns
1,n 0,n
AdrInsp AdrEns
CodeInsp 1,n CodeEns
VilleInsp VilleEns
DATE
CodeInsp DateConc
JJMMAAAA
111
8 3932 TG PA 01
Séquence 7
2A. Réflexivité
Cas particulier (vu dans l’exercice précédent) :
Q"Q
Cela signifie que toute propriété est en dépendance avec elle-même.
Cas général :
P1, P2… Pn " Pi (i ≤ n)
Comme la valeur de Pi détermine Pi (Pi " Pi), on peut rajouter d’autres propriétés à gau-
che qui comptent « pour du beurre ». En effet, comme Nom " Nom, alors Nom, Prénom
" Nom puisque, quelle que soit la valeur donnée à Prénom, celle de Nom donne… celle
de Nom.
Notons que cet axiome multiplie à l’infini le nombre de DF potentielles !
2B. Augmentation
Si Q dépend fonctionnellement de P, alors pour une propriété Z quelconque, Q, Z
dépend de P, Z :
si P " Q alors P, Z " Q, Z
En effet, dans le couple « Q, Z », Q sera déterminé par P (puisque P " Q) et Z par Z (car
Z " Z).
Par exemple : numéro de Sécu " année de naissance
donc numéro de Sécu, Prénom " année de naissance, Prénom
2C. Transitivité
J’espère qu’arrivés ici, nous sommes d’accord sur la relative simplicité de ce que l’on a déjà
vu. Voyons maintenant la transitivité des DF.
La transitivité ? Mais si, la transitivité ! Vous savez, comme dans la transitivité de l’égalité
qui dit que si a = b et b = c, alors a = c.
Eh bien, les dépendances fonctionnelles sont transitives :
P, Q et R étant des propriétés, si P " Q et Q " R, alors P " R
Par exemple, on a :
numéro de Sécu " département (chiffres 6 et 7 du numéro)
or département " préfecture du département (car une préfecture par département)
donc numéro de Sécu " préfecture du département
112
8 3932 TG PA 01
Les dépendances fonctionnelles (théorie)
Encore une fois, cela ne veut pas dire que l’on a l’information. Cela veut juste dire
qu’elle existe. Mon numéro de Sécurité sociale est 1 xx xx 54 xxx xxx (les x remplacent
des chiffres sans intérêt ici). Le département 54, comme tout département, possède une
préfecture. Il vous faudra peut-être consulter le dictionnaire pour la trouver mais, une
chose est sûre, elle existe et est unique.
2D. Composition
Ceci n’est pas un axiome, mais un corollaire de ces axiomes, à savoir une conséquence
directe.
Si P1 " Q1 et P2 " Q2, alors P1, P2 " Q1, Q2.
Exercice 55
Pouvez-vous démontrer ceci ? Une petite aide : il faut utiliser deux fois l’augmentation puis la
transitivité.
3. Simplification des DF
Après avoir étudié les propriétés des DF, nous allons apprendre à les simplifier pour leur
donner une forme conventionnelle. C’est à partir de cette forme que l’on pourra générer
le MCD.
3A. Atomicité
Le cas vraiment général d’une DF est le suivant : P1, P2… Pn " Q1, Q2… Qm
Cette formule signifie, en appliquant strictement la définition, que la valeur de P1, P2… Pn
détermine celle de Q1, Q2… Qm. Dit autrement, si chacun des Pi possède une valeur, alors
chacun des Qj en possédera une unique. Donc chacun des Qj est en DF avec P1, P2… Pn.
Ainsi :
{
P1, P2 … Pn " Q1
P1, P2… Pn " Q2
P1, P2… Pn " Q1, Q2… Qm | équivalent } …
P1, P2… Pn " Qm
113
8 3932 TG PA 01
Séquence 7
Exemple : reprenons notre exemple d’enseignant identifié par son Numen. Toutes les
propriétés de l’enseignant sont en dépendance fonctionnelle avec le Numen, ce que l’on
peut écrire en une DF ou en six DF atomiques :
{
Numen " Prénom
Numen " Adr
Numen " Nom, Prénom, Adr, Code, Ville, DateConc | équivalent } Numen " Code
Numen " Ville
Numen " DatConc
Exercice 56
3B. Élémentarité
Attention à ne pas confondre l’élémentarité d’une propriété et celle d’une DF !
Néanmoins, si c’est le même mot, c’est parce que les concepts sont similaires.
Une dépendance fonctionnelle est élémentaire si :
– elle est atomique ;
– les propriétés sources de la DF sont minimales, à savoir que si l’on en enlève
une, on n’a plus de dépendance.
Mathématiquement, on écrira : P1, P2… Pn " Q est élémentaire si pour tout i tel que
1 ≤ i ≤ n, P1, P2…, Pi-1, Pi+1… Pn " Q.
Voyons un exemple : NuméroSécu, Nom " DateNaissance n’est pas élémentaire.
En effet, comme NuméroSécu " DateNaissance, on peut enlever une propriété source
(ici, Nom) sans perdre la DF.
On remarquera que toute DF n’ayant qu’une propriété source et une propriété cible est
trivialement élémentaire (atomique car une seule propriété cible, minimale car une seule
propriété source).
3C. DF directe
Les deux caractéristiques précédentes concernaient chaque DF prise individuellement. En
revanche, la notion de DF directe n’a de sens que dans un ensemble de dépendances et
de propriétés.
Une dépendance fonctionnelle sera directe si elle n’est pas issue de la transitivité
d’autres dépendances. Ainsi, A " C sera directe s’il n’existe pas de propriété B telle
que A " B et B " C.
On notera que les dépendances qui ne sont pas directes sont inutiles dans la mesure où,
grâce à la transitivité, on les retrouve.
114
8 3932 TG PA 01
Les dépendances fonctionnelles (théorie)
Exercice 57
Identifiez les dépendances qui ne sont pas directes dans cet ensemble :
1. DateNaissance " Âge 6. NuméroClient " MontantRemise
2. NuméroSécu " DateMajorité 7. DateNaissance " DateMajorité
3. NuméroClient " TypeClient 8. Nom " CodeSecret
4. DateNaissance " SigneZodiaque 9. TypeClient " MontantRemise
5. NuméroSécu " Nom, Prénom 10. NuméroSécu " DateNaissance
Exercice 58
Le principe d’élimination de la redondance est assez naturel : dans la vie de tous les jours, on
évite de dire plusieurs fois la même chose. Considérons les phrases suivantes :
1. Les parents de Jean-Yves sont Yves et Josette.
2. Le frère de Jean-Yves est Éric.
3. Les sœurs de Frédérique sont Élisabeth, Françoise, Marie-Claire et Pascale.
4. Les belles-sœurs de Jean-Yves sont Élisabeth, Françoise, Marie-Claire et Pascale.
5. Éric est le beau-frère de Frédérique.
6. Yves et Josette sont les parents d’Éric.
7. Les parents de Pascale sont Denise et Auguste.
8. Frédérique et Jean-Yves sont mariés ensemble.
9. Les parents de Frédérique sont Auguste et Denise.
10. Françoise est la belle-sœur de Jean-Yves.
En vous aidant éventuellement d’un arbre généalogique, enlevez le maximum de phrases en ne
perdant aucune information (n’enlevez que les phrases apportant une information redondante).
Notez que ceci n’a rien à voir avec les dépendances fonctionnelles, c’est juste une justification de la
traque à la redondance.
115
8 3932 TG PA 01
Séquence 7
Ce que l’on vient de faire avec les « règles de la vie », on va le faire sur les DF en exploi-
tant leurs différentes propriétés.
{ {
atomique atomiques
Un ensemble de DF est dit élémentaire si toutes les DF qu’il contient sont élémentaires
direct directes
Ensemble de DF normalisé : un ensemble de DF sera normalisé s’il est atomique,
élémentaire et direct.
On veillera toujours à ce que l’ensemble de DF sur lequel on travaille soit normalisé. En
pratique, on normalisera l’ensemble avant toute autre chose.
Notez bien que l’ensemble de départ et l’ensemble normalisé sont équivalents : ils trans-
mettent les mêmes informations. La différence est que l’ensemble normalisé transmet les
informations de la façon la plus concise possible.
Exercice 59
Nous allons travailler sur un ensemble de dépendances où les propriétés sont arbitraires (je les
appelle A, B…). Cela me permet de définir ce que je veux en DF pour faire un sujet un peu plus
complexe.
Il vous est demandé de normaliser l’ensemble de dépendances fonctionnelles suivant :
A, B, C " E, F B"D A, B " H
D"H E"H A, D " H
Une aide : il faut rendre les DF atomiques, puis élémentaires, puis enlever celles qui ne sont
pas directes.
å Attention normalisé et non normalisées car c’est l’ensemble qui est normalisé et non les DF.
Ne vous acharnez pas sur cette séquence si elle vous semble trop ardue. L’important,
c’est d’avoir compris le principe des DF pour pouvoir vous en servir dans la séquence
suivante.
116
8 3932 TG PA 01
Les dépendances fonctionnelles (théorie)
5. Enfin fini…
C’est fini pour la théorie des dépendances fonctionnelles. On étudiera leur utilisation
pratique pour le MCD dans la séquence suivante. Vous devez néanmoins sentir en quoi la
notion de dépendance fonctionnelle est importante dans le MCD. En effet, les DF tradui-
sent les dépendances entre les propriétés, tandis que le MCD structure les données (en
entités et associations) en exploitant les liens entre propriétés mis au jour par les DF.
Donc on peut dire que :
MCD = structuration des données + dépendances entre ces données
Nous verrons d’ailleurs dans la séquence suivante comment construire le MCD à partir
des DF.
117
8 3932 TG PA 01
Synthèse
Définition
Dépendance fonctionnelle (cas général) : on dira que la propriété Q dépend
fonctionnellement des propriétés P1, P2… Pn (noté P1, P2… Pn " Q) si la valeur de
P1, P2… Pn détermine celle de Q, donc si à une valeur nn de P1, P2… Pn ne corres-
pond qu’une unique valeur de Q. Les Pi sont la source de la dépendance, Q est
la cible.
Normalisation des DF
Une dépendance fonctionnelle est atomique si elle ne possède qu’une propriété
cible.
Une dépendance fonctionnelle est élémentaire si :
– elle est atomique ;
– les propriétés sources de la DF sont minimales, à savoir que si l’on en enlève
une, on n’a plus de dépendance.
Une dépendance fonctionnelle sera directe si elle n’est pas issue de la transitivité
d’autres dépendances. Ainsi, A " C sera directe s’il n’existe pas de propriété B
telle que A " B et B " C.
{ {
atomique atomiques
Un ensemble de DF est dit élémentaire si toutes les DF qu’il contient sont élémentaires
direct directes
119
8 3932 TG PA 01
Séquence 8
Les dépendances fonctionnelles
(utilisation)
Durée indicative : 10 heures
Capacités attendues
• Savoir établir le dictionnaire des données
• Utiliser la notion de forme normale pour valider son MCD
• Savoir réaliser une partie de MCD avec la méthode des DF
Contenu
1. Choix d’un identifiant ..................................................................... 122
1A. Les dépendances fonctionnelles au sein d’une entité ......................... 122
1B. Les dépendances fonctionnelles au sein d’une association ................. 123
1C. Les trois formes normales (FN) .............................................................. 123
1D. Résumé sur les formes normales ........................................................... 126
Synthèse
121
8 3932 TG PA 01
Séquence 8
Exercice 60
D’après ce que je viens de rappeler, donnez les dépendances fonctionnelles implicitement
contenues dans l’entité Client suivante, puis dans le cas général de l’entité Entité :
CLIENT ENTITÉ
NuméroClient Identifiant
NomClient Propriété_1
PrénomClient Propriété_2
AdrClient Propriété_3
CodeClient (etc)
VilleClient Propriété_n
TéléphoneClient
Si nous nous contentons de dire que l’identifiant est tel que toute propriété est en DF
avec, les candidats seront nombreux ! Dans le cas de Client, la concaténation des deux
propriétés NuméroClient et NomClient est également identifiant d’après les propriétés
des DF. Ainsi, l’entité suivante est pour le moment valide :
CLIENT
NuméroClient
NomClient
PrénomClient
AdrClient
CodeClient
VilleClient
TéléphoneClient
Exercice 61
Tiens, oui, c’est vrai, on les avait vues, ces propriétés des DF ! Pouvez-vous prouver que si
NuméroClient est source de DF avec toutes les propriétés de Client, alors il en est de même pour
la concaténation de NuméroClient et NomClient ? (cela revient à démontrer que ce couple est
identifiant.)
122
8 3932 TG PA 01
Les dépendances fonctionnelles (utilisation)
On se rend compte que notre notion d’identifiant est assez floue puisque de nombreux
candidats se présentent ! Intuitivement, on se doute que, fidèle à notre principe d’éco-
nomie, le meilleur identifiant sera le plus concis. Nous allons le formaliser avec la notion
de forme normale dans le paragraphe 1C.
INSPECTEUR ENSEIGNANT
NumenInsp inspecter NumenEns
NomInsp note NomEns
PrénomInsp commentaire PrénomEns
1,n 0,n
AdrInsp AdrEns
CodeInsp 1,n CodeEns
VilleInsp VilleEns
DATE
CodeInsp DateConc
JJMMAAAA
Les DF seront :
NumenInsp, NumenEns, JJMMAAAA " note
NumenInsp, NumenEns, JJMMAAAA " commentaire
Cela ne vous paraît pas si évident ? Cela vient du fait que les propriétés portées sont
déterminées par l’identifiant de l’association (on a déjà fait cela, c’est l’exercice 54 !).
Vous remarquerez que nous exploitons intensément le cours ; ceux qui ne l’ont pas
appris doivent souffrir.
123
8 3932 TG PA 01
Séquence 8
Exercice 62
Ah oui ? trivial ? Eh bien, expliquez-moi qu’avec un identifiant élémentaire, 1re FN et 2e FN sont
équivalentes !
CLIENT
NuméroClient
NomClient
PrénomClient
AdrClient
CodeClient
VilleClient
TéléphoneClient
Elle n’est pas en 2e FN car la dépendance NuméroClient, NomClient " PrénomClient (ou
toute autre propriété cible) n’est pas élémentaire (en enlevant NomClient, la dépen-
dance fonctionnelle est toujours juste).
å Élémentaire, élémentaire… vous avez un trou ? Allez voir séquence 7 paragraphe 3B.
124
8 3932 TG PA 01
Les dépendances fonctionnelles (utilisation)
Exercice 63
Dans le MCD suivant (déjà étudié en séquence 6), l’association livrer est-elle en 2e FN ?
CLIENT COMMANDE
NuméroClient livrer NuméroCommande
NomClient dateLivraison DateCommande
0,n 1,n
PrénomClient MontantCommande
AdrClient 0,n
ENTREPÔT
NuméroEntrepôt
AdrEntrepôt
TelEntrepôt
Exercice 64
Étudiez les entités suivantes et indiquez leur forme normale (1re, 2e ou 3e). Pour celles qui ne
sont pas en 3e forme normale, vous justifierez si elles sont valides ou non.
SALARIÉ ENTREPRISE ASSURÉ SOCIAL ENSEIGNANT
NuméroSalarié NuméroEnt NuméroSécuAS NumenEns
NumSécuSalarié NomEnt NomAs NomEns
NomSalarié AdrEnt PrénomAs PrénomEns
PrénomSalarié VilleEnt AdrAs AdrEns
AdrSalarié TelEnt VilleAs VilleEns
VilleSalarié FaxEnt
TelSalarié
125
8 3932 TG PA 01
Séquence 8
D’où les trois premières, qui règlent beaucoup de problèmes. Mais à l’usage, on s’est rendu
compte que tous les problèmes n’étaient pas résolus. D’où les autres formes normales.
Nous ne les étudierons pas ici car elles n’apportent rien à notre propos.
2A. Introduction
Lorsque nos parents faisaient du Merise, ils n’avaient pas notre recul. Ils appliquaient
donc la méthode avec rigorisme. L’avantage était d’avoir une démarche presque scien-
tifique, donc sans risque d’erreur. Le problème est que l’analyse reste quelque chose de
créatif où les règles sont parfois plus un carcan qu’une aide.
Quelle technique vous ai-je appris pour concevoir un MCD ? Ma foi, beaucoup de vent
diront les mécontents. En effet, quelques conseils pratiques mis à part, on travaille finale-
ment à l’intuition : on lit le sujet, on crayonne un bout de MCD, on corrige, on complète…
Tout cela ne fait pas très professionnel. Cependant, c’est la technique la plus efficace avec
de l’entraînement. Et, surtout, c’est la seule praticable sur des cas réels.
Il existe cependant une technique beaucoup plus rigoureuse. C’est la technique originale
de conception des MCD initiée par les créateurs de la méthode Merise. Le problème est
que les utilisateurs de Merise se sont rendus compte que cette technique était inapplica-
ble pour des cas un tant soit peu volumineux.
Je sens votre inquiétude : pourquoi apprendre une technique inefficace ? Ce n’est pas
par goût de l’histoire informatique que je vais vous la présenter, mais simplement parce
que, quand vous sentez que tout votre raisonnement et votre intuition ne suffisent pas,
qu’un morceau du MCD vous semble bizarre et, osons le mot, faux, sans que vous sachiez
comment le résoudre, cette technique vous permet de remettre à plat l’extrait de MCD
fautif et d’appliquer des règles de construction strictes mettant de côté votre intuition.
Bref, si la méthode classique (l’intuition) ne donne rien, l’idée est d’aborder le problème
par un autre côté. J’insiste sur le fait que cela ne doit concerner qu’un sous-ensemble
restreint du MCD pour rester praticable. Cette technique met en œuvre les dépendances
fonctionnelles… ce qui n’est pas une surprise.
126
8 3932 TG PA 01
Les dépendances fonctionnelles (utilisation)
2B. La démarche
Les étapes à suivre sont les suivantes :
1. On recense toutes les données du système d’information. Après dépouillement, on
produit le dictionnaire des données.
2. On cherche ensuite toutes les dépendances fonctionnelles entre ces données. On
normalise cet ensemble de DF.
3. On représente graphiquement l’ensemble des dépendances normalisé.
4. Le MCD se déduit mécaniquement de cette représentation.
Inutile de rêver : ce n’est pas vraiment plus simple car la difficulté se retrouve dans
l’établissement des DF. L’intérêt est que c’est une démarche différente qui peut aboutir
quand l’intuition bloque.
De cette démarche, que nous reste-t-il à étudier ? Le dictionnaire des données, la repré-
sentation graphique des DF et sa traduction en MCD.
Vous êtes prêts ? Eh bien, on y va.
å Bon, je vais arrêter d’appeler cette technique ainsi, même si cela m’amuse beaucoup. En effet, la
dénomination officielle est conception du MCD par les dépendances fonctionnelles.
127
8 3932 TG PA 01
Séquence 8
Notez bien que le dictionnaire des données fournit la liste exhaustive des données avec
leur type, le MCD rajoutant la structuration de ces données. Une petite définition pour
enfoncer le clou :
Dictionnaire des données : il regroupe l’ensemble des données élémentaires (nom,
type…) constituant le système d’information.
2C2. Réalisation
Le dictionnaire va être fait en quatre étapes :
1. Recensement de toutes les données utilisées dans le système d’information.
2. Détermination du type des données.
3. Épuration des données.
4. Identification des données calculées avec leur règle de calcul.
Nous allons relire le sujet ligne à ligne pour en tirer les différentes données que l’on
représentera en gras.
Un terrain est caractérisé par une référence cadastrale, une surface en ares et un
type (constructible, inondable, indéterminé…).
Remarque : terrain n’est pas une donnée (en programmation, ce sera un type de donnée structuré, dans
le MCD ce sera une entité).
Un propriétaire est caractérisé par ses nom, prénom, adresse et date de naissance.
(Idem, propriétaire n’est pas une donnée.)
Les gens qui ne sont pas du métier n’ayant pas une bonne compréhension de ce qu’est
un are, il est décidé d’avoir la surface en ares et en m2.
128
8 3932 TG PA 01
Les dépendances fonctionnelles (utilisation)
On aura donc deux données représentant la surface : une l’exprimant en ares, l’autre en m2. On ne peut
pas les appeler toutes deux surface car on les confondrait. L’une sera surface en ares, l’autre surface en m2.
Le fait que ces deux données soient liées ne sera pas important avant vingt minutes.
Il ne reste plus qu’à présenter les données proprement par ordre alphabétique. On va
utiliser un tableau à deux colonnes : une pour un nom raccourci (qui deviendra le nom
de la propriété), l’autre pour un commentaire en français si nécessaire.
Le nom raccourci devenant à terme une variable dans le programme, autant respecter
dès maintenant les contraintes de notation des langages, à savoir un mot sans espace,
contenant des lettres, chiffres, caractère de soulignement « _ » et rien d’autre.
Voici une première version du dictionnaire :
DONNÉE COMMENTAIRE
Adresse
DateDeNaissance
Nom
Prénom
Référence référence cadastrale du terrain
SurfaceA surface en ares
SurfaceM2 surface en m2
Type type du terrain : constructible, inondable, indéterminé
Je ne me suis pas fatigué pour le nom des données car j’ai repris le sujet au maximum.
Le problème est que la donnée Type n’est pas intuitive. Dans trois jours, je ne saurai plus
de quel type il s’agit, sauf à conserver le dictionnaire des données sous les yeux ! Type de
client, type de terrain… tout est possible ! De même, SurfaceA… on peut mieux faire !
Et Adresse, c’est celle du terrain ou du propriétaire ?
Vous essaierez d’avoir des noms parlants, sans qu’ils fassent 50 caractères de long,
comme on l’a toujours fait dans les MCD. Pour être transversal, vous choisirez les noms
de données avec le même soin que ceux des variables en programmation.
Voici une nouvelle version du dictionnaire avec des noms de données plus rigoureux.
DONNÉE COMMENTAIRE
AdresseProp
DateDeNaissance
Nom
Prénom
RéférenceTerrain référence cadastrale du terrain
SurfaceAres
SurfaceM2 surface en m2
TypeTerrain type du terrain : constructible, inondable, indéterminé
(Il n’y a plus d’ambiguïté.)
129
8 3932 TG PA 01
Séquence 8
Exercice 65
Vérifiez que toutes les données qui étaient dans la phrase « Un terrain est caractérisé par une
référence cadastrale, une surface en ares, un type (constructible, inondable, indéterminé…) »
sont présentes dans le court extrait ci-dessus (soulignez dans le dialogue les différentes
données).
Donc, on est d’accord que tout y est… je me suis un peu amusé avec les digressions de
la bonne dame, mais même sans cela, vous devez vous douter qu’un vrai dialogue ferait
facilement une à deux pages pour donner toutes les informations que j’ai synthétisées
en 5 lignes dans l’exercice.
D’autant que ce que j’ai stigmatisé dans mon dialogue est la vérité : vous devez extorquer
les informations aux gens, qui ne vous les donneront pas spontanément car ils n’y pensent
pas et n’en voient pas l’intérêt. C’est donc à vous de vous assurer que vous avez toutes les
informations… ce qui est une gageure car en général vous ne connaissez pas encore le
å Attention, ce style humoristique est à proscrire dans la vraie vie ! La « bonne dame » n’en serait
certainement pas satisfaite !
ç Je vous laisse le soin d’expliquer pourquoi il faut un identifiant… je n’en ai pas le courage.
130
8 3932 TG PA 01
Les dépendances fonctionnelles (utilisation)
métier que vous allez informatiser. Est-ce à dire que les gens sont stupides ? Évidemment
non ! C’est simplement que les gens ne sont pas informaticiens (sinon, ils ne feraient pas
appel à vous). Ils n’ont donc pas le même mode de pensée que vous. Vous serez obligé de
poser moult questions, de rencontrer de nombreuses fois les futurs utilisateurs… ce n’est
vraiment pas une étape facile. Bien entendu, si vous oubliez une donnée, vous le paierez
lors de la réalisation du programme car vous serez incapable de le faire.
Une autre façon de vous fournir des informations (que ce soit dans la réalité ou dans un
examen) : on vous donne les documents (formulaires, bordereaux…) utilisés par l’entre-
prise. Bien entendu, les informations que contiendront ces formulaires deviendront des
données. Je ne vais pas faire un cours sur l’historique du système d’information de l’en-
treprise. Disons juste en quelques mots qu’il est assez intuitif que l’entreprise ne se dote
pas du jour au lendemain de formulaires, de bordereaux… Ces documents viennent petit
à petit, en fonction des besoins. Non seulement ils sont réalisés de façon informelle, mais
en plus les données nécessaires à l’entreprise peuvent évoluer. Ceci fait qu’assez souvent,
ces documents contiennent des données inutiles, ou, au contraire, on leur greffe des
Post-it car il manque des informations. On observe par exemple que depuis quelques
années, les entreprises demandent volontiers aux clients leurs adresse email ou leur
numéro de portable. Cette nouveauté vient du développement de ces deux médias.
L’analyste doit donc étudier très attentivement les documents pour les « remettre à
plat », à savoir vérifier avec les utilisateurs quelles données manquent ou sont inutiles. Il
pourra être amené à concevoir de nouveaux imprimés par exemple.
On remarque en passant un rôle très important de l’informatique : elle structure. En
effet, un programme fonctionne selon des règles fixes. L’analyste doit donc formaliser
parfaitement les données et les traitements de l’entreprise, ce qui permet en général de
corriger beaucoup de travers apparus au fil du temps (travail fait deux fois, par exemple
saisie de la commande puis de la facture alors que les deux ont beaucoup d’informations
en commun, documents incomplets…).
Il faut ensuite que l’analyste justifie les changements éventuels qu’il propose… et là, il
faut de la diplomatie.
Exercice 66
Allez, à vous ! Faites-moi le dictionnaire des données du sujet suivant :
Plusieurs kinésithérapeutes se sont regroupés en un cabinet de kinésithérapie. Chacun d’eux
est identifié par un numéro identifiant attribué par le ministère de la Santé. Ils ont un nom,
un prénom.
On retiendra les nom, prénom et téléphone de chaque patient, ainsi que la date de
l’ordonnance du médecin prescrivant les séances de kinésithérapie.
131
8 3932 TG PA 01
Séquence 8
un chiffre, un nombre réel… car tout doit être stocké sous la forme de 0 et de 1 (les bits).
Bref, la même valeur binaire 11101011 peut représenter n’importe quel type de donnée :
un chiffre, mais aussi un caractère, des booléens… Pour savoir comment décoder ce nom-
bre binaire, il faut connaître le type de la donnée sous-jacente.
« Oh là ! » allez-vous me dire, « cela ne semble pas très conceptuel, ici on est très proche
de l’ordinateur ». C’est vrai. D’ailleurs, le type des données ne sera plus utilisé jusqu’à la
programmation. Mais il convient néanmoins de le déterminer dès à présent car :
1. Le type peut donner des informations sémantiques sur la donnée, notamment sur
son élémentarité. Par exemple, le numéro de Sécurité sociale peut être considéré
comme un nombre de 15 chiffres ou un nombre de 13 chiffres (le numéro lui-
même) plus un de 2 chiffres (la clé).
2. Cela permet de faire disparaître le réel : l’informaticien n’aura pas besoin de ques-
tionner les membres de l’entreprise pour déterminer le type des données, tout sera
déjà dans le dictionnaire.
Pour avoir le maximum d’informations, on mettra le type de la donnée, suivi entre
parenthèses de sa longueur. Le type des données sera assez classique. Les différentes
possibilités sont reprises dans le tableau suivant.
132
8 3932 TG PA 01
Les dépendances fonctionnelles (utilisation)
Exercice 67
Reprenez le sujet de l’exercice précédent et refaites le dictionnaire en rajoutant et complétant
la colonne Type.
å Petite histoire vécue : j’ai informatisé récemment une entreprise de location de panneaux publicitaires. Le
personnel ? Réduit, deux personnes ! Le patron (commercial) et sa femme (secrétaire). Eh bien, suite à mes
questions, ils se sont presque disputés car ils n’arrivaient pas à se mettre d’accord sur un de leur document, le
bail. Et pourquoi ? Car ce que l’un appelait bail, l’autre l’appelait commande et vice-versa. Et ils ne s’en sont
rendus compte qu’à cause d’une question directe de ma part puisque avant, ils n’avaient jamais formalisé ces
documents en les nommant ; chacun lui avait donc donné un nom dans son esprit. Les problèmes de vocabu-
laire ne sont donc pas directement liés à la taille de l’entreprise.
ç Plus haut dans le cours, j’ai plusieurs fois dit référence client et numéro de facture. Normalement,
cela doit être assez pénible à lire et c’était voulu ! Il faudrait utiliser soit référence, soit numéro, mais
pas les deux.
133
8 3932 TG PA 01
Séquence 8
Comme, par la force des choses, vous êtes novice dans l’entreprise, il vous faudra une
vraie réflexion (et des questions qui paraîtront très naïves à vos interlocuteurs) pour
savoir si ces termes sont synonymes ou non.
Les paramètres
Il y a des informations utilisées par le système d’information sans qu’elles fassent partie
des données liées à l’activité de l’entreprise. Par exemple, un taux de TVA, le prix d’un
timbre, l’adresse et le nom de l’entreprise elle-même, le taux de conversion francs/
euros… Ces données sont des paramètres extérieurs à l’activité. On ne les fera pas figurer
dans le dictionnaire (d’ailleurs, quelle entité utiliser dans le MCD ?).
Dans l’application, nous placerons ces paramètres dans une table séparée et non dans
le code source pour des raisons de maintenance. Ils seront modifiables par l’utilisateur.
Certains les mettent donc dans le dictionnaire en arguant qu’ils font partie de l’applica-
tion. Ce n’est pas faux… vous pouvez donc le faire, à condition de bien les distinguer des
données. Sur ce point, c’est affaire de goût.
Lorsque ces paramètres changent, on les mettra à jour sans autre forme de procès. Dans
un programme, ces paramètres s’appellent des constantes.
Remarque importante
Une valeur peut être un paramètre dans un système d’information et une donnée
devenant une propriété dans un autre. Par exemple, si l’entreprise historise ses fac-
tures pour pouvoir les rééditer à la demande, les différents taux de TVA avec leur
évolution légale devront être stockés dans une entité, une association reliant chaque
occurrence de Facture avec l’occurrence de Taux concernée.
Exercice 68
Les trois données suivantes : Montant_HT, Montant_TTC et Taux_TVA sont-elles liées ? Dit autrement,
peut-on, sans perte d’information, se passer de l’une voire de plusieurs d’entre elles ?
Exercice 69
Même question avec l’ensemble NuméroClient, NomClient, PrénomClient et AdrClient, puis avec
l’ensemble TarifHoraire, DuréeTravail, MontantAPayerHT, TauxTVA et MontantAPayerTTC. Je
ne peux pas vous fournir la sémantique de ces données puisque cela vous donnerait la réponse.
Disons que le deuxième ensemble de données correspond au calcul du montant de la facture du
garagiste qui est payé à l’heure.
å Je reconnais que, si je ne mettais pas des notes de bas de page à tout va, ce serait moins longuet.
Mais c’est mon petit péché mignon !
134
8 3932 TG PA 01
Les dépendances fonctionnelles (utilisation)
Exercice 70
Que penser de la version suivante ?
Exercice 71
Faites le dictionnaire des données relatif à la facture du garagiste vu à l’exercice 69 (données
TarifHoraire, DuréeTravail, MontantAPayerHT, TauxTVA et MontantAPayerTTC).
Le fait est que réaliser un dictionnaire est avant tout un travail de copiste assez rébarba-
tif. En revanche, là où il faut être affûté, c’est dans l’étape d’épuration et surtout dans
la recherche des données calculées. En effet, si vous mettez une donnée calculée dans
le MCD, vous serez sanctionné car c’est une erreur de conception. À moins que cela soit
fait exprès, mais, dans ce cas, vous devrez dûment le justifier en expliquant que la redon-
dance est compensée par le gain à l’exécution (moins de traitements à réaliser).
135
8 3932 TG PA 01
Séquence 8
2D2. Le graphe
On va représenter graphiquement les dépendances sous la forme d’un arbre. C’est élé-
mentaire puisque c’est une simple réécriture des DF. C’est très pénible à faire sur traite-
ment de texte (j’en sais quelque chose), mais à la main… c’est tout simple.
Il n’y a pas vraiment de formalisme : on met les données un peu en vrac sur la feuille et
on tire des flèches entre celles qui sont en DF. Comme pour le MCD, on essaie de placer
les données de telle façon que le graphe ne soit pas trop embrouillé.
Exemple : Supposons les DF suivantes (les lettres A, B… sont des propriétés) :
A"B A"D
B"C B"E
Le graphe correspondant sera :
A B C
B D ou A E
C E D
Bref, on le présente un peu comme on veut. Le premier, présenté verticalement, est pré-
férable car il y a plus de place verticalement qu’horizontalement sur une feuille. L’intérêt
du graphe est de présenter toutes les DF et leurs imbrications sur un même schéma.
Exercice 72
Travail à faire
1. Faites le dictionnaire des données épuré.
2. Cherchez toutes les dépendances fonctionnelles engendrées par ces données puis normalisez
l’ensemble des DF.
3. Réalisez le graphe des DF.
4. Oubliez ce que vous venez de faire pour ne pas polluer le travail suivant par des
réminiscences.
5. Faites le MCD (avec la méthode intuitive du début de cours). Il nous permettra de vérifier
notre technique de construction du MCD par les DF.
136
8 3932 TG PA 01
Les dépendances fonctionnelles (utilisation)
Exercice 73
Donnez la liste des feuilles et des nœuds du graphe de l’exercice précédent. La partie qui suit
va nous permettre de construire le MCD à partir du graphe des DF. La technique tient en trois
étapes simples mais dont la formalisation n’est pas évidente. Lors de mes nombreuses relectures
et corrections de ce support, j’ai à chaque fois modifié le texte des étapes qui suivent pour qu’il
corresponde sans ambiguïté à la réalité. L’ennui, c’est que j’ai obtenu des phrases assez denses
où chaque mot compte ! Je vous conseille donc de les lire puis d’étudier l’exemple qui suit avant
de tenter de les apprendre.
å Ce n’est évidemment pas ce que je préconise. J’essaie juste de vous dire de façon diplomatique
que si vous n’arrivez pas à faire le MCD à partir du graphe, ce sera uniquement parce que vous
n’aurez pas appris le cours.
137
8 3932 TG PA 01
Séquence 8
NuméroSérie
TypeMine
138
8 3932 TG PA 01
Les dépendances fonctionnelles (utilisation)
Cela donne :
Eh bien, on a le MCD ! Il n’y a plus qu’à rajouter les cardinalités minimales et à le présen-
ter dans les règles pour obtenir :
VOITURE TYPE
NuméroSérie être 0,n TypeMine
1,1
Couleur Marque
Immatriculation Modèle
DateImmatriculation Puissance
Date1Immatriculation
Vous vérifiez que c’est le même que celui trouvé dans l’exercice précédent.
Exercice 74
Expliquez pourquoi le graphe suivant ne représente pas A, B " C puis donnez la ou les DF
représentées.
A
C
B
On va représenter A, B " C en faisant partir une flèche de A et une de B, ces deux flèches
se réunissant en une seule partant vers C :
139
8 3932 TG PA 01
Séquence 8
Exercice 75
Faites le graphe correspondant (c’est trivial).
Exercice 76
Les DF suivantes sont normalisées ; faites le graphe des DF.
NuméroProduit " NuméroTypeProduit NuméroFacture " MontantHT
NuméroFacture " DateFacture NuméroFacture " MontantTTC
NuméroFacture " DatePaiement NuméroFacture, NuméroProduit " Quantité
NuméroProduit " LibelléProduit NuméroProduit " PrixHT
NuméroTypeProduit " LibelléTypeProduit
Exercice 77
En partant du graphe de l’exercice précédent, faites le MCD en prenant soin de justifier ce qui
n’est pas directement issu du graphe (par exemple, les cardinalités minimales).
Exercice 78
Avoir le MCD, c’est avoir la liste des données du système d’information, mais aussi la sémantique.
Pouvez-vous me donner la description du réel en français du MCD établi dans l’exercice
précédent ?
140
8 3932 TG PA 01
Les dépendances fonctionnelles (utilisation)
• les associations [n–n] non porteuses. Eh oui, les porteuses sont détectées par une DF
vers la propriété portée. Donc une association non porteuse n’engendre aucune DF.
Il est donc obligatoire de consulter le réel pour rechercher les liens (on ne peut pas
dire dépendances) entre les entités identifiées dans le graphe.
å J’avais déjà fait cette remarque lors du cours sur les dépendances fonctionnelles.
141
8 3932 TG PA 01
Séquence 8
Exercice 79
Considérons ce MLD :
Personne (NuméroPersonne, Nom, Adresse, Ville)
Prénom (Prénom)
Porter (NuméroPersonne#, Prénom#, rang)
Indiquez en quelle forme normale il est.
Notons que, comme dans beaucoup de points déjà abordés, les règles édictées ici sont
très strictes, mais peuvent être violées sans complexe… quand cela est justifié.
La gravité est une loi physique que l’on ne peut violer. En revanche, les règles étudiées
ne sont là que pour ne pas faire d’erreur. Si l’on justifie précisément le non-respect des
règles, c’est acceptable ; on parlera alors de dénormalisation. Si l’on ne justifie pas, c’est
bien entendu une erreur.
Exercice 80
En quelle forme normale le MLD suivant est-il ?
Personne (NuméroPersonne, Nom, Prénom, NumSécu, Adresse, Ville)
Service (NuméroService, LibelléService)
Travailler (NuméroPersonne#, NuméroService#, DateEntréeService)
Vous pouvez, dès maintenant, faire et envoyer à la correction le devoir 2 (voir fasci-
cule « devoirs » réf. 3932 DG).
142
8 3932 TG PA 01
Synthèse
143
8 3932 TG PA 01
Séquence 8
Formes normales
Une table sera en première forme normale si tous les champs dépendent fonction-
nellement de la clé primaire et sont atomiques.
Une table sera en deuxième forme normale si :
– elle est en première forme normale et
– tout champ non clé primaire est en dépendance fonctionnelle élémentaire
avec la clé primaire.
Une table sera en troisième forme normale si :
– elle est en deuxième forme normale et
– il n’y a pas de dépendance fonctionnelle entre champs non clé primaire.
144
8 3932 TG PA 01
Travaux dirigés 3
Je vous le dis une dernière fois : pour profiter de ces exercices, vous devez
maîtriser le cours ! Nous allons travailler sur le dictionnaire des données et
les dépendances fonctionnelles. Essayez donc de ne pas raisonner en termes
d’entités et d’associations car cela tuerait l’exercice ! Dans chaque exercice,
je vous demanderai le dictionnaire des données, les DF, le graphe des DF et
enfin le MCD. N’hésitez pas à consulter le corrigé à chaque étape ! Si vos don-
nées sont fausses, le reste de l’exercice ne donnera pas grand-chose.
Exercice 1
Une entreprise loue des panneaux publicitaires. Un panneau est identifié par une référence,
une surface, une localisation (près du lavoir d’Houdemont, à la sortie d’Orléans direction
Paris…) et un nombre de faces.
Une location est faite par un client (caractérisé par les propriétés habituelles) ; elle possède
une date d’effet (date de début) et une durée en années (maximum trois ans). Le loyer est
calculé et payé annuellement. Il peut varier selon l’année de location. Les montants des
loyers annuels sont fixés dès la signature. Les loyers supportent la TVA.
Une location porte sur un ou plusieurs panneaux. En revanche, un panneau n’est loué qu’à
un seul client. On n’historise pas les anciennes locations des différents panneaux.
Travail à faire
1. Faites le dictionnaire des données épuré.
2. Recensez les dépendances fonctionnelles et établissez le graphe des dépendances fonc-
tionnelles.
3. Déduisez-en le MCD.
4. Que se passerait-il si les baux n’étaient plus triennaux mais décennaux (dix ans) ? Je ne
vous demande pas de refaire tout l’exercice, mais juste d’indiquer les changements en
quelques phrases.
Exercice 2
Finalement, ne pas historiser les contrats n’est pas une super idée. En effet, pour des raisons comp-
tables élémentaires, on veut conserver les différentes locations et les loyers correspondants.
Les règles du jeu changent donc ; je rajoute les deux petites phrases suivantes :
On doit historiser les locations pour les différents panneaux. Un annonceur ne peut jamais
louer deux fois un même panneau.
Travail à faire
Eh bien, on recommence !
1. Faites le dictionnaire des données épuré des nouvelles données (inutile de tout repren-
dre, complétez éventuellement le dictionnaire de l’exercice précédent).
145
8 3932 TG PA 01
Séquence 8
Exercice 3
Hum ! J’espère que le thème des exercices précédents vous plaît, car nous allons encore tra-
vailler dessus.
Il apparaît que notre description de la réalité était trop simpliste. En effet, un client peut bel
et bien louer plusieurs fois le même panneau. Comme la durée du bail est au maximum de
trois ans, le client satisfait de sa publicité doit faire un nouveau bail de location pour con-
server le panneau.
Travail à faire
Dois-je vous dire ce qu’il faut faire ?
1. Faites le dictionnaire des données épuré des nouvelles données (inutile de tout
reprendre, complétez juste le dictionnaire de l’exercice précédent).
2. Recensez les nouvelles dépendances fonctionnelles et modifiez le graphe des
dépendances fonctionnelles en conséquence.
3. Déduisez-en le nouveau MCD.
Exercice 4
Je vous promets que c’est le dernier exercice sur la location de panneau. Reprenons le sujet
de l’exercice précédent : nous sommes donc toujours dans le cadre de travail où un client
peut louer plusieurs fois le même panneau.
Mais bon, soyons honnêtes : la réalité est un peu moins simple. En effet, un panneau pouvant
avoir deux faces, on peut y mettre deux publicités différentes vantant les mérites de deux
annonceurs différents. De plus, pour certains gros panneaux, la surface d’affichage de chaque
face peut être partagée par plusieurs annonceurs. Par exemple, une des faces peut vanter les
cuisines X, tandis que l’autre face possède une grosse publicité pour le restaurant Y et une
petite pour le magasin Z. Comme le loyer payé est proportionnel à la surface occupée, il faut
avoir le pourcentage d’occupation de chaque publicité. Ainsi, on pourra dire que la publicité
de X occupe 100 % d’une face, tandis qu’Y et Z occupent respectivement 75 et 25 % de l’autre.
Vous remarquerez que chaque face est occupée au mieux à 100 %. Bien entendu, il y a peu de
chances que les différentes surfaces d’un panneau soient louées en même temps.
En pratique, un même panneau peut faire l’objet d’une (petit panneau simple face) ou plu-
sieurs (gros panneau, double face) locations ayant des caractéristiques différenteså.
å Je ne suis pas sûr d’être très clair. C’est exactement le principe de l’immobilier : l’immeuble
représente le panneau, les appartements les différentes surfaces d’adressage prévues sur le pan-
neau. Les différents baux de location d’appartement sont totalement indépendants les uns des
autres ; eh bien, c’est pareil avec les locations d’espaces publicitaires.
146
8 3932 TG PA 01
Les dépendances fonctionnelles (utilisation)
Travail à faire
1. Mon sujet donne des exemples, explique en détail… tout ceci est un peu touffu !
Essayez de réécrire tout cela de façon plus condensée. Il s’agit de synthétiser la réalité
décrite en quelques phrases bien senties. Ces phrases vous permettront de faire la suite
de l’exercice plus facilement. En d’autres termes, vous devez réécrire le sujet.
2. Faites le dictionnaire des données nouvellement apparues ; inutile donc de reprendre
toutes les données de l’exercice 1 !
3. Donnez les nouvelles dépendances fonctionnelles.
4. Complétez le graphe acteurs/flux de l’exercice précédent pour prendre en compte ces DF.
5. Mettez à jour le MCD.
Exercice 5
Bon, nous allons changer de thème. Notre entreprise ne loue plus les panneaux, elles les
vend. Non, je plaisante. Elle les fabrique. Bon, j’arrête !
La SNCF vous demande de réaliser l’analyse de sa gestion des trains. Un point de l’analyse
vous posant problème, vous décidez d’utiliser la technique de la conception par les DF. Voici
ce que vous avez du mal à modéliser :
Un train (numéro, type (TGV…), à supplément ou non) est constitué de wagons. Chaque
wagon est décrit par son type (wagon restaurant, couchette, 1re classe, 2e classe…), son
numéro, sa date de fabrication et ses places. Dans chaque wagon, les places sont numérotées
en partant de 1. Une place possède différentes caractéristiques (couloir ou fenêtre, sens du
déplacement ou non, fumeur ou non, compartiment ou non).
Travail à faire
1. Le dictionnaire des données.
2. Les DF puis le graphe.
3. Le MCD.
Exercice 6
Qu’est-ce qui regarde passer les trains ? Les vaches ! Eh bien, intéressons-nous à l’élevage
raisonné de ce sympathique ruminant.
147
8 3932 TG PA 01
Séquence 8
Travail à faire
1. Le dictionnaire des données.
2. Les DF puis le graphe.
3. Le MCD.
Exercice 7
Je vous propose un exercice sur un thème original. Faites-le sérieusement !
Nous allons modéliser Merise. Eh oui ! Plus particulièrement le MCD. À quoi cela peut-il ser-
vir ? Supposons que vous vouliez automatiser vos productions de MCD. Pour cela, vous allez
écrire un programme permettant de dessiner les MCD à l’écran. En fait, vous voulez écrire
l’équivalent de PowerAMC (ex AMC*Designor). Pour pouvoir faire cela, vous devez formali-
ser le MCD. Et, pour le formaliser, vous pouvez en faire le MCD !
Attention, notez bien que pour simplifier le sujet, nous posons les restrictions suivantes :
1. Nous ne tiendrons pas compte des entités faibles.
2. Nous ne tiendrons pas compte des associations réflexives.
3. Nous supposerons que les identifiants d’entité sont atomiques.
4. Nous accepterons que des propriétés soient utilisées plusieurs fois dans le MCD. Cette
contrainte viole les règles du cours, donc nous ne l’admettrons que pour simplifier tem-
porairement le sujetå.
Travail à faire
1. Sans lire ce qui suit, réfléchissez aux différents constituants du MCD et essayez de les
décrire comme si vous deviez écrire un sujet d’analyse. Ainsi, au lieu de décrire ce qui
caractérise un client, décrivez ce qui caractérise une entité et tout le reste ! Quand vous
penserez avoir fini, vous lirez la suite.
Normalement, vous avez dû avoir beaucoup de mal. Je vous avoue que moi, en tout cas, j’en
ai eu. En effet, nous devons réfléchir sur des concepts qui nous sont maintenant familiers, ce
qui ne devrait pas poser de problème. Mais nous devons y réfléchir d’une façon tout à fait
inhabituelle. Et là, on se mélange un peu les pinceaux. Voici ce que je vous propose :
Une entité est décrite par son nom, un identifiant et des propriétés. Une propriété est décrite
par son nom. Une association est décrite par son nom, ses cardinalités et les entités qu’elle
relie. Elle possède un identifiant (la concaténation des identifiants des entités reliées) et peut
être porteuse de données.
å D’après mon cours, on doit avoir unicité de la propriété. Les programmes comme PowerAMC
interdisent d’utiliser deux fois la même propriété… mais autorisent deux propriétés différentes
de même nom. Donc concrètement autorisent la duplication de propriétés.
148
8 3932 TG PA 01
Les dépendances fonctionnelles (utilisation)
Travail à faire
2. La description du réel est terminée ; elle paraît assez simple. Mais de là à faire le MCD
directement… je crains que l’on doive faire une entité Association. Vous aussi, vous
trouvez que c’est un peu trop abstrait ? Alors, cette fois, nous allons pouvoir réellement
utiliser l’approche par les DF car l’approche classique n’est pas aisée. Comme première
étape, faites le dictionnaire des données.
3. Les dépendances fonctionnelles, je vous prie.
4. Le graphe des DF, hop, et que cela saute.
5. Bon, le MCD, il vient ?
Exercice 8
On reprend le sujet de l’exercice précédent en interdisant qu’une propriété soit utilisée plu-
sieurs fois dans le MCD. La contrainte violant le cours disparaît…
Travail à faire
1. Dictionnaire des données.
2. Dépendances fonctionnelles.
3. Graphe des DF.
4. MCD.
Exercice 9
Nous allons travailler sur une formulation un peu différente de celles des deux exercices
précédents.
Précédemment, nous avions dit qu’une entité possédait un identifiant d’une part et des pro-
priétés d’autre part. Maintenant, on va dire qu’une entité possède des propriétés d’une part
et qu’une propriété peut être identifiant d’autre part. Le changement n’est pas flagrant…
réfléchissez néanmoins, car nos DF et tout ce qui en découle va être changé.
Pour mettre un peu de piment à cet exercice, je vais rajouter une petite chose. Dans le cours,
je vous ai dit que l’entité était écrite en mettant l’identifiant souligné en premier puis la liste
des propriétés dans un ordre quelconque. Bon, si l’ordre est quelconque, je veux néanmoins
pouvoir le définir moi-même : par exemple, j’ai l’habitude de faire une entité Client ainsi :
CLIENT
NuméroClient
NomClient
PrénomClient
AdrClient
CodeClient
VilleClient
TélClient
149
8 3932 TG PA 01
Séquence 8
Je ne veux pas, sous prétexte que l’ordde importe peu, mon programme de modélisation de
MCD m’affiche l’entité comme cela :
CLIENT
NuméroClient
CodeClient
NomClient
AdrClient
TélClient
VilleClient
PrénomClient
Travail à faire
1. Sans lire cette noteå, contenant la solution, dites-moi quoi rajouter pour pouvoir très
simplement définir l’ordre dans lequel je veux voir mes données.
Avec tout cela, la nouvelle description du réel est la suivante :
Une entité est décrite par son nom et ses propriétés qui ont toutes un rang d’affichage. Une
propriété est décrite par son nom ; elle peut être identifiant. Une association est décrite par son
nom, ses cardinalités et les entités qu’elle relie. Elle possède un identifiant (la concaténation
des identifiants des entités reliées) et peut être porteuse de données (chaque donnée ayant
un rang d’affichage). Une propriété n’est utilisée qu’une fois dans un MCD.
2. Faites le dictionnaire des nouvelles données par rapport à l’exercice précédent.
3. Établissez les nouvelles dépendances fonctionnelles.
4. Déduisez-en le graphe des DF.
5. Faites le MCD.
Exercice 10
Nous reprenons l’exercice 6. Revoici donc nos sympathiques ruminants à l’honneur ! Je sou-
haite recommencer le principe des trois exercices précédents : montrer que c’est le sujet qui
détermine le MCD final quand on utilise l’approche par les DF.
Je ne change que la phrase sur les parents (le nouveau texte est en gras).
Un animal possède un identifiant vétérinaire et est d’une race donnée. Il a également un
nom donné par l’éleveur qui les distingue plus facilement. Tout animal possède une date
de naissance, une date et une cause de décès (maladie, accident, abattoir…), un sexe et une
qualité (fier animal, quelconque, vache de jardin). Les animaux ont deux parents. Un des
parents est le père, l’autre la mère. Il peut arriver qu’un ou les deux parents d’un animal
ne soient pas connus. Comme il y a des soins ou des contrôles très précis à faire selon l’âge de
l’animal, l’éleveur veut également avoir l’âge en mois de chaque bête.
Travail à faire
1. Dictionnaire des données.
2. Dépendances fonctionnelles.
3. Graphe des DF. @
4. MCD.
å La solution est très simple : il suffit de donner un rang à chaque propriété dans l’entité ou
l’association. Les propriétés seront alors affichées selon leur rang.
150
8 3932 TG PA 01
Séquence 9
Graphe acteurs/flux
Durée indicative : 3 heures
Le cours sur le MCD est définitivement terminé. Nous allons maintenant étudier
un graphe permettant d’appréhender de façon synthétique la circulation de l’in-
formation dans l’entreprise, ce qui est une aide précieuse pour comprendre son
fonctionnement.
Capacités attendues
• Maîtriser les notions d’acteurs et de flux
• Comprendre le rôle d’un graphe acteur/flux
• Savoir réaliser un graphe acteur/flux
Contenu
1. Introduction .......................................................................................... 152
2. Graphe acteurs/flux ......................................................................... 152
2A. Justification .............................................................................................. 152
2B. Un exemple .............................................................................................. 153
2C. Les acteurs ............................................................................................... 154
2D. Les flux ..................................................................................................... 156
2E. Graphe acteurs/flux ................................................................................. 157
Synthèse
151
8 3932 TG PA 01
Séquence 9
1. Introduction
Le grapheå acteurs/flux présente, comme son nom l’indique, les acteurs de l’entreprise
et les flux de documents qu’ils s’échangent. Il matérialise donc la circulation de l’infor-
mation dans l’entreprise.
C’est un outil utile, permettant d’appréhender de façon globale les documents qui circulent.
Cela permet de se faire une idée assez précise du mode de fonctionnement et d’organisation
du système que l’on va informatiser. Il vous permet également de recenser les documents,
ce qui sera utile pour ne pas en oublier lors de l’étude des données (MCD). Le graphe est un
document assez informel qui fait partie du cycle de modélisation des traitements. On le créera
au cours des entretiens avec les responsables de l’entreprise, avant toute ébauche de MCD.
2. Graphe acteurs/flux
2A. Justification
Le graphe acteurs/flux met en évidence… des acteurs et des flux. De façon informelle,
on précisera que :
• par acteurs, on sous-entend acteurs (intervenants) dans le système d’information ;
• par flux, on sous-entend flux (déplacement) d’informations au sein du système
d’information.
Comment appréhender de façon globale le fonctionnement de l’entreprise et son sys-
tème d’information ? En examinant les documents, en questionnant les membres de
l’entreprise, vous obtenez une vision structurée des données qui aboutira au MCD. Ce
MCD vous fournit-il une connaissance entière de l’entreprise ? Non ! Vous comprenez les
données manipulées, mais vous ne savez toujours pas comment elles le sontç.
Il n’est pas pensable de raisonner en entités et associations du MCD pour aller voir cha-
que service ou personne de l’entreprise et lui demander si elle intervient sur ces concepts.
En effet, les notions du MCD lui sont propres et un non informaticien aura d’autant plus
de mal à les percevoir qu’il aura, en temps que membre de l’entreprise, une structuration
différente en tête.
Imaginez la gestion des permis de construire : là où l’employé verra un formulaire de
demande, vous verrez plutôt les entités Terrain, Propriétaire et Permis, reliées par les liens
délicats des associations. Non, décidément, cette approche par les concepts du MCD n’est pas
envisageable. C’est vous qui entrez dans l’entreprise, c’est donc à vous de vous adapter.
å On emploie les deux termes graphe et diagramme. Après étude approfondie du dictionnaire,
graphe me semble plus approprié.
ç En réalité, c’est inexact car en interrogeant les divers intervenants de l’entreprise, vous avez
mélangé les questions portant sur les données et les traitements pour avoir la vue la plus globale
possible, sachant que, dans un premier temps, seules les informations liées aux données vous ser-
viront. Et il n’est pas question de jouer au schizophrène en ayant une personnalité qui s’occupe des
données et l’autre des traitements !
152
8 3932 TG PA 01
Graphe acteurs/flux
La solution est de raisonner sur les informations échangées dans l’entreprise en utili-
sant sa structuration (appel téléphonique, courrier électronique, imprimé, bon de com-
mande…). Notons que toutes ces informations constituent le système d’information de
l’entreprise ; elles seront réorganisées pour produire le MCD. Mais, alors que le MCD
est un document très codifié à destination des informaticiens, il s’agit juste ici de savoir
comment fonctionne l’entreprise.
Nous n’en sommes pas encore à demander concrètement à la secrétaire (ou au ser-
vice facturation, selon la taille de l’entreprise) comment elle gère les relances pour les
impayés : cela ne sera utile que lors de l’étude précise des traitements, pour savoir ce que
fait l’entreprise et surtout comment elle le fait.
Ici, on veut savoir comment l’information circule. On va donc identifier les différentes
informations (flux), ainsi que les groupes (acteurs) qui les émettent et les reçoivent. Et
on modélisera cela dans le graphe acteurs/flux.
À quoi cela nous servira-t-il ? À mieux appréhender le fonctionnement de l’entreprise.
De plus, si vous voulez savoir de quelle façon un document est rempli ou exploité (selon
quelles règles de gestion), vous irez voir la personne ou le groupe qui l’a généré.
Prenons une métaphore : le médecin s’intéresse au corps humain. Une des approches
pour le comprendre est d’étudier la circulation du sang : d’une part les organes qui
l’émettent et le reçoivent (les acteurs), d’autre part le type de sang : oxygéné ou non…
(les flux).
2B. Un exemple
Le graphe acteurs/flux est d’une simplicité sans commune mesure avec le MCD. Le plus
long est en fait de le dessiner !
Cela dit, la difficulté pour vous est de bien cibler son rôle et sa nature et de prendre
conscience des concepts qu’il utilise, radicalement différents de ceux du MCD.
Voici sans plus attendre un exemple simpliste de graphe acteurs/flux :
1. Demande d’informations
service
client
commercial
2. Catalogue
153
8 3932 TG PA 01
Séquence 9
Exercice 81
Expliquez la différence entre un acteur interne et un acteur externe. Ce devrait être assez
simple si vous identifiez vis-à-vis de quoi l’acteur est interne ou externe. Inspirez-vous de
l’exemple précédent.
å J’avais commencé par écrire « un acteur est une entité du système définie par sa fonction ». Mais
j’ai changé cette définition car j’avais peur des confusions : il ne s’agit pas du tout de la notion
d’entité du MCD. Cela m’a d’ailleurs permis de préciser qu’un acteur était forcément humain
(entité humaine, cela faisait un peu trop science-fiction).
ç Oserais-je ? Allez… un groupe contient 1,n personnes !
154
8 3932 TG PA 01
Graphe acteurs/flux
Exercice 82
Étudions le cas d’achat d’une voiture d’occasion auprès d’un particulier.
Vous prospectez dans différentes revues, vous essayez plusieurs voitures, jusqu’à trouver la
bonne. Le vendeur vous remet si nécessaire l’attestation de contrôle technique, un certificat
de situation (anciennement appelé certificat de non-gage), la carte grise barrée, les clés et… la
voiture. En échange, vous lui donnez un chèque.
Identifiez les acteurs du texte précédent en précisant s’ils sont internes ou externes.
155
8 3932 TG PA 01
Séquence 9
Exercice 83
Exercice 84
Nous étudions une entreprise individuelle. Elle vend des ordinateurs à des clients institutionnels
(administrations) et à des particuliers. Dans tous les cas, le client passe commande, paye l’ordi-
nateur à la livraison puis reçoit la facture acquittée.
Quels sont les acteurs du système étudié ? Donnez leur type (interne ou externe).
156
8 3932 TG PA 01
Graphe acteurs/flux
Exercice 85
157
8 3932 TG PA 01
Séquence 9
À défaut, le flux est complètement externe au système et n’a rien à voir avec lui, donc
ne doit pas être représenté.
Du paragraphe précédent, on retiendra la consigne suivante :
Il ne doit pas y avoir de flux entre deux acteurs externes.
Cela ne signifie pas que le flux n’existe pas dans la réalité, mais juste que le système con-
sidéré n’a pas la maîtrise (et ne doit pas l’avoir) de ce qui se passe à l’extérieur.
Demande d’informations
acteur externe service acteur interne
client
commercial
Catalogue
flux
Exercice 86
Dans le graphe ci-après, rayez les acteurs et/ou les flux qui ne doivent pas être représentés.
Pour simplifier, je n’ai nommé ni les acteurs ni les flux puisque l’on travaille sur une règle de
construction indépendante de toute sémantique.
158
8 3932 TG PA 01
Graphe acteurs/flux
Exercice 87
service entreprise
client client
commercial de vente de PC
Le premier graphe est tout à fait intelligible car on visualise un principe d’action/réac-
tionå du système : le stimulus demande d’information reçoit la réponse envoi de cata-
logue. On perçoit bien la logique de l’ensemble.
En revanche, le second graphe est hermétique : la légende nous informe qu’il s’agit de
vente de PC, mais l’on reste tout surpris des flux ; on comprend que figurent le stimulus
initial (le bon de commande), la réponse finale (la facture acquittée), mais il est clair que
toute une machinerie reste implicite. Il est évident que ce graphe est finalement trop
épuré pour nous aider à comprendre le fonctionnement de l’entreprise.
Nous n’en avons pas fini avec le second graphe. Il modélise quelque chose de fonda-
mental pour l’entreprise : une vente ! D’où ma remarque purement subjective mais
néanmoins valide : je souhaiterais que la vente, qui est la fonction même de l’entreprise,
soit matérialisée de façon plus précise. En effet, ce graphe est tellement imprécis qu’il
ne sert à rien.
Finalement, que nous manque-t-il ? Rajouter des flux, même s’ils représentent autre
chose que de l’information.
Le graphe acteurs/flux se veut une approche du fonctionnement du système étu-
dié par l’étude de la circulation de ses documents. L’important étant avant tout sa
lisibilité et l’efficacité de sa représentation, on s’autorisera à matérialiser des flux
financiers ou d’objets, sous réserve qu’ils apportent réellement des précisions.
å Pour changer, j’emprunte un peu le vocabulaire des systèmes réactifs (action, réaction, stimu-
lus). C’est naturel si on considère l’entreprise (le système étudié) comme une entité réagissant aux
sollicitations extérieures (les clients).
159
8 3932 TG PA 01
Séquence 9
Exercice 88
Refaites l’exercice 87 en vous accordant les flux nécessaires à la compréhension du graphe.
Exercice 89
Modélisons le système de l’entreprise LIPAD (LIvraison de Pizza À Domicile)
Le client appelle le standard de LIPAD. On lui propose les pizzas du jour, ainsi que le délai
d’attente. Le client choisit sa pizza, donne ses coordonnées et raccroche. Le standardiste com-
munique le bon de commande au pizzaïolo. Celui-ci prépare la pizza puis la donne avec le bon
de commande au livreur qui, faisant fi des intempéries, enfourche son petit scooter (fidèle
destrier !) et fonce chez le client. Il lui remet la pizza contre paiement. De retour chez LIPAD,
le livreur remet le bon de livraison et l’argent au responsable.
Faites le graphe acteurs/flux du système LIPAD.
Exercice 90
Faites le graphe acteurs/flux du sujet de l’exercice 83 (concession automobile).
å C’est un raisonnement analogue qui me faisait dire (séquence 6 paragraphe 3) que plus l’objet
modélisé est important dans le système considéré, plus on le représente sous forme d’entité et non
d’association.
160
8 3932 TG PA 01
Graphe acteurs/flux
Notons une dernière fois que le graphe acteurs/flux demeure beaucoup moins formaliste
que le MCDå. Le graphe ayant pour seul objet l’explication du fonctionnement de l’en-
treprise par la modélisation des flux documentaires, on s’accordera des libertés si elles
aident manifestement à la compréhension.
Exercice 91
Exercice 92
Eh bien, pensez-vous que vous pourriez me dire, au seul vu du graphe, si la demande d’em-
prunt doit être faite avant ou après la signature du compromis de vente ?
å Cela ne veut pas dire que son concepteur était moins rigoureux que celui du MCD, mais provient
de la nature des deux modèles. Le MCD est quasiment contractuel puisque toute l’application sera
bâtie dessus, tandis que le graphe est destiné à une meilleure compréhension du fonctionnement de
l’entreprise. C’est la différence entre une esquisse et un plan d’architecte.
161
8 3932 TG PA 01
Séquence 9
Pour remédier à cela, il suffit de numéroter les flux dans l’ordre où ils se produisent.
Reprenons le graphe de l’exercice 79 et ordonnançons les flux :
1. bon de commande
entreprise
client 2. paiement de vente de PC
3. facture
Bien entendu, vous pouvez numéroter comme vous voulez : « (2) Paiement » est tout
aussi bien !
Notons que sur un graphe touffu, il sera plus lisible de ne mettre que les numéros des
flux sur le graphe et d’indiquer à côté leur nom, comme dans le graphe qui suit.
(1)
(1) : bon de commande
entreprise
client (2) (2) : paiement
de vente de PC
(3) : facture
(3)
Dans le graphe ci-dessus, il n’y a que trois flux mis dans l’ordre les uns sous les autres.
L’ordonnancement n’apporte pas grand chose. Mais dans le cas d’un graphe plus com-
plexe… c’est nécessaire.
Exercice 93
Exercice 94
Étudions une seconde EURL d’assemblage de matériel informatique. Elle vend des ordinateurs
à des clients institutionnels (administrations) et à des particuliers. Le protocole de vente est
différent selon les clients :
• le particulier verse un acompte de 25 % à la commande, puis le solde le jour de la réception
de l’ordinateur. Il reçoit en échange une facture acquittée ;
• les clients institutionnels demandent un devis pour que l’intendant (le comptable) valide la
dépense. Si le devis est accepté, le client passe la commande sans verser d’acompte. Le jour
de la livraison, le client reçoit une facture. L’intégralité de la somme est versée 90 jours après
la livraison, à la suite de quoi le client reçoit une facture acquittée.
Faites le graphe acteurs/flux de ce système.
162
8 3932 TG PA 01
Graphe acteurs/flux
3. Conclusion
Je vous assure que le graphe acteurs/flux est quelque chose d’assez élémentaire. J’ai
réussi à faire une douzaine de pages car j’ai tenté l’exhaustivité et toutes les astuces que
l’on pourrait vous demander.
Hormis dans la définition des acteurs et des flux, il n’y a pas de règle immuable comme
pour le MCD. Les différentes règles que nous avons vues ne représentent qu’un cadre de
travail. On peut toutes les violer, mais on doit le faire consciemment, donc à bon escient
(c.-à-d. en le justifiant).
Le cours est terminé. Je tiens à féliciter ceux qui ont eu le courage d’arriver jusqu’ici et
j’espère que vous aurez eu autant de plaisir à lire le cours que moi à le rédiger.
Je peux vous assurer que si vous l’avez assimilé correctement, vous avez le niveau requis
en BTS.
Maintenant, haut les cœurs et passez au cas de synthèse (étude de cas autocorrigée) !
163
8 3932 TG PA 01
Synthèse
Définitions
Acteur : un acteur (sous-entendu du système d’information) est constitué d’une ou
plusieurs personnes regroupées par leur fonction dans ce système. Il est identifié par
son nom. Un acteur sera soit interne, soit externe au système étudié.
Flux : un flux (sous-entendu d’information) matérialise l’échange d’une informa-
tion structurée d’un acteur à un autre. Les flux financiers sont également repré-
sentés vu leur importance en informatique de gestion.
Graphe acteurs/flux : le graphe acteurs/flux est une représentation des acteurs
et des flux permettant de visualiser la nature, l’origine et la destination des infor-
mations qui circulent dans le système étudié.
Il ne doit pas y avoir de flux entre deux acteurs externes. En conséquence, on
ne fera pas figurer d’acteur externe n’échangeant des informations qu’avec des
acteurs externes.
Le graphe acteurs/flux ne modélise que le fonctionnement normal (classique) de
l’entreprise, soit le cas général où tout se passe bien.
Représentation
Un acteur est représenté par un cercle dans lequel on écrit son nom. Le cercle des
acteurs externes sera en pointillés.
Un flux sera représenté par une flèche allant de l’acteur émetteur à l’acteur
destinataire. Il sera nommé par le document (ou l’information) échangé. Vous
prendrez l’habitude d’ordonnancer systématiquement les flux.
Le graphe acteurs/flux se veut une approche du fonctionnement du système étu-
dié par l’étude de la circulation de ses documents. L’important étant avant tout sa
lisibilité et l’efficacité de sa représentation, on s’autorisera à matérialiser des flux
financiers ou d’objets, sous réserve qu’ils apportent réellement des précisions.
165
8 3932 TG PA 01
Graphe acteurs/flux
Avertissement
Ce devoir répond à plusieurs impératifs :
• vous faire travailler sur un sujet de taille réelle et non sur des mini-cas
comme dans nos exercices ;
• mettre en œuvre la plupart des différents concepts abordés sans que
ce soit téléguidé (utiliser des entités faibles dans la séquence sur les
entités faibles, cela manque d’originalité) ;
• vous proposer un sujet d’examen blanc.
167
8 3932 TG PA 01
Séquence 9
Encore une fois, ce sujet est plus complexe qu’un sujet de BTS (qui n’évalue pas que l’analyse).
Sans démagogie, je n’ai pas honte d’avouer que si écrire le sujet ne m’a pas posé trop de pro-
blèmes, j’ai passé beaucoup de temps pour mettre au point un corrigé correct. Or, j’ai tout de
même beaucoup plus de recul que vous. Ainsi, ne croyez pas n’avoir rien compris à l’analyse si
vous avez du mal avec ce sujet. Il n’est pas facile. Mais il constitue un très bon entraînement.
Évidemment, vous devrez étudier le volumineux corrigé avec beaucoup d’atten-
tion !
On vous demande de réaliser l’analyse de l’activité du CNED. Pour cela, les informations
suivantes vous sont fournies.
1. Objectif de l’informatisation
Le CNED assure un service de formation à distance dans de nombreuses disciplines. Pour
assurer sa mission, il est en relation avec beaucoup d’intervenants : des étudiants, mais
aussi des enseignants chargés de rédiger les cours et de corriger les copies. Le nombre de
disciplines, d’enseignants et d’étudiants est tel qu’il devient nécessaire de tout informati-
ser pour suivre l’activité du centre et savoir :
• si l’enseignant recevant des copies à corriger les retourne au CNED en temps et en
heure ;
• s’il n’y a pas trop de démissions dans un cours donné (ce qui serait un signe de mal-
façon) ;
• l’évolution du nombre d’inscrits ;
• les différentes versions et mises à jour des supports de cours ;
• les notes des inscrits ;
•…
2. Organisation générale
Lorsque le service pédagogique du CNED veut faire concevoir un nouveau cours, il envoie à
l’enseignant retenu les documents contractuels (contrat, cahier des charges) que ce dernier
retourne signé. Une fois le cours rédigé, l’enseignant l’envoie au service pédagogique qui
lui retourne une attestation de service fait. Une copie de l’attestation est envoyée au service
comptabilité du CNED qui procède alors au paiement de la rémunération de l’enseignant.
Un étudiant intéressé par des cours demande un dossier d’inscription au secrétariat du
CNED qui le lui envoie par retour de courrier. S’il y trouve la formation qui l’intéresse, il
retourne le dossier accompagné d’un chèque (couvrant les frais d’inscription) au secréta-
riat qui transmet le dossier au service scolarité et le chèque au service comptabilité. Le
service scolarité envoie à l’étudiant l’ensemble des documents de la formation correspon-
dante (supports de cours, fascicules d’exercices…).
Lorsqu’un étudiant envoie pour correction un devoir au secrétariat du CNED, ce dernier lui
expédie immédiatement le corrigé-type correspondant et envoie le devoir à l’enseignant
chargé de la correction.
Quinze jours maximum après réception de la copie, le correcteur la retourne corrigée au
secrétariat du CNED, qui la renvoie à l’étudiant concerné. Les notes sont communiquées
au département scolarité qui envoie aux inscrits un relevé de notes en fin de formation. Le
secrétariat relève le nombre de copies renvoyées par chaque correcteur et le communique
au service comptabilité qui paye trimestriellement les correcteurs.
168
8 3932 TG PA 01
Graphe acteurs/flux
3. Les cours
Le CNED dispense deux types de cours :
1. Le module. C’est un cours sur un thème donné ; par exemple : Apprentissage de Word
2003, Comptabilité…
2. La formation réglementée. C’est une formation conforme aux programmes de l’Édu-
cation Nationale. Par exemple : Classe de sixième, BTS informatique de gestion… Elle
est constituée de modules : le module Apprentissage de Word 2003 fera partie de la
formation BTS Informatique de Gestion.
Chaque cours (module ou formation) possède un titre (intitulé), une référence, des tarifs
(voir ci-dessous), une durée en heures, une date de début et de fin d’inscription (ces dates
étant mises à jour à chaque année scolaire) et le nombre de devoirs associés au cours.
6. Étudiant
Un étudiant est caractérisé par ses nom, prénom, adresse complète, téléphone et date de
naissance.
7. Les inscriptions
Les inscriptions ne sont gérées que pour l’année en cours, on ne les historise pas. Un
étudiant peut s’inscrire à autant de cours (module et/ou formation) qu’il le souhaite. Un
étudiant peut bénéficier de tarifs différents. Par exemple, il peut avoir le tarif B pour la
formation BTS Informatique de Gestion financée par son entreprise, mais suivre en même
temps la formation Comptabilité à titre personnel et supporter le tarif A1. Une inscription
se fait à une date précise.
169
8 3932 TG PA 01
Séquence 9
9. Enseignant
Un enseignant est caractérisé par ses nom, prénom, adresse complète, téléphone et coor-
données bancaires. Parallèlement à son travail au CNED, l’enseignant est soit en retraite,
soit en poste dans un établissement scolaire (numéro d’établissement, nom, adresse, télé-
phone). Pour pouvoir travailler au CNED en plus de son service normal en établissement,
l’enseignant doit avoir une autorisation de cumul dont il faut conserver la date.
170
8 3932 TG PA 01
Graphe acteurs/flux
Travail à faire
171
8 3932 TG PA 01