La méthode MERISE (Principes)
Création : en 1978-79 par Peter Chen et Hubert Tardieu à Aix en Provence Signifie : MEthode pour Rassembler les Idées Sans Effort ou encore vient du merisier qui est un porte-greffe !
But : Conception de Système d'Information (SI) par la modélisation Pour projets de toutes tailles
La méthode MERISE s'appuie sur 3 points :
Le cycle de vie (très variable selon les projets)
Gestation et Conception Réalisation et Exploitation
Maintenance (évolution, adaptation, mort)
Domaine des données : la mémorisation de l'information
Domaine des traitements : les processus de traitement de l'information
Domaine de Communication | Domaine des Données | Domaine des traitements | |||||
1. Modèle Conceptuel de Communication (MCC) | 3. Modèle Conceptuel des Données (MCD) | 2. Modèle Conceptuel des Traitements (MCT) Opération, Règle de gestion, Evénements, Résultats, Synchronisation des opérations Définition du Quoi, Que faire Invariant par rapport à la géolocalisation et par rapport à l'organisation, la répartition des traitements entre l'homme et les ordinateurs. | |||||
Intervenant, Domaine, Message Définition du Pourquoi | Individu, Association, Propriété Définition des limites, connaissance du domaine et/ou du vocabulaire du projet Invariant par rapport à la géolocalisation et par rapport au logiciel qui sera utilisé | ||||||
6. Modèle Organisationnel de Communication (MOC) | 5. Modèle Organisationnel des Données (MOD) | 4. Modèle Organisationnel des Traitements (MOT) | |||||
Extrait du MCD pour chaque poste de travail | Phase, Unité Géographique de Traitement (UGF), Procédure, Poste de travail, Tâche Définition du Qui fait Quoi sur Quel Poste de travail, | ||||||
9. Modèle Logique de Communication (MLC) | 7. Modèle Logique des Données (MLD) | 8. Modèle Logique des Traitements (MLT) Transaction, Grille d'écran, Maquette d'état, Module de traitement, Programme, Consigne | |||||
Entité, Relation, Champ, Clé primaire, Clé étrangère, Clé candidate, Index | |||||||
Dérivation des MOD en vue de respecter les règles logiques d'une base de données Dépendant de la géolocalisation Invariant par rapport au logiciel qui sera utilisé | Avec quelle allure générale Dépendant de la géolocalisation Invariant par rapport aux machines utilisées | ||||||
11. Modèle Physique de Communication (MPC) | 9. Modèle Physique des Données (MPD) | 10. Modèle Physique des Traitements (MPT) Transaction, Grille, Maquette précisément Comment et avec quels outils ou logiciels Dépendant des matériels et des logiciels utilisés | |||||
Fichier, table, Index Dérivation du MLD, Sécurité Implantation, Dimensionnement, Dépendant du logiciel utilisé | |||||||
Etape | Objet de l'étape, attendus |
Schéma directeur | Choix d'un scénario général de développement du SI selon des considérations historiques, politiques, organisationnelles ou techniques. Fait apparaître des domaines |
Etude préalable | Pour un domaine, étude suffisante pour fournir tous éléments utiles à la prise de décision du développement ou non de ce domaine ; Peut faire apparaître un ou plusieurs projets décidés. |
Etude détaillée | Pour un projet, étude détaillée avec obtention de l'aval des utilisateurs sur les règles de gestion et les procédures définies Implique la conception détaillée des modèles de données et des modèles de traitements |
Etude technique | Pour un projet, définition d'une architecture technique et de modalités de réalisation, ceci avec l'aval des utilisateurs. |
Production du logiciel | Pour un projet, système en ordre de marche et recetté sur jeu d'essai dans un contexte simplifié mais représentatif du futur réel |
Mise en oeuvre | Système implanté dans son environnement réel et recetté définitivement. Le contexte peut être multi sites. |
Groupe de travail | Rôle |
Comité de pilotage | Veiller à la participation de toutes les directions de l'entreprise, Définir et faire comprendre à tous, les objectifs du SD Valider les actions du Comité de projet Prendre les décisions de choix d'un scénario |
Comité de projet | Planifier et faire respecter le plan global du projet Assurer la cohérence des diverses actions des groupes de travail |
Réaliser les aides à décision du groupe de pilotage Tenir à jour et à disposition la documentation du projet Présenter, animer, promouvoir le système projeté | |
Groupes d'utilisateurs | Identifier les forces, les faiblesses, les limites su système existant Apporter leur connaissance du terrain, des besoins Comprendre la formalisation du système projeté Veiller au réalisme du système projeté par rapport à la connaissance de l'entreprise et de son environnement |
Experts | Appelés si besoin par le Comité de projet |
Inventaire des informations et données
Délimitation du système étudié
Le modèle Conceptuel de Traitement décrit les règles et les contraintes générales du SI.
Le Modèle Conceptuel de Données décrit l'organisation des donnéesCohérence du MCD / MCC et au MCT Validation par l'utilisateur
Le Modèle Organisationnel de Traitement (MOT)
Le Modèle Organisationnel de Données (MOD)
Le Modèle Organisationnel de Communication (MOC)
Cohérence entre MOD et MOT
Validation par l'utilisateur
Le Modèle Logique des Traitements (MLT)
Le Modèle Logique de Communication (MLC)
Cohérence Données/Traitements Validation par l'utilisateur
Le Modèle Physique de Données (MPD)
Le Modèle Physique de Traitement (MPT)
Le Modèle Physique de Communication (MCC)
Cohérence entre MPT et MPD
LE NIVEAU CONCEPTUEL
N'existait pas dans les premières versions de MERISE
A été introduit en rapport avec les Use Case d'UML, sans doute.
Approche systémique. Une entreprise est un système. L'entreprise échange avec l'extérieur, avec d'autres systèmes. Tout système interne ou externe est appelé INTERVENANT.
Tout système se décompose en sous systèmes fonctionnels ou INTERVENANTs.
Pour une entreprise de livraison on pourra distinguer les intervenants :
LIVRER, FACTURER, ENCAISSER
Un PARTENAIRE est un intervenant extérieur à l'entreprise.
Exemples de partenaires FONCTIONNELs: CLIENT qui paye, FOURNISSEUR qui approvisionne, …
Un partenaire est PHYSIQUE s'il est vu fonctionnellement sous plusieurs facettes. Exemple : EDF est à la fois un fournisseur et un client pour l'entreprise qui construit des transformateurs électriques.
Un DOMAINE est un système ou sous système qui a une mémoire et un SI.
Un domaine est fonctionnel, il joue un rôle.
Un domaine peut se décomposer en sous domaines.
Exemple : une entreprise (qui est un domaine) se compose des domaines Vendre, Produire, Gérer le personnel ; ses partenaires sont Client, Etat, …
Le domaine Produire peut se décomposer en sous domaines Maintenir (la production), Approvisionner (les usines), …
Les domaines (ou sous domaines) sont identifiés soit :
Comme les fonctions de base répondant à la question POURQUOI ?
Par énumération de toutes les fonctions connues et réunion de Brain storming avec les groupes d'utilisateurs. La question posée aux participants étant toujours : Pourquoi
Une fois les intervenants (ou domaines) définis (en accord avec les utilisateurs), il faut déterminer les échanges entre ceux-ci et plus particulièrement les MESSAGEs. On distingue :
Le message enclencheur ; qui attend une réponse ou une réaction du récepteur
Le message informant ; qui informe le récepteur sans attendre de réponse ou de réaction de ce dernier.
Entre sous domaines d'un même domaine, les messages informant sont sans objet puisque la mémoire du domaine est commune aux sous domaines.
L'INFORMATION est la donnée élémentaire du SI. Par exemple, le nom d'une personne, la référence d'un produit, le poids de ce produit, …
Dupont, Durand, Duchmol … sont des occurrences de l'information Nom d'une personne.
Il faut souvent faire le ménage parmi les informations
Supprimer les informations pouvant avoir plusieurs sens différents (polysèmes)
Supprimer les synonymes ; un nom d'information doit être unique pour éviter toute ambiguité. Repérer les informations composées ; comme une adresse postale par exemple. Souvent il faudra distinguer ici, le numéro, la rue, le code postal et la ville.
Repérer les règles qui lient entre elles des informations, qui permettent de déduire une ou plusieurs information par la connaissance d'autres information. On parle de REGLE DE CALCUL entre informations. Il faut éviter absolument de mémoriser une information qui peut être déduite d'une autre par une règle de calcul.
Le type DOMAINE est représenté par un grand ovale (ou patatoïde) regroupant le cas échéant des sous domaines (plus petits ovales). Dans chaque ovale on indique le nom du domaine.
Le type MESSAGE est représenté par une flèche entre deux domaines et/ou intervenants avec le nom du message écrit au dessus de la flèche
Le MCT se déduit du MCC dans la mesure où il représente un zoom sur le MCC.
Le MCT consiste à "ouvrir" chaque domaine ou sous domaine identifié par le MCC de façon à définir les OPERATIONs faites dans ce domaine.
Le MCT se construit surtout par la réponse à la question QUOI, QUE
Exemple : dans le MCC précédent, l'intervenant Client envoie une Commande au domaine Vendre.
QUE fait le domaine Vendre de cette Commande ?
Il traite la commande ! Donc "Traiter la commande" est une OPERATION interne au domaine Vendre.
L'opération peut être déclenchée soit par un seul message déclencheur, soit par une combinaison de messages déclencheurs ; dans ce cas une SYNCHRONISATION a pour objet d'indiquer les règles logiques entre ces messages qui déterminent le déclenchement de l'opération.
Le type OPERATION est représenté par un rectangle séparé en 2 parties par un trait horizontal. En partie supérieure on note le nom de l'opération. En partie inférieure, on redécoupe selon toutes les CONDITIONs envisageables pour cette opération. Chaque condition est émettrice d'un ou plusieurs messages à destinations d'autres opérations internes ou à destination d'autres domaines.
Le type SYNCHONISATION est représentée par un trapèze ou un triangle au dessus du rectangle
opération. Dans ce trapèze ou triangle, on indique le nom ou l'expression logique de synchronisation, au dessus les flèches des divers messages déclencheurs.
Pour chaque opération on peut créer une fiche opération utile :
pour le dialogue avec les groupes d'utilisateurs
pour bien spécifier l'opération Cette fiche comporte :
Le nom du processus
Le nom de l'opération
Le schéma type MCT de l'opération
Un paragraphe décrivant les évènements déclencheurs
Un paragraphe décrivant la règle logique de synchronisation
Un paragraphe décrivant les règles d'émission (cas possibles et donc résultats possibles)
Modéliser les données utiles et à mémoriser pour le SI projeter ; Déterminer leur structuration, Décrire les liens entre données.
Le modèle utilise :
le type INDIVIDU pour regrouper des données appelées PROPRIETEs formant un tout
cohérent ; parfois le type INDIVIDU est appelé (abusivement) ENTITE ce type est représenté par une boite rectangulaire dans laquelle on écrit :
le titre ou nom de l'individu (en gras ou au dessus d'un trait horizontal) la liste des propriétés les propriétés identifiant de façon unique l'individu, sont soulignées.
le type ASSOCIATION pour décrire les liens entre individus ; parfois le type
ASSOCIATION est appelé (abusivement) RELATION
ce type est représenté par un ovale dans lequel on écrit :
le titre ou nom de l'association (en gras ou au dessus d'un trait horizontal) la liste des propriétés éventuelles.
Par ailleurs des traits reliant boites rectangulaires et ovales matérialisent les liens entre individus et associations ; sur ces traits, on fait figurer un couple de nombres de la forme 0,1 0,n 1,n 2,5 …
Ces nombres s'appellent CARDINALITEs ; ils sont très important pour caractériser l'association.
Si une association concerne 2 individus seulement, elle est dite binaire. Une association est dite ternaire dès qu'elle concerne 3 individus ou plus.
Une information figure dans un seul individu ou une seule association du MCD (recherche de non redondance)
Chaque propriété peut avoir une seule valeur possible pour une occurrence d'individu. On dit que la propriété est monovaluée. Pas de liste de valeurs.
Normalisation des individus :
L'individu a un intérêt pour le projet ou l'organisation
L'individu est bien identifiable et distinct des autres individus (à ne pas confondre avec les occurrences d'un individu) L'individu a une existence propre
L'individu a un ensemble de propriétés Chaque propriété est monovaluée.
Les occurrences d'un individu doivent pouvoir être citées.
Normalisation des associations :
Les propriétés des associations, si elles existent, doivent dépendre de tous les identifiants des entités associées.
Une association ne peut avoir qu'une seule occurrence entre mêmes occurrences de ses individus.
Cette notion est très importante pour caractériser finement une Association
Voir théorie des ensembles (bijection, surjection, injection)
Exemple : Individus Personne et Adresse, Association Personne HABITE Adresse
2 Personnes différentes (ou plus) peuvent habiter à la même Adresse
1 Personne habite ou non (SDF) à une Adresse
1 Adresse peut être inoccupée ou bien être occupée par 1 ou plusieurs personnes
Personne 0,1 habite 0,n Adresse
/
/ Une adresse est habitée par 0 à n personnes
Une personne habite à 0 ou 1 seule Adresse
Revoir théorie des ensembles !
On distingue :
Le OU Inclusif (V)
Une personne d'un supermarché peut être à la fois caissière et cliente
L'exclusion (X)
Un lecteur ne lit jamais 2 ouvrages à la fois ; parmi tous les ouvrages de la bibliothèque, il peut lire tel ou tel livre mais jamais les 2 en même temps.
La partition (+)
Une pièce comptable peut être soit facture soit avoir mais rien d'autre
L'inclusion (I)
Toute personne remboursant un prêt a déposé au préalable une demande de prêt
Texte
Permet d'ajouter une explication textuelle pour exprimer une contrainte qui ne peut être représentée par le formalisme standard.
Un club de parapente loue différents modèles de parapente à des pilotes.
Ces pilotes effectuent des vols ; pour chacun de ces vols le club souhaite connaître le pilote, le modèle de parapente utilisé, le site de décollage, le site d'atterrissage, la date du vol, sa durée, la distance parcourue.
Pour un parapente sont connues sa date de mise en service et sa couleur principale.
Pour un pilote le club souhaite connaître son nom, prénom, date de naissance, niveau, poids, date de brevet et surtout son numéro de licence.
La location d'un parapente par un pilote s'effectue à la journée ; le club souhaite enregistrer le nombre d'utilisations du parapente et la date d'utilisation par le pilote loueur.
Un modèle de parapente est identifié par un nom ; on lui associe un niveau, une surface, un poids mini et un poids maxi.
Un site d'atterrissage a un nom unique, une situation et une approche visuelle.
Un site de décollage a un nom unique, un niveau requis du pilote, une orientation.
Que dit ce modèle ?
Individus :
Parapente, Modèle de parapente, Pilote, Site de décollage, Site d'atterrissage La propriété soulignée et en gras est un identifiant de l'individu.
Associations :
Association binaire Utilise
Un pilote utilise de 0 à n parapentes ; un parapente est utilisé par 0 ou n pilotes.
Pour une date d'utilisation d'un parapente par un pilote on veut enregistrer le nombre de vols effectués.
Association binaire Est de Type
Un parapente est d'un modèle est d'un seul ; Un modèle de parapente n'est pas disponible (0) ou existe en n exemplaires de parapentes.
Association ternaire Vol
Un Vol concerne un Pilote qui utilise un Modèle de parapente, qui décolle du Site de décollage et se pose sur le Site d'atterrissage. On veut connaître et enregistrer la date d'un vol, sa durée et la distance parcourue.
Les informations des messages sont soit :
Non utilisées dans le MCD,
Identiques à celles du MCD,
Equivalentes à celles du MCD,
Reliées à celles du MCD par une règle de calcul mais sans présence de doublons.
Il faut construire des vues ou modèles en lecture/écriture de chaque opération, c'est à dire 'faire tourner' le MCD sous l'angle de l'opération analysée. On peut alors :
S'assurer que les informations nécessaires à l'opération sont bien présentes dans le MCD ou dans les messages du MCT,
S'assurer que tout individu, association, propriété du MCD existe dans une vue en création et/ou consultation.
Cette validation est essentielle avant toute poursuite du projet. Elle est longue et délicate. La sous estimer est une grave erreur qui risque de coûter très cher en corrections ultérieures.
Autant les MCC et MCT sont assez faciles à comprendre par l'utilisateur, autant le MCD peut lui sembler ésotérique. Néanmoins toujours lui poser la question : n'ai-je rien oublié ?
Il faut souvent créer des vues du MCD, déplier les individus et les relations en occurrences sur des exemples parlants, écrire du texte d'explication, prendre le temps d'expliquer, s'assurer que l'utilisateur a bien compris.
Rappel des modèles (à minima) utilisés pour valider : MCC, MCT, MCD
LE NIVEAU LOGIQUE
Cette transformation est nécessaire car les structures de données physiques (Fichiers ou Bases de données) impliquent des contraintes logiques telles que :
identifiant doit être unique (déjà vérifié par MCD) identifiant doit être concis (souvent un numéro)
les relations supportées sont uniquement de type 0-n ou 1-n et entre 2 entités seulement l'entité coté 0/1 est appelée entité 1 de la relation l'entité coté n est appelée entité n de la relation
la matérialisation de la relation entre 2 entités s'effectue par la présence d'une clé étrangère dans l'entité n de la relation ; cette clé étrangère est identique à la clé primaire de l'entité 0/1
Exemple : Modèle logique du Parapente
Le modèle utilise :
le type ENTITE pour regrouper des données appelées CHAMPs formant un tout cohérent ce type est représenté par une boite rectangulaire dans laquelle on écrit :
le nom de l'entité
la liste des champs constituant l'identifiant
cet identifiant est souvent appelé clé primaire
le type RELATION pour décrire les liens entre entités ce type est représenté par un trait entre les 2 entités (et 2 seulement).
Une flèche correspond au coté 0 ou 1 de la relation (ou de l'association dont elle est issue) De l'autre coté on peut indiquer N de façon générale ou bien la cardinalité maximum.
Tout individu (du MCD) devient une entité (du MLD)
Une entité peut parfois avoir plusieurs identifiants valables ; dans ce cas prendre comme clé primaire, l'identifiant le plus concis. Le ou les autres identifiants sont souvent appelés clés candidates. Lorsque la clé primaire est un numéro d'ordre généré automatiquement, la connaissance de la clé candidate peut être utile pour éviter les doublons.
Lorsqu'un champ ou un groupe de champs est utilisé fréquemment dans une recherche, on peut définir ce champ ou ce groupe de champs comme un index (en fait, un accélérateur de recherche, plus souvent défini dans le MPD).
Chaque entité doit disposer d'un identifiant qui la caractérise de manière unique. Un identifiant peut être composé de la concaténation de plusieurs propriétés.
Les propriétés d'une entité ne doivent dépendre que de l'identifiant de l'entité et non d'une partie de cet identifiant.
Les propriétés d'une entité doivent dépendre de l'identifiant de l'entité de manière directe (sans référence à une autre propriété de l'entité.
Pour les identifiants composés de plusieurs propriétés, ces dernières ne doivent pas être dépendantes d'une autre propriété de l'entité.
Une association binaire du MCD/MOD sans propriétés dont une seule cardinalité est 0 ou 1 devient une relation du MLD.
Une association du MCD/MOD porteuse de propriétés devient une entité du MLD.
Une association qui a des cardinalités x,n x,n (ou x vaut 0 ou 1) devient une entité.
Une association ternaire devient une entité.
Cette entité (correspondant à une association) est reliée aux entités (correspondants à des individus) par des relations. Toutes les relations sont à priori de type 1-N mais une relation 1-1 reste possible.
Le MLD permet une certaine forme d'héritage comme dans les modèles objets Le type SOUS_TYPE d'une entité est prévu pour cela ce Sous Type est décrit par une boite aux coins arrondis cette boite arrondie est reliée à la boite entité par une flèche en triangle.
Par exemple dans une université, on trouve des étudiants, des enseignants et des gestionnaires
Tous trois sont des PERSONNEs
On décrit donc l'entité PERSONNE puis les sous types ETUDIANT, ENSEIGNANT, GESTIONNAIRE
Dans l'entité PERSONNE on définit un champ booléen Etudiant, un autre Enseignant et un troisième Gestionnaire. Si une PERSONNE est à la fois ETUDIANT et ENSEIGNANT on coche les champ Etidiant et Enseignant à 1 ; le champ Gestionnaire sera à 0. On parle ici de sous types INCLUSIFs.
Une pièce comptable peut être soit une facture soit un avoir.
On décrit donc une entité PIECE_COMPTABLE puis 2 sous types FACTURE et AVOIR. Dans l'entité PIECE_COMPTABLE on définit un champ FouA qui peut prendre la valeur F si la pièce comptable est une facture ou la valeur A si la pièce comptable est un avoir.
On parle ici de sous types EXCLUSIFs
Corrigé exercices MERISE
On veut automatiser le fonctionnement d'une bibliothèque. La bibliothèque est organisée de la façon suivante :
Un service s'occupe de l'achat des exemplaires d'ouvrage soit pour renouvellement d'exemplaires usagés, soit pour acquisition de nouveaux exemplaires ; dans ce dernier cas, ce service enregistre les références communes à plusieurs exemplaires, soit l'auteur, le titre, la valeur de remplacement, le résumé ainsi que quelques mots clés.
Les exemplaires sont repérés par un code barre (n° séquentiel unique) collé au dos de l'exemplaire). Tout exemplaire correspond à un ouvrage de référence. On veut mémoriser la date d'acquisition de l'exemplaire et sa durée de vie estimée.
Un service s'occupe de l'inscription des emprunteurs. Les emprunteurs sont identifiés par une carte comprenant un code barre (n° séquentiel unique). Pour chaque emprunteur on mémorise ses nom, prénom, adresse, email.
Un service s'occupe de l'enregistrement des prêts d'exemplaires. Les prêts sont mémorisés afin de savoir à tout moment, quels sont les exemplaires sortis. Pour chaque prêt ou emprunt on mémorise donc le code exemplaire, le code emprunteur et la date de retour au plus tard de cet exemplaire.
Cette date est calculée automatiquement par date d'emprunt + 3 semaines. Un emprunteur peut emprunter au maximum 3 exemplaires.
Un service s'occupe du retour des exemplaires et de leur placement en rayons.
Lorsque l'exemplaire est retourné en bon état, on supprime l'enregistrement de cet emprunt. Lorsque la date de retour échoit, on relance l'emprunteur par email de préférence, par courrier si l'adresse email est inconnue.
Lorsque l'exemplaire retourné est réputé perdu, on envoie un courrier à l'emprunteur exigeant le paiement de la valeur de remplacement.
L'emprunteur entre librement dans la bibliothèque, circule dans les rayons, consulte le catalogue des exemplaires s'il le souhaite. Il prend les exemplaires d'ouvrage disponibles puis passe au service d'enregistrement des prêts.
Le service achats est en relation commerciale avec l'éditeur.
1.Faire le MCC
2.Faire le MCT pour Inscription, Prêt et Retour
3.Faire le MCD
4.Faire le MLD
5.Décrire la requête enregistrant une inscription
6.Décrire la requête enregistrant un emprunt
7.Décrire la requête donnant la liste des emprunts en retard
8.Décrire la requête donnant les ouvrages pour un auteur donné et un mot clé donné
Domaine BIBLIOTHEQUE rôle : prêter des exemplaires d'ouvrages aux partenaires
Partenaire EMPRUNTEUR celui auquel la bibliothèque prête des exemplaires
Partenaire EDITEUR celui auquel la bibliothèque achète des exemplaires
Sous domaine PRET rôle : vérifier carte emprunteur, limiter le nombre
d'exemplaires empruntés, retourner les trop empruntés, enregistrer les emprunts d'exemplaires
Sous domaine INSCRIPTION rôle : enregistrer les nouveaux emprunteurs, leur fournir
une carte d'accès à la bibliothèque et les modalités d'utilisation des services de la bibliothèque, renouveler une carte perdue.
Sous domaine RETOUR rôle : contrôler l'état des exemplaires, enregistrer le retour, envoyer relance si délai dépassé, envoyer demande remboursement si exemplaire abimé, faire demande de renouvellement d'exemplaire abimé ou usagé, ranger l'exemplaire en bon état sur le rayon adéquat.
Sous domaine ACHAT rôle : renouveler les exemplaires abimés ou usagés,
acquérir de nouveaux exemplaires, identifier de façon unique tout exemplaire, enregistrer les références de l'ouvrage, remettre les exemplaires au service RETOUR pour enregistrement des exemplaires et rangement en rayon
Messages enclencheurs Sortie d'exemplaires par l'EMPRUNTEUR,
Retour d'exemplaire par l'EMPRUNTEUR
Dépassement du délai de restitution
Commande d'exemplaires à un EDITEUR
Réception d'exemplaires d'un EDITEUR
Enchainement opérations du sous domaine INSCRIPTION
Enchainement des opérations du sous domaine PRET
Les individus
Le partenaire de la bibliothèque qui vient pour y emprunter des exemplaires d'ouvrages Il est identifié par un code barre, mais aussi par ses nom, prénom, adresse complète. Son téléphone et son email sont demandés mais non obligatoires.
C'est le livre ou la revue qui est placée en rayons à disposition de l'emprunteur. Il peut y avoir plusieurs exemplaire d'un même livre ou d'une même revue … L'exemplaire est identifié par un code barre.
La date d'acquisition et la durée de vie de l'exemplaire sont mémorisées.
Ouvrage (de référence)
Plusieurs exemplaires d'un même ouvrage et ce dans des versions différentes (livre normal, livre en braille, cassette audio, … sont disponibles pour un même ouvrage de base. L'ouvrage est identifié par l'identifiant libraire ISBN
Espace de rangement des exemplaires au prêt organisé en Salle, Rayonnage, Etagère, Section. Le rayon est identifié à priori par cette information composée.
Les emprunteurs ont accès, en ligne, au catalogue des ouvrages de la bibliothèque et peuvent savoir si un exemplaire est encore disponible ou non. Afin de rendre ces recherches plus pertinentes, une recherche par mot clé est possible ; les mots clé de type Auteur et Titre de l'ouvrage existent toujours ; par ailleurs, le bibliothécaire peut créer d'autres mots clés comme la section (de rangement), le domaine concerné, le type de média (livre, braille, audio, …), etc …
Le mot_clé est identifié par son Libellé et son Type ; il est tout à fait possible que 2 mots clés aient le même libellé s'ils ont des types différents.
Type (de mot clé)
Le type de mot clé est mémorisé à part, afin de permettre l'extraction simple d'une liste des types de mot clés existants ; il s'agit déjà d'une optimisation du modèle des données puisque le balayage (un peu long!) de la table des mots clés permettrait d'obtenir cette liste.
Les associations
Un exemplaire fait référence à un ouvrage et un seul. On a de 1 à N exemplaires d'un même ouvrage.
Un Exemplaire disponible au prêt est rangé sur un et un seul Rayon. S'il est emprunté il n'est plus sur aucun rayon. Un Rayon contient de 0 à N Exemplaires.
Un Exemplaire est emprunté par un Emprunteur et un seul ou bien n'est emprunté par personne. Un Emprunteur emprunte de 0 à 3 Exemplaires maxi.
Un ouvrage est référencé au minimum par son titre et son auteur, soit par 2 mots clés distincts au minimum. Mais on peut ajouter d'autres mots clés de référencement pour cet ouvrage. Un mot clé référence 0 ou N ouvrages dans l'absolu, 1 ou N ouvrages en pratique, puisque les mots clés sont créés lors de l'achat d'exemplaires d'un ouvrage.
L'individu type est une 'invention' du concepteur en vue de pouvoir proposer à la personne qui réalise le référencement, une liste guide des mots clés existants.
Un mot clé a un type et un seul. A chaque type défini correspond dans l'absolu de 0 à N mots clés. En pratique, 1 à N dans la mesure ou l'on ne crée pas de type de mot clé sans lui associer au moins un mot clé.
Entités dérivées d'individus du MCD EMPRUNTEUR dont champs :
IdEmprunteur, Nom, Prénom, Adresse_Ligne1, CodePostal, Commune, Telephone, Email EXEMPLAIRE dont champs :
IdExemplaire, DatefinDeVie, DateAcquisition
Remarque : on préfère enregistrer la date fin de vie prévue plutôt que la durée afin de faciliter les recherches d'exemplaires à remplacer.
RAYON dont champs :
Idrayon, Salle, Rayonnage, Etagère, Section OUVRAGE dont champs :
Isbn, Resume
Remarque : le champ Resume a été ajouté du fait de la maigreur de l'entité et en vue de pouvoir y inscrire un résumé de l'ouvrage, ultérieurement. Une autre possibilité consiste à supprimer l'entité OUVRAGE. Voir Optimisation.
MOT_CLE dont champs : IdMot_cle, IdType, Mot_cle TYPE dont champs :
IdType, Libelle_Type
EMPRUNTE_EXEMPLAIRE qui contient les champs : IdEmp_Exe, IdEmprunteur, IdExemplaire, Date_retour REFERENCE_OUVRAGE qui contient les champs : IdRef_Ouv, IdMot_cle, Isbn
EMPRUNTEUR à EMPRUNTE_EXEMPLAIRE
EXEMPLAIRE à EMPRUNTE_EXEMPLAIRE
RAYON à EXEMPLAIRE
OUVRAGE à EXEMPLAIRE
MOT_CLE à REFERENCE_OUVRAGE
OUVRAGE à REFERENCE_OUVRAGE
TYPE à MOT_CLE
IdEmprunteur Clé primaire de l'EMPRUNTEUR = code barre de l'emprunteur
IdExemplaire Clé primaire de l'EXEMPLAIRE = code barre de l'exemplaire
IdEmp_Exe Clé primaire séquentielle de EMPRUNTE_EXEMPLAIRE
IdRayon Clé primaire séquentielle de RAYON
IdMot_Cle Clé primaire séquentielle de MOT_CLE
IdType Clé primaire séquentielle de TYPE
IdRef_Ouv Clé primaire séquentielle de REFERENCE_OUVRAGE Isbn Clé primaire de OUVRAGE = code ISBN
Remarque : les clés primaire séquentielles seront générées automatiquement par la base de données et garantiront l'unicité et la concision. On remplace systématiquement toute clé composée comme le couple IdEmprunteur, IdExemplaire de l'entité EMPRUNTE_EXEMPLAIRE par une clé séquentielle.
Avantages : clé plus concise, la clé primaire ne dépend plus des clés étrangères IdEmprunteur ou
IdExemplaire ; si on change d'EMPRUNTEUR et/ou D'EXEMPLAIRE, la clé primaire de
EXEMPLE_EXEMPLAIRE n'est pas impactée ; ce qui signifie qu'il n'est plus nécessaire de supprimer l'occurrence de EXEMPLE_EXEMPLAIRE en cas de changement d'EMPRUNTEUR et/ou d'EXEMPLAIRE. La mise à jour physique s'en trouvera accélérée.
IdEmprunteur Clé étrangère dans EMPRUNTE_EXEMPLAIRE de la relation entre l'entité EMPRUNTEUR et l'entité EMPRUNTE_EXEMPLAIRE
IdExemplaire Clé étrangère dans EMPRUNTE_EXEMPLAIRE de la relation entre l'entité EXEMPLAIRE et l'entité EMPRUNTE_EXEMPLAIRE
IdMot_cle Clé étrangère dans REFERENCE_OUVRAGE de la relation entre l'entité MOT_CLE et l'entité REFERENCE_OUVRAGE
Isbn Clé étrangère dans REFERENCE_OUVRAGE de la relation entre l'entité
OUVRAGE et l'entité REFERENCE_OUVRAGE
IdRayon Clé étrangère dans EXEMPLAIRE de la relation avec l'entité RAYON
Isbn Clé étrangère dans EXEMPLAIRE de la relation avec l'entité OUVRAGE
Clé étrangère de MOT_CLE
IdType Clé étrangère dans MOT_CLE de la relation avec TYPE
Nom dans EMPRUNTEUR
DateFinDeVie dans EXEMPLAIRE
Libelle dans MOT_CLE
L'entité OUVRAGE ne contient que l'Identifiant Isbn ; ne pourrait-on pas supprimer cette entité ?
Si on supprime OUVRAGE, il faut relier REFERENCE_OUVRAGE à EXEMPLAIRE ; la clé étrangère de REFERENCE_OUVRAGE devient alors IdExemplaire ; l'information Isbn est déjà portée par l'entité EXEMPLAIRE.
Si en moyenne, il y a 10 exemplaires pour un ouvrage ; si en moyenne, il y a 5 mots clés par ouvrage, la solution initiale donne 10 + 1 + 5 = 16 occurrences par ouvrage.
La solution de suppression de l'entité ouvrage donne donc 10 x 5 = 50 occurrences de référence_ouvrage. Le chemin d'accès à reference_ouvrage, depuis exemplaire, est plus court, certes, mais le nombre total d'occurrences a été multiplié par 3 ! Pas sûr du tout que ce soit une bonne optimisation.
En fait, lors de la création du MCD, en suivant les conseils du bibliothécaire, nous avons fait apparaître l'individu OUVRAGE à bon escient.
Le passage par REFERENCE_OUVRAGE et MOT_CLE semble compliquer la recherche d'ouvrages sur auteur et titre par exemple.
D'où l'idée de placer les champs Auteur et Titre dans l'entité OUVRAGE.
De même on peut y placer quelques champs supplémentaires correspondant aux mots clés retenus ;
Si cette liste de mots clés est figée, immuable durant la vie de la bibliothèque, remonter ces champs dans OUVRAGE est sans conteste, une réelle optimisation.
Mais si cette liste de mots clés est susceptible d'être remaniée en fonction des besoins, la solution initiale est meilleure.
Un compromis basé sur Auteur et Titre remontés dans OUVRAGE est intéressant.
Saisir Nom, Prénom, Date de naissance du futur emprunteur
Rechercher existence d'une occurrence de EMPRUNTEUR sur ces critères (en pratique, il faudrait pouvoir s'affranchir d'éventuelles fautes de saisie comme orthographe du nom, …)
Si Emprunteur existe, lui signaler et rejeter la création
Si Emprunteur non trouvé,
Exiger Adresse_Ligne, CodePostal, Commune de résidence
Demander Téléphone, demander Email
Prendre une carte vierge avec code barre pré-imprimé ou collé
Ecrire avec stylo spécial, nom, prénom et date de naissance
Scanner le code barre de la carte comme IdEmprunteur
Valider pour Créer nouvelle occurrence de EMPRUNTEUR
Ouvrir une session d'emprunt
Scanner la carte de l'emprunteur
Lire EMPRUNTEUR avec IdEmprunteur = code scanné
Si emprunteur non trouvé, Rejet du prêt et remise des exemplaires au service Retour. Si emprunteur trouvé
Contrôler nombre exemplaires empruntés non supérieur à 3
Si nombre supérieur à 3
Demander quels exemplaires doivent être écartés
Remise des exemplaires écartés au service Retour
Initialiser compteur d'exemplaires à nombre d'exemplaires réel (1 à 3 maxi)
Pour chaque exemplaire à traiter et tant que compteur d'exemplaires > 0
Scanner le code barre de l'exemplaire et lire EXEMPLAIRE avec IdExemplaire = code scanné Si illisible, remettre au service Retour avec sticker "Illisible" Si lisible
Créer une occurrence de EMPRUNTE_EXEMPLAIRE avec :
DateRetour = Date du jour + 21 jours, IdEMp_Exe généré séquentiellement, IdEmprunteur et IdExemplaire
Décrémenter compteur d'exemplaires Fermer la session d'emprunt.
Lire les occurrences de TYPE dans un tableau dans lequel on note la correspondance entre IdType et Libelle_Type
Lire EMPRUNTE_EXEMPLAIRE tel que DateRetour < date du jour
Pour chaque occurrence trouvée
Imprimer "Date retour dépassée (" DateRetour ")"
Accéder à l'EMPRUNTEUR via clé étrangère IdEmprunteur
Imprimer Nom, Prénom, Adresse et Email de l'emprunteur
Accéder à l'EXEMPLAIRE via clé étrangère IdExemplaire
Imprimer "Exemplaire à retourner N0" IdExemplaire
Accéder à l'OUVRAGE via clé étrangère Isbn
Lire les REFERENCE_OUVRAGE de cet OUVRAGE
Pour chaque occurrence de REFERENCE_OUVRAGE
Accéder au MOT_CLE via clé étrangère IdMot_cle
Noter Mot_Cle et IdType
Retrouver signification de IdType dans le tableau créé au début ;
Imprimer Libelle_Type "=" Mot_Cle
Lire TYPE dont Libelle_Type = "AUTEUR" ;
Si non trouvé Erreur Type AUTEUR non trouvé !; Abandon requête
Si trouvé, Noter IdTypeAuteur = IdType
Lire TYPE dont Libelle_Type = "MOT CLE" ;
Si non trouvé Erreur Type AUTEUR non trouvé !; Abandon requête
Si trouvé, Noter IdTypeMotcle = IdType
Lire TYPE dont Libelle_Type = "TITRE" ;
Si non trouvé Erreur Type TITRE non trouvé !; Abandon requête Si trouvé, Noter IdTypeTitre = IdType
Lire MOT_CLE dont Mot_Cle = "auteur donné" et IdType = IdTypeAuteur
Si non trouvé Erreur Auteur non trouvé ; Abandon requête
Si trouvé, Noter IdMot_cleAuteur
Lire REFERENCE_OUVRAGE tel que IdMot_cle = IdMot_CleAuteur
Ranger dans ListeAuteur, la liste des IdRef_Ouv de chaque occurrence trouvée
Lire MOT_CLE dont Mot_Cle = "mot clé donné" et IdType = IdTypeMotcle
Si non trouvé Erreur Mot clé non trouvé ; Abandon requête
Si trouvé, Noter IdMot_cleMotcle
Lire REFERENCE_OUVRAGE tel que IdMot_cle = IdMot_CleMotcle
Ranger dans ListeMotcle, la liste des IdRef_Ouv de chaque occurrence trouvée
Faire l'intersection logique : Liste = ListeAuteur ET ListeMotcle
Pour chaque élément de Liste,
Lire REFERENCE_OUVRAGE tel que IdRef_Ouv = élément de Liste
Noter Isbn trouvé,
Rechercher occurrences MOT_CLE en relation avec REFERENCE_OUVRAGE et de IdType = IdTypeTitre
Afficher Titre
Un comité d'entreprise veut gérer un ensemble d'informations sociales concernant les enfants de ses salariés. Un membre du CE, utilisateur de tableur, a réalisé le tableau suivant :
Nom et Prénom | Adresse | Enfant 1 | Age | Enfant 2 | Age |
Dupont Martine | 2 rue des arts 75013 Paris | Cécile | 12 | Béatrice | 12 |
Duchmol Jean | 5 rue de la paix 78500 Sartrouville | Ernest | 10 | Cécile | 8 |
"" | "" | Emilie | 6 | ||
Dugland Eve | 111 rue des acacias 94000 Créteil | Pierre | 13 | Paul | 5 |
Dugland Louis | "" | "" | "" | "" | "" |
Quelles sont les faiblesses de ce tableau ?
Il est important de pouvoir créer facilement une liste des enfants ayant un age donné et de savoir quel est le salarié qui en est le père ou la mère. Faire le MCD
Quel est le meilleur identifiant pour un salarié ?
Quel est le bon identifiant pour un enfant ? En déduire le MLD
Quel serait le meilleur identifiant pour un enfant ?
Nom, prénom n'est pas un identifiant sûr (risque de fautes d'orthographe)
Le nombre d'enfants du tableau est limité, ce qui oblige à doubler de lignes dans certains cas Difficile de rechercher les enfants d'un age donné avec ce tableau puisque l'age apparaît dans plusieurs colonnes
Prénom de l'enfant ne peut pas être un bon identifiant
Prénom, âge peut être un identifiant valable mais peu sûr
Individu SALARIE
identifiant : matricule
Nom Prénom
individu ENFANT
identifiant : numéro d'ordre séquentiel
Prénom
Age
Association SALARIE a des ENFANT
cardinalité coté SALARIE : 0,n cardinalité coté ENFANT : 1,2
Entité SALARIE
clé primaire : matricule
Nom
Prénom
Entité ENFANT
clé primaire : numero_ordre
Prénom
Age
Entité A_DES clé primaire : matricule, numero_ordre clé étrangère avec SALARIE : matricule clé étrangère avec ENFANT : numéro_ordre
Relation SALARIE à A_DES coté SALARIE : 0 coté A_DES : N
Relation ENFANT à A_DES coté ENFANT : 1
coté A_DES : 2
Une opération comptable comporte les données suivantes :
Compte, Date opération, Montant positif ou négatif, Tiers concerné par l'opération, Référence analytique
Les tiers possibles sont par exemple : Employeur, Grande surface, Coiffeur, Garagiste,
Les références possibles sont par exemple : Alimentation, Soins personnels, Appareils ménagers, Voiture, …
Les Compte possibles sont par exemple : Compte courant, Livret Epargne, LDD, …
Faire le MCD
En déduire le MLD
On désire pouvoir interroger à volonté sur l'un quelconque des 3 critères Compte, Tiers ou
Référence ; on envisage même d'ajouter par la suite 1 ou plusieurs autres critères. Modifier le MLD pour répondre à cette exigence.
Individu OPERATION
identifiant : IdOperation
DateOperation
Montant
IdCompte
IdTiers
IdReference Individu COMPTE
identifiant : IdCompte Libelle_Compte Individu TIERS
identifiant : IdTiers Libelle_Tiers
Individu REFERENCE
identifiant : IdReference Libelle_Reference
Association OPERATION à COMPTE
Cardinalité coté OPERATION 1,1
Cardinalité coté COMPTE 0,N
Association OPERATION à TIERS
Cardinalité coté OPERATION 1,1
Cardinalité coté TIERS 0,N
Association OPERATION à REFERENCE
Cardinalité coté OPERATION 1,1
Cardinalité coté REFERENCE 0,N
Entités OPERATION, COMPTE, TIERS, REFERENCE
Champs identiques aux propriétés du MCD
Relations COMPTE à OPERATION, TIERS à OPERATION, REFERENCE à OPERATION Flèches cotés COMPTE, TIERS et REFERENCE (1)
Généralisation de COMPTE, TIERS, REFERENCE
Les individus ou les entités COMPTE, TIERS et REFERENCE sont très semblables.
On peut donc créer un Sur-individu CRITERE qui se décline en Sous-individus COMPTE, TIERS et REFERENCE ; même raisonnement sur les entités.
Dans l'individu ou l'entité CRITERE apparaît une nouvelle propriété/champ Type_Critere qui prend l'une des valeurs possibles Compte, Tiers ou Référence. L'intérêt de ce premier niveau de généralisation est que l'on a une seule entité logique CRITERE donc une seule table physique en base de données au lieu de 3.
Mais ce modèle doit être modifié si on incorpore un nouveau critère.
On remplace les 3 associations 1-N entre CRITERE et OPERATION par une association N-N. Il devient possible d'ajouter de nouveaux critères sans changer le modèle.
Individu OPERATION
Identifiant : IdOperation
DateOperation
Montant
Individu CRITERE
Identifiant : IdCritere
Type_Critere
Libelle_Critere
Association OPERATION à CRITERE
Cardinalité coté OPERATION M,M ou M = 3 pour critères COMPTE, TIERS, REFERENCE ou M > 3 si plus de critères
Cardinalité coté CRITERE 0,N
Entités OPERATION, CRITERE
Champs identiques aux propriétés du MCD
Entité OPERATION_CRITERE
Clé primaire : IdOpe_Cri clé séquentielle
Clés étrangères IdOperation, IdCritere
Relation OPERATION à OPERATION_CRITERE
Flèche coté OPERATION
Relation CRITERE à OPERATION_CRITERE
Flèche coté CRITERE
Construire le MCD et le MLD d'une Société qui a des filiales dont les filiales ont des filiales …
Individu SOCIETE
Identifiant : IdSociete
IdSocieteMere (n'existe pas ou est nul pour la maison mère)
Propriétés de SOCIETE
Individu FILIALE
Hérite de SOCIETE
Association SOCIETE a des FILIALES
Cardinalité coté SOCIETE 0,N
Cardinalité coté FILIALE 1,1
Entité SOCIETE
Mêmes champs que les propriétés du MCD
Sous-type FILIALE
Hérite de SOCIETE
Relation SOCIETE à FILIALE
Flèche coté SOCIETE
Construire le MCD et le MLD d'une nomenclature de pièces mécaniques ; attention, une pièce, par exemple une vis de 6, peut apparaître à tous niveaux.
Individu PIECE
Identifiant : IdPiece
Dimensions
Poids
Matière
Individu COMPOSE
Hérite de PIECE
Individu COMPOSANT Hérite de PIECE
Association COMPOSE à COMPOSANT
Propriété : Nombre de composants
Cardinalité coté COMPOSE 1,N
Cardinalité coté COMPOSANT 1,N
Entité PIECE
Clé primaire : IdPiece
Mêmes champs que propriétés du MCD
Sous types héritant de PIECE : COMPOSE et COMPOSANT
La clé primaire de COMPOSE est nommée IdCompose
La clé primaire de COMPOSANT est nommée IdComposant
Entité NOMENCLATURE
Clé primaire : clé séquentielle
Clés étrangères : IdCompose et IdComposant Nombre_Composant
Relation COMPOSE à NOMENCLATURE Flèche coté COMPOSE
Relation COMPOSANT à NOMENCLATURE
Flèche coté COMPOSANT