La méthodologie
MERISE
Mis à jour le 12/11/2024
Cédric BRASSEUR
- Ancien étudiant de l'Exia.cesi
- 4 ans consultant chez Amaris, placé chez Euro Information Dev
- Auto-entrepreneur depuis début 2020 (Création de sites web, applications mobiles & formateur)
Et vous ?
- Nom, prénom
- Etudes réalisées
- Connaissances en dév
- Autres infos appréciées

Plan du cours
-
La méthodologie MERISE
- Introduction & intérêts
- Le dictionnaire de données
- Les dépendances fonctionnelles
-
Le MCD
- Les cardinalités
- MLD
- Règles de conversions
- Vers le MPD
- MCT / MOT (Les compléments)
- Merise 2.0
- Merise avancé (héritages,...)
- Evaluation

Merise
Objectifs de la semaine
- Appréhender la méthodologie de modélisation de base de données avec MERISE
- Exercices de modélisations en suivant la méthodologie
- Connaître les requêtes SQL de création de base de données








Introduction
Base de données
Les structures de stockage de données existantes
Toute entreprise a besoin de sauvegarder ses données.
Il existe plusieurs structures de sauvegardes :
- Les structures JSON et XML,
- Le SGBD(R) et le NoSQL
- Le modèle relationnel, entité-association et les ORM

Base de données
-
Structure permettant d'agencer et de sauvegarder des données relatives à un ou plusieurs projets
-
Cette structure peut être relationnelle ou non (SGBD =/= SGBDR)
-
Les données doivent être protégées mais accessibles en continue
-
Nous allons utiliser SQL Server (T-SQL) & MySQL (plus tard)

BDD
Base de données relationnelle
Les données sont liées les unes aux autres entre les tables.
Ceci permettant d'avoir des données atomiques dans les tables tout en pouvant lier ses données grâce à des jointures.
Auteur |
---|
id |
... |
Article |
---|
id |
auteur_id |
date_parution_id |
Date |
---|
id |
jour_nom |
Modéliser sa base de données

Pour modéliser correctement sa base de données il est fortement conseillé d'utiliser une méthode de modélisation.
! MERISE !
Types de données
Il existe plusieurs types de données afin de les stocker. Ce qu'il faut comprendre c'est que le type de données défini un espace mémoire pour le stockage de cette donnée.
Quelques conseils :
- Bien choisir le type, ne pas utiliser un BigInt là où un SmallInt suffit
- Utiliser Varchar à la place de char (taille variable)
- Stocker les données numériques non calculées en varchar (CB, numéro de téléphone,...)
- Utiliser trim() pour les données AN
- Utiliser une référence numérique (Enum) pour les données AN répétées (statut de commande par exemple)

Types
La méthodologie MERISE en détails
Aucun développement requis !
Merise - Késako ?
Merise est une méthodologie de modélisation de base de données relationnelles. Créé début 70’s par Hubert Tardieu, préconisé par CTI et CETE en 1978.
Elle se met en place à travers plusieurs diagrammes :
MCC
Modèle Conceptuel des Communications
MCD
Modèle Conceptuel des Données
MCT
Modèle Conceptuel des Traitements
MOT
Modèle Organisationnel des Traitements
MLD
Modèle Logique des Données
MPD
Modèle Physique des Données
Prérequis - Règles de gestion métier
- Ensemble des règles concernant le système d’information (SI) fournie par le client / MOA,
- Soit les règles sont posées à plat, soit il faut les déduire du cahier des charges avant modélisation,
- Ces règles sont rarement assez claires il faut donc interroger les clients / MOA / développeurs… Et c’est souvent ce qui prend le plus de temps et provoque le plus de litiges. Petit conseil, assurez-vous toujours que le client sache bien ce qu’il veut et qu’il l’écrive (ou valide un de vos écris) dans un cahier des charges.
Prérequis - Exemple de règles
- Pour chaque livre, on doit connaître le titre : l'année de parution, un résumé et le type (roman, bd, manga,...).
- Un livre peut être rédigé par aucun (œuvre anonyme), un ou plusieurs auteurs dont on connaît le nom, le prénom, la date de naissance et le pays d'origine.
- Chaque exemplaire d'un livre est identifié par une référence composée de lettres et de chiffres et ne peut être paru que dans une et une seule édition.
- Un inscrit est identifié par un numéro et on doit connaître son nom, prénom, adresse, téléphone et adresse e-mail.
- Un inscrit peut faire zéro, un ou plusieurs emprunts qui concernent chacun un et un seul exemplaire. Pour chaque emprunt, on connaît la date et le délai accordé (en nombre de jours).
- Le code mnémonique : libellé désignant une donnée (titre_livre)
- La désignation : Description de la donnée (par exemple «titre du livre»)
-
Le type de donnée :
- A ou Alphabétique : caractères alphabétiques
- N ou Numérique : nombre entier ou réel
- AN ou Alphanumérique : à la fois des caractères alphabétiques et numériques
- Date : Date..
- Booléen : Vrai ou Faux OU 0 ou 1 (bit en SQLServer)
- La taille : En nombre de caractères ou de chiffres. Pour une date au format AAAA-JJ-MM, on compte également les caractères, soit 10 caractères.
- Et des remarques complémentaires
Prérequis - Définir le dictionnaire de données
Le dictionnaire de données permet de définir quelles données sont à prendre en compte dans notre base de données, c'est concrètement de l'analyse de texte à réaliser.
Quoi définir ?

Exercice
Définissez l’intégralité du dictionnaire de données de l’exemple de règles métier pour une bibliothèque (règles métier présentées précédemment)
- Pour chaque livre, on doit connaître le titre, l'année de parution, un résumé et le type (roman, bd, manga,...).
- Un livre peut être rédigé par aucun (œuvre anonyme), un ou plusieurs auteurs dont on connaît le nom, le prénom, la date de naissance et le pays d'origine.
- Chaque exemplaire d'un livre est identifié par une référence composée de lettres et de chiffres et ne peut être paru que dans une et une seule édition.
- Un inscrit est identifié par un numéro et on doit connaître son nom, prénom, adresse, téléphone et adresse e-mail.
- Un inscrit peut faire zéro, un ou plusieurs emprunts qui concernent chacun un et un seul exemplaire. Pour chaque emprunt, on connaît la date et le délai accordé (en nombre de jours).

Exercice (corrigé)
Prérequis - Dépendances fonctionnelles
-
Ce sont les liens qui permettent grâce à une donnée de pouvoir en déduire une autre par relation.
-
Grosso-modo, on lie les champs associés à la donnée unique et on ajoute les « clés étrangères » qui permettent leur lien (Ce que l’on appellera par la suite les cardinalités dans cette formation),
-
En reprenant les données du dictionnaire précédent, on peut établir les dépendances fonctionnelles suivantes :
id_em → date_em, delai_em, id_i, ref_e
id_i → nom_i, prenom_i, rue_i, ville_i, cp_i, tel_i, tel_port_i, email_i, date_naissance_i
ref_e → id_l
id_l → titre_l, annee_l, resume_l, id_t, id_ed
id_t → libelle_t
id_ed → nom_ed
id_a → nom_a, prenom_a, date_naissance_a, id_p
id_p → nom_p
MCD - Modèle Conceptuel des données
Ce diagramme est le diagramme le plus important de la série, il a pour objectif de définir entités, leurs association et les cardinalités.
Les entités
Les associations
Les cardinalités



MCD - Modèle Conceptuel des données
L'un des principaux objectif de se diagramme est de prendre le temps de splitter au maximum ses données dans des entités liées.
Les cardinalités
Les types de cardinalités les plus utilisées :
- 0,N
- 1,N
- 0,1
- 1,1
- Cas spécifiques possibles mais nécessitant des règles de gestion à implémenter. (Rarement possible à paramétrer dans un outil de modélisation) Par exemple, dans les règles de métier on nous aurait dit qu’un auteur ne peut pas écrire plus de 5 livres. La cardinalité entre Auteur et Livre n’est plus 1,N mais 1,5.
- On gère soit via le code de traitement de ces données
- Soit via des triggers (en s’assurant que le SGBD est robuste)
MCD - Modèle Conceptuel des données
Des outils permettent de modéliser une base de données, ils sont très utiles car la plupart d'entre eux permettent de générer les MLD, MPD et scripts de création de BDD correspondant à votre MCD.
Les outils :
- PowerAMC
- AnalyseSI
- JMerise
- Looping
- Mysql Workbench
- DBConcept
- ...
Je conseil Analyse SI (jar file à DL)
Download link : https://launchpad.net/analysesi/+download
Exercice
Exercice (Réaliser un MCD)
Installez et utilisez votre logiciel de modélisation pour faire le MCD du cas en cours d’analyse (bibliothèque)
FAITES BIEN ATTENTION AUX CARDINALITES
- Pour chaque livre, on doit connaître le titre : l'année de parution, un résumé et le type (roman, bd, manga,...).
- Un livre peut être rédigé par aucun (œuvre anonyme), un ou plusieurs auteurs dont on connaît le nom, le prénom, la date de naissance et le pays d'origine.
- Chaque exemplaire d'un livre est identifié par une référence composée de lettres et de chiffres et ne peut être paru que dans une et une seule édition.
- Un inscrit est identifié par un numéro et on doit connaître son nom, prénom, adresse, téléphone et adresse e-mail.
- Un inscrit peut faire zéro, un ou plusieurs emprunts qui concernent chacun un et un seul exemplaire. Pour chaque emprunt, on connaît la date et le délai accordé (en nombre de jours).
Exercice - corrigé
Exercice (Réaliser un MCD)

MCD - Remarques
- Souvent, plusieurs solutions sont possibles au niveau conceptuel. Exemple, selon nos règles fonctionnelles, nous aurions pu créer une entité Type. Si un livre pouvait expressément avoir plusieurs types, on aurait été obligé de le faire cependant.
- Pour que le MCD soit sémantiquement valide, toute entité doit être reliée à au moins une association. (Même si c’est discutable pour une table de settings par exemple)
- On aurait pu, dans ce cas précis, conserver également une date de rentrée des livres, calculée à partir de la date d’emprunt et de la durée de celle-ci. C'est un exemple de donnée calculée dont la conservation peut permettre une optimisation.
Pour respecter les formes normales, on aurait dû !
MLD - Modèle Logique des données
- Le modèle logique de données (MLD) est composé uniquement de ce que l'on appelle des relations,
- Issu des données des entités ainsi que des associations,
- Départ de la clé primaire pour identifier sans ambiguïté les occurrences de la relation,
Exemple
Voici deux exemples (issue des entités «Edition» et « Exemplaire » de notre précédant MCD) :
- Edition (id_ed, nom_ed)
- Exemplaire (ref_e, id_ed#)
Légende :- x : données
- x : clef primaire
- x# : clef étrangère
MLD - Modèle Logique des données
Règles de conversion
Cardinalités 0/1, N – 0/1, N
On parle de relation associatives Création d’une entité / table pour l’association.
- Rediger (id_a#, id_l#, nb_chapitres)
Finalité
Dans le cas d'associations porteuses de données, les données portées deviennent des attributs de la relation correspondante.

MLD - Modèle Logique des données
Règles de conversion
Conversion des associations ayant au moins une cardinalité de type 1,1
Exemple, l'association «est né en» et des entités «Auteur» et «Pays» :
- Pays (id_p)
- Auteur (id_a, nom_a, prenom_a, date_naissance_a, id_p#)
Finalité
Dans ce cas :
- L'association ne peut être porteuse de données. Ces données seraient à mettre en référence directe avec la clé primaire de la table prenant la clé étrangère. Exemple ici : nom_a est en lien direct avec id_a et n’a rien à faire dans l’association.
- L'association doit être binaire (c'est à dire relier uniquement deux entités et pas plus).

MLD - Modèle Logique des données
Règles de conversion
Conversion des associations ayant au moins une cardinalité de type 0,1 (et dont les autres cardinalités sont de type 0,1/N)
- Categorie (id_cat, libelle_cat)
- Livre (id_l, titre_l, annee_l, resume_l, id_cat#)
Finalité
Rien de particulier par rapport à avant, MAIS... Il faut savoir que Si 0 est plus régulier que 1, on utilise cette méthode à des fins d’optimisation, mais ce n’est pas la méthode classique. Nous ferions ça :
- Categorie (id_cat, libelle_cat)
- Livre (id_l, titre_l, annee_l, resume_l)
- Appartenir (id_l#, id_cat#)

Exercice
Exercice (Réflexion MLDR)
Pour chaque entité /association, déduisez ce que donne la règle de conversion associée aux cardinalités.
Validez votre travail en utilisant la génération automatisée du MLDR via votre outil de modélisation.
Exercice - Corrigé
Exercice (Trouver les règles de conversions)
Modèle logique des données que l’on déduit des cardinalités.
- Pays (id_p, nom_p)
- Auteur (id_a, nom_a, prenom_a, date_naissance_a, id_p#)
- {TypeLivre (id_t, libelle_t)}
- Livre (id_l, titre_l, annee_l, resume_l{, type_l}, id_t#)
- Rediger (id_a#, id_l#, nb_chapitres)
- Edition (id_ed, nom_ed)
- Exemplaire (ref_e, id_ed#, id_l#)
- Inscrit (id_i, nom_i, prenom_i, date_naissance_i, rue_i, ville_i, cp_i, email_i, tel_i, tel_portable_i)
- Emprunt (id_em, date_em, delais_em, id_i#, ref_e#)
MLD - Modèle Logique des données
Règles de conversion - Cas particuliers
Associations réflexives
Association ternaire (n-aire) - Souvent utilisé pour de l'historisation


Les formes normales
Il existe différents niveaux de formes normales. Les 3 premiers niveaux de normalisations sont les plus répandus et les plus appliqués.
La classification de ces trois premiers niveaux de normalisation repose sur les dépendances fonctionnelles entre la clef primaire de la relation et ses autres attributs.
- Pour être en première forme normale (1FN ou 1NF) : Les attributs d'une relation doivent être atomiques et doivent être en dépendance fonctionnelle avec la clef primaire de cette dernière.
- Pour être en deuxième forme normale (2FN ou 2NF) : 1FN et que toutes les dépendances fonctionnelles entre la clef primaire et les autres attributs de la relation soient élémentaires. Autrement dit, les attributs doivent dépendre de la totalité de la clef.
- Pour être en troisième forme normale (3FN ou 3NF) : 2FN et que toutes les dépendances fonctionnelles entre la clef primaire de la relation et les autres attributs soient directes
Remarques :
Pour que le MLD soit valide, il faut que chacune de ses relations soit au moins en 3FN.
Si un MCD est correctement conçu et que les règles de conversion énoncées plus haut ont bien été respectées, les relations seront donc automatiquement normalisées en 3FN.
Les formes normales
Exemple
0FN

Les formes normales
Exemple
1FN
On applique l’atomicité et la référence à un identifiant unique

Les formes normales
Exemple
2FN
On retire les dépendances qui n’ont pas de rapport avec la clé primaire.

0,1
Les formes normales
Exemple
3FN
On retire les dépendances de transition.

Exercice
Exercice (Appliquez les formes normales)
Appliquez une à une les formes normales sur cette entité.
Nous prendrons un de vos rendu pour faire le corrigé ensemble et en discuter.




MPD : Modèle Physique des données
La traduction d'un MLD conduit à un MPD qui précise le stockage de chaque donnée par son type et sa taille. C’est sur le MPD que l’on peut se permettre un certain nombre de libertés par rapport aux règles de normalisation afin d'optimiser les performances du système d'information :
- l'ajout d'index aux tables (au minimum sur les colonnes clés primaires et clés étrangères)
- l'ajout de colonnes calculées pour éviter des jointures coûteuses, il faut alors veiller à ce que la cohérence entre les colonnes soit respectée soit par l'utilisation de triggers, soit dans les applications clientes du système d'information
- la suppression des contraintes d'unicité ou encore de clé étrangère (auquel cas, l'intégrité des données doit être assurée par le code client du système d'information)
Les cardinalités et associations disparaissent pour laisser place aux clés étrangères et primaires dans le modèle. Comme vu auparavant pour certaines cardinalités, une table intermédiaire est créée. Dans le MPD, ces tables sont présentes physiquement dans le modèle.
MPD : Modèle Physique des données
Exemple

Exercice
Exercice (Script & adaptation)
Créer le script de création de base de données avec votre outil de modélisation, analysez les requêtes SQL créées.
Passez votre script en base de données SQL Server (ou MySQL), adaptez en fonction des problèmes détectés lors de l’analyse.
Exercice
Exercice (MCD & MLDR)
Un historien souhaite établir des statistiques sur des soldats de la Première Guerre mondiale. Pour chaque soldat, outre l'état-civil (nom, prénom, sexe, date de naissance, pays de naissance,…), il souhaite avoir la trace :
- de la date de son décès si celui-ci est survenu suite aux combats
- des blessures reçues (type et date de la blessure, en plus de la bataille où elle a été infligée. Les batailles seront référencées dans une liste comportant le lieu, les dates de début et de fin)
- des grades obtenus (avec les dates)
- de l'unité de rattachement (avec les dates)
Etablir le MCD et le MLDR adéquats
+ MLDR
Exercice - Corrigé

MCT : Modèle Conceptuel des traitements
Modèle conceptuel des traitements : permet de schématiser les opérations qui sont réalisées en fonction d’événements sur le système d'information,
Schéma

MOT : Modèle Organisationnel des traitements
Modèle organisationnel des traitements c’est la représentation de l'activité étudié,
- La représentation des traitements entre l'homme et la machine
- La période de déroulement de chaque tache
- Répartition de la responsabilité de ces traitements
C'est le même principe que pour un diagramme d'activités, sauf qu'ici on parle des traitements à faire en base de données.
Schéma

Bases DL1 vieilles bases souvent associé à la technologie COBOL en entreprise. Un modèle hiérarchique structure les données sous formes d’arbres, en opposition au modèle relationnel qui dispose les données en « ligne ».
Avant & vs Merise
Modèle réseau, dérivé direct de CODASYL (Américain)
Modèle hiérarchique


Merise II : Améliorations
Héritage sans contrainte
(IPersonne : Auteur / Inscrits)
Possibilité d’ajouter des contraintes que l’on doit gérer
dans le code applicatif ou par trigger également.
Schéma

Merise II : Améliorations
Contraintes entre associations
- Inclusion
- Exclusion
- Totalité
- Egalité
Schéma

Exercices complémentaires
Envoyer le fichier exercice_complementaire_dictionnaire_to_mcd.docx
Exercice : Réaliser le MCD
En partant de sujet réaliste, vous devez analyser le besoin et le reformuler, créer le dictionnaire de données, puis le MCD correspondant au sujet choisi.
Cet exercice se réalise en groupe de 2 (et un groupe de 3)
Vous devrez ensuite présenter votre travail à l'oral à la promotion.
BONUS : Pour eux qui finissent plus vite que les autres, commencez à faire de l'UML sur le sujet (Diagrammes de cas d'utilisations, activités, séquences, classes)
Exercice : Réaliser le MCD
Démarrez votre modélisation MERISE pour le projet Cube (ressources relationnelles).
Mettez-vous dans les canaux de discussion discord par groupe et n'hésitez pas à me poser des questions.
Je peux soit venir dans le canal de discussion pour vous aider, soit vous "corriger" (plutôt vous faire des retours) votre MCD.
Bon courage !
Exercice : Projet Cube
La création de base de données en SQL
Installation et paramétrage de Wamp server
L'installation se fait sur toutes les OS
WAMP : Windows
LAMP : Mac
XAMP : Unix

Installation SQL Server
D'abord, il faut installer l'agent SQL, puis l'interface Mangement studio.
Ou, pour une installation plus rapide, voir ici :
Agent SQL : https://www.microsoft.com/fr-fr/sql-server/sql-server-downloads (choisir SQL Server 2019 express)
Management studio Express :
Evaluations
Partie théorique
BON COURAGE !
Evaluation
Vous devez répondre à un questionnaire de questions ouvertes
Partie pratique
BON COURAGE !
Evaluation
Réaliser toutes les tables de l'exercice précédent (Je vous donne un corrigé) avec des requêtes SQL
Méthodologie MERISE
By Cėdric Brasseur
Méthodologie MERISE
- 1,068