0% ont trouvé ce document utile (0 vote)
4 vues45 pages

Cours 3

Ce document présente un cours sur le Modèle Logique de Données (MLD) axé sur le modèle relationnel, introduit par Edgar Frank Codd. Il aborde les concepts fondamentaux tels que les domaines, les relations, les attributs, les clés primaires et étrangères, ainsi que les règles de transformation d'un Modèle Conceptuel de Données (MCD) en MLD. Le cours est destiné aux étudiants de deuxième année en ingénierie informatique à l'Université Saad Dahlab Blida.

Transféré par

Naoufel Ben
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues45 pages

Cours 3

Ce document présente un cours sur le Modèle Logique de Données (MLD) axé sur le modèle relationnel, introduit par Edgar Frank Codd. Il aborde les concepts fondamentaux tels que les domaines, les relations, les attributs, les clés primaires et étrangères, ainsi que les règles de transformation d'un Modèle Conceptuel de Données (MCD) en MLD. Le cours est destiné aux étudiants de deuxième année en ingénierie informatique à l'Université Saad Dahlab Blida.

Transféré par

Naoufel Ben
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université Saad DAHLAB BLIDA

Faculté des Sciences


Département d’informatique

Cours 3: Modèle logique de données


(MLD)

Enseignante responsable:
Dr. Nesrine LAHIANI
Public cible : 2ème année Ingénieur
Contact : [Link]@[Link]
Approche bases de données : Conception

Réel

• Indépendant du
Modèle modèle de données
• Indépendant du
conceptuel SGBD Etudiant Emprunter Livre

• Dépendant du
Modèle modèle de données
Codasyl Relationnel Objet XML
• Indépendant du
logique SGBD

• Dépendant du • Organisation physique des données


Modèle modèle de données
• Structures de stockage des données
• Dépendant du
Physique SGBD • Structures accélératrices (index)

2
Introduction

 Dans ce cours, on présente un exemple de MLD : le modèle relationnel.


 Modèle relationnel :
 Introduit par Edgar Frank Codd en 1970
 Définition : c’est une représentation des données sous forme de
relations.
 Base théorique solide : théorie des ensembles et logique mathématique.
 Utilisé par beaucoup de SGBDs commerciaux :
 Oracle.
 MySQL
 DB2
 SQL server, etc.
Domaine (1)

 Définition :
 Est un ensemble infini ou fini de valeurs. Il peut être défini en extension

ou en intension :

 Intension : citer les caractéristiques des valeurs.

• Exemple : Domaine de la propriété prix = {n | 0  n  1500}

 Extension : citer explicitement toutes les valeurs.

• Exemple : Domaine de la propriété booléen = {0, 1}


Domaine (2)

 Ensemble de valeurs ATOMIQUES (primitives)


 Exemples:
 ENTIER
 REEL
 CHAINESDE CARACTERES
 EUROS
 SALAIRE= {4 000..100 000}
 COULEUR= {BLEU, BLANC, ROUGE}
 POINT = {(X:REEL,Y:REEL)}
 TRIANGLE= {(P1:POINT,P2:POINT,P3:POINT)}

5
Produit cartésien

 Définition :
 Le produit cartésien des domaines D1,…,Di,…,Dn est égale à l’ensemble de

tous les n-uplets (ou tuples) de la forme <V1,…,Vi,…,Vn> tel que V1 

D1,…, Vi Di,…,Vn  Dn.

 Notation : le produit cartésien de D1 ,D2 et D3 est noté : D1  D2  D3

• Exemple : soient D1 = Nom = {Ali, Salah} et D2 = Age = {45, 23}

alors : D1  D2 = {<Ali, 45>, <Ali, 23>, <Salah, 45>, <Salah, 23>}

 Exemple:
• D1 = {Bleu,Blanc,Rouge}
• D2 = {Vrai, Faux}
Relation (1)

 Définition 1 :
 Une relation est un sous ensemble du produit cartésien d’un ensemble de

n domaines D1,…,Di,…,Dn. Une relation est caractérisée par un nom.

 Voici un exemple d’une relation Etudiant qu’on peut construire à

partir des 3 domaines : Nom = {Mounir, Maha}, Prénom = {Ben

Salah, Ben Mabrouk} et Matricule = {‘992393’, ‘992394’} :


Exemple d’une relation étudiant :
Matricule Nom Prénom
992393 Mounir Ben Salah
992394 Maha Ben Mabrouk
Relation (2)

 Définition 2 :
 Une relation est une table à deux dimensions tels que :

 Une ligne de cette table est un n-uplet ou tuple.

 Une colonne de cette table est un attribut.

Nom d’attribut (Film)

N-uplet
Valeurs
d’attribut
Attribut

 Définition :
 Un Attribut d’une relation R :

 Est une colonne de la table qui représente R.

 Est caractérisé par un nom.

 Prend ses valeurs d’un sous ensemble d’un domaine.

Relation étudiant :
Matricule Nom Prénom Attributs
992393 Mounir Ben Salah
992394 Maha Ben Mabrouk Tuple
Clé d’une relation (1)

 Définition 1 :
 Est un groupe formé par le minimum d’attributs tel que la connaissance
d’une valeur de ce groupe implique la connaissance d’un seul tuple de la
relation.

 Définition 2 :
 La clé d’une relation R(A1,A2,…,An) est un sous ensemble X d’attributs tel
que :
 XR
 X  A1,A2,…,An
 Il n’existe pas Y  X tel que Y  A1,A2,…,An
Clé d’une relation (2)

 Contraintes:
 Toute relation doit inclure une clé. Ce qui implique qu’une relation ne
peut pas inclure deux tuples identiques.
 La valeur de chaque attribut de la clé doit être connue à tout instant (des
valeurs Non NULL).
 Si une relation possède plusieurs clés alors on choisit une qui sera la clé
primaire et les autres seront des clés candidates.
 Critères de choix d’une clé : Minimum d’attributs, attributs non NULL,
attributs simple (typiquement : entier, chaîne de caractères courte).
 S’il est impossible de trouver une clé ou impossible de satisfaire les
critère de choix d’une clé alors on peut ajouter une clé artificiel.
Clé d’une relation (3)

 Activité 1 :
 Est-ce que le numéro de sécurité sociale (NSS) est une clé de Personne ?
 Réponse : non car le NSS peut être NULL pour certaines personnes.
 Choisir une clé primaire pour la relation étudiant parmi les clés
candidates suivantes : Numéro de carte d’identité nationale (NCIN),
Numéro passeport (NPASS) et Matricule étudiant (METUD).
 Réponse :
• NCIN est NULL (étudiants étrangers) donc n’est pas une clé.
• NPASS est NULL pour certains étudiants donc n’est pas une clé.
• METDU est une clé car elle satisfait les critères de choix d’une clé.
Clé étrangère d’une relation (4)

 Définition :
 Une clé étrangère est un groupe d’attributs d’une relation R1 qui apparaît
comme clé primaire dans une autre relation R.

Relation Inscrit :
Clé étrangère
Matricule Matière
992393 SEII
992393 BDII
992394 AlgoII

Relation étudiant :
Clé primaire
Matricule Nom Prénom
992393 Mounir Ben Salah
992394 Maha Ben Mabrouk
Clé étrangère d’une relation

 Contrainte d’intégrité référentielle :


 Une contrainte d'intégrité référentielle entre une relation R1 (contient
une clé étrangère) qui référence une relation R2 (contient une clé
primaire) :
 But : maintenir la cohérence de données de R1 et R2.
 Comment : un tuple de R1 doit référencer un tuple existant de R2.
 Conséquences :
• Insertion d’un tuple dans R1 : la valeur de la clé étrangère doit
correspondre à une valeur de la clé primaire de R2.
• Suppression d’un tuple de R2 : les tuples de R2 qui référence le
tuple supprimé doivent être aussi supprimés.
Schéma d’une relation

 Définition :
 Le schéma d’une relation spécifie :
 Le nom de la relation.
 La liste des attributs de la relation ainsi que leurs domaines.
 La clé primaire (souligné) et étrangère (suivie par #) de la relation.
 Exemple de schéma de la relation Inscrit :

Inscrit (Matricule #: entier, AnnInscrit : entier, Matière# : chaîne de caractères)

Simplification

Inscrit (Matricule #, AnnInscrit , Matière#)


Schéma d’une base de données

 Définition :
 Ensemble des schémas des relations.
 Exemple de schéma d’une base de données :
 ETUDIANT (MatEtud, NomEtud, DateNaiss, Email, Tel)
 UNITE_ENSEIGNEMENT (NumUE, LibUE)
 ENSEIGNANT (NumEns, NomEns)
 ELEMENT_CONSTITUTIF (NumEC, LibEC, NumUE#,
NumEnsResp#)
 EMPLOI_TEMPS (NumSce, NumEC#, NumEns#, SalleSce, Jour,
TypeSce, CrnHor)
 INSCRIT (MatEtud#, NumEC#)
Partie 2 :
Transformation MCD-MLD
Introduction

 Le modèle conceptuel de données (MCD) ou modèle E-A validé est


transformé en plusieurs modèles logiques selon le type du SGBD à
utiliser :
 SGBD hiérarchique : modèle logique hiérarchique.
 SGBD réseau : modèle logique réseau.
 SGBD relationnel : modèle logique relationnel.
 SGBD objet : modèle logique objet.
 Dans ce cours, on s’intéresse au modèle logique relationnel.
 La transformation ou génération MCD-MLD est systémique à travers un
ensemble de règles de transformation.
 Ces règles génèrent un modèle relationnel.
Règle 1: cas d’une entité non vide (1)

 Définition :
 Une entité est dite non vide si elle comporte au moins une propriété
autre que son identifiant.

 Règle 1 :
 Une entité non vide se transforme en une relation :
 L’identifiant de l’entité devient la clé de la relation.
 Les propriétés de l’entité deviennent les attributs de la relation.
 Exemple :
Client

NumClt Règle 1 Client (NumClt, NomClt)


NomClt
Règle 1: cas d’une entité non vide (2)

 Activité 2 :
 Elaborer le modèle relationnel du diagramme E-A suivant :

Employé

NumEmp
NomEmp
PrénomEmp

 Réponse :
Employé (NumEmp, NomEmp, PrénomEmp)
Règle 2 : cas d’une entité vide

 Définition :
 Une entité est dite vide si elle comporte seulement son identifiant.

 Règle 2 :
 Une entité vide n’a pas de correspondant dans le modèle relationnel,
sauf exception.
 Exemple :

Date
Règle 2 Date (Dat)
Dat
Exception de la Règle 2
 La règle 2 n’est pas applicable si l’entité vide satisfait les conditions :
 il est nécessaire de constituer un répertoire des données de l’entité,
et
 la projection des autres relations sur l’attribut concerné ne donne pas
ce répertoire.
 Exemple :
TypeLivre   CodType Est_De_Type
Livre TypeLivre
CodLivre 1, 1 Est_De_Type 0, n
CodType
Titre

TypeLivre (CodType)
Association binaire (1)

 Cardinalité 1,1- 1,n (Règle 3)


 Cette association correspond à une paire de cardinalité 1,1 et 0,n ou 1,n
 Dans ce cas, la table issue de l'entité coté cardinalité 1,1 reçoit comme clé
étrangère la clé primaire de l'entité liée.

AUTEUR (Num_Auteur, Nom_Auteur, Date_Naissance)


LIVRE (Num_Livre, Titre_Livre, Num_Auteur#)
Association binaire (2)

 Cardinalité 0,1 -1,1


 Cette association correspond à une paire de cardinalité 1,1 et 0,1

 La meilleure solution est que la table CD_ROM reçoivent comme clé


étrangère Num_Micro. Car un CD_Rom est affecté à un et un seul
micro. Ce qui donne :
MICRO (Num_Micro, Marque_Micro)
CD_ROM (Num_Cd, Marque_Cd, Num_Micro#)
Association binaire (3)
 Cardinalité 0,1 -0,1

 Cet exemple illustre le fait que certains CD_Rom n'équipent pas de micro
 En reprenant le modèle relationnel, et partant qu'une clé étrangère ne peut être nulle, la
seule solution est de créer une table intermédiaire qui illustre le fait que l'on mémorise les
cas d'association entre un lecteur de CD-Rom et un Micro.
 Ce cas d'association nécessite la création d'une autre table (ici EQUIPER) prenant comme
clé primaire la composition des clés primaires des autres tables devenant clé étrangère
dans la table COMPOSER:
MICRO (Num_Micro, Marque_Micro)

CD_ROM (Num_Cd, Marque_Cd)

EQUIPER (Num_Micro#, Num_Cd#)


Exemple

Animateur
0, 1 Activité
0, 1 Animer
NumAn NumAct
Nom Description

Animateur (NumAn, Nom)


Activité (NumAct, Description)
Animer (NumAn#, NumAct#)
Association binaire (4)

 Cardinalité 0,1 -0,n ou 1,n


 Il existe plusieurs solutions, l'une meilleure que l'autre.
 La première solution assimile la cardinalité 0,1 à une cardinalité 1,1 et
donc il y a migration de la clé primaire de la table coté 1,n vers la table
coté 0,1 ce qui laisse la possibilité d'une valeur nulle pour la clé
étrangère.

RESPONSABLE (Num_Responsable, Nom_Responsable)


EQUIPE (Nom_Equipe, Num_Responsable#)
Association binaire (5)
 La deuxième solution consiste à créer une table intermédiaire avec une clé
primaire composée.

• EQUIPE (Nom_Equipe)
• RESPONSABLE (Num_Responsable, Nom_Responsable)
• DIRIGER (Nom_Equipe#, Num_Responsable#)

 Si la deuxième solution est la meilleure, la premiére est souvent mise en


oeuvre dans la mesure ou le cas 0 est rare et correspond plus à un cas d'école
ou une phase transitoire. C'est pour cela que la solution à 2 tables reste
majoritairement utilisée pour des raisons d'allégement du modèle relationnel.
Association binaire (6)

 Cardinalité x,n -x,n


 Ce cas regroupe toutes les associations où la cardinalité maximale de part et
d'autre est à n, la cardinalité minimale pouvant être 0 ou 1.
 Dans ce cas, la règle consiste à la création d'une table issue de l'association,
recevant comme clé étrangère les clés primaires des 2 autres tables.

• MICRO (Num_Micro, Marque_Micro)


• PERIPHERIQUE (Type_Periph, Marque_Periph)
• EQUIPER (Num_Micro#, Type_Periph#)
Association binaire (8)
 Exemple :
 Les entités Dépôt et Produit se transforment selon la règle 1.
 L’association stocker se transforme selon la règle 3.

Produit
Dépôt
1, n Stocker 1, n
NumDep CodP
QtéStock
AdrDep LibP
PrixP

Dépôt (NumDep, AdrDep)


Produit (CodP, LibP, PrixP)
Stocker (NumDep#, CodP#, QtéStock)
Associations n-aires (1)
• Le traitement de ce type d'association est en fait une généralisation du cas
précédent.
• L'association génère une table, cette table reçoit en clé étrangère les
attributs clés primaires des autres tables, la composition de chaque clés
étrangères devenant la clé primaire.
• Si l'association est porteuse de données, les données portées deviennent
des attributs de la table composée.
Classe
Enseignant
1, n Enseigner 1, n CodClas
CodEns
NbHeure NomClas
NomEns
1, n Effectif
PrénomEns
Matière

CodMat
DesgMat
Associations n-aires (2)
 Réponse :
 Les entités Enseignant, Matière et Classe se transforment
conformément à la règle 1.

Enseignant (CodEns, NomEns, PrénomEns)

Classe (CodClas, NomClas, Effectif)

Matière (CodMat, DesgMat)

Enseigner (CodEns#, CodClas#, CodMat#, NbHeure)


Associations réflexives
• Il faudra cependant différencier les noms des clefs
étrangères de la table associative correspondantes
tout en référençant la même clef primaire :

directeur
Employé
0,n

NumEmp Est_directeur
NomEmp
0,1
PrénomEmp
employé

Employé (NumEmp, NomEmp, PrénomEmp, directeur#)


Directeur : clé étrangère qui référence la clé primaire NumEmp
Règles de passage
Lors de la transformation d'un modèle E/A en modèle
relationnel, certaines règles clés sont suivies :

1) Les entités sont représentées par des relations, permettant de


structurer les données de manière organisée.
2) Les attributs des entités deviennent les attributs des relations
correspondantes.
3) Les associations entre les classes sont traduites en clés
étrangères, assurant l'intégrité référentielle.
4) Les associations de type plusieurs-à-plusieurs nécessitent
l'ajout d'une table de jonction pour maintenir les relations.
Activité :

 Traduire le MCD suivant en un MLD relationnel :

Client Voiture
CIN 1,n louer 0,n
NbJour Immatriculation
Nom
Type
Prénom
couleur
Adresse
0,n DateLocation
Date

Dat
Réponse :
 Les entités Client et voiture se transforment selon la règle 1.
 L’entité vide Date se transforme conformément à la règle 2.

Client (CIN, Nom, Prénom, Adresse)

Voiture (Immatriculation, Type, Couleur)

Louer (CIN#, Immatriculation#, DateLocation, NbJour)


Exemple

Commande
Client
1, 1 Passer 1, n
NumCom
NumClt
DateCom
NomClt
Total

Commande (NumCom, DateCom, Total, NumClt#)


Client (NumClt, NomClt)
Exemple 2
 L’entité Etudiant se transforme en relation selon la règle 1.
 L’entité vide Cycle n’a pas de correspondant selon la règle 2.

Etudiant
Cycle
1, 1 A_Pour_Niveau 1, n
NumE
CodC
NomE
PrénomE

Etudiant (NumE, NomE, PrénomE, CodC)


Exercice 1
• Pour chacun des schémas E/A suivants,
construire le schéma relationnel correspondant.
Indiquer, précisément, pour chaque relation sa
clé primaire et ses clés étrangères.
Shéma1

 CONSULTATION (No, Date, #Matricule, #NSS)


 MEDICAMENT (Code, NomMédicament)
 MEDECIN (Matricule, Nom, Prénom, Tel)
 PATIENT (NSS, Nom, Prénom, Tel)
 PRESCRIPTION (#No, #Code, Nb_Prise)
Shéma 2
Réponse:

 JOURNALISTE (IDJ, Nom, Date_Nais)


 PERSONALITE (IDP, Nom, Prénom, Nation)
 ARTICLE (IDA, Contenu, #IDJ, #IDS)
 JOURNAL (IDL, Titre, Adresse)
 SUJET (IDS, Libellé)
 NUMERO (IDN, Date)
 INTERVIEW (#IDJ, #IDP)
 TRAVAIL (#IDJ, #IDL)
 APPARITION (#IDA, #IDN)
Exercice 2
Soit la base de données relationnelle relative à la gestion des
notes:
• ETUDIANT (NumInsc, Nom, Prénom, #Inscrit)
• MATIERE (CodeMat, NomMat)
• NIVEAU ( CodeNiv, NomNiv)
• RESULTAT (#NumIns, # CodeMat, Note)

Avec les contraintes d'intégrité référentielle suivantes:


• La clé étrangère ETUDIANT. Inscrit référence la clé
primaire NIVEAU. CodeNiv La clé étrangère RESULTAT.
NumInsc référence la clé primaire ETUDIANT. NumInsc
La clé étrangère RESULTAT. CodeMat référence la clé
primaire MATIERE. CodeMat
Construire le modèle entité-association
Montrer les anomalies de l'extension suivante:

Vous aimerez peut-être aussi