rework/lightweight #12
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