Modèle Logique de Données (MLD)
•Souheib Baarir
•[Link]@[Link]
•Université Paris Ouest Nanterre la défense.
1
Quel formalisme ?
• Norme CODASYL :
– Conference On Data SYstems Languages.
• Bases de données relationnelles.
2
Les concepts de la base de données
relationnelle
• Table
• Attribut
• Clef primaire
Artiste ARTISTE
PK_ARTISTE
N° artiste N°_ARTISTE
Nom artiste NOM_ARTISTE
Description artiste DESCRIPTION_ARTISTE
Pourcentage galerie POURCENTAGE_GALERIE
Entité Table
3
Association binaire fonctionnelle.
• Le lien remplace l’association binaire fonctionnelle.
• Clef externe.
MCD Oeuvre
Artiste
N° oeuvre
N° artiste Producteur Titre oeuvre
Nom artiste 0,n 1,1
Prix minimum
Description artiste
Pourcentage galerie Montant acompte
Prix vente
OEUVRE
ARTISTE PK_OEUVRE
PK_ARTISTE N°_OEUVRE
N°_ARTISTE N°_ARTISTE
NOM_ARTISTE Producteur TITRE_OEUVRE
DESCRIPTION_ARTISTE PRIX_MINIMUM
POURCENTAGE_GALERIE MONTANT_ACOMPTE
MLD PRIX_VENTE 4
Association binaire non fonctionnelle (1/2)
L’association devient une table.
Chacune des pattes devient un lien.
MCD Oeuvre
Exposition N° oeuvre
Catalogue Titre oeuvre
N° exposition 1,n 0,n
Prix expo Prix minimum
Date début
Montant acompte
Prix vente
5
Association binaire non fonctionnelle (2/2)
MCD Oeuvre
Exposition N° oeuvre
Catalogue Titre oeuvre
N° exposition 1,n 0,n
Prix expo Prix minimum
Date début
Montant acompte
Prix vente
OEUVRE
EXPOSITION CATALOGUE PK_OEUVRE
N°_OEUVRE
PK_EXPOSITION PK_CATALOGUE
N°_EXPOSITION N°_OEUVRE N°_ARTISTE
N°_EXPOSITION TITRE_OEUVRE
DATE
PRIX_MINIMUM
DATE_DÉBUT PRIX_EXPO
MONTANT_ACOMPTE
MLD PRIX_VENTE
6
Association ternaire
Fournisseur Entrepôt FOURNISSEUR ENTREPÔT
N° fournisseur N° entrepôt PK_FOURNISSEUR PK_ENTREPÔT
Nom fournisseur Adresse entrepôt N°_FOURNISSEUR N°_ENTREPÔT
0,n 0,n
NOM_FOURNISSEUR ADRESSE_ENTREPÔT
Fournir
FOURNIR
0,n PRODUIT PK_FOURNIR
PK_PRODUIT N°_FOURNISSEUR
Produit N°_PRODUIT N°_ENTREPÔT
N° produit LIBELLÉ_PRODUIT N°_PRODUIT
Libellé produit
MCD MLD
7
Ternaire avec CIF
Fournisseur Entrepôt
N° fournisseur N° entrepôt FOURNISSEUR ENTREPÔT
Nom fournisseur Adresse entrepôt PK_FOURNISSEUR PK_ENTREPÔT
0,n 0,n N°_FOURNISSEUR N°_ENTREPÔT
Fournir NOM_FOURNISSEUR ADRESSE_ENTREPÔT
0,n
FOURNIR
Produit PRODUIT PK_FOURNIR
N° produit CIF PK_PRODUIT N°_ENTREPÔT
Libellé produit N°_PRODUIT N°_PRODUIT
LIBELLÉ_PRODUIT N°_FOURNISSEUR
MCD MLD
8
Association binaire fonctionnelle
avec cardinalités (0,1) / (?, n)
Oeuvre
MCD
N° oeuvre Facture client
Titre oeuvre Acheteur
0,1 1,n N° facture
Prix minimum
Date facture
Montant acompte
Prix vente
• Pas de problème si clef externe non renseignée autorisée.
• Comment faire sinon ?
OEUVRE MLD
PK_OEUVRE FACTURE_CLIENT
N°_OEUVRE ACHETEUR
PK_FACTURE_CLIENT
N°_ARTISTE PK_ACHETEUR
N°_FACTURE
TITRE_OEUVRE N°_OEUVRE
N°_CLIENT
PRIX_MINIMUM N°_FACTURE
DATE_FACTURE
MONTANT_ACOMPTE
PRIX_VENTE
9
Association entre occurrences de la
même entité
• Deux particularités :
1. Faire apparaître les rôles différents des pattes.
2. Cardinalités minimum nulles.
10
Cas d’une ternaire
0,n
MCD
Titulaire
Acteur
Rôle Distribué
0,n N° acteur
N° rôle
Nom acteur
Nom personnage
Prénom acteur
0,n
Doublure
N°_ACTEUR = N°_ACTEUR_TITULAIRE
DISTRIBUÉ ACTEUR
RÔLE
PK_DISTRIBUÉ PK_ACTEUR
PK_RÔLE
N°_RÔLE N°_ACTEUR
N°_RÔLE
N°_ACTEUR_TITULAIRE NOM_ACTEUR
NOM_PERSONNAGE N°_ACTEUR_DOUBLURE PRÉNOM_ACTEUR
MLD N°_ACTEUR = N°_ACTEUR_DOUBLURE 11
Cas
2. Cas d’une binaire d’une binaire
0,1
Fils
Personne
N° personne Filiation
Nom famille
Prénom
0,n
Père
MCD
12
Cas d’une binaire : avec Null autorisé
PERSONNE
PK_PERSONNE
N°_PERSONNE
N°_PERSONNE_PÈRE N°_PERSONNE = N°_PERSONNE_PÈRE
NOM_FAMILLE
PRÉNOM
13
Cas d’une binaire : avec Null interdit
N°_PERSONNE = N°_PERSONNE_FILS
PERSONNE
FILIATION
PK_PERSONNE
PK_FILIATION
N°_PERSONNE
N°_PERSONNE_FILS
NOM_FAMILLE
N°_PERSONNE_PÈRE
PRÉNOM
N°_PERSONNE = N°_PERSONNE_PÈRE
MLD
14
Historisation (1/2)
MCD Produit
Fournisseur Fournir N° Produit
N° Fournisseur 0,n 1,1 Nom produit
Nom Fournisseur Description
Prix d'achat (H)
15
Historisation (2/2)
PRODUIT
FOURNISSEUR PK_PRODUIT
N°_PRODUIT
PK_FOURNISSEUR
N°_FOURNISSEUR Fournir N°_FOURNISSEUR
NOM_PRODUIT
NOM_FOURNISSEUR
DESCRIPTION
MLD
H_PRIX_D'ACHAT_PRODUIT
PK_H_PRIX_D'ACHAT_PRODUIT
N°_PRODUIT
DATE_HISTO
PRIX_D'ACHAT
16
Identifiant relatif (1/2)
• L’identifiant relatif correspond très précisément à une clef
primaire composée.
Chambre
Bâtiment N° Chambre
Etage
N° Bâtiment Nombre de lits
Adresse N° étage Prix
(R) (R)
1,n 1,1 1,n 1,1
MCD
Comporte Compose
• Ce qui était implicite dans le Modèle Conceptuel de Données,
devient explicite dans le Modèle Logique de Données.
17
Identifiant relatif (2/2)
BÂTIMENT CHAMBRE
PK_BÂTIMENT PK_CHAMBRE
N°_BÂTIMENT N°_BÂTIMENT
ADRESSE N°_ÉTAGE
N°_CHAMBRE
NOMBRE_DE_LITS
PRIX
Comporte
Compose
ETAGE
PK_ETAGE
N°_BÂTIMENT
N°_ÉTAGE MLD
18
Héritage
• La traduction d’une entité complexe (légataire et
héritiers), peut se faire de plusieurs façons.
• La plus immédiate est que chacune des composantes
devienne une table.
CLIENT
Client PK_CLIENT
N°_CLIENT
N° client NOM_CLIENT
Nom client ADRESSE_CLIENT
Adresse client
Her_1 Her_1
XT PERSONNE_PHYSIQUE PERSONNE_MORALE
PK_PERSONNE_PHYSIQUE PK_PERSONNE_MORALE
N°_CLIENT N°_CLIENT
Personne physique Personne morale PRÉNOM STATUT
SEXE NOM_RESPONSABLE
Prénom Statut NOM_CLIENT NOM_CLIENT
Sexe Nom responsable ADRESSE_CLIENT ADRESSE_CLIENT
MCD MLD 19