M534 – TP4 – M.C.D. 1/12 Modèle conceptuel de données (MCD) 1. Rôle du M.C.D. Le modèle conceptuel de données ou MCD est à l’origine d’une démarche qui conduit très rapidement à la définition de la structure d’une base de données : tables, champs, clés primaires, relations. Il donne une représentation de l'ensemble des données du système d'information ou plus souvent du domaine (partie de celui-ci), qui devront obligatoirement être mémorisées. Par choix méthodologique, cette représentation au niveau conceptuel est établie en faisant abstraction des aspects matériels, économiques et techniques ; en particulier, les délais d'accès à ces données et les obstacles technologiques sont volontairement ignorés. En dépit des concepts et du vocabulaire employés, les préoccupations au cours de la construction du modèle sont tout à fait concrètes et tournées vers la réalisation effective des applications du projet. Dernier point, le MCD utilise un langage graphique formel mais simple. Cette forme graphique qui doit être respectée favorise un travail collaboratif avec les utilisateurs du fait de sa simplicité. 2. Modèle Entité-Relation Il est le composant fondamental du MCD et il est employé également dans d'autres méthodes. Il connaît des variations mineures d'aspect selon la version de la méthode. Le schéma-type du modèle entité-relation est présenté ci-dessous avec son vocabulaire spécifique. COMMANDES numéro commande, date commande 0,n CARDINALITES RELATION ENTITE CONCERNER 0,n PRODUITS référence produit, désignation, prix ht, stock réel quantité prévue PROPRIETES IDENTIFIANT 3. Composants du modèle Entité-Relation 3.1 la propriété 3.1.1 définition la propriété est une donnée : descriptive ou caractéristique d'un objet, individu ou événement, unique dans le modèle, et par extension, dans le système d'information pris dans sa globalité, non fractionnable : toute segmentation de la propriété produit des éléments non significatifs et sans utilité dans le domaine. Le champ est l'unité minimale de mémorisation et de traitement de la donnée. Si l'on prend l'exemple d’une l'adresse postale, les champs utiles sont la rue, le lieu, le code postal, le bureau distributeur, le pays quand ce n'est pas le numéro d'escalier et l'étage. élémentaire ou non calculée : la propriété ne peut pas être obtenue à partir d'autres propriétés. La reconstitution suppose la mise en oeuvre d'opérations arithmétiques ou logiques ou encore de traitement de caractères. Seront exclues des propriétés, les données reconstituées par opération : Année 2010-2011 arithmétique : le montant TTC d'une facture est calculé si l'on dispose par ailleurs des bases H.T. et des taux de TVA, M534 – TP4 – M.C.D. 2/12 logique : application des fonctions SI, CHERCHE, RechDom, Compte, Moyenne, Min... exemples de données calculées : le tarif de la vignette appliqué à un véhicule précis est calculé si l'on connaît sa puissance fiscale, son année-modèle et le barème de cet impôt fonction des deux données précédentes l'année de naissance est calculée si l'on dispose de la date de naissance (fonction Année() ) de traitement de caractères : fonctions &, GAUCHE(), DROITE().. l'identité d'une personne est obtenue en associant son nom de naissance et son prénom le numéro de département est extrait du numéro d'immatriculation... le numéro de compte bancaire est obtenu par juxtaposition du code banque, du code guichet, d'un numéro d'ordre, d'une clé calculée. Inversement, le code guichet peut être extrait du numéro de compte... de requête : comptage, totalisation, moyenne, min, max sur une table ou un ensemble de tables, avec ou sans critère sélectif. exemples de propriétés : identité du salarié (recouvre les données nom, prénom, nom de jeune fille) adresse de l'étudiant (recouvre le numéro, la rue, le code postal, le pays...) dénomination du client prix d'achat h.t. du produit civilité du client 3.1.2 nom d'une propriété Une propriété est désignée par une expression nominale, significative et sans ambiguïté, pour tous les acteurs de la modélisation, utilisateurs et informaticiens. En priorité, le nom sera tiré du vocabulaire employé par les utilisateurs. unique dans le système d'information par la nature même de la propriété Le nom peut être associé à un nom de code plus favorable à l'informatisation ultérieure sans toutefois le remplacer : exemple : numéro étudiant et numetud Mais les noms de code informatiques, trop obscurs aux utilisateurs, ne peuvent leur être imposés sous prétexte de contrainte informatique ; les logiciels actuels autorisent la composition de noms en forme libre dans les programmes. Les arguments tel que l'espace occupé ou la vitesse de traitement sont caducs. exemple (réel) à proscrire : codnumfour (code de numéro de fournisseur) La formation des noms de propriétés est une étape à ne pas négliger. Le nom est en lui-même une définition abrégée de la donnée. Un choix maladroit peut induire des erreurs d'interprétation et entraîner de coûteuses corrections. 3.2 3.2.1 l'entité définition De nombreuses définitions sont proposées. Mieux vaut s'en tenir à une définition large. Par exemple, on peut dire qu'une entité est un ensemble d'objets, d'individus présentant les mêmes types de caractéristiques et sont ou des objets ou des individus : abstraits ou concrets identifiables, distincts les uns des autres et "utiles", c'est-à-dire ayant une signification pour le domaine qui sont perçus autant à l'intérieur du domaine que dans son environnement. Exemples : entité clients, entité salariés, entité factures de vente, entité taux de tva, entité dates... L'entité reçoit un nom qui la distingue des autres entités du modèle et par extension de celles du système d'information : nom ou expression nominale, au singulier (règle initiale de Merise) ou au pluriel plus naturellement. 3.2.2 règles de formation des entités L'entité est porteuse de propriétés qui la caractérisent et la décrivent : chaque exemplaire de l'entité comporte la même liste de propriétés (= caractéristiques). Aucune des propriétés n'est facultative : elle a obligatoirement une signification et une valeur pour chacun des exemplaires de l'entité. Année 2010-2011 M534 – TP4 – M.C.D. 3/12 une propriété pour un exemplaire quelconque de l'entité possède une valeur unique. Exemples : ETUDIANTS numéro étudiant, nom étudiant, prénom étudiant, nationalité étudiant SALARIES matricule salarié, nom salarié, prénom, prénoms des enfants Le choix de la propriété nationalité étudiant dans l'entité étudiant est impropre, car certains étudiants peuvent posséder une double nationalité. Outre le fait que prénoms des enfants n'a de sens que pour certains salariés, la donnée peut prendre plusieurs valeurs pour un salarié quelconque. une même propriété ne peut figurer dans plusieurs entités (ou relations), car, elle est unique. Il est indispensable de distinguer les noms des propriétés par une expression supplémentaire : nom du client nom du vendeur. CLIENTS numéro client, nom, adresse SUIVRE VENDEURS code vendeur, nom, adresse modèle correct : CLIENTS numéro client, nom client, adresse client 3.2.3 3.2.4 SUIVRE VENDEURS code vendeur, nom vendeur, adresse vendeur un identifiant au minimum dans l'entité : l'identifiant assure la distinction de chaque exemplaire composant l'entité. cette fonction est remplie par une propriété ou un groupe de propriétés associées : exemples : référence produit code famille + référence produit (dans la famille du produit) une entité peut posséder plusieurs identifiants, mais un seul est actif dans le modèle. exemple : pour un salarié, on dispose d'un numéro matricule donné dans l'entreprise et d'un numéro Sécurité Sociale. un individu est décrit par une seule entité : un objet, un individu présent dans une entité ne doit en principe pas être décrit dans une autre entité, en particulier quand des propriétés de même nature sont prévues dans les deux entités. Exemple : CLIENTS numéro client, nom client, adresse client, coordonnées bancaires client FOURNISSEURS numéro fournisseur, nom fournisseur, adresse fournisseur, coordonnées bancaires fournisseur TIERS numéro tiers, nom tiers, adresse tiers, coordonnées bancaires tiers Si clients et fournisseurs de l'entreprise se superposent, même partiellement, il est indispensable de créer une entité unique. Année 2010-2011 M534 – TP4 – M.C.D. 4/12 La détermination des entités traduit l'intérêt que portent le domaine et les personnes qui sont concernées, pour certains objets ou individus ou événements. Elle reflète la perception de leur univers et leurs préoccupations stratégiques. 3.3 la relation la relation exprime la reconnaissance de liens entre individus ou objets de différentes entités. Elle traduit un état de dépendance ou un événement survenu entre ces individus. Elle exprime également le rôle que joue une entité dans le modèle : très schématiquement, un tiers lié à une facture de vente joue le rôle de client ; s'il possède un lien avec une commande d'achat, il tient le rôle d'un fournisseur. Le nom de la relation, unique dans le système d'information est un verbe ou une expression verbale (à l'infinitif ou au présent de l'indicatif). Les noms de relations posent difficulté. D'une part, il n'est pas toujours aisé de traduire d'un simple verbe, les multiples sens du lien. D'autre part, de nombreuses relations montrent un lien d'appartenance. Etant donnée que le nombre de synonymes du verbe appartenir est limité : avoir, posséder, dépendre, concerner..., le concepteur est vite à court de ressources. En réponse, il faut admettre que la priorité est de satisfaire la distinction entre relations, la signification du lien devient secondaire. COMMANDES numéro commande, date commande CONCERNER n°25 25, A PRODUITS référence produit, désignation, prix ht ref A 25, B ref B n° 26 26, C identifiants des relations ref C la relation ne comporte pas d'identifiant, à la différence de l'entité. Pour assurer la distinction entre les différents liens formant une relation, on associe les identifiants des entités reliées. Une relation peut porter des propriétés descriptives, dans les mêmes termes qu'une entité. Cependant, ces propriétés n'interviennent jamais dans l'identification des relations. exemple d’un modèle douteux : la propriété n° commande ne peut jouer le rôle d'un identifiant des commandes. Le modèle ne peut pas distinguer les différentes commandes des clients. CLIENTS numéro client, nom, adresse COMMANDER ARTICLES référence article, désignation n° commande, quantité commandée Une relation concerne de une à plusieurs entités (voir page suivante). Dans la majorité des cas, les relations sont de type binaire ou ternaire (reliant 2 ou 3 entités). Au-delà, la complexité s'accroît et l'on doit craindre qu'elle ne cache une insuffisance de l'analyse. Une relation peut s'appliquer à une même entité que l'on qualifie de relations réflexives. Elles montrent en fait des liens pouvant exister entre les membres d'une même entité (voir paragraphe 5) Année 2010-2011 M534 – TP4 – M.C.D. 5/12 PARTICULIERS 0,n les cardinalités sont ici très restrictives sur les entités impliquées par la relation ; ne seront concernées par celle-ci : - que les particuliers ayant au moins financé un logement, - que les établissements financiers ayant participé à ce financement, - que les logements obtenus avec un établissement financier. PARTICULIERS 0,n LOGEMENTS FINANCER 0,n 0,n ETS FINANCIERS ACQUERIR 1,1 LOGEMENTS 0,n solution : cette représentation a le mérite de conserver le même sens en donnant plus de souplesse. FINANCER 0,n ETS FINANCIERS note de vocabulaire : les occurrences et les types L'expression occurrence désigne un exemplaire quelconque de l'entité ou de la relation. A opposer à la notion de type, désignant l'ensemble des exemplaires de l'entité ou de la relation. Exemple : entité CLIENT = entité type CLIENT = ensemble des clients client Martin = occurrence de l'entité CLIENT 3.4 les cardinalités d’une relation il s'agit d'informations essentielles, portées sur les arcs des relations. En dépit de la terminologie, elles concernent en priorité l'entité par rapport à la relation et non l'inverse. les cardinalités expriment le nombre de fois où une occurrence d'une entité peut être concernée par une relation. Les cardinalités s'expriment en 2 valeurs : le nombre minimal et le nombre maximal de fois où l'occurrence d'entité peut participer à la relation. minimum : 2 cas typiques 0 ou 1 0 = l'occurrence d'entité peut exister sans participer à la relation 1 = l'occurrence pour exister participe nécessairement à la relation ; elle a obligatoirement un lien avec une occurrence d'une autre entité Année 2010-2011 M534 – TP4 – M.C.D. 6/12 maximum : 2 cas typiques 1 ou n 1 = l'occurrence ne peut avoir plus d'un lien avec une autre entité n = l'occurrence peut avoir un nombre illimité de liens avec les occurrences de l'autre entité. 1 d'autres valeurs minimales ou maximales peuvent être exprimées en fonction du contexte . les cardinalités sont établies depuis l'entité par rapport à la relation. Prenant exemple d'une occurrence quelconque de l'entité, il est facile de les déterminer, mini et maxi, en s'appuyant sur les règles de gestion établies pour le domaine. La cardinalité 1,1 est exclusive des relations binaires. Une relation binaire ne peut porter plus d'une fois la cardinalité 1,1 4. Contraintes d’intégrité fonctionnelle C.I.F. 4.1 nature des CIF Une contrainte d'intégrité fonctionnelle ou CIF se définit par le fait que l'une des entités participant à la relation est complètement déterminée par la connaissance de l'une ou de plusieurs autres entités liées par la même relation. la CIF sur une relation à 2 entités porte une cardinalité 1,1 sur l'une de ses branches. Elle traduit la participation obligatoire (fonctionnelle) pour chaque occurrence de l'entité, côté 1,1 à la relation. la simplification graphique, par la mention CIF à la place du verbe dans la relation ou la suppression pure et simple du verbe est autorisée. Il faut toutefois l'éviter quand celle-ci peut entraîner une ambiguïté, en particulier dans le cas de relations multiples entre deux entités. VILLES DEPARTEMENTS n° ville, nom ville 1,1 0,n CIF code département nom département VILLES Risque d’ambiguïté par 2 relations de type CIF. Solution : maintien des noms des relations. n° ville, nom ville DEPARTEMENTS 1,1 0,n situer 0,1 code département nom département 1,1 êtresituer chef-lieu 1 on peut penser que les cardinalités les plus courantes sont les couples, 0,1 0,n 1,1 et 1,n. Sur le terrain, la cardinalité 1,n présente peu d'intérêt pratique. Plutôt que d'ergoter sur le choix de 0,n ou de 1,n, retenez directement 0,n beaucoup plus réaliste. Année 2010-2011 M534 – TP4 – M.C.D. 4.2 7/12 l'identifiant relatif quand une entité dépend obligatoirement d'une autre entité (cardinalité 1,1), on peut envisager pour la première, l'emploi d'un identifiant relatif, formé de l'identifiant de l'autre entité complété d'une propriété spécifique (numéro d'ordre par exemple). Cette solution est souvent à l’origine d’une gestion contraignante des identifiants. PRODUITS FINIS référence produit fini COMPOSANTS 0,n 1,1 COMPORTER référence produit fini + numéro composant nom département le numéro de composant peut être un nombre de 1 à n. Dans ce cas de figure, l'identifiant du composant à l'avantage d'être très significatif de sa destination. mais, avec cet exemple, on perçoit les limites de ce dispositif : un composant ne pourra entrer dans la fabrication que d'un seul produit fini. 5. Relations réflexives sur une même entité Ces relations décrivent des liens concernant les occurrences d'une même entité. Faciles à concevoir et à traduire du point de vue logiciel, elles sont fréquentes. les cardinalités des relations réflexives sont établies en suivant les règles générales il est souvent nécessaire de préciser le sens de la relation par des libellés sur les branches. Exemples : PERSONNE une personne peut être parent d'un nombre indéfini de personnes parent 0,n parenté une personne peut être enfant de deux personnes au maximum. Le minimum 0 autorise l'absence dans l'entité des parents d'une personne de l'entité. enfant 0,2 PRODUIT assortiment 0,n comprendre unité 0,n nombre exemplaires Les produits correspondent soit à des produits à l'unité, soit à des assortiments. Les assortiments font partie des produits commercialisables. La relation décrit la composition des assortiments. Même principe pour les suremballages (pack d’eau minérale). SOCIETE société-mère 0,n participer taux filiale 0,n Un dispositif remarquable pour mémoriser des participations complexes. Année 2010-2011 M534 – TP4 – M.C.D. 8/12 6. Types et sous-types les sous-types permettent de respecter le principe d’unité évoqué précédemment : un individu décrit dans une seule entité (tiers = client ou fournisseur). toutefois, on rappelle que par règle, chaque propriété a une signification pour chacune des occurrences de l’entité. Or, les caractéristiques des individus réunis dans l’entité peuvent être très différentes. la représentation TYPE / SOUS-TYPES décompose l’entité en une entité principale et des « modules » spécialisés. Exemple : Dans une société d’assurance, les assurés sont soit des particuliers, soit des entreprises. S’ils présentent des caractéristiques communes, d’autres sont spécifiques. ASSURES PARTICULIERS n° assuré particulier, nom particulier, adresse particulier, code postal particulier ville particulier profession, classe d’âge ASSURES ENTREPRISES n° assuré entreprise, nom entreprise, adresse entreprise code postal entreprise ville entreprise N° SIREN, forme juridique SOLUTION TYPES / SOUS-TYPES : Les propriétés communes sont décrites dans le type (dont l’identifiant). Les propriétés spécifiques sont énoncées dans les sous-types. Le soustype ne comporte pas d’identifiant. ASSURES n° assuré nom assuré adresse assuré code postal assuré FORME INITIALE : 2 entités en raison de plusieurs propriétés spécifiques. TYPE Il est possible de préciser dans la contrainte (forme triangle) si l’occurrence doit participer exclusivement à un soustype ou peut participer à tous les soustypes. profession, classe d’âge SOUS-TYPES N° SIREN, forme juridique exemples d’application : o dans un magasin d’électroménager, les « produits blancs » sont les réfrigérateurs, les congélateurs, les machines à laver, les sèche-linge, les lave-vaisselle. Ils comportent tous un identifiant, un type, une marque, une puissance électrique, une catégorie d’énergie. Mais les réfrigérateurs et les congélateurs ont un volume en litres, les réfrigérateurs deux portes ont 2 volumes, les machines à laver une capacité en kilos et une vitesse d’essorage, les lave-vaisselle un nombre de couverts… o dans une université, une personne peut être : un étudiant inscrit dans un ou plusieurs diplômes un enseignant assurant des cours dans des matières un membre du personnel administratif certains membres du personnel administratif peuvent suivre un diplôme à des fins de e formation professionnelle ou donner des enseignements. Certains étudiants (3 cycle, doctorants) peuvent assurer des cours. Année 2010-2011 M534 – TP4 – M.C.D. 9/12 7. Mise en oeuvre du modèle conceptuel de données 7.1 mise en évidence des entités et des relations sur le graphe des DF les entités forment les « rameaux terminaux » des arborescences du graphe des DF. nom client n° client adresse client référence article quantité commandée CIF désignation taux de remise unité livraison n° commande prix unitaire H.T. RELATION 0,N-0,N avec propriétés mode livraison date commande mode règlement les dépendances : o directes entre identifiants ; elles correspondent à des CIF (cardinalités 1,1 sur une des branches) o multiples entre identifiants ; il s’agit de relations porteuses de propriétés. 7.2 établissement du MCD et compléments les entités isolées sur le graphe précédent sont créées et nommées les propriétés sont reportées. les identifiants sont soulignés. les relations porteuses de propriétés et les relations CIF sont reportées. des relations supplémentaires sont créées pour respecter les règles de gestion quand cela est nécessaire. C’est le cas de relations 0-N 0-N sans propriété qui ne sont pas portées dans le graphe des DF. les cardinalités sont traitées immédiatement après chaque relation créée. 7.3 vérification formelle du modèle Les phases de validation sont définies à différentes étapes de la construction du système. Hormis le contrôle de forme : oubli d'une cardinalité, entité orpheline (sans relation), la première phase consiste à vérifier que : 1. toute entité a un identifiant fiable et souligné 2. toutes les propriétés de l'entité sont en dépendance fonctionnelle par rapport à l'identifiant 3. les propriétés sont uniques et ne peuvent présenter qu'une valeur possible pour chaque occurrence d'entité ou de relation. 4. toutes les relations sont correctement identifiées : l'association des identifiants des entités reliées forme un identifiant suffisant pour toutes les occurrences de la relation. Année 2010-2011 M534 – TP4 – M.C.D. 10/12 8. OPTIMISATION DU MCD cette étape d’optimisation correspond au niveau organisationnel souvent ignoré en pratique (MOD Modèle organisationnel de données). elle rassemble des activités qui corrigent certains excès entraînés par les règles d'abstraction du niveau conceptuel. afin de conserver entier l’intérêt du niveau conceptuel et par souci d’une démarche systématique, il n’est pas recommandé de les anticiper dans le MCD. 8.1 la simplification des relations complexes Les relations intéressant plus de deux entités posent des difficultés de mise en oeuvre. Dans l’exemple suivant, toute création d’une nouvelle occurrence de la relation livrer suppose que soient connues simultanément les occurrences correspondantes de chaque entité reliée. On remarquera en outre qu’il est impossible de traduire des cardinalités 2 pertinentes. Enfin l’entité date présentée ici a peu de signification pratique . mcd initial PRODUIT code produit, désignation produit DATE 0,n 0,n date livrer quantité livrée DEPOT numéro dépôt, nom dépôt 0,n 0,n CAMION code camion, tonnage, marque camion La création d’une entité technique livraison apporte une simplification instantanée et accroît la précision des relations. Dans la majorité des cas, la simplification d’une relation complexe passe par la création d’une entité en remplacement. mcd simplifié PRODUIT code produit, désignation produit comporter quantité livrée 0,n 1,n LIVRAISON numéro livraison, date livraison 1,1 1 ,1 0,n DEPOT numéro dépôt, nom dépôt 8.2 0,n CAMION code camion, tonnage, marque camion la réintégration de certaines données calculées les données calculées ont été éliminées de l’élaboration du modèle conceptuel, au motif qu’elles sont reconstituables à partir des propriétés, et sans doute dans le but de simplifier l’élaboration du modèle. en réalité, cette reconstitution est possible seulement si les propriétés sont conservées dans le système d’information ; plus exactement aussi longtemps que les occurrences d’entités ou de relations qui les portent, restent mémorisées selon leur durée de vie. Cette caractéristique complète la description finale des composantes 3 du MCD . 2 excepté quand l'entité est créée pour la gestion d'un calendrier ou d'un planning les entités ou relations en fin de vie ne sont pas supprimées purement et simplement : dans une table, les données inutilisées peuvent être masquées ou copiées dans une table d’archivage. La suppression au sens strict doit rester exceptionnelle . 3 Année 2010-2011 M534 – TP4 – M.C.D. 11/12 le pointage de chaque donnée calculée du dictionnaire rapportée aux propriétés dont elle dépend permet de sélectionner celles dont la reconstitution est rendue impossible à terme. La solution réside dans la réintégration de la donnée calculée dans la relation ou dans l’entité la mieux adaptée. exemple de prise en compte du temps : Schéma initial SECTEURS code secteur libellé secteur… 0,n 1,1 VENDEURS code vendeur identité vendeur… 0,n 1,1 COMMANDES numéro commande date commande… Schéma Schémacorrigé corrigé 1,1 SECTEURS code secteur libellé secteur… 0,n VENDEURS code vendeur identité vendeur… 0,n Le second schéma, a priori redondant, corrige ce défaut. 0,n 1,1 1,1 Année 2010-2011 Dans le schéma initial, la mutation d’un vendeur à un autre secteur modifie les réalisations de son secteur d’origine et celles du secteur d’arrivée : ses commandes le suivent. COMMANDES numéro commande date commande… M534 – TP4 – M.C.D. 12/12 ANNEXE Le cycle d’abstraction Dans l’histoire de Merise, plusieurs concepts ont suscité des réactions étonnées ou mitigées… Celui du cycle d’abstraction en a fait partie. Pourtant, avec le recul, le principe est bien basique, même s’il n’est pas toujours simple de s’y conformer. Deux idées à l’origine : 1) la définition et la mise en œuvre du projet sont indissociables de l’existant, lequel est une référence en matière d’objectifs et de besoins à satisfaire 2) dans l’étude de l’existant, il faut mettre en évidence les finalités en faisant « abstraction » des choix matériels et d’organisation qui ont été faits auparavant la courbe du soleil niveaux d'analyse besoins nouveaux conceptuel : finalités organisationnel : méthodes physique : moyens, personnes présent observé futur projeté Trois niveaux d’analyse, surtout pour le projet, avec des modèles associés, autant pour les traitements que pour les données : modèle conceptuel de données, modèle logique de données, modèle physique de données, modèle conceptuel de traitement, modèle organisationnel de traitement, modèle opérationnel des traitements. D’où ce schéma simplificateur de la courbe du soleil illustrant la démarche d’analyse. Intéressants au plan intellectuel, ces modèles ne sont pas toujours performants, en raison du temps nécessaire à les constituer ; les praticiens ont fait le tri ! En conservant les modèles de données, convaincants et en rejetant le plus souvent ceux des traitements. Année 2010-2011