Vous êtes sur la page 1sur 172

BTS Informatique de gestion, 1 re année

Jean-Yves Février

Développement d’applications informatiques et génie logiciel

Cours 1 (Merise)

Directrice de publication : Valérie Brard-Trigo

Les cours du Cned sont strictement réservés à l’usage privé de leurs destinataires et ne sont pas destinés à une utilisation collective. Les personnes qui s’en serviraient pour d’autres usages, qui en feraient une reproduction intégrale ou partielle, une traduction sans le consentement du Cned, s’exposeraient à des poursuites judiciaires et aux sanctions pénales prévues par le Code de la propriété intellectuelle. Les reproductions par reprographie de livres et de périodiques protégés contenues dans cet ouvrage sont effectuées par le Cned avec l’autorisation du Centre français d’exploitation du droit de copie (20, rue des Grands Augustins, 75006 Paris).

Conseils généraux

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.

Présentation du support de cours

Ce cours a été conçu pour pallier au maximum les difficultés de l’apprentissage à distance : les notions à retenir (définitions…) sont mises en avant et des exercices et questions sont présents tout au long du cours pour vous permettre de vérifier votre compréhension.

Mais j’insiste sur le point suivant : quelle que soit la qualité pédagogique de ce cours, il ne vous permettra pas d’assimiler l’analyse par simple imprégnation visuelle. Vous devez fournir un travail d’apprentissage (le cours), de réflexion (toujours le cours) et d’entraînement (les exercices).

3
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 1 re à la 4 e séquence avec un complément dans la 6 e ;

la 5 e 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 7 e et 8 e séquences. La 8 e séquence aborde également le dictionnaire des données ;

le graphe acteur/flux est disséqué dans la 9 e 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
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

8 3932 TG PA 01

5
5

Séquence 1

Introduction

Durée indicative : 2 heures

Cette séquence d’introduction va vous expliquer ce qu’est et à quoi sert une méthode d’analyse. On présentera ensuite la méthode que vous étudierez dans ce cours : Merise.

Capacités attenduesla méthode que vous étudierez dans ce cours : Merise. • Percevoir l’importance et le rôle

Percevoir l’importance et le rôle de l’analyse

Maîtriser le vocabulaire et la démarche de la méthode Merise

Contenule vocabulaire et la démarche de la méthode Merise 1. Introduction à l’analyse 8 1A. Pourquoi

1.

Introduction à l’analyse

8

1A.

Pourquoi l’analyse ? L’informatique de gestion Les méthodes d’analyse

8

1B.

8

1C.

10

2.

La méthode Merise

11

2A.

Données et traitements Les trois niveaux de modélisation

11

2B.

12

3.

Programme de la formation

13

Les trois niveaux de modélisation 11 2B. 12 3. Programme de la formation 13 7 8
7
7

8 3932 TG PA 01

Séquence 1

1. Introduction à l’analyse

1A.

Pourquoi l’analyse ?

L’analyse informatique est un outil indispensable pour la programmation.

D’ailleurs, qu’est-ce que la programmation en informatique de gestion ? Cela consiste à écrire un programme (par exemple, Windows, Word, Internet Explorer… sont des pro- grammes) permettant de réaliser informatiquement les tâches de gestion d’une entre- prise : la paye, le suivi de la clientèle, la facturation…

L’informatique n’a rien inventé, que ce soit en analyse ou en programmation. Si vous voulez tapisser une pièce, vous achetez le papier peint, la colle, deux ou trois outils et vous vous lancez. En revanche, si vous souhaitez bâtir une maison… J’espère que vous n’achèterez pas les matériaux pour, hop ! commencer la construction.

La démarche habituelle consiste à faire un plan détaillé pour se mettre d’accord sur la dis- position des pièces, leur nombre et leur superficie. Ensuite, on choisit les matériaux (bri- que, parpaing…), les revêtements (moquette, parquet, carrelage…) et les coloris. Enfin, après toutes ces étapes, on débute la construction. Le plan sera le document contractuel de référence. Le constructeur ne va pas bâtir une maison selon votre description (« je veux une belle maison, ensoleillée, plein sud, un grand séjour, trois chambres »), mais en fonction du plan, étant entendu que le plan doit traduire exactement vos souhaits.

L’intérêt du plan vis-à-vis de votre description ? Un grand séjour ne veut pas dire grand- chose, chacun ayant sa propre vision de ce qu’est une grande pièce. En revanche, une pièce de 30 m 2 , tout le monde comprend.

Tous les corps de métiers concernés (plombiers, carreleurs, maçons, menuisiers…) se référeront au plan pour réaliser leur tâche. Ils ne vous demanderont rien directement, et heureusement car a priori vous n’êtes pas du métier donc seriez bien en peine de répondre à leurs questions techniques.

1B.

L’informatique de gestion

C’est la même chose en informatique de gestion : on ne doit pas se lancer bille en tête dans la programmation, cela ne peut qu’échouer. Avant de commencer, il faut bien comprendre ce que l’on doit faire, quelles sont les données que l’on utilise, comment l’entreprise fonctionne. On fera cela grâce à l’analyse.

Schématiquement, il y a deux types d’informatique : l’informatique de gestion et l’infor- matique scientifique.

En informatique scientifique, on fait surtout des mathématiques en programmant des calculs complexes (intégrales, équations…). La difficulté est principalement de trouver une solution mathématique, la programmation s’en suivant naturellement. Il n’y a pas de problème avec les données, puisque l’on ne manipule que des chiffres. Par exemple, la météorologie utilise l’informatique pour faire ses prédictions. La difficulté est de trouver les équations représen- tant le plus fidèlement possible le temps. Ensuite, il n’y a plus qu’à les résoudre.

En informatique de gestion, c’est le contraire : il s’agit d’automatiser les tâches de gestion de l’entreprise (classiquement la comptabilité, les relations client/fournisseur – commandes, factures, relances –, la paie, la gestion de stocks…). Le programme est en général assez simple ; en revanche, la difficulté est reportée dans la gestion des données.

8
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
9

8 3932 TG PA 01

Séquence 1

Cet exemple me permet de vous donner la définition suivante :

L’informatique de gestion consiste à gérer, manipuler et exploiter le système d’infor- mation (les données) de l’entreprise pour chercher l’information utile.

Réaliser un programme de gestion passe par une étape essentielle : s’imprégner du fonc- tionnement de l’entreprise et des données qu’elle manipule. Et cela n’a rien d’évident car chaque entreprise a ses propres règles. Ensuite, il n’y a plus qu’à écrire le programme. Si vous avez mal compris l’interconnexion des données entre elles, le programme ne pourra pas fonctionner correctement.

Par exemple, si vous avez géré les commerciaux individuellement alors qu’ils sont regrou- pés en équipe, vous ne pourrez pas leur affecter une prime globale. Vous serez obligé d’attribuer individuellement la prime à chaque membre de l’équipe en espérant ne faire aucune erreur de saisie qui entraînerait des primes différentes au sein de l’équipe.

De même, supposons une entreprise qui installe des panneaux publicitaires sur des murs ou des terrains et les loue ensuite à des clients. Si vous voulez informatiser cette activité, vous êtes bien d’accord qu’il vaut mieux savoir avant de commencer si un panneau peut avoir une publicité différente par face ou ne possède qu’une face utilisable. En d’autres termes, va-t-on associer un seul ou deux clients à chaque panneau ? Ce n’est pas du tout la même chose!

1C.

Les méthodes d’analyse

Eh bien, tout cela, c’est un des rôleså de l’analyse : modéliser les données de l’entreprise et leur interconnexion. Bien entendu, il y a deux problèmes :

1. Comment faire cela ?

2. Comment faire pour que la modélisation soit compréhensible donc utilisable par d’autres personnes que son concepteur ?

Des théoriciens ont étudié ce problème et ont fourni des solutions : les méthodes d’ana- lyse. Elles répondent aux deux problèmes précédents :

1. D’une part, elles fournissent une façon (méthode) pour représenter (analyser) les don- nées de manière efficace et complète.

2. D’autre part, elles permettent une représentation codifiée et normalisée compréhensi- ble par tous ceux qui connaissent la méthode en question. Un développeur peut alors réaliser le programme en exploitant uniquement l’analyse, sans se référer au « monde réel ». Cela simplifie énormément le travail. On retrouve parfaitement la notion de plan pour la construction de la maison : le maçon se réfère au plan qu’il sait lire, et non à vous qui ne pouvez que répéter « un grand séjour, hein ! Et, plein sud ! ».

Je vous propose la définition suivante.

Méthode d’analyse: technique de modélisation du réel utilisant une représentation nor- malisée.

du réel utilisant une représentation nor- malisée. å En fait, les méthodes d’analyse modélisent les

å 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
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 [

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.

]

obtenir un résultat déterminé. » (Petit Robert)

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.

2A.

Données et traitements

Données Ce sont les objets que l’on manipule et leur interaction (en cuisine, ce sont les ingré- dients). La modélisation des données signifie leur description complète. C’est ici que l’on dira que l’entreprise de location d’espaces publicitaires gère des panneaux et des clients, que les panneaux ont une taille précise, sont implantés à une adresse donnée et suppor- tent une ou deux publicités…

11
11

8 3932 TG PA 01

Séquence 1

2B.

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).

Les trois niveaux de modélisation

Niveau conceptuel On va représenter (modéliser) le réel indépendamment de tout choix matériel ou d’or- ganisation de l’entreprise. Par exemple, concernant les traitements, on retiendra que la facture est établie après l’envoi de la commande. Le fait que ce soit le service facturation qui envoie cette facture est sans importance. On modélisera :

d’une part les données, ce qui donnera le MCD, Modèle Conceptuel des Données ;

d’autre part les traitements, ce qui donnera le MCT, Modèle Conceptuel des Traitements.

Niveau organisationnel (ou logique) On adapte le modèle du niveau conceptuel pour prendre en compte les contraintes matérielles (matériel informatique disponible, contraintes diverses…).

le MCD donnera le MLD, Modèle Logique des Données ;

le MCT donnera le MOT, Modèle Organisationnel des Traitements.

Niveau opérationnel (ou physique) On adapte le modèle du niveau organisationnel pour produire le programme en prenant en compte le formalisme du langage choisi :

le MLD donnera le MPD, Modèle Physique des Données ;

le MOT donnera le MOPT, Modèle OPérationnel des Traitements.

On notera que, données et traitements étant indépendants, leur modélisation peut être effectuée en parallèle par deux équipes distinctes. Notez également que le premier niveau (le conceptuel) est indépendant de tout matériel informatique ou choix techni- que. Un même MCD peut donc donner différents MLD et MPD selon les choix techniques retenus. Idem entre le MCT et les MOT et MOPT.

Le niveau conceptuel est le plus complexe. Par exemple, le passage du MCD au MLD est suf- fisamment simple pour pouvoir se faire automatiquement (par des programmes). Le MLD est néanmoins important car il décrit l’organisation des données en fonction du program- me utilisé pour les stocker. Jadis on utilisait des fichiers, maintenant on utilise des bases de données personnelles (Access, Paradox) ou professionnelles (SQL Server, Oracle…).

12
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

du métier

à informatiser

les traitements) : Compréhension du métier à informatiser Élaboration du MCD Élaboration du MLD Développement de

Élaboration

du MCD

du métier à informatiser Élaboration du MCD Élaboration du MLD Développement de la base de données

Élaboration

du MLD

Développement de la base de données

Élaboration du MLD Développement de la base de données 3. Programme de la formation En première

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
13

8 3932 TG PA 01

Synthèse

L’informatique de gestion consiste à gérer, manipuler et exploiter le système d’in- formation (les données) de l’entreprise pour chercher l’information utile.

Une méthode d’analyse est une technique de modélisation du réel utilisant une représentation normalisée.

La méthode d’analyse Merise modélise de façon séparée les données (les infor- mations que l’on manipule et leurs interactions) et les traitements (ce que l’on fait avec ces données). Données et traitements sont modélisés par trois niveaux successifs, du plus abstrait au plus concret : conceptuel, organisationnel, opéra- tionnel.

Le tableau ci-dessous résume les productions fournies à chaque étape.

Niveau

Données

Traitements

Conceptuel représente la perception du réel sans se préoccuper des moyens d’implantation

MCD

MCT

Modèle Conceptuel

Modèle Conceptuel

des Données

des Traitements

Organisationnel spécification du niveau organisationnel avec les choix techniques (langages…)

MLD

MOT Modèle Organisationnel des Traitements

Modèle Logique

des Données

Opérationnel prise en compte des moyens physiques d’implantation

MPD

MOPT Modèle OPérationnel

Modèle Physique des

 

Données

des Traitements

Les trois étapes MCD, MCT et MLD sont incontournables. L’essentiel de la forma- tion portera sur elles.

15
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 Représentation graphique

19

2B.

20

3.

Les propriétés

21

3A.

Définition Représentation graphique

21

3B.

22

4.

Les associations

23

4A.

Présentation Représentation graphique

23

4B.

24

5.

Compléments

26

Synthèse
Synthèse
17
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.

de l’anglais ou initiation à l’informatique . Vous remarquerez qu’un sujet d’une ligne peut amener à

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

å Ce mot est un néologisme, inutile de le chercher dans le dictionnaire !

18
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

courson peut enfin produire le schéma suivant : étudiant Rien d’impressionnant. La flèche représente le lien

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à l’étudiant. Le nouveau schéma sera alors : étudiant Bien, on progresse ! Mais en fait,

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
19

8 3932 TG PA 01

Séquence 2

O Le fait de mettre un maximum d’informations partant du principe qu’il vaut mieux en 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.

2B.

Représentation graphique

Reprenons : un étudiant est caractérisé par ses nom, prénom et adresse. On va représenter cela dans notre schéma. Le formalisme sera le suivant :

Ceci est une notation normalisée de Merise : dans un rectangle, on met le nom d’un « objet », puis on tire un trait et l’on met la liste des caractéristiques utiles en dessous, qu’il y en ait une… ou cinquante, sans ordre particulier. Le nom de l’objet est au singulier ; c’est sans importance pour l’instant, on abordera ce point plus tard. Par contre, le fait d’écrire le nom de l’objet en majuscules est un choix personnel : je trouve cela plus lisible.

ÉTUDIANT

Nom

Prénom

Rue

Code postal

Ville

Tant qu’on y est, on va donner un nom plus professionnel que rectangle ou objet à cette représentation : on dira qu’Étudiant est une entité, de même que Cours. La définition suit !

Entité : « Objet considéré comme un être doué d’unité matérielle […] » (Petit Robert). 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é.

et a un sens pour le système d’information étudié. Encore une fois, il nous faut expliquer

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
20

8 3932 TG PA 01

MCD : les concepts de base 1/2

Un exemple classique : un grossiste a comme fournisseurs et comme clients des entreprises. Aura-t-on une seule entité Entreprise ou deux entités Fournisseur et Client ? Certes, les four- nisseurs et les clients ont, en tant qu’entreprises, les mêmes caractéristiques (un nom, une adresse…). Mais leur fonction, donc leur sémantique, est distincte (voire opposée). On aura donc deux entités différentes. Parmi tous les objets qui existent, on ne retiendra que ceux qui sont utiles à l’entreprise et on les décrira d’après les données que cette dernière utilise.

On retiendra donc toujours le point de vue de l’entreprise.

« existence concrète ou abstraite »

C’est un point assez complexe, où les non-informaticiens achoppent. Nous venons de voir assez longuement que les entités étaient des objets cohérents manipulés par le système d’information. Mais il en existe de deux types.

Les entités concrètes, qui ont une existence physique tangible. Elles ne posent pas de problème car on identifie facilement un fournisseur, un client ou un patient comme autant d’entités.

En revanche, l’entreprise manipule d’autres entités qui n’ont pas forcément une exis- tence tangible : les factures (qui ne sont physiquement que des feuilles de papier), mais aussi des impayés, qui sont un concept abstrait mais crucial pour toute entreprise.

Pour fixer les idées, voici une définition moins théorique, mais regroupant les notions vues plus haut :

Une entité est un objet cohérent vu (décrit) avec l’œil de l’entreprise étudiée.

Pour faire le MCD, on devra notamment structurer les informations en les regroupant pour former des entités. C’est là qu’intervient l’entraînement et l’intelligence de l’ana- lyste : il n’est pas toujours évident de bien cerner les contours des entités, d’autant qu’il n’existe pas de technique rigoureuse. Il faut travailler par intuition.

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
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
Exercice 1

D’ailleurs, pourriez-vous décomposer cette adresse en données élémentaires ?

Le corrigé de l’exercice montre qu’il y a de nombreuses façons de considérer l’aspect élémen- taire des données. Pour régler le problème, il suffit de bien lire la définition: donnée élémen- taire pour le système d’information. Cette nuance passe hélas souvent à la trappe. Ainsi, on dira qu’une donnée est élémentaire pour le système d’information si sa décomposition ne donne rien de significatif (d’utile) pour le système d’information étudié.

Donc, je ne le répéterai jamais assez, on ne prend en compte que les références de l’en- treprise que l’on informatise 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.

O Il ne s’agit pas de passer des heures à s’interroger sur l’éventuelle non-élémentarité d’une donnée. La difficulté n’est pas là. Il suffit d’utiliser son bon sens.

Exercice 2
Exercice 2

Pourriez-vous nommer les propriétés de l’entité Étudiant du système d’information étudié (inscriptions au Cned) ?

3B.

Représentation graphique

Il n’y a rien à en dire puisque la représentation de l’entité comprenait déjà celle des propriétés ! Reprenons l’entité Étudiant vue dans le paragraphe 2B. en expliquant avec les termes techniques la représentation graphique :

ÉTUDIANT

Nom

Prénom

Rue

Code postal

Ville

Dans un rectangle, on met le nom de l’entité, puis on tire un trait et

l’on met la liste des propriétés en dessous sans ordre particulier.

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
22

8 3932 TG PA 01

MCD : les concepts de base 1/2

Exercice 3
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

Prénom

Rue

Code postal

Ville

COURS

Titre

Durée

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.

un cours signifie que l’étudiant est inscrit à un cours. å Et dans ce cas, je

å 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
23

8 3932 TG PA 01

Séquence 2

4B.

Représentation graphique

On obtiendra donc le schéma suivant : ÉTUDIANT Nom COURS Prénom s’inscrire à Titre Rue
On obtiendra donc le schéma suivant :
ÉTUDIANT
Nom
COURS
Prénom
s’inscrire à
Titre
Rue
Durée
Code postal
Ville

Notons le formalisme Merise : le nom du lien est écrit dans un ovale.

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 Nom COURS s’inscrire à Prénom Titre Rue Durée Code postal Ville C’est toujours juste…
ÉTUDIANT
Nom
COURS
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 Nom COURS est suivi par Prénom Titre Rue Durée Code postal Ville On est
ÉTUDIANT
Nom
COURS
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.

ÉTUDIANT Nom COURS suivre Prénom Titre Rue Durée Code postal Ville
ÉTUDIANT
Nom
COURS
suivre
Prénom
Titre
Rue
Durée
Code postal
Ville
COURS ÉTUDIANT Titre Nom Durée Prénom s'inscrire Rue Code postal Ville
COURS
ÉTUDIANT
Titre
Nom
Durée
Prénom
s'inscrire
Rue
Code postal
Ville
COURS Titre Durée apprendre ÉTUDIANT Nom Prénom Rue Code postal Ville
COURS
Titre
Durée
apprendre
ÉTUDIANT
Nom
Prénom
Rue
Code postal
Ville
25
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 :

Bien, nous avons presque terminé.serait illisible. Cette association est donc proscrite : COURS Titre Durée ÉTUDIANT Nom Prénom Rue Code

COURS Titre Durée ÉTUDIANT Nom Prénom Rue Code postal Ville Apprendre
COURS
Titre
Durée
ÉTUDIANT
Nom
Prénom
Rue
Code postal
Ville
Apprendre

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
26

8 3932 TG PA 01

Synthèse Je vous rappelle pour la dernière fois que la synthèse reprend toutes les notions
Synthèse
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
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

2.

Les identifiants

32

2A.

Approche par le MLD Identifiant d’une entité Identifiant d’une association

32

2B.

37

2C.

39

3. Interlude : comment construire un MCD (1)

40

4. Les cardinalités

41

4A.

Présentation par l’intuition Définition des cardinalités Les différentes cardinalités Distinguons les cardinalités maximales

41

4B.

44

4C.

46

4D.

47

5.

Interlude : comment construire un MCD (2)

48

Synthèse
Synthèse
29
29

8 3932 TG PA 01

Séquence 3

1. Les occurrences

1A.

Occurrence d’entité

Oh non, encore une ? Euh, oui, encore une petite définition. Et en plus, c’est une défi- nition très importante car en apparence évidente, mais du coup souvent oubliée et qui entraîne des erreurs sur d’autres concepts.

Je vous préviens que le concept est évident, mais que je n’ai pas réussi à trouver une définition simple. Heureusement tout s’éclaircira avec les explications et les exemples.

Occurrence d’entité : une occurrence d’entité est une réalisation (concrétisation) de cette entité.

Vite, on explique.

« réalisation (concrétisation) de cette entité »

Je vous ai parlé d’entités concrètes et abstraites. C’était un abus de langage dans la mesure où la notion même d’entité est abstraite. Cela devient de la philosophie, mais l’entité Étudiant (le concept d’étudiant) est une abstraction. Seuls existent des étudiants physiques. Dire que Jean Dupond est un étudiant est un raccourci pour dire « Jean Dupond fait partie de l’ensemble des étudiants » et non « Jean Dupond est un synonyme d’étudiant ». En fait, vous le saviez, car Jean Dupond est une invention de ma part, mais cela ne signifie pas que les étudiants n’existent que dans ma tête.

De même un chat. J’aime beaucoup Pollen, mon chat, mais je sais que ce n’est pas Le Chat, personnification, incarnation de toute la race des chats. En fait, Le Chat n’existe pas. Seules existent physiquement des choseså qui font partie de la famille des chats. Et comment peut-on dire que la chose qui s’appelle Pollen fait partie de la famille des chats, et non de celle des teckels sympas et fins gourmets ? Parce que l’on connaît les caractéristiques (propriétés) de la famille des chats, et que le petit Pollen, brave animal, possède ces caractéristiques.

Eh bien, on peut reprendre le vocabulaire précis de l’analyseç pour dire que :

la famille des chats se modélise par l’entité Chat ; mon petit Pollen est une occurrence de Chat.

Bien entendu, je ne demande pas à mon occurrence de Femme si elle a donné des occur- rences de Croquette à notre occurrence de Chat. Cela ferait pédant. Mais pourtant, c’est ce qu’il faudrait dire. Cette longue explication était nécessaire car très bientôt, on va jongler entre les entités et les occurrences.

on va jongler entre les entités et les occurrences. å Oui, il n’y a plus de

å 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
30

8 3932 TG PA 01

MCD : les concepts de base 2/2

Faisons un petit détour par l’algorithmique (programmation) : on va retrouver le même principe.

Quand vous déclarez une variable:

var i: entier

Quand vous écrivez un test :

si a = b alors

On lit « i est un entier » mais cela signifie « i fait partie de la famille 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 !)

Là, on dit « si a égale b », mais on pourrait dire « si a est b » car il 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
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 ?

Au vu de la correction de l’exercice 4, il est bon de préciser ce qui suit :

Une occurrence d’entité aura une valeur pour chaque propriété de l’entité. L’ensemble de ces valeurs caractérise cette occurrence.

Exercice 5
Exercice 5

Après avoir lu le corrigé de l’exercice précédent, donnez trois occurrences de l’entité Cours.

Le concept d’occurrence d’entité nous permet de justifier pourquoi le nom de l’entité doit être au singulier.

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 occur- rences d’Étudiant.

1B.

Occurrence d’association

rences d’Étudiant . 1B. Occurrence d’association Exercice 6 Sans lire ce qui suit, essayez de donner

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
31

8 3932 TG PA 01

Séquence 3

Occurrence d’association : une occurrence d’association est une réalisation (concré- tisation) de cette association.

Eh oui, la définition est similaire ! Mais le concept sous-jacent est moins simple. Que peut-on appeler une réalisation d’association ? On va essayer de trouver un exemple. Une occurrence d’entité revient finalement à renseigner (donner des valeurs) aux dif- férentes propriétés. Dans ce cas, le concept d’occurrence d’association étant similaire, il reviendrait à donner des valeurs aux propriétés de l’association. Le problème, c’est que l’association n’en a pas (rassurez-vous, cela ne durera pas !). Cependant, nous avons dit qu’une association reliait des entités. Donner une occurrence d’association reviendra donc à donner une occurrence de chaque entité reliée.

Concrètement, l’association suivre représente le fait qu’un étudiant suit un cours. Une occurrence de suivre sera constituée de deux choses :

un étudiant donné (soit une occurrence d’Étudiant), tel Dupond/Jean/1, bd Jean- Jaurès/54000/NANCY ; l’un des cours qu’il suit (soit une occurrence de Cours), tel Initiation à Internet/2.

Une occurrence de suivre sera donc Dupond/Jean/1, bd Jean-Jaurès/54000/NANCY// Initiation à Internet/2.

O Si Jean Dupond est inscrit à deux cours (Initiation à Internet et Analyse), l’occur- rence de suivre ne sera pas Dupond/Jean/1, bd Jean-Jaurès/54000/NANCY//Initiation à Internet/2//Analyse/9, mais…

à Internet/2//Analyse/9, mais… Exercice 7 Comment faire pour représenter l’inscription

Exercice 7

Comment faire pour représenter l’inscription de Jean Dupond à ces deux cours ?

On retiendra ce qui suit :

Sur le MCD, une association relie des entités. En revanche, une occurrence d’asso- ciation ne concerne que des occurrences d’entités. Elle sera formée par une (et une seule) occurrence de chaque entité reliée.

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
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

Word 2 Excel 3 Access 6 Linux 4 å Très schématiquement, une base de données est

å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
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
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

TITRE

NOM

Excel

LeTeckel

Initiation à Internet

LeLapin

Access

Dupond

Initiation à Internet

Dupond

Initiation à Internet

LeChat

Word

Dupond

 

É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

13, rue de l’Europe 95000 CERGY Alf LeLapin Square Fleuri 34830 CLAPIERS 34 8 3932 TG
34
34

8 3932 TG PA 01

MCD : les concepts de base 2/2

Tout se passe donc bien… jusqu’à ce que M lle Frédérique Dupond (11, rue des Arbres 60100 CREIL) s’inscrive aux cours d’Access et d’Excel.

Exercice 9
Exercice 9

Mettez à jour les tableaux pour qu’ils contiennent les inscriptions de M lle 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 M lle Dupond.

Après avoir consulté le corrigé de l’exercice précédent, proposez une solution pour remédier au problème.

Exercice 10
Exercice 10

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

Initiation à Internet

Pollen

LeChat

8, avenue de la Libération

45000

ORLÉANS

Word

Jean

Dupond

1, boulevard Jean-Jaurès

54000

NANCY

Access

Frédérique

Dupond

11, rue des Arbres

60100

CREIL

Excel

Frédérique

Dupond

11, rue des Arbres

60100

CREIL

On remarquera les points suivants :

1. Si l’on informatisait vraiment les inscriptions avec des tableaux, on n’aurait pour le moment plus besoin du tableau Étudiant puisque toutes les informations qu’il conte- nait sont dans le tableau suivre.

2. Le problème d’homonymie ne se pose pas pour le cours puisque son titre l’identifie sans ambiguïté (heureusement !). On n’ajoute donc pas la durée.

Bon, on a toujours le risque d’avoir un homonyme à une même adresse… mais il faut savoir s’arrêter, d’autant qu’il y a plus urgent : M. Dupond vient d’appeler. Il a déménagé, voici sa nouvelle adresse : « 78, avenue de la Libération 58000 NEVERS ».

35
35

8 3932 TG PA 01

Séquence 3

Séquence 3 Exercice 11 Corrigez les différents tableaux pour tenir compte du changement d’adresse. Reprenons le

Exercice 11

Corrigez les différents tableaux pour tenir compte du changement d’adresse.

Reprenons le tableau de la correction :

 

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

78, avenue de la Libération

58000

NEVERS

Initiation à Internet

Jean

Dupond

78, av. de la Libération

58000

NEVERS

Initiation à Internet

Pollen

LeChat

8, avenue de la Libération

45000

ORLÉANS

Word

Jean

Dupond

78 av. Libérations

58000

NEVERS

Access

Frédérique

Dupond

11, rue des Arbres

60100

CREIL

Excel

Frédérique

Dupond

11, rue des Arbres

60100

CREIL

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
36

8 3932 TG PA 01

MCD : les concepts de base 2/2

Exercice 12
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 ?

Nous allons reprendre ce concept de numéro de client dans le MCD.

2B.

Identifiant d’une entité

2B1. Définition

Identifiant d’une entité : l’identifiant d’une entité est une propriété ou un ensemble 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.

Analysons cette phrase

« un identifiant est une propriété d’une entité » L’identifiant sera donc une caractéristique de l’entité. Comme pour toute propriété, cha- que occurrence de l’entité possédera une valeur pour l’identifiant.

« la valeur de l’identifiant doit caractériser de façon unique l’occurrence correspon- dante » La différence entre une propriété quelconque et l’identifiant est la sémantique. Chaque propriété apporte une information, une caractéristique, tandis que l’identifiant ne sert qu’à… identifier. Chaque valeur de l’identifiant ne correspond qu’à une seule occurrence de l’entité. Par exemple, un numéro de Sécurité Sociale identifie de façon unique (ne correspond qu’à) une personne. De même, chaque occurrence d’entité ne possède qu’une valeur d’identifiant. En mathé- matiques, on parlerait de bijection entre les identifiants et les occurrences.

O Le fait que l’identifiant détermine l’occurrence ne signifie pas qu’à partir de la valeur de l’identifiant, vous pouvez déterminer la valeur des autres propriétés de l’occurrence (si je vous donne un numéro de Sécurité Sociale, vous ne pourrez pas en déduire le nom de la personne). Cela signifie que, pour une valeur donnée de l’identifiant, il n’existe qu’une valeur pour chacune des autres propriétés de l’occur- rence (mais quelles sont ces valeurs… mystère !).

Une conséquence importante : pour une entité donnée, chaque valeur de l’identifiant est unique.

Une remarque : dans la définition, j’aurais dû mettre « la valeur de l’identifiant identi- fie ». Mais comme cela faisait un peu redondant, j’ai préféré utiliser caractérise.

37
37

8 3932 TG PA 01

Séquence 3

Exercice 13
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.

« la valeur de l’identifiant doit être stable [et] non nulle »

D’après ce que l’on vient de voir, l’identifiant peut varier en permanence. Mais le bon sens peut-il accepter cela ? Si mon numéro de Sécurité Sociale change, ce n’est pas gênant tant qu’il continue à m’identifier de façon unique. Enfin, pas gênant… en théorie car en pratique je devrai changer ma carte d’ayant droit, prévenir mon employeur, ma mutuelle… De même, si le numéro d’un client change, il faut mettre à jour ses factures, ses com- mandes, bref tout ce qui le concerne. Finalement, l’identifiant faisant référence à une occurrence, on s’en servira très souvent. Accepter que les identifiants varient entraînerait un travail de mise à jour énorme et finalement idiot.

Je peux justifier cela d’une manière plus intuitive, qu’il faut sentir : l’identifiant est un peu la propriété phare de l’occurrence, celle qui détermine tout le reste. C’est en quel- que sorte un point fixe. Le fait que ce point fixe varie est assez ennuyeux. Pour la même raison, une valeur nulle est techniquement une valeur. Mais bon… être caractérisé par rien, c’est angoissant. On refuse donc la valeur nulle à l’identifiant.

« propriété naturelle ou artificielle d’une entité »

Le rôle de l’identifiant est donc d’identifier. J’espère vous avoir montré dans l’exemple des inscriptions au CNED que l’on avait besoin d’un identifiant pour gérer les étudiants. En généralisant, on définira un identifiant pour chaque entité. Pour faire cela, on obser- ve l’entité :

soit il existe déjà une propriété qui peut servir d’identifiant car elle en a la caracté- ristique. Dans ce cas, cette propriété naturelle est promue au rang d’identifiant. On parlera d’identifiant naturel ; soit, et c’est le cas le plus fréquent, aucune propriété ne peut être identifiant. On va donc rajouter une propriété artificielle (généralement juste un numéro) dont le seul rôle est de servir d’identifiant. On parlera alors d’identifiant artificiel.

« propriété ou ensemble de propriétés »

Il peut tout à fait arriver qu’une seule propriété ne soit pas identifiant, mais que deux propriétés accolées le soient. Nous verrons des exemples dans la suite du cours (cela reste un cas assez rare).

dans la suite du cours (cela reste un cas assez rare). (On définira plus tard de

(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
38

8 3932 TG PA 01

MCD : les concepts de base 2/2

2B2. Représentation graphique

Dans le MCD, on fait figurer toutes les propriétés de chaque entité. Pour distinguer l’identifiant, on le souligne et on le met en tête des propriétés.

Voici l’exemple de l’entité Client avec l’identifiant NuméroClient, puis le cas général avec l’entité Entité :

CLIENT

ENTITÉ

NuméroClient

Identifiant

NomClient

Propriété_1

PrénomClient

Propriété_2

AdrClient

Propriété_3

CodeClient

(etc)

VilleClient

TéléphoneClient

Propriété_n

 
VilleClient TéléphoneClient Propriété_n   Exercice 14 On mettra donc systématiquement un

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.

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.

Vérifiez qu’avec le changement dans le tableau des inscriptions, on a toujours la possibilité d’obtenir :

les adresses des inscrits au cours Excel ; à quels cours est inscrite M lle Dupond.

Exercice 15
Exercice 15
Exercice 16
Exercice 16

2C.

Identifiant d’une association

Exercice 17
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
39

8 3932 TG PA 01

Séquence 3

La définition sera la suivante :

Identifiant d’association : l’identifiant d’une association est la concaténation des identifiants des entités reliées.

Par exemple, si Pollen LeChat (étudiant numéro 2) suivait le cours Excel, on aurait une occurrence de suivre identifiée par 2/Excel (la concaténation des deux valeurs). Cette notion ne sert pas à grand-chose. D’ailleurs, elle n’est pas représentée dans le

MCD : les identifiants des entités sont soulignés, mais on ne les souligne pas une seconde

fois pour indiquer qu’ils sont identifiants d’une ou plusieurs associations.

« Donc, me diriez-vous si j’étais devant vous, vous nous apprenez des choses inutiles ? Ce n’est pas raisonnable ! ». Certes ; j’ai donc une justification : la notion d’identifiant d’association est utile pour la compréhension de l’association.

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.

Dit autrement, le même ensemble d’occurrences d’entité ne peut constituer deux occur- rences d’une même association. Par rapport à notre exemple d’inscription, cela signifie que Jean Dupond ne peut pas s’inscrire deux fois au même cours. Ce qui, ma foi, est assez raisonnable. Ce point semble même trivial, mais je vous assure que ce sera un bon garde- fou lorsque vous ferez un MCD « trapu » où l’on a vite fait de perdre ses repères.

3. Interlude : comment construire un MCD (1)

Nous avons vu ensemble les différents constituants du MCD. Cependant, je ne vous ai donné aucune technique pour passer d’un sujet en français au MCD. Le sujet ci-dessous est donc volontairement explicite. De plus, je vous donne les conseils suivants :

1. Ne tenez pas compte dans le sujet de ce qui a trait aux traitements, ni de ce qui est extérieur au domaine considéré.

2. Identifiez les entités et les associations.

3. Identifiez les propriétés.

4. Déterminez les identifiants (identifiants naturels) ou rajoutez-en (identifiants artificiels).

5. Il n’y a plus qu’à faire le MCD.

Avant d’aborder le dernier constituant (cardinalités) du MCD, je vous propose un petit jeu : la modélisation du sujet suivant.

Gestion des permis de construire à la mairie (première partie). Un terrain est caractérisé par une référence cadastrale, une surface en areså, un type (constructible, 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ç, l’achat étant réalisé devant notaire. 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 aussi la surface en m 2 .

å Un are = 100 m 2 (et un hectare = 100 ares = 10 000 Un are = 100 m 2 (et un hectare = 100 ares = 10 000 m 2 ). ç Dans la vraie vie, c’est faux. Mais c’est sans importance ici, puisque seul le sujet compte.

40
40

8 3932 TG PA 01

MCD : les concepts de base 2/2

MCD : les concepts de base 2/2 Exercice 18 Essayez d’établir le MCD. Une petite aide

Exercice 18

Essayez d’établir le MCD. Une petite aide : il y a deux entités et une association.

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 ?

Exercice 19
Exercice 19

4. Les cardinalités

4A.

Présentation par l’intuition

C’est la dernière notion utile dans un MCD… et c’est sans doute la plus simple à com- prendre.

Son importance est néanmoins énorrrrrrrrrrrrrrrrrrrrrrrrme ! Depuis le début du cours, j’ai essayé de justifier tout ce que l’on voyait. En effet, mon dada est de dire que tout en informatique a une justification et un intérêt. Ainsi, si l’on utilise des identifiants, ce n’est pas pour le plaisir, mais parce qu’on en a besoin.

C’est la même chose pour les cardinalités, sauf que… je vous avoue humblement n’avoir pas trouvé de biais pour le présenter. Le concept est tellement simple que je pourrais vous dire « bon, les cardinalités, c’est comme cela, point ». Mais cela ne serait pas sérieux.

Reprenons les deux exercices précédents (les inscriptions et les permis de construire). Je ne les ai pas choisis au hasard : bien que similaires (deux entités, une association, on ne peut pas faire plus simple), ils ont une différence essentielle que l’on n’avait pas encore exploitée.

Cas des inscriptions :

un cours peut être suivi par plusieurs étudiants ; un étudiant peut suivre plusieurs cours.

Exercice 20
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
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 RéférenceCadastrale Surface Type NuméroPropriétaire Propriété fautive Nom Prénom DateDeNaissance
TERRAIN
RéférenceCadastrale
Surface
Type
NuméroPropriétaire
Propriété fautive
Nom
Prénom
DateDeNaissance
Code
Ville
TERRAIN RéférenceCadastrale Surface Type PROPRIÉTAIRE NuméroPropriétaire Nom Concept fautif Prénom
TERRAIN
RéférenceCadastrale
Surface
Type
PROPRIÉTAIRE
NuméroPropriétaire
Nom
Concept fautif
Prénom
DateDeNaissance
Adresse
CodePostal
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
42

8 3932 TG PA 01

MCD : les concepts de base 2/2

Le jeu d’essai donné dans la correction de l’exercice précédent deviendra :

 

Propriétaire

 

NUMÉRO PROPRIETAIRE

NOM

PRÉNOM

DATE DE NAISSANCE

ADRESSE

CODE

VILLE

1 LeChat

 

Pollen

25/01/1998

 

ici

59000

LILLE

2 LeTeckel

 

Nina

12/04/1996

 

34000

MONTPELLIER

   

Terrain

   

RÉFÉRENCE CADASTRALE

SURFACE

TYPE

NUMÉRO PROPRIÉTAIRE

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
43

8 3932 TG PA 01

Séquence 3

4B.

Définition des cardinalités

L’association traduit le lien sémantique abstrait entre les entités. Les cardinalités tradui- ront le lien entre les occurrences. Armé de ce savoir, on va donner la dernière définition de la séquence.

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 aux- quelles participe chaque occurrence de l’entité. Chaque association comportera 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’association, à côté de l’entité correspondante å. On séparera les cardinalités minimum et maximum par une virgule.

Bon, assez de blablabla, voici la représentation du MCD inscriptions : ÉTUDIANT NuméroÉtudiant Nom COURS
Bon, assez de blablabla, voici la représentation du MCD inscriptions :
ÉTUDIANT
NuméroÉtudiant
Nom
COURS
Prénom
suivre
Titre
0, n
0, n
Rue
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 !

Deuxième remarque : expliquons bien les cardinalités en les lisant ensemble. (1) cardinalités liées à l’entité Étudiant ç.

Cardinalité minimum : 0 Une occurrence d’Étudiant participera au minimum à aucune occurrence de suivre (juste pour la compréhension, cela signifie qu’un étudiant peut n’être inscrit à aucun coursé).

Cardinalité maximum : n Une occurrence d’Étudiant peut participer au maximum à plusieurs occurrences de suivre (juste pour la compréhension, cela signifie qu’un étudiant peut être inscrit à plusieurs coursè).

å 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. concernent les occurrences d’ Étudiant , non de Cours é Mais alors, est-ce un étudiant ? é Mais alors, est-ce un étudiant ? On va y revenir ! è Ce plusieurs signifiant « un nombre quelconque ».

44
44

8 3932 TG PA 01

MCD : les concepts de base 2/2

On résumera en disant qu’une occurrence d’étudiant peut participer de 0 à plusieurs occurrences de suivre (bref, qu’un étudiant peut être inscrit de 0 à plusieurs cours ; dit autrement, tous les cas sont possibles, il n’y a pas de contrainte).

(2) cardinalités liées à l’entité Cours.

(2) cardinalités liées à l’entité Cours . Exercice 21 Les cardinalités (2) sont identiques aux

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
Exercice 22

Bon, qu’à cela ne tienne… il y a juste un chiffre à corriger sur le MCD ; pouvez-vous le faire ?

Cet exercice permet une conclusion intéressante :

certaines cardinalités sont négociables : dans cet exercice, mettre un 0 ou un 1 dépend de ce que l’on appelle un étudiant. On peut justifier le 0 en envisageant un étudiant qui s’inscrit, puis qui annule son inscription. Si on ne l’efface pas de la base de données, on a bien un étudiant sans cours. Bref, mettre 0 ou 1 n’a pas d’incidence. Les deux solutions sont correctes. Inutile donc de discuter dix minutes, de peser le pour et le contre… c’est du temps perdu ;

en revanche, certaines cardinalités ne sont absolument pas négociables : par exemple, une facture doit être liée à un client. Mettre une cardinalité minimale de 0 n’a pas de sens, puisque dans ce cas, personne ne la paiera ! (c’est une fausse facture).

On a vu précédemment que le MLD était différent selon que la cardinalité maximale était 1 ou n (avec un 1, l’association n’est pas transcrite en tableau dans le MLD). L’information apportée par la cardinalité maximale étant exploitée, il est utile de la faire figurer dans le MCD.

En revanche, à quoi sert la cardinalité minimale (0 ou 1) ? Elle n’a aucune influence dans notre MLD tableau. Cependant, deux arguments militent en sa faveur :

1. Le principe du MCD est de représenter fidèlement et complètement le réel puisque, pour tout le travail postérieur (l’informatisation réelle), le MCD se substituera au réel.

45
45

8 3932 TG PA 01

Séquence 3

4C.

Il est donc indispensable d’avoir le plus d’informations possible embarquées dans le MCD, que l’on s’en serve ou non. Ce n’est pas de l’informatique mais du bon sens : il vaut mieux avoir trop d’informations disponibles que pas assez.

2. De plus, cette information sera vraiment utile lors du développement de l’application. Par exemple, une facture est liée au minimum à un client et non à zéro car une facture sans client désigné ne sera jamais payée. Ainsi, le développeur concevra l’application de telle façon que l’utilisateur ne puisse pas entrer de facture sans mentionner de client associé. En revanche, si vous mettez 0 en cardinalité minimum, vous faites une faute d’analyse qui entraînera une erreur dans le programme. Nous sommes bien en présence d’une cardinalité minimale non négociable (1 est juste, 0 est faux).

Les différentes cardinalités

Pour terminer sur les cardinalités, on va recenser tous les cas pouvant se trouver dans un MCD, sachant que l’on utilise les valeurs 0, 1 ou nå :

0, 0

C’est une configuration impossible car signifiant que toute occurrence de l’entité concernée participe à au moins 0 et au plus 0 occurrence d’asso- ciation. Or, entre 0 et 0, il n’y a qu’une possibilité : 0. Une cardinalité 0,0 signifie donc que l’occurrence ne participe jamais à l’association. Dans ce cas, on ne représente pas de patte !

0, 1 et 1, 1 La cardinalité minimale (0 ou 1) peut être ou non négociable. La cardinalité maximale a un sens important (le MLD ne sera pas le même selon que l’on

a 1 ou n).

0, n et 1, n La cardinalité minimale (0 ou 1) peut être ou non négociable. La cardinalité maximale a un sens important (le MLD ne sera pas le même selon que l’on

a 1 ou n).

Cette configuration n’a pas de sens. En effet, quand vous rentrez une occurrence, vous ne pouvez pas techniquement la relier immédiatement à plusieurs autres occurrences au travers d’une même association.

On conclura en disant que la cardinalité maximale influe directement sur le MLD, tandis que la cardinalité minimale a un sens dans la sémantique des données et sera exploitée lors de la conception du programme.

n, n

å 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 au niveau con- ceptuel (MCD), qu’il y ait 100, 5, 2 ou n n et de 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
46

8 3932 TG PA 01

MCD : les concepts de base 2/2

La séquence est presque terminée ; faisons donc un petit exercice d’entraînement.

Exercice 23
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
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.

4D.

l’exercice 18) pour y rajouter les cardinalités. 4D. Distinguons les cardinalités maximales Nous avons vu que

Distinguons les cardinalités maximales

Nous avons vu que les cardinalités minimales et maximales avaient un rôle différent. Dans les dernières séquences de ce cours, nous aurons besoin de raisonner sur les cardi- nalités maximales des associations.

Pour le faire facilement, on va utiliser une notation représentant exclusivement les car- dinalités maximales d’une association : on les sépare par un tiret et on met l’ensemble entre crochets. Par exemple :

[n–n] signifie que l’association est une binaire dont les deux cardinalités maximales sont n. Les deux couples de cardinalités peuvent être soit 1,n, soit 0,n.

[1n] signifie que l’un des couples de cardinalités sera 0,1 ou 1,1, l’autre étant 0,n ou 1,n.

[n–n–n] devrait représenter une ternaire avec les cardinalités maximales à n… mais on écrira cette ternaire [n–n] quand même. Pourquoi ? Hé hé !

On retiendra: une association [1–n] est une binaire dont une cardinalité maximale vaut 1, l’autre n. Une association [n–n] est une association dont toutes les cardinalités maxi- males valent n.

La suite du cours vous expliquera :

pourquoi [1n] est forcément une binaire ;

pourquoi [n–n] peut représenter une association avec un nombre de pattes indé- terminé et pas uniquement une binaire (on verra pourquoi [n–n–n], [n–n–n–n]… se résument à [n–n]).

Poursuivez donc le cours pour découvrir tous ces mystères !

47
47

8 3932 TG PA 01

Séquence 3

5. Interlude : comment construire un MCD (2)

Nous terminerons la séquence en complétant la technique de base pour réaliser le MCD :

1. Ne tenez pas compte dans le sujet de ce qui a trait aux traitements, de ce qui est extérieur au domaine considéré, de ce qui est tout simplement du blabla.

2. Identifiez les entités et les associations.

3. Identifiez les propriétés.

4. Déterminez les identifiants (identifiants naturels) ou rajoutez-en (identifiants artificiels).

5. Dessinez le MCD. Pour chaque association, vous placerez les cardinalités.

(En pratique, pas question de faire cela dans un grand sujet : on fera plutôt les étapes 2 à 5 pour chaque entité et association. Nous y reviendrons dans des cas plus complexes.)

La séquence est terminée ! Pour profiter de la séance de TD suivante, apprenez bien le cours avant de la commencer. Ne vous référez au cours que si vraiment vous êtes bloqué. Bon courage et rendez-vous à la séquence suivante.les étapes 2 à 5 pour chaque entité et association. Nous y reviendrons dans des cas

48
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
Synthèse
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
49

8 3932 TG PA 01

Durée indicative : 8 heures

Travaux dirigés 1
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
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 m 2 ).

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
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 prendr