docs: Add introduction to Merise methodology
This commit is contained in:
parent
5b9b5583b2
commit
c6f5399fbf
112
app/pages/docs/merise/+Page.mdx
Normal file
112
app/pages/docs/merise/+Page.mdx
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
---
|
||||||
|
title: Introduction à Merise
|
||||||
|
description: Parlons un peu de Merise, la fameuse méthodologie de modélisation pour la conception de bases de données.
|
||||||
|
tags: [Backend, Merise, BDD, MCD, MLD, MPD, SQL]
|
||||||
|
---
|
||||||
|
|
||||||
|
import Callout from "@/components/Callout";
|
||||||
|
|
||||||
|
**Merise**, c'est quoi ?
|
||||||
|
|
||||||
|
Il s'agit d'une **méthodologie** de **modélisation** française _(🐔)_, conçue pour la conception de **bases de données**.
|
||||||
|
Bien qu'elle ait été créée dans les années 70/80, elle est toujours d'actualité et largement utilisée dans le domaine de l'informatique.
|
||||||
|
|
||||||
|
<Callout type="note" title="C'est dans les vieux pots qu'on fait la meilleure soupe">
|
||||||
|
Ce n'est pas parce qu'une méthodologie est ancienne qu'elle est obsolète.
|
||||||
|
Au contraire, elle a fait ses preuves et est toujours pertinente aujourd'hui bien que surtout utilisée en France.
|
||||||
|
|
||||||
|
Rien ne t'oblige à l'utiliser, mais il est bon de la connaître, surtout si tu préfères éviter de foncer dans le mur lors de la conception de ta base de données.
|
||||||
|
</Callout>
|
||||||
|
|
||||||
|
On parlera ici que de la partie **modélisation** de Merise, même si Merise comprend aussi des aspects d'**analyse** et de **gestion de projet**.
|
||||||
|
|
||||||
|
## Les différentes schémas de Merise
|
||||||
|
|
||||||
|
Merise se compose de plusieurs schémas qui permettent de représenter les données et leurs relations.
|
||||||
|
|
||||||
|
1. **Dictionnaire de données**
|
||||||
|
2. **MCD** _(Modèle Conceptuel de Données)_
|
||||||
|
3. **MLD** _(Modèle Logique de Données)_
|
||||||
|
4. **MRD** _(Modèle Relationnel de Données)_
|
||||||
|
5. **MPD** _(Modèle Physique de Données)_
|
||||||
|
|
||||||
|
Voyons un peu plus en détail chacun de ces schémas, et comment ils s'articulent entre eux.
|
||||||
|
Des fiches détaillées seront individuellement rédigées pour chaque schéma, mais ici on va juste faire un petit tour d'horizon pour resituer le contexte.
|
||||||
|
|
||||||
|
### Dictionnaire de données
|
||||||
|
|
||||||
|
Le **dictionnaire de données** est un tableau qui va nous permettre de lister toutes les données que l'on doit stocker dans notre base de données.
|
||||||
|
Ces données proviendront de l'analyse des besoins du client, avec qui on aura discuté de ce qu'il souhaite faire avec son application.
|
||||||
|
|
||||||
|
Ce document doit être le plus simple possible et ne pas contenir de détails techniques.
|
||||||
|
Il doit être compréhensible par le client, qui pourra ainsi valider les données que l'on va stocker dans la base de données.
|
||||||
|
|
||||||
|
### MCD
|
||||||
|
|
||||||
|
Le **MCD** _(Modèle Conceptuel de Données)_ est un schéma qui va nous permettre de représenter les données que l'on a récupérées dans le dictionnaire de données.
|
||||||
|
Il va nous permettre de représenter les différentes données que l'on a, regroupée dans un rectangle nommé **entité**, ainsi que les relations entre elles.
|
||||||
|
|
||||||
|
Ce document, tout comme le dictionnaire de données, doit rester compréhensible par le client en évitant les détails techniques.
|
||||||
|
|
||||||
|
### MLD
|
||||||
|
|
||||||
|
Le **MLD** _(Modèle Logique de Données)_ est un schéma qui se base directement sur le MCD.
|
||||||
|
Il vient ajouter des détails techniques sur les entités et les relations, comme par exemple :
|
||||||
|
|
||||||
|
- Les tables et leurs colonnes _(sans les types de données)_
|
||||||
|
- Les clés primaires et étrangères
|
||||||
|
- Les tables de jointure _(tables pivot, de liaison, etc.)_
|
||||||
|
|
||||||
|
### MRD
|
||||||
|
|
||||||
|
Le **MRD** _(Modèle Relationnel de Données)_ est un schéma qui est une version textuelle du MLD.
|
||||||
|
Il s'agit d'une "fausse" étape, car le MRD n'est pas un schéma à proprement parler.
|
||||||
|
|
||||||
|
La plupart du temps, on parle de MLD textuel puisqu'il s'agit de la même chose.
|
||||||
|
|
||||||
|
### MPD
|
||||||
|
|
||||||
|
Pour terminer : le **MPD** _(Modèle Physique de Données)_ !
|
||||||
|
|
||||||
|
Le MPD est un schéma qui va nous permettre de représenter les données de manière physique, c'est-à-dire en tenant compte des spécificités du SGBD _(Système de Gestion de Base de Données)_ que l'on va utiliser.
|
||||||
|
Il va nous permettre de représenter les tables, les colonnes, les types de données, les index, les contraintes d'intégrité, etc.
|
||||||
|
|
||||||
|
Le MPD est donc un schéma qui est spécifique à un SGBD, et qui ne peut pas être utilisé tel quel sur un autre SGBD.
|
||||||
|
|
||||||
|
## Outils pour Merise
|
||||||
|
|
||||||
|
Il existe de nombreux outils pour réaliser des MCD, MLD et MPD.
|
||||||
|
|
||||||
|
Déjà, tu peux **bannir** tous les outils qui ne sont pas conçus pour Merise.
|
||||||
|
Merise étant français, la plupart des outils internationaux ne sont pas adaptés.
|
||||||
|
|
||||||
|
### Outils non recommandés
|
||||||
|
|
||||||
|
- **Draw.io** : Bien qu'il soit un bon outil, il n'est pas conçu pour Merise et ne respecte pas les normes de la méthodologie.
|
||||||
|
- **Lucidchart** : Même chose que Draw.io, il n'est pas conçu pour Merise.
|
||||||
|
- **DBDesigner** : Excellent outil, mais qui ne permet pas la réalisation d'un MCD ou d'un MLD correct. On pourra par contre l'utiliser pour le MPD !
|
||||||
|
|
||||||
|
### Outils recommandés
|
||||||
|
|
||||||
|
- **[Looping](https://looping-mcd.fr/)** : Il s'agit de l'outil par **excellence** pour la conception de bases de données tout en respectant la méthodologie Merise. Cerise sur le gâteau, il est **gratuit** !
|
||||||
|
- **[Mocodo](https://mocodo.net/)** : Un autre outil qui permet de réaliser des MCD et MLD. Il est extrêmement puissant et fonctionne sur le navigateur. Cependant, il manque de rigueur là où Looping excelle.
|
||||||
|
|
||||||
|
Pour toutes les rubriques suivantes, **Looping** sera utilisé comme outil.
|
||||||
|
|
||||||
|
## Ressources
|
||||||
|
|
||||||
|
<Callout type="warning" title="Ressources disponibles sur internet">
|
||||||
|
**Attention !**
|
||||||
|
|
||||||
|
Beaucoup de ressources sur internet parlent de Merise, mais elles ne sont pas forcément justes.
|
||||||
|
|
||||||
|
Peu importe l'origine de la ressource, il est important de vérifier les informations et de ne pas se fier aveuglément à ce qui est écrit.
|
||||||
|
Je recommande énormément le livre [Guide pratique _(4e édition)_](https://www.editions-eni.fr/livre/merise-guide-pratique-4e-edition-modelisation-des-donnees-et-des-traitements-manipulations-avec-le-langage-sql-conception-d-une-application-mobile-android-ou-ios-9782409046667) de **Jean-Luc Baptiste**, aux **Éditions ENI**.
|
||||||
|
</Callout>
|
||||||
|
|
||||||
|
- [Looping](https://looping-mcd.fr/)
|
||||||
|
- [Mocodo](https://mocodo.net/)
|
||||||
|
- [La vérité sur les id - Jean Prulière](https://jeanpruliere.medium.com/la-v%C3%A9rit%C3%A9-sur-les-id-507134adda12))
|
||||||
|
- [Merise - Wikipedia](<https://fr.wikipedia.org/wiki/Merise_(informatique)>)
|
||||||
|
|
||||||
|
Prochaine étape, on parle du **dictionnaire de données** !
|
||||||
7
app/pages/docs/merise/+image.ts
Normal file
7
app/pages/docs/merise/+image.ts
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
import type { PageContext } from "vike/types";
|
||||||
|
|
||||||
|
import { buildPublicUrl } from "@/buildPublicUrl";
|
||||||
|
|
||||||
|
export const image = (pageContext: PageContext) => {
|
||||||
|
return buildPublicUrl(pageContext, "/opengraph/merise.png");
|
||||||
|
};
|
||||||
Loading…
Reference in New Issue
Block a user