Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
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.
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 :
1
Les règles de transformation d’un MCD en MLD et MPD
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)
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 ?
EMPLOYE SOCIETE
ID_EMPLOYE ID_SOCIETE= ID_SOCIETE
ID_SOCIETE ID_SOCIETE NOM_SOCIETE
NOM_EMPLOYE
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é)
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.
0,n ANNEE
ID_AN
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
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é.
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)
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)
HABITANT CARTE_ELECTEUR
ID_HABITANT ID_HABITANT = ID_CARTE
NOM_HABITANT ID_HABITANT ID_HABITANT
DATE_DELIV