71 lines
3.0 KiB
Plaintext
71 lines
3.0 KiB
Plaintext
---
|
|
title: Modèle Physique de Données (MPD) Merise
|
|
description: Apprenez à créer le MPD dans Merise, la dernière étape pour concrétiser votre base de données sur un SGBD.
|
|
tags: [Backend, Merise, BDD, MCD, MLD, MPD, SQL]
|
|
---
|
|
|
|
import DictionnaryTable from "../mcd/DictionnaryTable";
|
|
import tabs from "./tabs";
|
|
|
|
Prêt·e pour la dernière étape de la méthodologie Merise ? 🎉
|
|
Alors sans plus tarder, accueillons comme il se doit le **MPD** _(Modèle Physique de Données)_ !
|
|
|
|
## 🤔 Qu'est-ce que le MPD ?
|
|
|
|
Le **MPD** est la dernière étape de la méthodologie Merise.
|
|
Il reprend les éléments du MLD en ajoutant les derniers **détails techniques** nécessaires
|
|
pour implémenter le modèle dans un **SGBD** _(Système de Gestion de Base de Données)_.
|
|
|
|
**Ces détails techniques sont** :
|
|
|
|
- Le type de données de chaque colonne _(ex: `VARCHAR`, `INT`, `DATE`, etc.)_
|
|
- La taille de chaque colonne _(ex: `VARCHAR(255)`, `INT(11)`, etc.)_
|
|
- Les contraintes d'intégrité _(ex: `NOT NULL`, `UNIQUE`, etc.)_
|
|
- Les clés étrangères _(ex: `FOREIGN KEY`, `REFERENCES`, etc.)_
|
|
|
|
## 🔍 Exemple de MPD
|
|
|
|
À partir du **MLD** _(et **MRD** si existant)_ et du **dictionnaire de données**, on va pouvoir créer le MPD.
|
|
|
|
Faisons la transition de l'exemple de MLD basique que l'on a vu précédemment :
|
|
|
|

|
|
|
|
En prenant en considération que l'application va être développée avec **PostgreSQL**, on prendra soin d'utiliser
|
|
les **types de données** et les **contraintes d'intégrité** qui lui sont propres.
|
|
|
|
Voici à quoi il ressemble :
|
|
|
|

|
|
|
|
Avec ce schéma, il est facile d'identifier les différentes tables, leurs colonnes, les types de données,
|
|
les contraintes d'intégrité, ainsi que les clés primaires et étrangères qui relient les tables entre elles.
|
|
|
|
Une fois le MPD créé, il est possible de le traduire en **SQL** pour créer les tables dans le SGBD.
|
|
Voici un exemple de code SQL pour créer les tables correspondantes au MPD ci-dessus :
|
|
|
|
<tabs.sqlExample />
|
|
|
|
## 📊 Dictionnaire de données
|
|
|
|
Tu te souviens du **dictionnaire de données** que l'on a créé lors du brief avec le client ? Juste avant de passer au MCD ?
|
|
Il est maintenant possible de le mettre jour avec les informations du SGBD utilisé !
|
|
|
|
Bien entendu ce n'est pas obligatoire, mais c'est une bonne source d'informations pour
|
|
les développeurs et les administrateurs de la base de données 😉
|
|
|
|
Pour rappel, voici le dictionnaire de données **non technique** que nous avions fait :
|
|
|
|
<DictionnaryTable />
|
|
|
|
En ajoutant les informations techniques, il devient :
|
|
|
|
<DictionnaryTable isTechnical />
|
|
|
|
## 📜 Préparation du LDD
|
|
|
|
Le **MPD** est la dernière étape avant de passer à la phase de **LDD** _(Langage de Définition de Données)_.
|
|
Il est donc important de bien le préparer pour éviter les erreurs lors de la création des tables.
|
|
|
|
Le **LDD** correspond tout simplement à la création des tables dans le SGBD, par l'utilisation des commandes SQL
|
|
comme `CREATE TABLE`, `ALTER TABLE`, `DROP TABLE`, etc. |