Vous êtes sur la page 1sur 54

ChapIV.

Modèle logique de Données (MLD)

Cours
Bases de Données
Chapitre 4 – Modèle Relationnel
Pr. Mohammed QBADOU
Pr M.QBADOU
ChapIV. Modèle logique de Données (MLD)

▪ Introduction

▪ Les concepts de base

▪ Règles d’Intégrité

▪ Passage du MCD au MLD

▪ Algèbre relationnelle

▪ Contrôle du MLD : formes normales


Pr M.QBADOU

▪ Exercices

2
ChapIV. Modèle logique de Données (MLD)
I. Introduction
Le modèle Logique de Données MLD permet d’intégrer l’état de l’art technologique
des SGBD pour décrire les enregistrement logiques et entrevoir la structuration
physique des données.
Un MLD représente le schéma de la base de données (Tables et jointures) à créer sous
un système de gestion des bases de données SGBD
Il existe plusieurs types de modèles logiques :
• Modèle hiérarchique et Modèle Réseau,
• Modèle Relationnel,
• Modèle Objet ….
A chaque type de modèle correspond un environnement d’implantation (logiciels)
Pr M.QBADOU

• Système de gestion de fichier (SGF)


• Système de Bases de Données Navigationnelles (SGDBN)
• Système de Gestion de Bases de Données Relationnelles (SGBDR)
• Système de Gestion de Bases de Données Objets (SGBDO)
3 Le cours présente les concepts du modèle relationnel.
ChapIV. Modèle logique de Données (MLD)
Modèle relationnel (Avantages)

• Le modèle relationnel a été formalisé par CODD en 1970.

• Utilisé par beaucoup de SGBD commerciaux

Exemples :
Oracle, Informix, DB2, MySql, SqlServer, dBase, Access …)

• Proche du modèle entité-association permettant une présentation schématique.

• Supporte les opérations ensemblistes :


Algèbre relationnelle
Pr M.QBADOU

• Permet de traiter les problèmes de cohérence et de redondance des données :


Règles d’intégrité supportées

• Supporte des langages standards non procéduraux permettant la description, la


manipulation et le contrôle des données :
Langage SQL
4
ChapIV. Modèle logique de Données (MLD)
II. Concepts

MCD

▪ Attribut

▪ Entité

▪ Identifiant
MLD
Règles
▪ Association et CIF
▪ Champs
Pr M.QBADOU

▪ Table

▪ Clé primaire

▪ Clé étrangère
5
ChapIV. Modèle logique de Données (MLD)
2.1. Domaine
un domaine est un ensemble dénombrable (fini ou infini) de valeurs atomiques. Un
domaine est caractérisé par :
• Un nom
• Une ensemble de valeurs

Exemples
- Entier Octet = {0,1, … ,255} (Byte)
- Entier Court = {-2-15 , …0, … ,215 - 1} (Integer, int)
- Entier Long = {-2-31 , …0, … ,231 - 1} (Long)
- Réel Simple (single, float , real)
Pr M.QBADOU

- Réel Double (Double)


- Monétaire (Currency, Money)
- Logique = {Faux , Vrai} (Boolean, Logical)
- Date/Heure = {#01/01/0100 00:00:00# …#31/12/9999 23:59:59#} (Date)
- Chaîne de texte (String, Char(taille), VarChar(taille)) …
6
ChapIV. Modèle logique de Données (MLD)
2.2. Attribut
Un attribut appelé aussi champs, est la plus petite information représentable dans
un modèle relationnel et qui possède :
• Un nom
• Un domaine
• Un sens (une utilité)

Exemples
- Matricule : Entier court
- PrixAchat : Monétaire
Pr M.QBADOU

- NomClient : Chaîne
- AdresseClient : Chaîne
- PoidsVéhicule : Réel Simple
- DateNaissance : Date/Heure
- …
7
ChapIV. Modèle logique de Données (MLD)
2.3. Table(Relation)
une Table est un tableau à deux dimensions : Les colonnes constituent un ensemble
d’attributs appartenant chacun à un domaine. Les lignes représentent les valeurs prises
chacune par un attribut. Une ligne est appelée aussi enregistrements ou tuples. Une
relation est caractérisée par :
• un nom • Une dimension (nombre d’attributs)
• une liste <attribut : domaine> • Un degré (nombre de lignes)
• une clé primaire • une sémantique

Exemple Etudiant (N°Etud, Nom , Prénom , Age)


Clé primaire : N° Etud
Définition : tout étudiant actuellement immatriculé à l’école
Pr M.QBADOU

Tuple (enregistrement) Attribut


Etudiant
N° Etud Nom Prénom Age
136 Dupont Jean 19
253 Aubry Annie
101 Duval 22
8 147 Dupont Marc 21
ChapIV. Modèle logique de Données (MLD)
2.4. Clé primaire
La clé primaire d’une Table est le groupe minimal d’attributs de la table dont la
valeur est unique et obligatoire.
Une clé primaire composée d’un seul champs est dite Monochamps
Une clé primaire composée de plusieurs champs est dite Multichamps

Exemples
Clé simple : Etudiant (N°Etud, Nom , Prénom , Age)
Clé composée : Cliniques(NomClinique, Localité, Tél)

2.5. Clé étrangère


La clé étrangère dans une Table B est le groupe d’attributs de B qui constitue une clé
Pr M.QBADOU

primaire d’une autre table A. Elle réalise le lien entre les enregistrements des deux
tables.

Exemples
Filières(CodeFilière, NomFilière)
9 Etudiant (N°Etud, Nom , Prénom , Age, CodeFilière#)
ChapIV. Modèle logique de Données (MLD)
2.6. Schéma relationnel (MLDR)
le schéma d’une base de données relationnelle est constitué :
• d’un ensemble de schémas de relations(tables) SR={R1, R2,..., Rn }
• d’un ensemble de règles d’intégrité.

Exemple : Schéma relationnel gestion des contrats d’une société d’intérim


CLIENTS(Codclient, Nom, Prenom, AdRue, AdVille, CodePostal)
CONTRATS(NumeroContrat, Objet, DateSign, Datedeb, Datefin, #CodeCli)
PERSONNES(Matricule, Nom, Prenom, AdRue, Advil, CodePostal, #CodeQualif)
QUALIFICATIONS(CodeQualif, Libelle, Tarif)
Pr M.QBADOU

INTERVENIR(#NumContrat, #Matricule, #CodeQualif)


EXIGER(#NumContrat, #CodeQualif, Nbjh)
Contraintes d’integrité:
DateSign < = DateDébut < = DateFin
Tarif > = 70 DH
Nbjh >= 1
10

ChapIV. Modèle logique de Données (MLD)
III. Règles d'intégrité
3.1. Définition
les règles d’intégrité (R.I.) sont des conditions qui doivent être vérifiées à tout
moment par les données contenues dans la base de données :

• Intégrité de domaine • Intégrité de référence


• Intégrité de relation(table)

Intégrité De Domaine
contrôle des valeurs des attributs

• Note[0 .. 20] • Montant > 0


Pr M.QBADOU

contrôle entre valeurs des attributs


• Date_Début < Date_Fin
• x,y  Personne, (x,y)  mariage  x.état_civil = marié &
y.état_civil = marié & x.sexe <> y.sexe
11
ChapIV. Modèle logique de Données (MLD)
Intégrité de relation (Contrainte De Clé)
Chaque relation doit posséder une clé primaire  Unicité des tuplets
Impose que tout attribut faisant partie de la clé d’une relation soit non nul

Intégrité de référence (Clé étrangère)

Impose que tout tuple d’une relation R1 qui se réfère à une relation R2 doit se
référer à un tuple existant dans la relation R2. Elle s’applique sur des relations qui
décrivent des associations.

Exemple :
la relation qui exprime le lien de travail entre un médecin et une polyclinique.
Pr M.QBADOU

Polyclinique
Medcins
Nom Travail
Localité NumMatr
Tél Nom# Nom
Localité# Spécialité
12 NumMatr# Tél
ChapIV. Modèle logique de Données (MLD)

IV. Méthode d’implantation d’un MLDR


 Transformation du modèle E/A :
• transformation des associations n-aires en associations binaires
• entité  relation (Table)
• Identifiant  clé
• association  dépend de sa cardinalité
4.1. Règle 1 : Table et clé primaire
Toute entité est transformée en table (relation). Les propriétés de l ’entité deviennent
celles de la table. L ’identifiant devient la clé primaire

Entité Entreprise Table Entreprise


Pr M.QBADOU

Entreprise ENTREPRISE
N° Entreprise N° ENTREPRISE
Nom NOM
Adresse ADRESSE
Code_Postal CODE_POSTAL
Localité LOCALITÉ
13
ChapIV. Modèle logique de Données (MLD)
4.2. Règle 2 : Relation binaire (…,n) - (…,1)
La clé primaire de l ’entité reliée par (…,n) devient clé étrangère de l’entité reliée par
(…,1)

Auteur Livre
1,1 AUTEUR LIVRE
N° auteur 1,n Ecrire N° livre
Nom Titre N° AUTEUR N° LIVRE
NOM Ecrire N° AUTEUR#
TITRE
4.3. Règle 3 : Relation binaire (0,1) - (1,1)
La clé primaire de l’entité reliée par (0,1) devient clé étrangère de l’entité reliée par (1,1)
Commande 0,1 1,1 Facture
N° commande Impliquer N° facture
Pr M.QBADOU

Date commande Date facture


Montant Payé ?
FACTURE
COMMANDE Impliquer N° FACTURE
N° COMMANDE N° COMMANDE#
DATE COMMANDE DATE FACTURE
MONTANT PAYÉ ?
14
ChapIV. Modèle logique de Données (MLD)
4.4. Règle 4 : Relation binaire et ternaire (…,n) - (…,n)
On crée une table supplémentaire ayant comme clé primaire une clé composée des
clés primaires des 2 entités. Lorsque la relation la relation contient des propriétés
celles-ci deviennent attributs de la table.

Commande Article
N° commande 1,n Se composer 0,n
N° article
Date Libellé
quantité
Prix unitaire

SE COMPOSER ARTICLE
Pr M.QBADOU

COMMANDE
N° COMMANDE# N° ARTICLE
N° COMMANDE LIBELLÉ
N° ARTICLE#
DATE PRIX
QUANTITE UNITAIRE

15
ChapIV. Modèle logique de Données (MLD)
Enseignant 0,n Matière
0,n
N° enseignant Enseigner N° Matière
Nom Libellé
Prénom
1,n
Classe
N° Classe
Libellé ENSEIGNANT
Cycle
N° ENSEIGNANT
NOM
PRÉNOM
ENSEIGNER
N° ENSEIGNANT#
Pr M.QBADOU

N° MATIÈRE#
N° CLASSE#
CLASSE
N° CLASSE MATIÈRE
LIBELLÉ
CYCLE N° MATIÈRE
LIBELLÉ
16
ChapIV. Modèle logique de Données (MLD)
4.5. Règle 5 : Plusieurs relations entre 2 entités
Les règles générales de 1 à 5 s ’appliquent
Posséder
Personne 0,n 1,n Maison

N° personne N° maison
Nom Adresse
Prénom Localité

Habiter 1,n
1,1

POSSÉDER
Pr M.QBADOU

N° PERSONNE #
PERSONNE
N° MAISON#
MAISON
N° PERSONNE
N° MAISON# N° MAISON
NOM ADRESSE
PRÉNOM LOCALITÉ
17
ChapIV. Modèle logique de Données (MLD)
4.6. Règles 6 : Relations réflexives
Les règles générales s ’appliquent avec la seule différence que la relation est 2 fois
reliée à la même entité

Société 0,n
Filiale
N° société Détenir
Nom
% du capital
Capital Mère DETENIR
SOCIÉTÉ
0,n Mère
N° SOCIÉTÉ N° SOCIÉTÉ#
NOM N° SOCIÉTÉ FILIALE#
CAPITAL % DU CAPITAL
Filiale

0,n
Employé
Pr M.QBADOU

Chef Employé
Matricule Hiérarchie
Matricule
Nom
Prénom Subordonné MatriculeChef#
Fonction Hiérarchie
0,1 Nom
Prénom
Fonction
18
ChapIV. Modèle logique de Données (MLD)
4.7. Règles 7 : CIF
La cléCible de la TableCible devient une clé étrangère dans la table TableCIF
La clé de la table TableCIF est composée de Cléorig1 et Cléorig2.

EntitéOrig1 EntitéCible TableCible


IdOrig1 CIF IdCible
TableOrig1 CléCible
… … TableCIF …
EntitéOrig2 CleOrg1
… CléOrig1#
IdOrig2
CléOrig2#

TableOrig2 CléCible#
CléOrig2
Exemple :

Niveau
Section
Pr M.QBADOU

Niveau CIF
NumSec
AffectationMatière Matière
AnnéeUniv Matière CodeMatière CodeMatière
Enseignant Niveau Matière
AnnéeUn CodeMatière Section
NumEns Matière Enseignant
AnnéeUn
NomEns
NumEns NumEns
PreEns
NomEns
Spécialité
PreEns
Département
Spécialité
Ville
Remarque : Département
Ville
19
Les entités qui ne contiennent que la clé Sont à éliminer du MLD
ChapIV. Modèle logique de Données (MLD)
4.8. Règles 8 : Héritage
Garder à la fois l’entité générique et les entités spécifiques. On distingue deux cas :
Valeurs des clés spécialisées sont héritées de la clé générique
Valeurs des clés spécialisées ne sont pas héritées de la clé générique
Cas 1 : Valeurs des clés spécialisées sont héritées de la clé générique
Véhicule
Véhicule
VéhiculeVéhicule
Num_Véhicu Nombre_cylind Marque Modèle Num_Véhicule
Num_Véhicule
Num_Véhicule
Num_Véhicule
le re Nombre_cylindre
Nombre_cylindre
Nombre_cylindre
Nombre_cylindre
MarqueMarque
Marque Marque
1 4 Renault R19 ModèleModèle
Modèle Modèle
2 6 SCANIA R144 LA 4X2 NA
VoitureVoiture
VoitureVoiture Camion
Camion Camion
Camion
3 5 Peugeot 506 Num_voiture
Num_voiture
Num_voiture
Num_voiture
XT XT
XT XT Num_camion
Num_camion
Num_camion
Num_cam
4 6 SCANIA R 124 LA 4X2 NA NombrePlace
NombrePlace
NombrePlace
NombrePlace Tonnage
Tonnage
TonnageTonnage

Num_Voiture NombrePlace Num_Camion Tonnage (t)


1 5 2 26
3 6
Pr M.QBADOU

4 19
On relie les tables spécialisées avec la table générique via les clés
On rajoute une propriété TypeVéhicule à la table générale pour accéder directement à la bonne
table spécialisée : Réduire le temps de recherche des informations spécialisées
Voiture Véhicule Camion
Num_Voiture Num_Véhicule Num_camion
NombrePlace Nombre_cylindre Tonnage
Marque
Modèle
20 TypeVéhicule
ChapIV. Modèle logique de Données (MLD)
Cas 2 : Valeurs des clés spécialisées ne sont pas héritées de la clé générique
Num_Véhicu Nombre_cylind Marque Modèle Véhicule
Véhicule
VéhiculeVéhicule
le re Num_Véhicule
Num_Véhicule
Num_Véhicule
Num_Véhicule
Nombre_cylindre
Nombre_cylindre
Nombre_cylindre
Nombre_cylindre
1 4 Renault R19 MarqueMarque
Marque Marque
2 6 SCANIA R144 LA 4X2 NA ModèleModèle
Modèle Modèle

3 5 Peugeot 506 VoitureVoiture


VoitureVoiture Camion
Camion Camion
Camion
XT XT
XT
4 6 SCANIA R 124 LA 4X2Num_voiture
NA Num_voiture
Num_voiture
Num_voiture XT Num_camion
Num_camion
Num_camion
Num_cam
NombrePlace
NombrePlace
NombrePlace
NombrePlace Tonnage
Tonnage
TonnageTonnage

Num_Voiture NombrePlace Num_Camion Tonnage (t)


1 5 1 26
3 6 2 19

Deux cas :
- introduire la clé spécialisée dans la table générique
 introduire une propriété typeVéhicule pour distinguer le type de la clé spécialisée introduite dans la
table générique. Voiture Véhicule Camion
Pr M.QBADOU

Num_Voiture Num_Véhicule Num_camion


NombrePlace Nombre_cylindre Tonnage
Marque
Modèle
TypeVéhicule
Num_Véh_spé

- introduire la clé générique dans toutes les tables spécialisées


Voiture Véhicule Camion
Num_Voiture Num_Véhicule Num_camion
NombrePlace Nombre_cylindre Tonnage
Num_Véhicule Marque Num_Véhicule
Modèle
21 TypeVéhicule
ChapIV. Modèle logique de Données (MLD)
V. Exercices
5.1. Gestion des Locations de chambres dans une suite d’hôtels

1,N Concerner
CLIENT
Prendre CONSOMMATIONS QtéCons
0,N 1,1
CodeClt
Nom N°consommation 1,N
Adresse Dateconsommation PRESTATION
0,N
Ville CodePrest
Tél Libellé
Effectuer 1,
N
LOCATIONS Offre
N°Location 1,1 Concerner PrixU
1,1
DateDébut
1,N
Pr M.QBADOU

DateFin
1,N Avoir 1,1
HÔTELS
CATEGORIE
CHAMBRE N°Hôtel
CodeCat
1,N Appartenir 1,1 N°Ch 1,N NomHôtel
Description
TélCh AdresseHôtel
CLASSES TélHôtel

Tarifer 1, Nbreétoiles
22 1,N TarifJour N
ChapIV. Modèle logique de Données (MLD)
5.2. Gestion des Intérimaires
Intérimaires Conventions
N° Intérimaire 1-N (1,1) N°Ordre
Signer
Nom … Durée
0-N 1-1
1-1
Avoir
Posséder

1-N 1-1
1-N Appartenir
Qualifications
Niveaux
CodeQualification
CodeNiveaux 1-N
0-N TauxJour
CoeffTaux 0-N
Exiger …
… Branches
CodeBranche
Intervenir 1-N Intitulé
Pr M.QBADOU

Contrats Clients
1-N N° Contrat 1-1 Signer 1-N CodeClt
DateDébut … NomClt …

Règlements
1-N
N° Règlement
Concerner 1-1 MontantRèg
23 …
ChapIV. Modèle logique de Données (MLD)
5.3. Gestion des emprunts de livres dans une bibliothèque

Catégories MotsCLés
CodeCatégorie MotClé
Parenté
Nom … 1-N
1-N
Enfant Parent
1-N Contenir
N°Page Exemplaires
1-1
Appartenir N°Exemplaire
1-1 1-N
TauxJour Adhérents
1-N
… N°Adhérent
1-1 Nom
Livres 0-N Adresse
N° Livre 1-N Avoir Porte sur Tél
1-1 Titre …
1-N
Pr M.QBADOU

Editer 1-1 1-N


Effectuer
Ecrire Emprunts
1-N 1-N N°Emprunt
DateEmprunt
Editeurs Auteurs DateRetour
CodeEditeur N° Auteur 1-1
NomEditeur … NomAuteur
24 …
ChapIV. Modèle logique de Données (MLD)
5. Exercices- correction
5.1. Gestion des Locations de chambres dans une suite d’hôtels

CONSOMMATIONS Concerner PRESTATION


CLIENT N°Consom#
N°consommation CodePrest
Dateconsommation CodePrest#
CodeClt QtéCons Libellé
Nom Codesctl #
Adresse
Ville Offre
Tél LOCATIONS
CodePrest#
N°Location N°Hôtel#
DateDébut PrixU
DateFin
CodeClt#
N°Ch# CHAMBRE
CATEGORIE HÔTELS
Pr M.QBADOU

N°Ch
CodeCat TélCh N°Hôtel
Description CodeCat# NomHôtel
N°Hôtel# AdresseHôtel
TélHôtel
Tarifer Nbreétoiles#
CLASSES
Nbreétoiles#
CodeCat# Nbreétoiles
25 TarifJour
ChapIV. Modèle logique de Données (MLD)
5.2. Gestion des Intérimaires
Intérimaires Conventions
N° Intérimaire N°Ordre
N°Intérimaire#
Intervenir Nom …
CodeNiveaux# Durée
N°Intérimaire#
N°Contrat# CodeQualif#

Qualifications
Niveaux
CodeQualification
CodeNiveaux
TauxJour
CoeffTaux Exiger …
… CodeNiveaux# CodeBranche#
CodeQualif#
Branches
N°Contrat#
CodeBranche
Intitulé
Pr M.QBADOU

Contrats
N° Contrat
DateDébut Règlements
Clients
CodeClt … N° Règlement
CodeClt# MontantRèg
NomClt … …
N°Contrat#
26
ChapIV. Modèle logique de Données (MLD)
5.3. Gestion des emprunts de livres dans une bibliothèque

Catégories MotsCLés Adhérents


CodeCatégorie MotClé N°Adhérent
Nomcat … MotsCléLivres
Nom
MotClé# Adresse
N°Livre#
Tél
N°Page
N°AdhPère#

Exemplaires
N°Exemplaire
Livres
TauxJour Emprunts
N° Livre …
Titre … N°Livre#
N°Emprunt
CodeCat# DateEmprunt
Pr M.QBADOU

CodeEd# DateRetour
N°Aut# N°Adh#

Exemp_Emprunts
Editeurs Auteurs s
N°Exemplaire#
CodeEditeur N° Auteur N°Emprunt#
NomEditeur … NomAuteur

27
ChapIV. Modèle logique de Données (MLD)
VI. Algèbre relationnelle
Les opérations de base sont classées en deux types :
 Les opérations ensemblistes : opérations binaires qui à partir de deux relations
de même schéma, en construit une troisième :
• union
• intersection
• différence

 Les opérations spécifiques (relationnelles):


• Opérations unaires qui construit une relation à partir d’une autre :
Pr M.QBADOU

• Projection
• Restriction(sélection)

• Opérations binaires sur deux relations pour construire une relation par
fusion : Produit Cartésien, jointures.
28 • Opération de division
ChapIV. Modèle logique de Données (MLD)
6.1. Opérations ensembliste
a. Union Notations :
porte sur deux relations de même schéma R1 et R2 pour R = R1 U R2
construire une relation de même schéma R ayant pour
R
tuples ceux appartenant à R1 ou R2 ou à R1 et à R2.
Exemple : Soient les relations suivantes : U
Appareil_Anc(CodeType, Nbplace , Intitulé) R1 R2
Appareil_Nouv(CodeType, Nbplace , Intitulé)
Appareil_A Appareil_N
CodeType Nbplace Intitulé CodeType Nbplace Intitulé
741 100 BOEING 747-100 74E 150 BOEING 747-100 COMBI
734 450 BOEING 737-400 SSC 80 CONCORDE
Pr M.QBADOU

AB3 180 AIRBUS A300


Appareil_A U Appareil_N
CodeType Nbplace Intitulé
741 100 BOEING 747-100
Remarque : 734 450 BOEING 737-400
Union élimine les doublons AB3 180 AIRBUS A300
74E 150 BOEING 747-100 COMBI
29
SSC 80 CONCORDE
ChapIV. Modèle logique de Données (MLD)
b. Intersection
Opération portant sur deux relations de même schéma R1 et R2 consistant à
construire une relation de même schéma R ayant pour tuples ceux appartenant à la fois
à R1 et à R2. R
Notations :
R = R1  R2 

Exemple : étant donné les relations suivantes : R1 R2

Fournisseurs(Numéro, Nom , Adresse)


Clients(Numéro, Nom , Adresse)

Fournisseurs Clients
Pr M.QBADOU

Numéro Nom Adresse Numéro Nom Adresse


1024 Thomson 100, Hassan II 1000 INA 2, BD MohamedV
1025 Fag 25, BD MohamedV 1024 Thomson 100, Hassan II
1026 SKF 20, BD MohamedV
Fournisseurs  Clients
Numéro Nom Adresse
30 1024 Thomson 100, Hassan II
ChapIV. Modèle logique de Données (MLD)
c. différence
Opération portant sur deux relations de même schéma R1 et R2 consistant à
construire une relation de même schéma R ayant pour tuples ceux appartiennent à R1
et qui n’appartiennent pas à R2. R
Notations :
R = R1 - R2 -
Exemple : étant donné les relations suivantes : R1 R2
Fournisseurs(Numéro, Nom , Adresse)
Clients(Numéro, Nom , Adresse)
Fournisseurs Clients
Numéro Nom Adresse Numéro Nom Adresse
Pr M.QBADOU

1024 Thomson 100, Hassan II 1000 INA 2, BD MohamedV


1025 Fag 25, BD MohamedV 1024 Thomson 100, Hassan II
1026 SKF 20, BD MohamedV
Fournisseurs - Clients Clients - Fournisseurs
Numéro Nom Adresse Numéro Nom Adresse
1025 Fag 25, BD MohamedV 1000 INA 2, BD MohamedV
31 1026 SKF 20, BD MohamedV
ChapIV. Modèle logique de Données (MLD)
6.2 Opérations relationnelles
a. Projection
La projection d’une relation R de schéma (A1,A2,…,An) sur les attributs
Ai1,Ai2,…Aip (avec Aij R et p<n) est une relation R’ de schéma (Ai1,Ai2,…,Aip)
dont les tuples sont obtenus par élimination des attributs de R n’appartenant pas à R’
et par suppression des doublons. R’(Ai1,…,Aip)
Notations :
Ai1,…,Aip
R’ =  A ,...,A ip
(R)
i1

Exemple R(A1,…,An)
Prix_Prod
Obtenir par projection, la liste des références et prix des produits
RefProd,PrixU
Pr M.QBADOU

Prix_Prod = RéfProd,PrixU (Produits)


Produits

Produits Prix_Prod
RéfProd Désignation PrixU RéfProd PrixU
100 Disque Dur 20 GO 850 100 850
32 102 Ram 256 600 102 600
ChapIV. Modèle logique de Données (MLD)
b. Sélection(Restriction)
La sélection de la relation R par un critère C est une relation R’ de même schéma dont
les tuples sont ceux de R satisfaisant C ; C pouvant être exprimée à l’aide de
constantes, d’opérateurs arithmétiques (>, <, etc.) ou logiques (et, ou, non)

Notations : R’(A1,…,An)

R’ =  C ( R) C
R(A1,…,An)
Exemple
Obtenir par sélection les produits dont le prixU est supérieur à 600


Prix>600
Prix 600 = (Pr oduits)
Pr M.QBADOU

(Pr ixU  600) PrixU


>600

Produits
Produits
Prix>600
RéfProd Désignation PrixU
RéfProd Désignation PrixU
100 Disque Dur 20 GO 850
100 Disque Dur 20 GO 850
33 102 Ram 256 600
ChapIV. Modèle logique de Données (MLD)
6.3 Opérations de jointure
a. Produit cartésien
Opération portant sur deux relations R1 et R2 consistant à construire une relation qui a
pour schéma la juxtaposition des deux schémas opérandes et pour tuples toutes les
combinaisons de tuples des deux relations opérande R
Notations : R = R1 × R2
×
Exemple : étant donné les relations suivantes : R2
R1
Fournisseurs(N°Fournisseur, Nom)
Produits(RéfProd, Désignation,PrixU)
Fournisseurs Produits
N°Fournisseur Nom RéfProd Désignation PrixU
1024 Thomson 100 Disque Dur 20 GO 850
Pr M.QBADOU

1025 INA 102 Ram 256 600

N°Fournisseur Nom RéfProd Désignation PrixU


1024 Thomson 100 Disque Dur 20 GO 850
Fournisseurs × Produits 1024 Thomson 102 Ram 256 600
1025 INA 100 Disque Dur 20 GO 850
34 1025 INA 102 Ram 256 600
ChapIV. Modèle logique de Données (MLD)
b. Jointures
La jointure de deux relations R et S selon une condition C est l’ensemble des tuples
du produit cartésien R*S satisfaisant la condition C ; C pouvant être exprimée à l’aide
de constantes, d’opérateurs arithmétiques (>, <, etc.) ou logiques (et, ou, non)
RS
Notations :

R’ = J C ( R, S ) C
R S
En fonction de la forme de la condition, on peut distinguer les types de jointures
suivants :
Pr M.QBADOU

Thêta jointure

Equijointure

Jointure Naturelle

Jointure externe gauche


35 Jointure externe droite
ChapIV. Modèle logique de Données (MLD)
b.1 Thêta Jointures
La thêta-jointure consiste en une jointure dont la condition C s’expriment en utilisant
les opérateurs <, <=, >, >=, <>
Exemple : Liste des cadeaux de prix <50 distribués sur les personnes tel que Age<= AgeC
Personnes Cadeaux
Nom Prénom Age AgeC Article Prix
Alaoui Ahmed 6 99 Livre 30
Brahimi Fatima 42 6 Poupé 60
Moussaoui Ali 16 20 baladeur 45
10 déguisement 15
R = J Age= AgeC ^ Pr ix 50 ( Personnes , Cadeaux )
Nom Age AgeC Article Prix
Pr M.QBADOU

Alaoui 6 99 Livre 30
R = J Age AgeC ^ Pr ix 50 ( Personnes , Cadeaux )
Alaoui 6 20 baladeur 45
Nom Age AgeC Article Prix
Alaoui 6 10 déguisement 15
Brahimi 42 20 baladeur 45
Brahimi 42 99 Livre 30
Brahimi 42 10 déguisement 15
Moussaoui 16 99 Livre 30
Moussaoui 16 10 déguisement 15
36 Moussaoui 16 20 baladeur 45
ChapIV. Modèle logique de Données (MLD)
b.2 Equijointures
L’équijointure consiste en une jointure dont la condition C s’expriment en utilisant
l’opérateurs = (égalité)
Exemple Fournisseurs
Liste des fournisseurs et leurs produits : N°Fournisseur Nom
Produits 1024 Thomson

RéfProd Désignation PrixU N°Four 1025 INA

100 Disque Dur 20 GO 850 1024


Four_Prod
101 Ecran LCD 17" 1500 1024
102 Ram 256 600 1025 Fournisseur . N  Four
= Pr oduit . N  Four
Pr M.QBADOU

Fournisseur Produit
Four_ Pr od = J Fournisseur . N  Four = Pr oduit . N  Four ( Fournisseu r , Pr oduit )
N°Fournisseur Nom RéfProd Désignation PrixU N°Four
1024 Thomson 100 Disque Dur 20 GO 850 1024
1024 Thomson 101 Ecran LCD 17" 1500 1024
37 1025 INA 102 Ram 256 600 1025
ChapIV. Modèle logique de Données (MLD)
b.3. Jointure naturelle
La jointure naturelle de deux relations R et S est une équijointure sur tous les attributs de
même nom dans R et dans S, suivie de la projection qui permet de ne conserver qu’un seul
des ces attributs de même nom.

Exemple : Liste des cadeaux distribués sur les personnes tel que :
Personne.Age= Cadeaux.Age

Personnes Cadeaux
Nom Prénom Age Age Article Prix
Alaoui Ahmed 6 99 Livre 30
Brahimi Fatima 42 6 Poupé 60
Moussaoui Ali 16 20 baladeur 45
Pr M.QBADOU

Sakhi Amina 20 10 déguisement 15

R = J ( Personnes , Cadeaux )
Nom Prénom Age Article Prix
Alaoui Ahmed 6 Poupé 60

38 Sakhi Amina 20 baladeur 45


ChapIV. Modèle logique de Données (MLD)
6.4 Opération de division
La division (ou quotient) de la relation R1 (A1, A2, …, An) par la (sous-) relation R2 de
schéma R2(A p+1, …, An) est la relation de schéma R(A1, A2, …, Ap) formée de tous les
tuples qui, concaténés à chaque tuple de R2, donnent toujours un tuple de R1.
Autrement il s’agit d’une relation R composée des tuples tel que le produit cartésien
avec le diviseur R2 est un sous-ensemble de la relation dividende R1.
R
Notations : R = R1 / R2
/
Exemple s: R2
R1
Déterminer la liste des athlètes participant à toutes les épreuves
Participer Epreuve
Pr M.QBADOU

ParticipantAToutesEpreuves
NomAtlete Epreuve Epreuve
NomAtlete
Alaoui 200 m 200 m
Moussaoui
Alaoui 400 m 400 m
Moussaoui 200 m 110 m
Moussaoui 400 m
39 Moussaoui 110 m
ChapIV. Modèle logique de Données (MLD)
Opérations algébriques vers l’écriture SQL
◆ Projection seule: π TYPE (AVION)
SELECT [DISTINCT] AVION.type type
FROM AVION
AVION

◆ Restriction seule:
σ capacite>200(AVION)
SELECT A.* Capacite>
FROM AVION A 200
WHERE A.capacite > 200 AVION

σ capacite>200(πTYPE(AVION))
Pr M.QBADOU

◆ Sélection et projection
type
SELECT [DISTINCT] A.type
FROM AVION A
Capacite>
WHERE A.capacite > 200 200

AVION
40
ChapIV. Modèle logique de Données (MLD)
Opérations algébriques vers l’écriture SQL
◆ Union : R1  R2
SELECT * FROM R1
UNION 
R1 R2
SELECT * FROM R2

◆ Intersection :
R1  R2
SELECT * FROM R1
INTERSECT 
SELECT * FROM R2 R1 R2
Pr M.QBADOU

◆ Intersection :
R1 - R2
SELECT * FROM R1
EXCEPT -
SELECT * FROM R2 R1 R2
41
ChapIV. Modèle logique de Données (MLD)
Opérations algébriques vers l’écriture SQL
◆ Produit cartésien :
SELECT * R1 x R2
FROM R1 , R2
×
Ou bien
R1 R2
SELECT *
FROM R1 CROSS JOIN R2

◆ Jointures :
JC(R1,R2)
SELECT *
Pr M.QBADOU

FROM R1 INNER JOIN R2 ON C


Ou bien
C
SELECT *
R1 R2
FROM R1 , R2
WHERE C
42
ChapIV. Modèle logique de Données (MLD)
Opérations algébriques vers l’écriture SQL
◆ Jointure externe gauche : JXC(R1*,R2)
SELECT *
FROM R1 LEFT OUTER JOIN R2 ON C
C
R1 R2

JXC(R1,R2*)
◆ Jointure externe droite :
SELECT *
FROM R1 RIGHT OUTER JOIN R2 ON C C
R1 R2
Pr M.QBADOU

◆ Jointure externe droite : JXC(R1*,R2*)


SELECT *
FROM R1 FULL OUTER JOIN R2 ON C
C

43 R1 R2
ChapIV. Modèle logique de Données (MLD)
Opérations algébriques vers l’écriture SQL
◆ Division R:S
SELECT sch(R)-sch(S) FROM R
WHERE NOT EXISTS(
:
SELECT * FROM S
WHERE NOT EXISTS( R S
SELECT * FROM RS
WHERE R.IdR=RS.IdR AND S.IdS=RS.IdS)

• Sch(X) désigne le schéma de la table X


• RS étant la table de la liaison multiple entre les tables R et S
Pr M.QBADOU

R MATRICULE NUMAV

1 100 S NUMAV

2 100
: 100

101
= Q MATRICULE

2
2 101
44
ChapIV. Modèle logique de Données (MLD)
Opérations algébriques vers l’écriture SQL
Exemple :
Quels sont les pilotes (leur matricule et leur nom) qui pilotent tous les avions?
<=> Quels sont les pilotes tels que, quel que soit l'avion, ils le pilotent ?
<=> Quels sont les pilotes tels que, quel que soit l'avion, il existe un départ assuré par ce
pilote sur cet avion ?
<=> Quels sont les pilotes tels qu'il n'existe pas d'avion tel qu'il n'existe pas de départ de
ce pilote sur cet avion ?

SELECT MATRICULE, NOM


FROM PILOTE
WHERE NOT EXISTS (
SELECT *
Pr M.QBADOU

FROM AVION
WHERE NOT EXISTS (
SELECT *
FROM DEPART
WHERE DEPART.MATRICULE = PILOTE.MATRICULE
AND DEPART.NUMAV = AVION.NUMAV
45 )
)
ChapIV. Modèle logique de Données (MLD)
6.5 Equivalences
R ∩ S = S ∩ R, R ∪ S = S ∪ R

σc1 (σc2 (R) )= σc2 (σc1(R) ) = σc2 ^ c1(R) = σc1(R) ∩ σc2(R)

πa(σc(R) ) = σc(πa(R) ) si attributs(p) ⊆ a

R/S = R1-πA(R1xS - R), avec R(A,B),S(B) et R1 = πA(R)


6.6 Ordre des opérations

La jointure est en général coûteuse


Pr M.QBADOU

Faire autant que possible les restrictions et les projections avant

Pourquoi une requête est-elle meilleure qu'une autre ?

▪ Une requête n'est pas l'unique solution d'un problème.

46 ▪ efficacités différentes
ChapIV. Modèle logique de Données (MLD)
Exemple
Soit le schéma suivant :
Fournisseur (N°fno, Nom, Adresse, Ville)
Produit (N°prod, Designation, Prix, Poids, Couleur)
Commande (N°comm, N°fno, N°prod, , Quantité)
Produit = 8 lignes * 5 colonnes
Commande = 10 lignes * 4 colonnes
Opération : Référence (N° prod), prix et quantité des produits commandés en
plus de 10 exemplaires par commande ?
Solution1
Pr M.QBADOU

R1=J (Commande,Produit)
R2 = σ Quantité > 10 (R1)
R3 = πN°prod, Prix, Quantité(R2)
R1 = jointure sur la table Commande et la table Produit = 10*8 = 80 tuples au
47 pire
ChapIV. Modèle logique de Données (MLD)

Solution2

R1 =  N°prod, Quantité (Quantité>10(Commande) )

R2 = J(R1,  N°prod, Prix (Produit))

R3 =  N°prod, Prix, Quantité (R2)

R2 = jointure sur le couple (N°prod, Prix) de la table Produit: 8 tuples (sur 2


attributs) et sur le couple (N°prod, Quantité) de la table Commande : 2 tuples
Pr M.QBADOU

(sur 2 attributs)

Total = 2x8 = 16 éléments (sur 4 attributs)

48
ChapIV. Modèle logique de Données (MLD)
VII. Formes Normales(FN)
Les formes normales permettent :

▪ d’assurer la cohérence des données,

▪ d’éviter des anomalies d’écriture, de lecture

▪ d’éviter des contres performances.

Les formes normales sont utilisées en base de données relationnelles, mais il est
possible de vérifier qu’elles sont bien respectées dès l’étape de création du MCD.

Il existe huit formes normales :


Pr M.QBADOU

▪ de 1NF à 6NF et

▪ les formes BCNF et DKNF.

Les formes normales 1NF, 2NF, 3NF et BCNF sont suffisantes pour construire un

49
modèle relationnel juste.
ChapIV. Modèle logique de Données (MLD)
1ère FN
Une relation est en 1ère FN si
• Tout attribut est atomique et monovalué. Autrement, un attribut ne peut
désigner une donnée composée (simple et n’a qu’une seule valeur par ligne) .
• Tous ses attributs sont en DF de sa clé (pas de lignes dupliquées)
• Tous ses attributs sont constants dans le temps (choisir par exemple l’attribut
date de naissance plutôt que l’attribut âge pour éviter de le remettre à jour).
Une relation en 1FN garantie un accès plus rapide aux données et évite les besoins
de mises à jour .
Exemple : La relation suivante n’est pas en 1FN, car la propriété étudiant désigne une
Pr M.QBADOU

liste d’étudiants.
Etudiant
Id_etudiant
Nom
Prenom
Adresse
Age
Diplomes
50 Date_inscr
ChapIV. Modèle logique de Données (MLD)
2ème FN
Une relation est en 2ème FN ssi :

• elle est en 1ère FN.

• tout attribut non clé est en DF de toute la clé (et non pas d’une partie de la clé).

La 2ème FN permet d’éviter la redondance des données.

Exemple : l’entité suivante ne respecte pas la 2FN :

En effet, on a : {id commande, id client ➔ nom_client},

et {id client ➔ nom client}. date_commande

Donc le nom du client ne dépend que de son identifiant, et non pas de la


Pr M.QBADOU

composition {id commande, id client}.

Solution : Créer une entité Client et une association date_commande

entre les entités Commande et Client. Client


0,N 1,1
Passer
51
ChapIV. Modèle logique de Données (MLD)
3ème FN
Une relation est en 3ème FN ssi :
• Elle est en 2ème FN.
• Elle ne contient pas de dépendance transitive : Tout attribut non clé ne dépend
pas d’un autre attribut non-clé. Autrement, il ne doit pas y avoir de dépendance
directe entre attributs non-clés.
La 3ème FN est l’élimination des redondances dues aux DF déduites par transitivité.

Exemple : l’entité suivante ne respecte pas la 3FN :

En effet, l’attribut Capacité dépend directement du modèle, et non

de l’attribut id-avion.
Pr M.QBADOU

Solution : Pour être en 3FN, il faut créer une entité Modèle,

et déplacer l’attribut capacité dans cette nouvelle entité.

Modèle
0,N 1,1
appartient
52
ChapIV. Modèle logique de Données (MLD)
BCNF
Une relation est en BCNF ssi :
• Elle est en 3ème FN.
• Toutes les propriétés non-clés ne soient pas source de dépendance fonctionnelle
(DF) vers une partie de la clé.
La Forme Normale de Boyce-Codd, ou BCNF, assure la cohérence des données,
ainsi que la non-redondance.
Exemple : l’entité Resultat, avec un identifiant composé de Resultat
Id_etudiant
(id_etudiant, id_matiere) et les DF suivantes : Id_matiere
Id_enseignant
– {id etudiant, id matiere → id enseignant, note} note
– {id enseignant → id matiere}
Pr M.QBADOU

Enseignant
Cette entité n’est pas en BCNF car id_matiere, qui fait partie
Id_enseignant
de l’identifiant, dépend directement d’un autre attribut …

Solution : Pour passer en BCNF, il faut créer Resultat


1,1
Id_etudiant 0,N
une nouvelle entité Enseignant, et la relier à Id_matiere Noter
53 note
Université au travers d’une association Enseigner.
ChapIV. Modèle logique de Données (MLD)
Dénormalisation
La dénormalisation est une technique permettant de passer d’une forme normale
supérieure à une forme normale inférieure de modélisation de base de données afin
d'accélérer l'accès à la base de données.
Il est possible d’appliquer la dénormalisation lors de la phase de conception ou lors la
phase de dérivation d'un modèle de données physique à partir d'une forme logique.
Pr M.QBADOU

54

Vous aimerez peut-être aussi