docs/merise #20

Merged
GauthierWebDev merged 15 commits from docs/merise into main 2025-04-22 17:25:33 +00:00
7 changed files with 35 additions and 1 deletions
Showing only changes of commit 27256eecd9 - Show all commits

View File

@ -35,6 +35,7 @@ Pour pouvoir le transformer en MLD, il y a plusieurs éléments à prendre en co
- Relations :
- On supprime les **relations** du MCD pour laisser place à des **clés étrangères** dans le MLD.
- Est-ce que la cardinalité maximale est de **1** ou de **N** ?
- Est-ce que la relation est dite **réflexive** ?
Commençons par les **entités** et leurs **attributs**, on verra les cardinalités après 😉
@ -52,4 +53,37 @@ Les seules choses que nous avons à faire sont :
On serait tenté de le faire dès maintenant, mais ce serait ne pas respecter la méthode Merise et l'intérêt du MLD.
On le fera plus tard, dans le **MPD** _(Modèle Physique de Données)_ !
</Callout>
</Callout>
Voici donc les tables et colonnes que l'on obtient :
![Exemple de MLD sans relations](/images/merise/mld-basic-no-relation.webp)
Pour l'instant, on a juste remplacé les **entités** par des **tables** et les **attributs** par des **colonnes**. Il nous reste plus qu'à ajouter les **clés primaires** et les **clés étrangères** !
### Convertir les relations
Pour convertir les relations, il faut d'abord se poser la question de la cardinalité maximale de chaque relation.
Il y a deux possibilités :
- **One to Many** _(1,N)_
- **Many to Many** _(N,N)_
Un troisième cas existe, dans le cas où la relation est réflexive _(une entité se relie à elle-même)_.
#### One to Many
Dans le cas d'une relation **One to Many**, on va ajouter une **clé étrangère** dans la table qui est du côté de la relation **One** _(1)_.
Dans notre exemple, on a une relation **One to Many** entre **Entité 1** et **Entité 3**.
Leurs cardinalités nous indique que :
- **Entité 1** doit avoir un et un seul **Entité 3** _(1,1)_
- **Entité 3** peut avoir plusieurs **Entité 1** _(0,N)_
On va donc ajouter une **clé étrangère** dans la table **Entité 1** qui va faire référence à la **clé primaire** de la table **Entité 3**.
![Exemple de MLD avec relation One to Many](/images/merise/mld-basic-one-to-many.webp)
Et là : tu remarqueras que la **clé étrangère** est en italique et est préfixée par un `#` !

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB