Vous êtes sur la page 1sur 10

Règles de dérivation

La dérivation est le passage d’un modèle conceptuel (UML) à un modèle logique de


données (MLD). Voici un ensemble de règles qui à partir d’un modèle conceptuel
donne les indications pour créer un modèle relationnel. Retenir ces règles va
grandement vous faciliter la tâche de modélisation. Étudiez bien ces cas particuliers.

Sur les diagrammes MLD, les clés étrangères sont en bleu et les clés primaires sont
soulignés.

agnes@needmand - 2022
# Règle 1 : One concept One table
Chaque entité ou concept devient une table. Par exemple : client, facture, voiture,
ville, département, article, film, livre…

Mais aussi, tout ce qui permet de classer :


- catégorie
- matière ( Mathématiques, français, histoire… )
- tags
- type ( type de voiture, type d’article, type de film…)

La table “type” doit contenir une colonne id auto-incrémenté, et une colonne nom
unique, au minimum.
Optionnel : Il est recommandé d’ajouter une colonne description qui peut être nulle.

Exemple :

Remarque : Une table contient au minimum deux colonnes, sinon on estime qu’elle
n’est pas nécessaire.

agnes@needmand - 2022
# Règle 2 : Many to Many
Une association de type plusieurs à plusieurs (Many-to-Many) devient une table
supplémentaire.

Diagramme UML :

- Un professeur enseigne à plusieurs classes.


- Réciproque : Une classe a plusieurs professeurs qui enseignent.

Diagramme MLD :

où :
- La colonne Id_Classe de la table enseigne_a fait référence à Id_Classe de la table
Classe.
- La colonne Id_Prof de la table enseigne_a fait référence à Id_Prof de la table Prof.

La clé primaire de la table enseigne_a est une clé composée (Id_Classe, Id_Prof)

agnes@needmand - 2022
# Règle 3 : One to Many
Une association de type 1 à plusieurs ( One-to-Many ) deviendra une migration de
clé. C'est-à-dire que la clé primaire de l’un va migrer dans la table de l’autre.

Diagramme UML :

- Un élève est inscrit dans une classe.


- Réciproque : Dans une classe, sont inscrits plusieurs élèves.

Diagramme MLD :

L’Id_Classe de la classe a migré dans la table Eleve. La colonne Id_Classe dans la


table Eleve est une clé étrangère qui fait référence à Id_Classe de la table Classe.

Remarque : On dit “C’est celui qui en a qu’1 qui reçoit la clé.”

agnes@needmand - 2022
# Règle 4 : One to One
Si une association de type 1 à 1 ( One-to-One ) alors les cardinalités sont (0,1) d'un
côté et (1,1) de l'autre.

Diagramme UML :

- Un élève a ou n’a pas un dossier scolaire.


- Réciproque : Un dossier correspond à exactement un élève.

Dans ce cas, on a une migration de clé. Comme dans le cas, one-to-many.

Diagramme MLD :

où la colonne Id_Eleve dans la table Dossier_scolaire fait référence à la colonne


Id_Eleve dans la table Eleve.

Remarque : Si les cardinalités sont (1,1) des deux cotés, alors on fusionne les deux
tables. Dans notre exemple, si un dossier est obligatoirement créé pour chaque
élève, on fusionne les deux tables.

agnes@needmand - 2022
# Règle 5 : Ternaire
Il se peut qu’on ait besoin de créer une relation pour plusieurs concepts. C’est ce
qu’on appelle une association ternaire. S’il y a plus de trois concepts en relation, on
dit que c’est une association n-aire.

Par exemple, un cours est l’association entre une classe, une matière et un
professeur.

Diagramme UML :

Les associations ternaires ou n-aire deviennent une table supplémentaire.

Diagramme MLD :

La table Cours est une table supplémentaire. Sa clé primaire est une clé composée
des colonnes :
- Id_Prof qui fait référence à la colonne Id_Prof de la table Prof.
- Id_Classe qui fait référence à la colonne Id_Classe de la table Classe.
- Id_Matiere qui fait référence à la colonne Id_Matiere de la table Matiere.

agnes@needmand - 2022
# Règle 6 : Héritage
Un cas un peu particulier, que vous pouvez rencontrer, est le cas où l’on souhaite
distinguer une spécificité. Par exemple, un professeur peut être un professeur
titulaire ou un professeur vacataire.

Diagramme UML :

Le professeur, le plus général,


est appelé entité mère. Les
entités qui ont des spécificités
sont appelées les entités enfants.
On dit que la relation est un
héritage. Les héritages sont
représentés par une flèche qui
pointe vers l’entité la plus
générale.

On reconnait un héritage si vous


pouvez dire la phrase suivante :
- un professeur titulaire est
un professeur.
- un professeur vacataire
est un professeur.

En anglais, on dit que c’est une relation IS_A

Diagramme MLD :
La dérivation se fait ainsi :
- On crée une table pour l’entité mère.
- Pour chaque enfant, on crée une nouvelle table dont la clé primaire est la clé
étrangère qui fait référence à l’entité mère.

Ici la colonne Id_Prof de la table


Prof_Vacataire fait référence à la colonne
Id_Prof de la table Prof. C’est aussi la clé
primaire de la table Prof_Vacataire.

De même, la colonne Id_Prof de la table


Prof_Titulaire fait référence à la colonne
Id_Prof de la table Prof. C’est aussi la clé
primaire de la table Prof_Titulaire.

Remarque : une entité peut avoir plusieurs enfants, mais une seule mère.

agnes@needmand - 2022
# Règle 7 : Réflexivité
Une relation réflexive est une relation sur elle-même. Une association réflexive est
considérée comme une association binaire.

Soit dans notre exemple, considérons les matières.


La matière Sciences regroupe les matières Physique, Maths, Chimie…
La matière Littérature regroupe les matières Histoire, Français, Anglais…

Diagramme UML :

Une matière peut être une


sous-matière d’une autre matière.
Une matière peut être une sur-matière
d’une autre matière.

La relation forme une boucle sur


elle-même, d’où le nom de réflexivité.

Astuce :
Pour savoir ce que l’on doit dériver, on s’IMAGINE que nous avons deux entités
distinctes.

Comme c’est une relation One-to-Many, on fait une migration de clé.

Mais comme en réalité, l’entité “Sur_Matiere” est une “Matiere”.

agnes@needmand - 2022
Diagramme MLD :

La colonne Id_Sur_Matiere fait référence à la colonne Id_Matiere de la table


Matiere (d'elle-même).

Remarque : Si la relation avait été de type Many-to-Many, on aurait fait une table
supplémentaire.

En base de données, cela donne :

Matière

id_matiere nom id_sur_matiere

1 Sciences Null

2 Littérature Null

3 Maths 1

4 Français 2

5 Anglais 2

6 Physique 1

agnes@needmand - 2022
Résultat final

Diagramme UML :

Diagramme MLD :

agnes@needmand - 2022

Vous aimerez peut-être aussi