Vous êtes sur la page 1sur 4

TRANSFORMATION DU MCD (MODELE CONCEPTUEL DE DONNEES) en :

MODELE LOGIQUE DE DONNEES (MLD) et


MODELE PHYSIQUE DE DONNEES (MPD)

Le MLD est la transformation du MCD, lorsqu’on souhaite créer la structure de la base de données
correspondant au MCD à l’aide d’un logiciel.
Le MLD répond à la question : Quelles sont les tables à créer, et avec quels champs, quels sont les
nouveaux champs (clés étrangères) ?
Le MPD est un schéma qui répond à la question : quels sont les champs permettant de relier les tables
entre elles, et quels sont les types et tailles des champs ?
Le MLDR est le MLD Relationnel.
Deux solutions existent : soit on laisse au logiciel (ex : Windev) le soin de transformer le MCD, soit on le
fait soi-même.
Le MLDR a été inventé par Edgar Frank Codd en 1970. Pour certains auteurs et certains logiciels, le MLD
et le MPD se confondent. On prendra soin de préciser, pour chaque table, les cardinalités (i) ou (i,j) du
côté où elle est en relation avec une autre table.
Dans certains cas, le logiciel lui-même détermine les cardinalités (i) ou (i,j). Les significations des
cardinalités du MPD diffèrent d’un logiciel à un autre, contrairement à celles du MCD.

Le Modèle Logique de Données (MLD)

C'est le passage entre le Modèle Conceptuel de Données et l'implémentation physique de la base. Le MLD est
indépendant du matériel et du logiciel, il ne fait que prendre en compte l'organisation des données. Si l'organisation
des données est relationnelle, alors le MLD est Relationnel et devient le MLDR, ou Modèle Logique de Données
Relationnel. (Voir sur internet les types de Base de Données : Relationnelle, Hiérarchique, Réseau)

Pour le MLDR, les données sont stockées dans des tables. Une table est un ensemble de lignes ou enregistrements,
et un enregistrement est défini par un ou plusieurs attributs. Les attributs sont les colonnes ou champs.

Soit une table appelée RUBRIQUE : Soit une autre table appelée DOCUMENT :

ID_RUBRIQUE Nom ID_DOCUMENT Sujet DateEnvoi Contenu ID_RUBRIQUE

aaaaaa 25 xxxxxxxxx 11/01/2013 uuuuuuu 10


11 bbbbbb 26 yyyyyyyyy 18/01/2013 vvvvvvvv 20
12 ccccccccc 27 zzzzzzzzzz 25/01/2013 ttttttttttttt 10
20 ddddddd

Dans le MLD, les tables sont décrites de la manière suivante :

RUBRIQUE (ID_RUBRIQUE, Nom)


DOCUMENT (ID_DOCUMENT, Sujet, DateEnvoi, Contenu, ID_RUBRIQUE)
Une table peut avoir une clé primaire et/ou une clé secondaire et/ou d’autres attributs ou champs. Chaque
enregistrement doit être identifié de manière unique (identifiant dans MCD). Et ce qui permet d'identifier de façon
unique chaque ligne est appelé la Clé Primaire (Elle peut être composée, c'est à dire comprendre plusieurs
attributs). Ici, il s'agit de l'attribut ID_DOCUMENT.
La table Document comprend un attribut provenant de la table RUBRIQUE, l'attribut ID_RUBRIQUE. Cet attribut
est appelé Clé Etrangère.
La clé primaire est soulignée, et la clé étrangère est précédée (ou suivie) du signe # :
RUBRIQUE (ID_RUBRIQUE, Nom)
DOCUMENT (ID_DOCUMENT, Sujet, DateEnvoi, Contenu, # ID_RUBRIQUE)
ID_RUBRIQUE est la Clé Primaire de la table RUBRIQUE, et est une Clé Etrangère dans la table DOCUMENT.
ID_DOCUMENT est la Clé Primaire de la table DOCUMENT

1
Les règles de transformation d’un MCD en MLD et MPD

1 : Toutes les entités se transforment en tables

Toute entité du MCD devient une table du MLDR, et donc une table de la Base de Données. Chaque propriété de
l'entité devient un attribut de cette table, et donc une colonne appelée encore champ de la table correspondante.
L'identifiant de l'entité devient la Clé Primaire de la table (elle est soulignée)

MCD MLDR MPD

CLIENT
CLIENT CLIENT (ID_CLIENT, Nom_Client, Tel_client)
ID_CLIENT ID_CLIENT
Nom_Client NOM_CLIENT
Tel_Client TEL_CLIENT

Dans tout ce qui suit, on répond à la question : une relation ou association devient-elle une table ?

2 : Relation binaire aux cardinalités (X,1) - (X,n), X=0 ou X=1 :

Pas de création de table supplémentaire.


La Clé Primaire de la table à la cardinalité (X,n) s’ajoute et devient une Clé Etrangère dans la table à la
cardinalité (X,1)

Exemple de Système d'Information (SI) :


On a une liste de sociétés et une liste d’employés.
Un employé travaille dans une et une seule société. Une société a 1 ou n employés.

Modèle Conceptuel de Données (MCD) : Modèle Logique de Données Relationnel (MLDR) :

EMPLOYE (ID_EMPLOYE, Nom_Employe, #ID_SOCIETE)


EMPLOYE SOCIETE
TRAVAILLER SOCIETE (ID_SOCIETE, Nom_Societe)
ID_EMPLOYE ID_SOCIETE
Nom_Employé 1,1 1,n Nom_Société

Modèle Physique de Données (MPD): (les types et tailles sont à préciser)

EMPLOYE SOCIETE
ID_EMPLOYE ID_SOCIETE= ID_SOCIETE
ID_SOCIETE ID_SOCIETE NOM_SOCIETE
NOM_EMPLOYE

3 : Relation binaire aux cardinalités (X,n) - (X,n), X=0 ou X=1 :

Il y a création d'une table supplémentaire ayant comme Clé (qui peut être Primaire ou non ) une clé
composée des identifiants des 2 entités. On dit que la Clé de la nouvelle table est la concaténation des Clés
Primaires des deux autres tables.
Si la relation est porteuse de données, celles ci deviennent des attributs pour la nouvelle table.

Ex :
On a une liste de commandes et une liste de produits.
Une commande est composée de 1 ou n produits distincts en une certaine quantité. Un produit est
présent dans 0 ou n commandes en une certaine quantité.

MCD :
MLDR :
COMMANDE COMPOSER PRODUIT COMMANDE (ID_COMMANDE, Date_commande)
ID_COMMANDE ID_PRODUIT PRODUIT (ID_PRODUIT, Libelle)
Quantité
Date_commande Libelle COMPOSER (#ID_COMMANDE, #ID_PRODUIT,
1,n 0,n Quantité)

MPD : (les types et tailles sont à préciser)

COMMANDE COMPOSER PRODUIT


ID_COMMANDE ID_COMMANDE=
ID_COMMANDE ID_COMMANDE ID_PRODUIT= ID_PRODUIT
DATE_COMMANDE ID_PRODUIT ID_PRODUIT LIBELLE
Quantité
2
4 : Relation n-aire (3 ou plusieurs entités reliées, quelles que soient les cardinalités) :

Il y a création d'une table supplémentaire ayant comme Clé (Primaire ou non) la concaténation des
identifiants des entités participant à la relation.
Si la relation est porteuse de données, celles ci deviennent des attributs pour la nouvelle table.

Ex :
On a une liste d’étudiants, une liste de filières et les années. Un étudiant est inscrit dans une ou
plusieurs filières et on précise l’année. Chaque filière contient donc 0 à n étudiants. Pour chaque année,
il y a 0 à plusieurs étudiants qui sont inscrits.

MCD : FILIERE MLDR :


0,n ID_FIL
Nom_fil ETUDIANT (ID_ETUDIANT, Nom_Etudiant)
ETUDIANT
INSCRIT FILIERE (ID_FIL, Nom_fil)
ID_ETUDIANT 1,n ANNEE (ID_AN)
Nom_Etudiant INSCRIT (#ID_ETUDIANT, #ID_FIL, #ID_AN)

0,n ANNEE
ID_AN

MPD : (les types et tailles sont à préciser)

INSCRIT FILIERE
ID_ETUDIANT ID_FIL=ID_FIL ID_FIL
ID_FIL NOM_FIL
ID_AN

ID_AN=ID_AN
ID_ETUDIANT= ID_ETUDIANT

ETUDIANT ANNEE
ID_ETUDIANT ID_AN
NOM_ETUDIANT

5 : Association Réflexive

 Premier cas : cardinalité (X,1) - (X,n), avec X=0 ou X=1


Pas de création de table supplémentaire.
La Clé Primaire de l'entité se dédouble et devient une Clé Etrangère dans la relation ou nouvelle table.
Exactement comme si il existe 2 entités identiques reliées par une relation binaire (X,1) - (X,n)

Ex :
Dans une société, chaque employé a 0 ou 1 supérieur hiérarchique direct, et donc chaque employé est le
supérieur hiérarchique direct de 0 ou plusieurs employés.

MCD :
MLDR :
Sup de
EMPLOYE EMPLOYE (ID_EMPLOYE, Nom_Employé, #ID_SUP_HIERARCH)
0,n
ID_EMPLOYE HIERARCHIE
Nom_Employé # ID_SUP_HIERARCH est l'identifiant (ID_EMPLOYE)
Agent de du supérieur hiérarchique direct de l'employé
0,1 considéré.

MPD : (les types et tailles sont à préciser)

EMPLOYE
ID_EMPLOYE ID_EMPLOYE=ID_SUP_HIERARCH
ID_SUP_HIERARCH
NOM_EMPLOYE

3
 Deuxième cas : cardinalité (X,n) - (X,n), avec X=0 ou X=1.
Création d'une nouvelle table, car équivalent à une relation binaire de cardinalités (X,n) - (X,n).
Ex :
Dans un fokontany, il y a des habitants : chaque habitant a 0 ou 2 parents, et a aussi 0 ou n enfants.
2 se comporte comme n, pour la branche « Enfant de » (qu’il convient de préciser dans la
programmation):

MCD :
Parent de
MLDR :
HABITANT
ID_HABITANT 0,n PARENTE HABITANT (ID_HABITANT, Nom_Habitant
Nom_Habitant PARENTE ((#ID_HABITANT, #ID_PARENT)

0,n # ID_PARENT est l'identifiant (ID_HABITANT)


Enfant de
d'un parent de l’habitant.

MPD : (les types et tailles sont à préciser)

HABITANT ID_HABITANT = ID_HABITANT PARENTE


ID_HABITANT ID_HABITANT
NOM_HABITANT ID_PARENT
ID_HABITANT = ID_PARENT

6 : Relation binaire aux cardinalités (0,1) - (1,1)

Pas de création de table supplémentaire.


La Clé Primaire de la table à la cardinalité (0,1) devient une Clé Etrangère dans la table à la cardinalité
(1,1) :
Ex :
Dans un fokontany, on a un registre des habitants et des cartes d’électeurs, chaque habitant possède 0 ou 1
carte d’électeur, chaque carte étant possédée par un et un seul habitant.

MCD :
MLDR :
HABITANT 0,1 1,1 CARTE_ ELECTEUR
ID_HABITANT
POSSEDER
ID_CARTE HABITANT (ID_HABITANT, Nom_Habitant)
Nom_Habitant Date_déliv CARTE_ELECTEUR (ID_CARTE, Date_déliv,
#ID_HABITANT)

MPD : (les types et tailles sont à préciser)

HABITANT CARTE_ELECTEUR
ID_HABITANT ID_HABITANT = ID_CARTE
NOM_HABITANT ID_HABITANT ID_HABITANT
DATE_DELIV