Chapitre2 : Le Modèle logique de données (relationnel)
1. Introduction
Après avoir conçu le Modèle Conceptuel de Donnée (MCD), l’étape suivante est de le
transposer en Modèle Logique de Données Relationnelles (MLDR). Ce MLD est en fait le
dernier pas vers le Modèle Physique de donnée (MPD), c'est à dire la description de la base qui
va être créée. Après avoir définis les notions de clé primaire et de clé étrangère, nous appliquons
les règles nécessaires et suffisantes pour passer d'un MCD à un MLD relationnel.
2. Le Modèle relationnel.
Ce modèle crée par le mathématicien CODD s’inspire du concept mathématique de relation.
Une relation est représentée comme un tableau de données, d’où l’appellation de table.
Toute colonne d’une relation s’appelle attribut (ou encore champ). Un attribut est,
également, caractérisé par un nom.
Exemple. Considérons les domaines Couleur = {Rouge, Vert, Bleu} et Constructeur =
{Fiat, Renault, Volvo, Opel}. Considérons la relation Voiture définie par Voiture = {(Rouge,
Fiat), (Rouge, Renault), (Vert, Opel), (Bleu, Opel)}. Cette relation peut s’écrire, encore, sous
la forme :
Voiture Couleur_Voiture Marque
Rouge Peugeot
Rouge Renault
Vert Renault
Bleu Mercedes
Cette relation a le nom Voiture et les attributs Couleur_Voiture et Marque. L’attribut
Couleur_Voiture est un sous - ensemble du domaine Couleur et l’attribut Marque est un sous
- ensemble du domaine Constructeur. Une ligne de la table s’appelle par abus de langage,
enregistrement
Une relation est représentée par son nom suivi de la liste de ses attributs. Par exemple la relation
Voiture s’écrit : Voiture (Couleur_Voiture, Marque).
Page 1
Clé. On entend par clé un ou plusieurs attributs permettant d’identifier un tuple unique de la
relation. Deux tuples ne peuvent pas avoir une même valeur pour la clé.
Exemple. Redéfinissons la relation Voiture de la manière suivante :
Voiture N_Immatriculation Couleur_Voiture Marque
1391-A-15 Rouge Peugeot
2900-A-17 Rouge Renault
2999-B-22 Vert Renault
2800-A-15 Bleu Mercedes
Cette relation a comme clé l’attribut N_Immatriculation. Il est évident qu’il n’existe pas
deux voitures ayant un même numéro d’immatriculation.
Une clé peut être constituée de plusieurs attributs.
Exemple :
SuivreCours CodeEtudiant CodeCours Date
C002 01 12/2/2012
C003 02 14/2/2012
C002 03 13/2/2012
C004 01 12/2/2012
C004 02 14/2/2012
La clé de cette relation est {CodeEtudiant, CodeCours} On écrira la relation ainsi :
SuivreCours (CodeEtudiant, CodeCours, Date). La clé est soulignée.
3. Règles de passage du modèle entité - association au modèle
relationnel.
3.1. Une entité se transforme en une relation (table)
Toute entité du MCD devient une relation du MLDR, et donc une table de la Base de
Données. Chaque propriété de l'entité devient un attribut de cette relation, et dont une colonne
Page 2
de la table correspondante. L'identifiant de l'entité devient la Clé Primaire de la relation (elle
est donc soulignée), et donc la Clé Primaire de la table correspondante.
Clients
# NumClient
Société
Contact Client (NumClient, Société, Contact, Fonction, Adresse, Ville)
Fonction
Adresse
Ville
3.2. Relation binaire aux cardinalités (X,1) - (X,n), X= {0 ou 1}
La Clé Primaire de la table à la cardinalité (X,n) devient une Clé Etrangère dans la table à la
cardinalité (X,1) :
Exemple
Client Commande
0,n 1,1
#Nclient #NCommande
Passer
Société DateCommande
Contact
Fonction
Ville
MLD : Client (Nclient, Société, Contact, Fonction, Ville)
Commande (NCommande, DateCommande, #Nclient)
Modèle physique de donnée (MPD)
Client Commande
Nclient NCommande
Société DateCommande
Contact Nclient
Fonction
Ville
Page 3
3.3. Relation binaire aux cardinalités (X,n) - (X,n), X= {0 ou 1}
Il y a création d'une table supplémentaire ayant comme Clé Primaire une clé composée des
identifiants des 2 entités. On dit que la Clé Primaire de la nouvelle table est la concaténation
des Clés Primaires des deux autres tables.
Si la relation est porteuse de donnée, celles ci deviennent des attributs pour la nouvelle table.
Exemple
Produit Commande
Nproduit 0,n DétailCom 1,n Ncommannde
DateCommande
NomProduit
PrixUnitaire
Quantité
MLD : COMMANDE (NCommande, DateCommande)
PRODUIT (Nproduit,NomProduit)
DétailCom (NCommande, Nproduit, quantité, PrixUnitaire)
MPD
Produit
N produit Commande
NomProduit NCommande
DétailCom DateCommande
NCommande
Nproduit
Quantité
PrixUnitaire
3.4. Relation n-aire (quelles que soient les cardinalités).
Il y a création d'une table supplémentaire ayant comme Clé Primaire la concaténation des
identifiants des entités participant à la relation.
Si la relation est porteuse de donnée, celles ci deviennent des attributs pour la nouvelle table.
Page 4
Exemple
Etudiant Niveau
#NEtudiant 1, n #NumNiv
0, n
NomEtudiant
NomNiv
Parle
0, n
Langue
#NLangue
NomLangue
MLD : ETUDIANT (NEtudiant, NomEtudiant)
NIVEAU (NumNiv, NomNiv)
LANGUE (NLangue, NomLangue)
PARLE (NEtudiant, NumNiv, NLangue)
MPD
Etudiant Niveau
NEtudiant NumNiv
NomEtudiant NomNiv
Parle
NEtudiant
NumNiv
NLangue
Langue
NLangue
NomLangue
Page 5
3.5. Association Réflexive.
Premier cas : cardinalité (X,1) - (X,n), avec X={0 ou 1}.
La Clé Primaire de l'entité se dédouble et devient une Clé Etrangère dans la relation
ou nouvelle table. Exactement comme si l'entité se dédoublait et était reliée par une
relation binaire (X,1) - (X,n) (Cf règle 2).
Exemple
Une société est organisée de manière pyramidale : chaque employé a 0 ou 1 supérieur
hiérarchique direct. Simultanément, chaque employé est le supérieur hiérarchique direct de 0
ou plusieurs employés.
0,1
Employé
Sup_Hiérarchique
#idEmployé
NomEmployé
0,n
MLD: EMPLOYE (idEmploye, NomEmploye, #idSup)
idSup correspond à l'identifiant (idEmploye) du supérieur hiérarchique direct de l'employé
considéré.
Deuxième cas : cardinalité (X,n) - (X,n), avec X={0 ou 1}.
De même, tout se passe exactement comme si l'entité se dédoublait et était reliée par
une relation binaire (X,n) - (X,n) (règle 3). Il y a donc création d'une nouvelle table.
Exemple
Uue personne a 0 ou n descendants directs (enfants), et a aussi 0 ou n descendants indirects
(enfants).
MCD
Personne 0,n
#NPersonne
0,n
NomPersonne Parenté
MLD : PERSONNE (NPersonne, NomPersonne)
PARENTE (NParent, idEnfant)
NParent est l'identifiant (NPersonne) d'un ascendant direct de la personne. idEnfant est
l'identifiant (NPersonne) d'un descendant direct de la personne.
La table PARENTE sera en fait l'ensemble des couples (parents-enfants) présents dans cette
famille.
Page 6
3.6. Relation binaire aux cardinalités (0,1) - (1,1).
La Clé Primaire de la table à la cardinalité (0,1) devient une Clé Etrangère dans la table
à la cardinalité (1,1):
Exemple
Animateur Groupe
#idAnimateur 1,1 #idGroupe
0,1 Encadre
NomAnimateur NomGroupe
MLD: ANIMATEUR (idAnimateur, NomAnimateur)
GROUPE (idGroupe, NomGroupe, #idAnimateur)
Page 7
Page 8