Vous êtes sur la page 1sur 206

Systèmes d’Information

& Base de Données


A. BENMAKHLOUF
Site Web: https://coursbenmakhlouf.me.ma/

A.Benmakhlouf
Systèmes d’Information
& Base de Données

 Introduction: Les Systèmes d’information


 Chapitre-1: Modèle Relationnel
 Chapitre-2 : Algèbre Relationnelle
 Chapitre-3 : Langage de requêtes SQL
 Chapitre-4:
Modélisation Entité/Association et
passage au Modèle relationnel

A.Benmakhlouf
Objectifs
 Savoir modéliser, implémenter, manipuler et
interroger une base de donnée

 Savoir utiliser un SGBD-R

 Maitriser le langage de base des SGBD-R –SQL -

 Savoir récupérer rapidement et efficacement des


information à partir une BDD

A.Benmakhlouf
Introduction

aux systèmes d’information

A.Benmakhlouf
INFORMATION

Qu’est ce qu’une Information ?


Verbe latin « Informare » : donner une forme, une structure, une signification

 C'est un ensemble de données qui permettent de modifier la


perception que l'on a de l'environnement.
 C’est un ensemble de données qui peuvent donner un sens,
et ce sens vient d'un certain modèle d'interprétation.

 Une donnée est représentée par un ensemble de signes codés


 Une même donnée peut avoir plusieurs sens selon modèle d'interprétation.

 Donnée = signe + Code


 Information = Données + modèle d’interprétation

A.Benmakhlouf
INFORMATION

En théorie de la décision, une information est


susceptible d’avoir un effet sur nos décisions.

La valeur d’une information dépend de


plusieurs facteurs

l'écoulement Récepteur
du temps de l'information

A.Benmakhlouf
Représentation de l’information
La circulation de l’information s’effectue à l’aide de données. Ces données
sont représentées par des chiffres, des lettres, ces dessins ou graphiques

Exemple:

Un représentation développée des données donne un avantage dans


l’échange et la traitement de l’information:

A.Benmakhlouf
Organisation des Données
La bonne organisation du stockage des données dans des fichiers
permet de trouver l’information plus rapidement et plus facilement

Fichiers
de
données

Base de données Informations

A.Benmakhlouf
INFORMATION

Classifications possibles des informations

 Selon l’origine (la provenance)


 informations internes
 informations externes
 Selon la durée de vie de l’information
 informations volatiles (courte durée de vie)
 informations persistantes (mémoire de l’entreprise)
 Selon le traitement appliqué
 informations brutes
 Informations calculées

A.Benmakhlouf
SYSTEME

Qu’est ce qu’un Système ?


Verbe latin « système » : combiner, établir, rassembler

Un système est un ensemble d’éléments reliés entre eux en interactions


dynamiques et constituant un tout cohérent et fonctionnel compris dans un
ensemble plus grand.

Un système facilite le flux ……


Système d’information : facilite l’échange de des informations

A.Benmakhlouf
SYSTÈME D’INFORMATION

Dans une organisation une grande quantité


d’information circule

La récolte, le stockage et la diffusion de l'information


est devenue une industrie à part entière.

C’est la tâche principale d’un système


d’information

A.Benmakhlouf
SYSTEME D’INFORMATION

Un système d’information est un ensemble organisé


de ressources (humaines, matérielles, données etc…….)
permettant d’acquérir, de traiter, stocker et communiquer en
temps et en heure toute l'information nécessaire au
fonctionnement de l'organisation

L’ensemble structuré de données enregistrées et


accessibles simultanément par plusieurs utilisateurs
constitue une base de données

A.Benmakhlouf
Acquérir des information
PERSONNEL (collecter)
(Spécialiste ou
Utilisateur)

MATERIEL Traiter des informations


(machine, support, (transformer)
etc..)

SYSTÈME
D’INFORMATION
LOGICIELS &
PROCEDURES
(Programmes et
méthodes Stocker des information
(conserver)

DONNEES
(Connaissances,
modèles, etc..) Communiquer des
La gestion des données est au
information (diffuser)
cœur des SI
A.Benmakhlouf
CONCEPT DE SYSTEME D’INFORMATION

Vue systémique d’une


organisation

On peut décomposer une entreprise ou une organisation en


trois sous-systèmes

Système opérant

Système de pilotage

Système d’information

A.Benmakhlouf
CONCEPT DE SYSTEME D’INFORMATION

Système Flux physique


Opérant

C’est le Siège de l’activité productive de l’organisation où


on exécute des taches quotidiennes, répétitives et
atomique

Exemple Ecole sup:


 Services et des département qui organisent le concours d'entrée,
Le flux physique est donc constitué des élèves des enseignants, des
concours, des cours, des examens, des notes, des rapports publiés,
… etc.

A.Benmakhlouf
Contraint Contraint

Flux de décision
Système
de Pilotage

Siège de l’activité décisionnelle


 Fixation des objectifs

 Contrôle de leur réalisation

 Corrections (selon contraintes)

Ceci par un contrôle permanant du SO


Exemple Ecole sup: les décisions prises par le système de pilotage:
- le nombre d'élèves qui seront admis chaque année
- le seuil d'admissibilité.
- la définition des programmes des études,
- la définition des modalités d'examen
- le règlement interne.
- création de nouvelles filières, les ouvertures de postes de recrutement, les
investissements
A.Benmakhlouf en matériel et en logiciel, … etc.
CONCEPT DE SYSTEME D’INFORMATION
Système d’information
Récolter l'information, de la stocker, de la traiter et de la diffuser dans
le système opérant et dans le système de pilotage.

Dans le système opérant, cette information va permettre à celui-ci


de fonctionner. Car chaque individu et chaque tâche ont besoin d'être
informés sur le flux physique qui la traverse. Cette information ne
concerne qu’un petit élément de l’organisation, et elle est tournée
vers le présent.
Dans le système de pilotage, l'information va permettre à celui-ci
de prendre les bonnes décisions en étant constamment informé de ce
qui se passe dans le système opérationnel. Cette info concerne une
grande partie de l’entreprise, et elle est tournée vers le passé et / ou
le futur .
Cette information a tendance à être très synthétique, elle
concerne une grande partie de l'organisation .
A.Benmakhlouf
Contraint Contraint

Système
Système Flux d’information
d’information
de Pilotage
Image,
Représentation,
Modèle
Système
Flux physique
Opérant
A.Benmakhlouf
A.Benmakhlouf
FONCTION D’UN SYSTEME D’INFORMATION

A.Benmakhlouf
LES SI ET LES FONCTIONS DE L’ENTREPRISE
Vision fonctionnelle du SI

A.Benmakhlouf
 La première facette est tournée vers le système opérant et dont la
finalité et d'assister le fonctionnement opérationnel et la gestion
quotidienne de l'organisation. En général des l’insertions, modifications
et suppressions
Elles traitent de grandes masses de données qui sont faiblement
agrégées (c.à.d ne concerne qu'un élément atomique de l'organisation
tel que la commande d'un client).

 La seconde facette est tournée vers le système de pilotage et dont la


finalité est d'assister la direction de l‘entreprise et la prise de décision
des dirigeants. En générale des indicateurs et des tableaux de bord
Ce sont des applications informatiques récentes qui font appel à des
technologies nouvelles (entrepôts de données ou datawarehouse et
SIAD). Elles manipulent des données où le degrés de précision est
relatif et qui sont fortement agrégées
A.Benmakhlouf
Chapitre-1
Modèle Relationnel

A.Benmakhlouf
Bases de données
 Ensemble de données modélisant les objets du monde réel et servant de
source de données à des programmes informatique
 Collection structurée de données qui existent sur une longue période de
temps et qui décrivent les activités d'une ou plusieurs organisations
 C’est un ensemble structuré de données enregistrées sur des supports
informatique pour satisfaire simultanément plusieurs utilisateurs de façon
sélective.

 Une BDD est gérée par un Système de Gestion de Base de données

Exemple 1 :
Organisation : une bibliothèque
Données : les livres, les emprunts, les emprunteurs

Exemple 2 :
Organisation : une Université
Données: les étudiants, les enseignants, les cours,
SGBD
Systèmes de Gestion de Bases de Données SGBD « DataBase Management
Systems » « DBMS » est un Ensemble de logiciels systèmes permettant aux
utilisateurs d'insérer, de modifier, et de rechercher efficacement des données
spécifiques dans une grande masse d'informations (pouvant atteindre des Téra
octets) partagée par de multiples utilisateurs

A.Benmakhlouf
SGBD
Principales fonctionnalités d’un SGBD

 Création et mises à jour de la structure de la base de données (par le


concepteur et/ou le DBA DataBase Administrator

 Saisie et mises à jour des données (par le concepteur et/ou les utilisateurs

 Interrogation des données selon différents critères et/ou en effectuant des


calculs (par les utilisateurs)

 Administration de la base de données : gestion des utilisateurs, des droits


d’accès etc ..par l’ administrateur DBA

A.Benmakhlouf
Les niveaux d’abstraction pour les SGBD
La possibilité de cacher aux utilisateurs des détails internes non pertinents
Les SGBD permet d’assurer une abstraction des données afin de simplifier
l’interaction des utilisateurs avec les bases de données.

Une architecture à trois niveaux d’abstraction est utilisée.

Niveau externe ; c’est un niveau qui regroupe les vues utilisateurs. C’est le niveau le
plus élevé d’abstraction des données. Il décrit l’interaction de l’utilisateur avec le
système de base de données.

Niveau conceptuel : ce niveau décrit la globalité des données qui sont stockées
dans la base de données.

Niveau interne : c’est le plus bas niveau. Il décrit comment les données sont
réellement stockées dans la base de données.

A.Benmakhlouf
Exemple : soit les deux services d’une école : la bibliothèque et la direction.

A.Benmakhlouf
Instances de base de données

Instances de base de données représente les données à un instant donné. L’évolution


des données au cours du temps est réalisée par les trois opérations d’écriture qui sont
l’insertion, la mise à jour et la suppression, (insert, update et delete). Ces
manipulations sont assurées par un langage de manipulation de données -LMD-
(DML-Data Manipulation Language).

Schéma de base de données

C’est une description de la structure des données. La définition de ce schéma de BDD


est réalisé l’opération principale « créer » (create) d’un langage de définition de
données -LDD- (DDL Data Definition Language

A.Benmakhlouf
Modèle relationnel

Ce modèle s’inspire du concept mathématique de relation.

Définitions: Soient (A1, A2, A3, ..., An) n ensembles quelconques. On appelle produit
cartésien de A1, A2, A3, ..., An l’ensemble défini par :

A1xA2xA3x...xAn={(x1,x2,x3,...,xn)| x1A1, x2A2, x3A3, ..., xn An}

On appelle relation sur les ensembles A1, A2, A3, ..., An un sous - ensemble de leur
produit cartésien. A1, A2, A3, ..., An s’appelle domaines.

A.Benmakhlouf
Modèle relationnel

Exemple. Soient A = {1, 2, 3} et B = {a, b}.


On a : A x B = {(1, a), (2, a), (3, a), (1, b), (2, b), (3, b)}.

Le sous - ensemble = {(1, a), (1, b), (2, a), (2, b)} est une relation définie sur les
domaines A et B.

La relation  peut s’écrire, également, sous la forme :

 A B la relation  est représentée comme un tableau de


1 a données. D’où l’appellation de tableau ou table.
1 b
2 a
2 b

A.Benmakhlouf
Une relation est donc une collection de nuplets (tuples en anglais) décrivant des
données de même structure. C’est un tableau composé d’attributs et d’enregistrement.

A.Benmakhlouf
Un modèle relationnel est composé d’un ensemble de :

Relation : des sous ensemble du produit cartésien d'une liste de domaines


caractérisé par un nom unique représentée sous forme de table composé de colonnes
et ensemble de nuplets sans doublon.

Attributs ou champs ou colonnes : ce sont des données qui permettent de décrire


une entité (objet) et qui se caractérisent par un nom, un type de données ainsi que
d’autres caractéristiques (identifiant par exemple…). Les valeurs prise par un
attribut sont atomiques (un attribut à une seule valeur nuplet)

Enregistrements (nuplets) : est une donnée composite qui comporte plusieurs


champs dans chacun desquels est enregistrée une donnée. Les nuplets d'une relation
sont tous différents.

A.Benmakhlouf
schéma de relation et schéma de base de données

Le Modèle relationnel permet donc d’organiser les données dans plusieurs relations
(tables), ce qui facilitera son exploitation par le SGBD relationnel.

A.Benmakhlouf
schéma de relation et schéma de base de données

 Schéma de relation est une liste d’attributs et leurs domaines

 Un schéma de base de données comprend deux parties :

o Une description des tables (schéma de relation),


o Des contraintes sur leur contenu qui permettent d’assurer, au niveau
de la base, des contrôles sur l’intégrité des données qui s’imposent à
toutes les applications accédant à cette base. c.-à-d. conservées les
informations qui étaient dissociées dans plusieurs relations.

Un schéma de BDD est défini à l’aide d’un langage de définition des données
(LDD) tel que l’SQL.

A.Benmakhlouf
Clé primaire
C’est un attribut (ou ensemble d’attributs) permettant d’identifier de manière
unique les nuplets de la relation. Les valeurs d’une clé sont uniques (pas de
doublon) et non null, c.-à-d. on doit forcément saisir une valeur de la clé pour un
tuple donné. Un tuple doit forcement avoir un identifiant

A.Benmakhlouf
Clé étrangère (FK Foreign Key)

Attribut (ou ensemble d’attributs) d’une relation qui fait référence à la


clé primaire d’une autre relation. Les FK permettent d’éviter les
redondances d’information.

Permettent de garantir la cohérence de l’information sans introduire de la


redondance

A.Benmakhlouf
Base de données
Mauvaise représentation des données et Problématique

Nous voulons
Nom Client stocker Ville
Adresse des données concernant
N°Commande les ventes (commandes
Date-commande des clients)
Désignation Quantité Prix

Nom1
LesAdresse1 Rabat
clients passent C1
des 18/10/2021
commandes Article1
pour acheter 2
des produits 233,00
Nom1 Adresse1 Rabat C1 18/10/2021 Article2 5 24,00
Nom1 Adresse1 Rabat C1 18/10/2021 Article3 6 300,00
Nom1 Adresse1 Rabat C2 19/10/2021 Article1 5 233,00
Nom1 Adresse1 Rabat C2 19/10/2021 Article2 5 24,00
Nom2 Adresse3 Fès C3 20/10/2021 Article1 5 233,00
Nom2 Adresse3 Fès C3 20/10/2021 Article2 8 24,00
Nom2 Adresse3 Fès C4 21/10/2021 Article1 2 233,00
Nom2 Adresse3 Fès C4 21/10/2021 Article3 5 300,00

Anomalies lors d'une insertion


Anomalies lors d'une modification
Anomalies lors d'une destruction
A.Benmakhlouf
Base de données
Bonne représentation des données

Une bonne présentation est celle qui :


Etre capable de représenter individuellement les clients les
commandes et les produits, de manière à ce qu'une action
sur l'un n'entraîne pas systématiquement une action sur
l'autre.
Définir une méthode d'identification d'un client d'une
commande et d’un produit, qui permette d'assurer que la
même information est représentée une seule fois .

Préserver le lien entre les clients, les commandes et les


produits, mais sans introduire de redondance.

A.Benmakhlouf
Base de données
Bonne représentation des données

Id-client Nom Client Adresse Ville N° article Désignation Prix

CL1 Nom1 Adresse1 Rabat A1 Article1 233


A2 Article2 24
CL2 Nom2 Adresse3 Fès A3 Article3 300

N°Commande N° article Quantité

N°Commande Date-commande Id-client C1 A1 2


C1 A2 5
C1 18/10/2021 CL1
C1 A3 6
C2 19/10/2021 CL1 C2 A1 5
C3 20/10/2021 CL2 C2 A2 5
C4 21/10/2021 CL2 C3 A1 5
C3 A2 8
C4 A1 2
C4 A3 5
1- Quelles sont les commandes de chaque client ?
Reconstitution
2- Quelles intégraledans
sont les produits commandés de chaque
l’information
commande ?
décomposée
A.Benmakhlouf
Intégrité référentielle
L’Intégrité référentielle est un ensemble de règles garantissant la cohérence des
données réparties dans plusieurs relations.

PK Intégrité référentielle FK
A B C
D E A
1 x 12
110 x 1
2 y 14
Accepter parlele SGBD
Refusé par 111 y 1
3 z 78 si une suppression en
SGBD 112 z 2
4 u 15 cascade est définie
113 p 2
114 zz 3
115 po 4 Refusé par le
SGBD

A.Benmakhlouf
 Une insertion dans la relation « FK » est autorisée uniquement si on spécifie
une valeur « id » qui existe dans la relation « PK ».

 Une Suppression ou une mise à jour d’un nuplet de la valeur de clé primaire
dans la relation « PK » est :
o Non autorisée si un nuplet dans « FK » fait référence au nuplet
supprimé/mis à jour dans « PK »
o Autorisée mais avec suppression/mise à jour en cascade des nuplets
correspondant dans « FK »
o Autorisée avec affectation d’une valeur NULL ou d’une valeur par défaut
à la clé étrangère des nuplets de « FK » correspondants dans la relation
référençant

A.Benmakhlouf
Contraintes d’Intégrités

Ce sont les règles implicites ou explicites qui permettent de garantir la cohérence


des données lors des Ecritures dans la BDD. le SGBD va refuser donc toutes
Ecriture qui viole ces contraintes. Parmi ces contraintes on site :

 Contraintes d’intégrité référentielle


 Contraintes Valeur nulle NULL ou not NULL: un nuplet d’un attribut
peut rester vide ou non
 Contraintes d’identité : tout nuplet doit posséder une valeur de clé primaire
unique
 Contraintes de domaine : les valeurs de certains attributs doivent être prises
dans un ensemble valeur bien définies.
 Contraintes d'unicité : une valeur d'attribut ne peut pas être affectée deux fois.

A.Benmakhlouf
Création d’une base de données.
La création d’une base de données passe par trois étapes :

a.Création d’un modèle conceptuel des données (MCD): permet de décrire d’une
manière simplifié le réel. Cette description se fait d’une façon graphique.
b.Création du modèle Logique des données (MLD) : A partie du MCD et en
appliquant un ensemble de règles de passage on créer le MLD. Ce dernier permet de
décrire la structure de données utilisée sans faire référence à un langage de
programmation.
1. Pour chaque relation Définir les différents attributs et Définir la clé primaire
2. Pour chaque attribut de chaque relation Définir le type et le domaine et
Préciser les propriétés (format, etc…)
3. Quand il y a plusieurs relations définir les clés étrangères
c.Création du modèle Physique des données (MPD) : L'implémentation : Elle
correspond aux choix techniques, en termes de SGBD choisi et à leur mise en œuvre
(programmation, optimisation...).
A.Benmakhlouf
Exemple-1 : On veut créer une base de données stockant des enseignants (avec
leur nom, prénom, spécialité et des départements, chaque enseignant appartenant
à un et un seul département

Le Modèle relationnel est :

Departement(IdDept , NomDept)
Enseignant(IdEns, Num, Nom, Prénom, #idDept, Specialite)

A.Benmakhlouf
Exemple-2:
On veut créer une base de données gérant des énoncés d’examens et des exercices
Quelles sont les différences entre les modèles relationnels

Modèle relationnel-1 Enoncé est UNIQUE

Examen(ExamID, Date, Heure)


Exercice(ExoID, Enoncé)
Contenu_Exam(#ExamID, #ExoID, position)

Modèle relationnel-2 Enoncé est UNIQUE

Examen(ExamID, Date, Heure)


Exercice(ExoID, Enoncé ,#ExamID, Position)

Modèle relationnel-3 Enoncé est UNIQUE

Examen(ExamID, Date, Heure)


Exercice(ExoID,#ExamID, Enoncé)

A.Benmakhlouf
Les Requêtes
Une requête est une interrogation d'une base de données. Elle peut
comporter un certain nombre de critères.
- Les opérations de l’algèbre relationnelles permettent de représenter
les requêtes
- Un langage de requêtes utilisé par les SGBDR, qui est le SQL

Il existe trois types de requête


1. Requêtes d’interrogation (Data Manipulation Language)
2. Requêtes d’insertion, de mise à jour et de suppression des
données (Data Manipulation Language)
3. Requêtes de définition de schéma Data (Definition Language

A.Benmakhlouf
Chapitre-2
Algèbre Relationnelle

A.Benmakhlouf
 L'algèbre relationnelle est une théorie mathématique proche de
la théorie des ensembles qui définit des opérations qui peuvent
être effectuées sur des relations.
 Les opérations relationnelles permettent de créer une nouvelle
relation (table) à partir d'opérations élémentaires sur d'autres
tables (par exemple l'union, l'intersection, ou encore la
différence….).
 Ces opérations permettent de représenter des requêtes sur la base
de données dont le résultat s’exprime sous la forme d’une
relation (i.e. table). C’est ce formalisme qui est au cœur du
langage de requête de SQL.

L'algèbre relationnelle a été inventée en 1970 par Edgar Frank Codd

A.Benmakhlouf
Les principes de l'algèbre relationnelle sont beaucoup utilisés de nos
jours par les SGBD pour la gestion des bases de données informatiques
comme le Oracle, SQLserver, DBase, PostgreSQL, etc.
Nous pouvons distinguer trois familles d’opérateurs relationnels :

- Les opérateurs unaires (la sélection et la projection), qui sont les


plus simples, permettent de produire une nouvelle table à partir
d’une autre table.

- Les opérateurs binaires ensemblistes (l’union, l’intersection et la


différence) permettent de produire une nouvelle relation à partir de
deux relations de même degré et de même domaine.

- Les opérateurs binaires ou n-aires (le produit cartésien, la jointure et


la division) permettent de produire une nouvelle table à partir de deux
ou plusieurs autres tables.
A.Benmakhlouf
Les Opérateurs unaires
La Sélection
Définition : La sélection génère une relation regroupant exclusivement toutes les
occurrences de la relation R qui satisfont l’expression logique « E ».

Notation : 𝝈(𝑬) 𝑹

E : l’expression logique
R : la Relation (Table) sur laquelle nous appliquons la sélection

A.Benmakhlouf
Les Opérateurs unaires
La Projection
Définition : La projection consiste à supprimer les attributs autres que (A1, A2,..,
An) d’une relation et à éliminer les n-uplets en double apparaissant dans la
nouvelle version.
Notation : ς(𝑨𝟏,𝑨𝟐 ,……,𝑨𝒏 ) 𝑹

(A1, A2,.., An) : les attributs à afficher


R : la relation sur laquelle nous voulons appliquer la projection.

A.Benmakhlouf
Les Opérateurs ensemblistes
L’Union
L’union est une opération ensembliste commutative et associative portant sur deux
relations R et S ayant le même schéma (les mêmes attributs). Elle définit une relation
qui contient tous les tuples de R, de S, les tuples en double étant éliminé.
Notation : 𝑹𝟏 ∪ 𝑹𝟐
Les Opérateurs ensemblistes

L’Intersection
L’intersection est une opération ensembliste commutative et associative portant sur
deux relations R et S ayant le même schéma (les mêmes attributs). Le résultat est une
troisième relation dont les enregistrements sont constitués de ceux appartenant aux
deux relations.
Notation : 𝑹𝟏 ∩ 𝑹𝟐
Clients
Exercice : Soit la relation R où on
stock les villes visitées par
chaque personne.
Quels sont les clients qui ont
visité « Casa » et «Rabat ».
Les Opérateurs ensemblistes
La Différence
La différence est une opération ensembliste non commutative et non associative
portant sur deux relations R et S ayant le même schéma (les mêmes attributs). Le
résultat de R – S (S – R) est une troisième relation dont les enregistrements sont
constitués de ceux R n’appartenant pas à S (ceux S n’appartenant pas à R).
Notation 𝑹𝟏 − 𝑹𝟐
Exercice : Soit la relation R où on
stock les villes visitées par
chaque personne.
Quels sont les clients qui ont
visité « Casa » et non «Rabat ».
Les Opérateurs ensemblistes
Le Produit Cartésien
Le produit cartésien est une opération ensembliste commitative et associative
portant sur deux relations R1 et R2 qui n’ont pas le même schéma et qui construit
une troisième relation regroupant exclusivement toutes les possibilités de
combinaison des tuples des relations de R1 et R2.

On note 𝑹𝟏 × 𝑹𝟐
Exercice : Soit la relation suivante qui
stocke les villes visitées par client :

Nous voulons savoir quelles sont les villes non


visitées par chaque client. L’expression algébrique
qui permet d’avoir cette information est :

𝝅𝒊𝒅,𝑵𝒐𝒎 𝑪𝒍𝒊𝒆𝒏𝒕𝒔 × 𝝅𝒗𝒊𝒍𝒍𝒆 𝑪𝒍𝒊𝒆𝒏𝒕𝒔 − 𝑪𝒍𝒊𝒆𝒏𝒕𝒔

A.Benmakhlouf
A.Benmakhlouf
Les Opérateurs de Jointure

La jointure est une opération portant sur deux relations R et S qui construit une
troisième relation regroupant exclusivement toutes les possibilités de
combinaison des occurrences des relations R et S qui satisfont l’expression
logique E. Cette dernière est de la forme (R.ri θ S.sj) ou θ est l’un des opérateurs
de comparaison (<, <=, >, >=, =, ≠).

Une jointure est donc une sélection sur un produit cartésien.

On note : 𝑹 ⨝𝑬 𝑺 = 𝝈 𝑬 𝑹×𝑺

Si le prédicat E est une égalité, on parle d’équijointure

A.Benmakhlouf
A.Benmakhlouf
Les Opérateurs de Jointure
Jointure Naturelle
La jointure naturelle est une équijointure des relations R et S sur tous les attributs
communs (même types de données et même non d’attribut) en retirant les
occurrences multiples d’attributs.
On note : 𝑹 ⨝ 𝑺
Exercice : Soit la BDD suivante qui stocke les commandes de chaque client.

1- Quelles sont les commandes de chaque client ? On veut connaitre le nom et la


ville de chaque client
2- Quelles sont les commandes des clients de « Casablanca » on affiche
idclient, Nom, idCom, Date ?

Commandes
Clients

A.Benmakhlouf
2- Quelles sont les commandes des clients de « Casablanca » on affiche
idclient, Nom, idCom, Date ?

Clients Commandes

A.Benmakhlouf
Les Opérateurs de Jointure
Jointure Externe
La jointure externe gauche est une jointure dans laquelle les tuples de la relation R
qui n’ont pas nécessairement de valeur correspondante dans S parmi les attributs
communs de R et S, sont également inclus dans la relation résultante. Les valeurs
manquantes dans la seconde relation sont mises à nul.

On note : 𝑹 ⧑ 𝑺

A.Benmakhlouf
Opérateur Division

La division définit une relation sur les attributs de C, constituée de l’ensemble


des tuples de R qui sont combinés avec tous les tuples de S
On note : 𝑹 ÷ 𝑺

𝑹 ÷ 𝑺 = 𝝅𝑪 𝑹 − 𝝅𝑪 𝑺 × 𝝅𝑪 𝑹 − 𝑹

La division est utilisée pour répondre aux requêtes du type « les produits
achetés par tous les clients », « les étudiants qui ont validé tous les modules »

A.Benmakhlouf
A.Benmakhlouf
Exercice : Soit la relation suivante qui stocke les villes visitées par client :
Nous voulons savoir quelles sont les clients qui ont
visités toutes les villes. L’expression algébrique qui
permet d’avoir cette information est :

 Nous avons vu dans un exercice précédant


trouver l’expression qui donne les villes non
visitées par chaque client :

 Donc la liste des clients qui ont visités


toutes les villes est donnée

𝝅𝒊𝒅,𝑵𝒐𝒎 𝑪𝒍𝒊𝒆𝒏𝒕𝒔 − 𝝅𝒊𝒅,𝑵𝒐𝒎 (𝝅𝒗𝒊𝒍𝒍𝒆 𝑪𝒍𝒊𝒆𝒏𝒕𝒔 × 𝝅𝒊𝒅,𝑵𝒐𝒎 𝑪𝒍𝒊𝒆𝒏𝒕𝒔 − 𝑪𝒍𝒊𝒆𝒏𝒕𝒔)

A.Benmakhlouf
A.Benmakhlouf
Renommage
Le renommage permet de renommer les attributs d’une relation pour résoudre
des problèmes de compatibilité entre noms d’attributs de deux relations
opérandes d’une opération binaire (∩,∪, −)

On note : 𝛼[𝑎𝑛𝑐𝑖𝑒𝑛_𝑛𝑜𝑚,𝑛𝑜𝑢𝑣𝑒𝑎𝑢_𝑛𝑜𝑚] 𝑅

A.Benmakhlouf
Chapitre-3 :

Langage de Définition, de Manipulation et


d’Interrogation de données
-SQL-

A.Benmakhlouf
Serveur Web Serveur de BDD
Wamp/Xamp/ MySQL
Envoi de Rq SQL
EasyPHP
PHP + SQL Exécution des
Compilation Requêtes BDD
de PHP SQL
Exécution de Résultat
PHP

Les Programmes informatique récupérent les données on utilisant le langage


SQL (Structured Query Language).

A.Benmakhlouf
L’SQL est donc un langage déclaratif, non procédural et ensembliste utilisé par
tous les SGBDR.

 Non procédurale : ne permet pas de programmer des procédures et fonctions


en utilisant des algorithmes.

 Ensembliste : permet de récupérer des données stockées dans plusieurs


relations. Donc l’SQL utilise les principes de base de l’algèbre relationnelles.

 Déclaratif : permet de décrire le résultat escompté, sans décrire la manière pour


l'obtenir. Les SGBD sont équipés d'optimiseurs de requêtes - des mécanismes
qui déterminent automatiquement la manière optimale d'effectuer les opérations
entre les relations (tables).

A.Benmakhlouf
Le langage SQL est utilisé principalement de deux manières :

- Technique de l’SQL embarqué (embedded SQL) : des instructions en


langage SQL sont incorporées dans le code source d'un programme écrit
dans un autre langage externe.

- Technique des procédures stockées : des fonctions et des procédures


écrites dans un langage procédural propre à chaque SGBD (PL/SQL pour
Oracle, SQL/PSM pour MySQL ...) sont enregistrées dans la base de
données en vue d'être exécutées par le SGBD. Cette technique est aussi
utilisée pour les triggers - procédures déclenchées automatiquement sur
modification du contenu de la base de données.

A.Benmakhlouf
L’SQL est un langage complet de gestion de bases de données relationnelles. Il
permet de :
- Définir les données (Langage de Définition de Données LDD) (ordres
CREATE, ALTER, DROP),

- Manipuler les données (Langage de Manipulation de Données LMD) (ordres


UPDATE, INSERT, DELETE)

- Interroger une base de données (ordre SELECT)

- Contrôler l'accès aux données (Langage de Contrôle de Données LCD) (ordres


GRANT, REVOKE).

L’SQL est un langage utilisé par les principaux SGBDR : Oracle, Access, SQL server,
MySQL… Chacun de ces SGBDR a cependant sa propre variante du langage.

Dans ce chapitre nous présentons un noyau de commandes disponibles sur l'ensemble


de ces SGBDR ainsi que les variantes de l’SQL propre au PostgreSQL.

A.Benmakhlouf
La Définition des Données -LDD-

La commande CREATE TABLE: permet de créer une table dans la base de


données courante. Sa syntaxe est la suivante :
CREATE TABLE NomTable (Nomchamp1 type propriété,
Nomchamp2 type propriété,.. );

Type Numériques

smallint 2 octets Entier à petite portée -32768 à +32767


integer (int) 4 octets -2147483648 à +2147483647
bigint (int8) 8 octest -9223372036854775808 à
+9223372036854775807
Real (float) 4 octets Précision de 6 chiffres
décimaux
double precision 8 octets Précision de 15 chiffres
décimaux
smallserial 2 octets petit entier auto-incrémentant 1 à 32767
serial 4 octets entier auto-incrémentant 1 à 2147483647
bigserial 8 octets grand entier auto-incrémentant 1 à 9223372036854775807

A.Benmakhlouf
La Définition des Données -LDD-
Type Date/Heure

timestamp 8 octets la date et l'heure


date 4 octets date (pas d'heure de la journée)
time 8 octets heure du jour (pas de date)

Type caractères

varchar(n) longueur variable avec limite (n char)


char(n) n octets longueur fixe (n char)
text longueur illimitée variable

A.Benmakhlouf
La Définition des Données -LDD-

Propriété et contraintes

not null Valeurs d’un attribut non null


unique Valeurs unique
primary key (PK) Clé primaire (unique et non null) c’est un index
foreign key (FK) Clé étrangère
references Contrainte d’intégrité référentielle (CIR)
set null Dans le cas de CIR affectation de valeur null pour les FK
sur suppression ou mise à jour de PK
Set default Dans le cas de CIR affectation de valeur par deffaut pour
les FK sur suppression ou mise à jour de PK
CHECK(Expressions Logique) la valeur d'une certaine colonne doit satisfaire une
expression logique

A.Benmakhlouf
La Définition des Données -LDD-

Exemple : Implémenter le modèle relationnel suivant de gestion des ventes.

Clients(idclient, nomclient, adresse, ville)


Commades(idcommande, Datecommande, Datelivraison, valide(oui/non), #idclient)
Produits(idproduit, nomproduit, Prix, Stock)
LigneCommandes(#idcommande, #idproduit, Quantité, Remise)

A.Benmakhlouf
La Définition des Données -LDD-

create table clients (idclient serial primary key, nomclient varchar(20),


adresse varchar(20), ville varchar(20));

create table commandes (idcommande serial primary key, datecommande


Date, datelivraison Date CHECK (datelivraison >= datecommande), valide
boolean not null, idclient int, foreign key (idclient) references
clients(idclient));

create table produits (idproduit serial primary key, nomproduit


varchar(20), prix float not null, stock int not null);

create table lignecommandes (idcommande int, idproduit int, quantité int


not null, remise float, primary key (idcommande, idproduit), foreign key
(idcommande) references commandes(idcommande) on delete cascade,
foreign key (idproduit) references produits(idproduit) on delete
cascade);

A.Benmakhlouf
La Définition des Données -LDD-

La commande ALTER TABLE permet de modifier la structure d'une table, sa syntaxe


est la suivante

ALTER TABLE NomTable Action (spécifications du champ);

ALTER TABLE permet trois actions, ces actions sont :


 ADD Ajoute un champ a une table
 DROP Supprime un champ d'une table
 MODIFY Modifie les caractéristiques d'un champ
Exemple :
Ajout d'un champ :
alter table clients add "Date naissance" Date;

Suppression d’un champ :

alter table clients drop "Date naissance";

A.Benmakhlouf
La Définition des Données -LDD-

Les contraintes: Ce sont les règles de validation que doit vérifier les données
saisies dans chaque attribut.

Les contraintes de domaine: Il s’agit de définir l’ensemble des valeurs que peut
prendre un attribut. Ces contraintes sont décrites dans la définition d’un attribut,
directement après son type et sa longueur.

 NOT NULL : on impose que l’attribut possède une valeur


 DEFAULT : on spécifie une valeur par défaut dont le type doit correspondre au
 UNIQUE : interdit qu’une colonne contienne deux valeurs identiques.
 CHECK(condition) : Cette clause permet de spécifier une contrainte qui doit être
vérifiée à tout moment par les tuples de la table.

A.Benmakhlouf
La Définition des Données -LDD-

Exemple
create table clients (idclient serial primary key, nomclient varchar(20),
adresse varchar(20), ville varchar(20) CHECK (ville IN (‘Casa’,
‘Rabat’, ‘Fès’)));

create table commandes (idcommande serial primary key,


datecommande Date, datelivraison Date CHECK (datelivraison >=
datecommande), valide boolean not null, idclient int, foreign key
(idclient) references clients(idclient));

A.Benmakhlouf
La Définition des Données -LDD-

Les contraintes d’intégrité d’identité: PRIMARY KEY : Elles spécifient la clé


primaire d’une table via la clause. Elle doit toujours avoir une valeur déterminée et
unique pour la table.

Exemples :

- create table clients (idclient primary key, ….)


- create table Appartement (…, primary key (NumApp, NumImm);

A.Benmakhlouf
La Définition des Données -LDD-

Les contraintes d’intégrité référentielle: foreign key: permet de définir dans une
table une clé étrangère qui fait référence à une clé d’une autre table.

Spécification des actions à effectuer en cas de modification (clause ON UPDATE)


ou de suppression (clause ON DELETE) de valeurs de clés référencées :
CASCADE, SET NULL, SET DEFAULT

Exemples :

create table lignecommandes(idcommande int, idproduit int, quantité int


not null, remise float, primary key (idcommande, idproduit),
foreign key (idcommande) references commandes(idcommande) on
delete cascade, foreign key (idproduit) references produits(idproduit)
on delete cascade);

A.Benmakhlouf
La Manipulations des Données -LMD-

Les opérations de manipulation des bases de données sont :


INSERT; UPDATE et DELETE

La commande INSERT est utilisée pour ajouter des enregistrements ou des parties
d'enregistrements dans des tables. Elle est utilisée généralement sous deux formes :

INSERT INTO table (champ1, champ2,...)


VALUES ('valeur1','valeur2',...);

A.Benmakhlouf
La Manipulations des Données -LMD-

Exemple:
insert into clients (nomclient , adresse , ville)
values ('M2M', 'Rue des Racines 45', 'Casablanca’);

insert into commandes (datecommande, datelivraison, valide, idclient)


values ('14/12/2021', '16/12/2021', 'yes', 1);

insert into produits (nomproduit, prix, stock) values


('PC HP', 12543.00, 120),
('PC DELL', 10543.00, 100),
('Imprimante HP', 3000.00, 55);

insert into lignecommandes values


(1, 1, 12, 0.12),
(1, 2, 2, 0.00),
(1, 3, 15, 0.10);

A.Benmakhlouf
La Manipulations des Données -LMD-

La commande UPDATE est utilisée pour changer des valeurs dans des champs d'une
table. Sa syntaxe est :
UPDATE Nomtable
SET champ1 = nouvelle_valeur1,
champ2 = nouvelle_valeur2,
champ3 = nouvelle_valeur3
WHERE condition;

update produits set prix=prix+0.25 where idproduit=2;

UPDATE produits
SET prix_unitaire = 1000;

A.Benmakhlouf
La Manipulations des Données -LMD-

La commande DELETE permet de supprimer des enregistrements d'une table:

DELETE
FROM table
WHERE condition;

DELETE FROM Clients WHERE ville=’Casablanca’;

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
La commande SELECT est la commande la plus complexe de SQL. Cette
commande va servir à faire des requêtes pour récupérer des données dans les tables.

Requêtes simples – La Projection-

Créée à partir d’une seule table. La seule opération algébrique utilisée est la
projection. La syntaxe est la suivante :

SELECT `champ1`, `champ2`, `champ3`, ...


𝜋𝑐ℎ𝑎𝑚𝑝1,𝑐ℎ𝑎𝑚𝑝2,… (𝑡𝑎𝑏𝑙𝑒)
FROM table;

select idclient,
nomclient SELECT *
from clients; FROM clients;

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Requêtes simples avec critère -La sélection -

Dans ces requêtes l’opération algébrique sélection est utilisée par le SGBD. On
indique des critères de sélection avec la clause WHERE :
SELECT *
FROM table 𝜎𝑐𝑜𝑛𝑑𝑖𝑡𝑖𝑜𝑛𝑠 (𝑡𝑎𝑏𝑙𝑒)
WHERE conditions ;

SELECT *
FROM Clients
WHERE idclient = 7500;
SELECT *
FROM Clients
WHERE prix_unitaire > 100;

SELECT *
FROM Clients
WHERE Ville = 'Casablanca' OR
Ville = 'Rabat'
L’interrogation des Données -LID- (La commande
SELECT)
Opérateur Classement (ORDER BY) Pour classer les valeurs d’un champ

- Classement croissant :
SELECT `champ1`, `Champ2`
From table
ORDER BY `Champ2`

- Classement décroissant :
SELECT `champ1`, `Champ2`
From table
ORDER BY `Champ2` DESC

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
Clauses IN et BETWEEN permetSELECT)
de sélectionner des enregistrements dont la
valeur d'un champ peut être comprise dans une liste ou entre deux valeurs

SELECT *
FROM Clients
WHERE `ville` IN ('Saint-Quentin', 'Paris');
select *
from clients
where ville NOT IN ('Casa', 'Rabat');

SELECT *
FROM Produits
WHERE `prix_unitaire` BETWEEN 100 AND 1000;
SELECT *
FROM Produits
WHERE `prix_unitaire` NOT BETWEEN 100 AND 1000;

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
La clause LIKE permet de faire des recherches approximatives sur le contenu d'un
champ. Par exemple, pour sélectionner les clients dont le nom commence par la
lettre C :

SELECT *
FROM Clients
WHERE societe LIKE 'C%';

tous ceux se terminant par C, on utilisera '%C’,


et tous ceux comportant la lettre C : '%C%'.

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Requêtes simples avec calcule sur les dates: Ces requêtes utilisent des fonctions
SQL de type date.

Les fonctions Dates:

La fonction PostgreSQL EXTRACT() récupère un champ tel qu'une année, un mois


et un jour à partir d'une valeur de date/heure. La syntaxe est donnée par :
EXTRACT(field FROM source)

L'argument field spécifie le champ à extraire de la valeur date/heure.

 DAY: Renvoie le jour de la date


 MONTH: Renvoie le mois de la date
 YEAR: Renvoie l’année de la Date
 WEEK : Renvoie le jour de la semaine d’une date
 CURRENT_DATE: Renvoie la date actuelle (date du système)

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Exemple-1 : Pour sélectionner les commandes réalisées en 2018, on exécute
la requête suivante :
SELECT idcommande, datecommande
FROM commandes
where extract(year from datecommande)=2018;

Exemple-2: Pour sélectionner les commandes réalisées cette année, on exécute


la requête suivante :

SELECT idcommande, datecommande


FROM commandes
where extract(year from datecommande)=
extract(year from CURRENT_DATE);

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Exemple-3: Pour sélectionner les commandes réalisées ce mois, on exécute la
requête suivante :
SELECT idcommande, datecommande
FROM commandes
where extract(year from datecommande)=
extract(month from CURRENT_DATE)
AND extract(year from CURRENT_DATE);

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Requête avec création de nouveau champ avec formule

Création de nouveau champ on utilise une formule où on utilise les attribut de la


table mentionnée dans « From ».

SELECT `champ 1`, formule AS `nouveau_champ`


From table ;
Exemple : dans la BDD des ventes on créer une requête qui ajoute un attribut où
on calcule le prix avec la TVA. (TVA est un attribut de Produits)

select idproduit, designation, prixunitaire,


prixunitaire*(1+TVA) as prixttc
from produits;

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Les Requêtes conditionnelles (Instructions CASE dans PostgreSQL)

La clause SQL « CASE » est une expression conditionnelle générique, similaire aux
instructions if/else dans d'autres langages de programmation. Elle permet d’accorder
deux valeurs différentes à un attribut calculé en fonction d’une condition ou bien à
une sélection. Utilisée avec « SELECT », « WHERE », ….

Syntaxe :

CASE
WHEN condition_1 THEN result_1
WHEN condition_2 THEN result_2
[WHEN ...]
[ELSE else_result]
END

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Les Requêtes conditionnelles (Instructions CASE dans PostgreSQL)

Exemple-1 : Soit la relation où on stock les moyennes des étudiants dans un module :
NoteModule(idetudiant, Moy)
Afficher les étudiants avec leur moyenne et un nouveau attribut où on calcule la
décision : « Ajourné » si la Moy<5 , « Rattrapage » si la 5<=Moy<10 et « Validé » si
la Moy>=10 :

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Les Requêtes conditionnelles (Instructions CASE dans PostgreSQL)

Exemple-2: Dans la BDD « Gestion des Ventes », afficher les commandes réalisées
le mois dernier :
select idcommande, datecommande
from commandes
where extract(month from datecommande)=
case when extract(month from current_date)=1 then 12
else extract(month from current_date)-1
end
and
extract(year from datecommande)=
case when extract(month from current_date)=1 then extract(year
from current_date)-1
else extract(year from current_date)
end;

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Les Sous-Requêtes
Sous-requête (aussi appelé requête imbriquée ou requête en cascade) consiste à
exécuter une requête à l’intérieur d’une autre requête. Une requête imbriquée est
souvent utilisée au sein d’une clause WHERE.

Requête imbriquée qui retourne un seul résultat :

Exemple: Afficher les produits dont le prix est supérieur au prix du produit id=10.ce
dernier est trouvé par une sous requête.

select * from produits


where prixunitaire > (select prixunitaire from produits
where idproduit = 10);

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Les Sous-Requêtes

Requête imbriquée qui retourne une colonne (La clause IN et NOT IN)
la requête externe peut utiliser la commande IN ou NOT IN pour filtrer les lignes
qui possèdent une des valeurs retournées par la requête interne.
La clause IN vérifie la concordance d’une à plusieurs données.

Syntaxe

SELECT *
FROM `table`
WHERE `nom_colonne` IN (
SELECT `colonne`
FROM `table2`
WHERE …)

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Les Sous-Requêtes

Exemple : Soit la relation suivante où on représente les villes visitées par personne.
On veut savoir les personnes qui n’ont pas visité « Rabat »

𝜋𝑖𝑑𝑝𝑒𝑟𝑠𝑜𝑛𝑛𝑒 𝑝𝑒𝑟𝑠𝑜𝑛𝑛𝑒 − 𝜋𝑖𝑑𝑝𝑒𝑟𝑠𝑜𝑛𝑛𝑒 𝜎𝑣𝑖𝑙𝑙𝑒=′ 𝑅𝑎𝑏𝑎𝑡 ′ 𝑝𝑒𝑟𝑠𝑜𝑛𝑛𝑒

select idpersonne, nom from personne where


idpersonne not in (select idpersonne from
(select * from personne where ville = 'Rabat') as R);

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Les Sous-Requêtes

Requête imbriquée qui retourne des tuples (La clause Exists et NOT exists):

La clause EXISTS ou not EXISTS est utilisée dans une clause conditionnelle
pour savoir s’il y a une présence ou non de lignes lors de l’utilisation d’une
sous-requête.

Deux tuples de même structure sont les mêmes si :


- S’ils ont un identifiant ils doivent avoir les mêmes valeurs
- S’ils n’ont pas d’identifiants il faut que les valeurs de tous les attributs soient
les mêmes. Cela se traduit par la condition suivante qui doit être intégrée dans
la sous requête :

where R1.a=R2.a and R1.b=R2.b and R1.c=R2.c and …..

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Les Sous-Requêtes

Syntaxe

SELECT nom_colonne1, nom_colonne2


FROM `table1`
WHERE EXISTS (
SELECT nom_colonne1, nom_colonne2
FROM `table2`
WHERE nom_colonne1= table1. nom_colonne1
AND nom_colonne2= table1. nom_colonne2)

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Les Sous-Requêtes

Exemple : On peut écrire la requête des personnes qui n’ont pas visité « Rabat »
de la manière suivante :

select distinct idpersonne, nom


from personne as p
where not exists (select * from personne where ville = 'Rabat' and
p.idpersonne=idpersonne and p.nom=nom);

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Les Sous-Requêtes

R1 R1

select * from R1
where A in
not(select A from
in (select R2); R2);
A from
R1 ∩
R1 - R2
R2
select * from R1
exists
where not (select
exists * from
(select R2 where
* from R2
R1.A=AR1.A=A
where and R1.B=B and R1.C=C);
and R1.B=B and R1.C=C);

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Requête multi tables

Sont des requêtes où on utilise dans la projection et/ou dans la sélection des
données provenant de plusieurs tables.
Produit Cartésien

Construit une troisième relation regroupant exclusivement toutes les possibilités


de combinaison des tuples des relations de R1 et R2.

Select * From R1, R2 𝑅1 × 𝑅2

Cette opération est utilisée pour réaliser les jointures entre les tables de la base de
données. Elles utilisée aussi pour faire d’autre opérations comme la différence et la
division.

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Requête multi tables

Exemple : Soit le MR suivant qui modélise les villes visitées par personne.
personnes(idpersonne, nom)
villes(idville, nomville)
visiteville(#idpersonne, #idville)

Quelles sont les villes non visitées par personne :

select * from personnes p, villes v


where not exists (select * from visiteville
where idpersonne=p.idpersonne and idville=v.idville);

𝑅 = 𝜋𝑖𝑑𝑝𝑒𝑟𝑠𝑜𝑛𝑛𝑒,𝑖𝑑𝑣𝑖𝑙𝑙𝑒 𝑝𝑒𝑟𝑠𝑜𝑛𝑛𝑒𝑠 × 𝑣𝑖𝑙𝑙𝑒𝑠 − 𝑣𝑖𝑠𝑖𝑡𝑒𝑣𝑖𝑙𝑙𝑒


𝜋𝑖𝑑𝑝𝑒𝑟𝑠𝑜𝑛𝑛𝑒,𝑛𝑜𝑚,𝑛𝑜𝑚𝑣𝑖𝑙𝑙𝑒 (𝑝𝑒𝑟𝑠𝑜𝑛𝑛𝑒𝑠 ⨝ 𝑅 ⨝ 𝑣𝑖𝑙𝑙𝑒𝑠)

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Requête multi tables

Exemple : Soit le MR suivant qui modélise les villes visitées par personne.
personnes(idpersonne, nom)
villes(idville, nomville)
visiteville(#idpersonne, #idville)

Quelles sont les personnes qui ont visité toutes les villes

select * from personnes where idpersonne not in


(select idpersonne from (select * from personnes p, villes v
where not exists (select * from visiteville where
idpersonne=p.idpersonne and idville=v.idville)) as R);

𝜋𝑖𝑑𝑝𝑒𝑟𝑠𝑜𝑛𝑛𝑒 𝑝𝑒𝑟𝑠𝑜𝑛𝑛𝑒𝑠
− 𝜋𝑖𝑑𝑝𝑒𝑟𝑠𝑜𝑛𝑛𝑒 𝜋𝑖𝑑𝑝𝑒𝑟𝑠𝑜𝑛𝑛𝑒,𝑖𝑑𝑣𝑖𝑙𝑙𝑒 𝑝𝑒𝑟𝑠𝑜𝑛𝑛𝑒𝑠 × 𝑣𝑖𝑙𝑙𝑒𝑠 − 𝑣𝑖𝑠𝑖𝑡𝑒𝑣𝑖𝑙𝑙𝑒

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Requête multi tables

Jointures

La thêta jointure est une sélection dans un produit cartésien.

Exemple : dans le MR de gestion des ventes, si on veut afficher les commandes de


chaque client on écrit en SQL :

Select Clients.idclient, nomclient, idcommande


SQL From Clients, Commandes
Where Clients.idclient=Commandes.idclient

Algèbre-R 𝜋𝑖𝑑𝑐𝑙𝑖𝑒𝑛𝑡,𝑛𝑜𝑚𝑐𝑙𝑖𝑒𝑛𝑡,𝑖𝑑𝑐𝑜𝑚𝑚𝑎𝑛𝑑𝑒 (𝐶𝑙𝑖𝑒𝑛𝑡𝑠 ⨝ 𝐶𝑜𝑚𝑚𝑎𝑛𝑑𝑒𝑠)

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Requête multi tables

Jointures Internes (Inner Join)

Cette commande retourne les enregistrements lorsqu’il y a au moins une ligne dans
chaque colonne qui correspond à la condition de l’équi-jouture

Select Clients.idclient, nomclient, idcommande


From Clients Inner join Commandes
on Clients.idclient=Commandes.idclient

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Requête multi tables

Jointures Internes

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Requête multi tables

Jointures Externes (Left Join ou Right Join)

Affiche tous les tuples de la table droite (ou gauche). Même ceux dont
l’identifiant n’apparait pas dans l’autre table jointe. La jointure externe ajoute
des lignes fictives dans une des tables pour faire la correspondance avec les lignes
de l'autre table.

Select Clients.idclient, nomclient, idcommande


From Clients Left join Commandes
on Clients.idclient=Commandes.idclient

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Requête multi tables

Jointures Externes (Left Join ou Right Join)

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Requête multi tables

Supprimer les doubles avec DISTINCT

Permet de supprimer les doubles du résultat d’une projection


Exemple: nous voulons la liste des clients ayant acheté quelque chose. Nous
allons d'abord faire une semi-jointure entre les tables Clients et Commande, et
Tapez
ajouter la clause DISTINCT sur le champ ouune équation ici.
la répétition peut se produire :

Clients ⋉ Commandes

Select distinct clients.idclient, nomclient


From Clients inner join Commandes
on Clients.idclient=Commandes.idclient;

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Requête multi tables

Les Requêtes de synthèses avec agrégations et regroupement.

L’SQL nous permet de faire des synthèses sur des attributs en regroupant un
ensemble de tuples. Pour cela des fonctions d’agrégation sont utilisées.

SQL dispose de Cinq fonctions importantes :


SUM(), AVG(), MAX(), MIN() et COUNT().
On les appelle fonctions d'ensemble par ce qu’elles synthétisent le résultat d'une
requête plutôt que de renvoyer une liste d'enregistrements.

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Requête multi tables

Utilisation simple de l’agrégation


Pour compter le nombre total de ligne d’une table,
SELECT COUNT(*) FROM table
Exemple: Le nombre total des clients est donné par:
SELECT COUNT(*) FROM Clients

Utilisation de l’agrégation avec le regroupement


L’utilisation des fonctions d’agrégation avec la commande GROUP BY permet de
diminuer le degré d’agrégation en construisant des sous-ensembles de tuples sur
lesquels on applique la synthèse
Exemple: Le nombre total des clients par ville est donné par:
select ville, count(idclient) as nbre from clients
group by ville;

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Requête multi tables

Utilisation de l’agrégation avec le regroupement

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Requête multi tables

Utilisation de l’agrégation avec le regroupement

Exemple2: Calculer le montant total des ventes par année.


select extract(year from datecommande) as ANN,
SUM(Prixunitaire*Quantite) as Mt
From commandes, lignecommandes, produits
where commandes.idcommande=lignecommandes.idcommande
and lignecommandes.idproduit=produits.idproduit
group by extract(year from datecommande);

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Requête multi tables

Utilisation de l’agrégation avec le regroupement

Exemple3 : Si on introduit dans la projection la ville on va analyser le


montant total des ventes par année et par ville.

select extract(year from datecommande) as ANN, ville,


SUM(Prixunitaire*Quantite) as Mt
From clients, commandes, lignecommandes, produits
where clients.idclient=commandes.idclient
and commandes.idcommande=lignecommandes.idcommande
and lignecommandes.idproduit=produits.idproduit
group by extract(year from datecommande), ville;

A.Benmakhlouf
L’interrogation des Données -LID- (La commande
SELECT)
Requête multi tables

Sélection sur une relation résultante d’une agrégation

La clause « Having » remplace la clause « Where » dans le cas d’une


agrégation (après l’utilisation de Group by)
select SUM(Prixunitaire*Quantite) as Mt_2021
From commandes, lignecommandes, produits
where commandes.idcommande=lignecommandes.idcommande
and lignecommandes.idproduit=produits.idproduit
group by extract(year from datecommande)
having extract(year from datecommande)=2021;

select extract(year from datecommande) as ANN, SUM(Prixunitaire*Quantite) as Mt


From commandes, lignecommandes, produits
where commandes.idcommande=lignecommandes.idcommande
and lignecommandes.idproduit=produits.idproduit
and extract(year from datecommande)=2022
group by extract(year from datecommande);
Chapitre-4:
Modèle Conceptuel de Données
–MCD-

A.Benmakhlouf
Méthode de Conception MERISE
Conception de système d’information

La phase de conception nécessite des méthodes permettant de mettre en place un


modèle sur lequel on va s'appuyer.
La modélisation consiste à créer une représentation virtuelle d'une réalité de telle façon
à faire ressortir les points auxquels on s'intéresse.

Ce type de méthode est appelé analyse. Il existe plusieurs méthodes d'analyse, parmi
elles il y a les méthodes

MERISE: Méthode d'étude et de réalisation informatique pour les systèmes


d'entreprise

UML : Langage de Modélisation Unifié (Unified Modeling Language)

A.Benmakhlouf
Méthode de Conception MERISE
MERISE

MERISE est une méthode de conception, de développement et de réalisation de


projets informatiques.

basée sur la séparation des données et des traitements à effectuer en plusieurs


modèles conceptuels, organisationnels et physiques.

La séparation des données et des traitements assure une longévité au modèle. En


effet, l'agencement des données n'a pas à être souvent remanié, tandis que les
traitements le sont plus fréquemment.

A.Benmakhlouf
Méthode de Conception MERISE
MERISE : La conception

La conception du système d'information se fait par étapes, afin d'aboutir à un


système d'information fonctionnel reflétant une réalité physique,

Modèle Conceptuel

Modèle Logique

Modèle Physique

A.Benmakhlouf
Méthode de Conception MERISE
MERISE : La conception

Modèle Conceptuel
A ce niveau on définit les classes d’objets ou d’événements et les règles de
comportement du système. On liste et on décrit les règles de gestion en répondant à
la question Quoi faire ?.
Dans ce modèle on créer :
 Le MCC (Modèle conceptuel de la communication) qui définit les flux
d'informations à prendre en compte.

 Le MCD (Modèle conceptuel des données) qui définit les objets les rapports
fonctionnels entre ces objets ainsi que les données. on utilise l’approche
ENTITE - ASSOCIATION

 Le MCT (Modèle conceptuel des traitements) décrivant les règles et les


contraintes à prendre en compte.
Méthode de Conception MERISE
MERISE : La conception

Modèle Logique

Le modèle logique des données consiste à décrire la structure de données


utilisée sans faire référence à un langage de programmation. Il s'agit donc de
préciser le type de données utilisées lors des traitements.

Ainsi, le modèle logique est dépendant du type de base de données utilisé.


Les bases de données Relationnelles sont les plus utilisées. On parle donc
de MLDR ou MR.
Méthode de Conception MERISE
MERISE : La conception

Modèle Physique

A ce niveau, on identifie et on décrit les moyens utilisés (choix matériel et logiciel)


pour gérer les données
Il représente l’implémentation de la BDD : les tables, colonnes, types de
données, vues, contraintes, indices et procédures au sein de la base de
données.
A.Benmakhlouf
Conception d’un schéma relationnel (Modèle
Entité/Association)
Le Modèle
Le modèle E/A (Modèle Conceptuel de Données), conçu en 1976, est à la
base de la plupart des méthodes de conception.
Modèle de données –> décrire la réalité perçue à travers les
données mises en jeu (indépendamment des opérations que
l’on effectuera ultérieurement dessus)
But: fournir des outils et un cadre rigoureux pour l’analyse des
données et de leurs liaisons.

Concepts de base: entité, association, propriété (attribut) et


valeur (et type de valeur).

A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD) – Modèle E/A

Il représente une description abstraite et détaillée de l’ensemble des objets, ou de


concepts concernés par les traitements. sans réfléchir aux possibilités de traitement
par l’ordinateur.

Il a pour but d'écrire de façon formelle les données qui seront utilisées par le
système d'information. Il s'agit donc d'une représentation des données,
facilement compréhensible.

Nous étudierons le modèle basé sur le couple Entité - Association.

A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une entité (objet)

Approche par l’Exemple

 Le client « client1 » a passé la commande C1 contenant les produits P1 et P2


 Le même client « client1 » a passé la commande C2 contenant les produits P2 et P3
 Le client « client2 » a passé la commande C3 contenant les produits P1 et P2
 Le même client « client2 » a passé la commande C4 contenant les produits P2 et P3
 La commande C1 a donné lieu à la facture F1
 La commande C2 a donné lieu à la facture F2
 La commande C3 a donné lieu à la facture F3
 La commande C4 a donné lieu à la facture F4
A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une entité (objet)


La description de ce réel peut aussi se résumer par le tableau suivant:

Client Commande Produit Facture


Client1 C1 P1, P2 F1

C2 P2, P3 F2

Client2 C3 P1, P2 F3

C4 P2, P3 F4

4 ensembles (Client; Commande; Produit et Facture) Appelés ENTITE


A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une entité (objet)

Définition
On désigne par entité tout objet que l’on peut décrire. Il doit être identifiable, pertinent
pour l’application et concerné par les règles de gestion.
Formalisme

Nom de l’entité

A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une entité (objet)


Propriété d’une entité (Attribut)
La propriété représente la plus petite quantité d’informations élémentaire caractérisant
une entité, que l’on peut utiliser d’une manière autonome et qui présente un intérêt pour
le domaine étudié

: Information pertinente
: ne figure pas dans d’autre entité
: non déductible d’autres propriétés
: (Atomique) chacune des valeurs qu’elle regroupe n’est pas
décomposable. (cette décomposition est relative à son
exploitation dans le SI)

A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une entité (objet)


L’identification des propriétés se fait par des noms explicites, qui présentent un
intérêt pour le domaine à étudier. Cette identification doit garantir une bijection entre
l’ensemble des noms et l’ensemble des propriétés à gérer.
Ensemble des
Ensemble des Propriétés
Noms Référence d’un article
Synonymes : AC234; AZ132;
Référence AX123; ...
Bijection
NuméroProduit
NomProduits Nom d’un produit :
Disque dur; RAM; ….
NomClients
Nom Polysèmes
Nom des clients :
Berrada Med;
BENNANI Karim; …
A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une entité (objet)

Exemple : L’entité client peut avoir les propriétés suivantes : Numéro client, Nom ou
raison sociale, Adresse, Ville, Fonction, etc.

Clients
Num client
Société
Contact
Fonction
Adresse
Ville

A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une entité (objet)

Occurrence d’une propriété. Toute valeur prise par la propriété définit


une occurrence de la propriété.

Occurrence d’une entité. L’ensemble de valeurs prises par les propriétés


caractérisant une entité définit l’occurrence d’une entité.

A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une entité (objet)

Identifiant (clé). Parmi les propriétés d’une entité il peut y avoir une ou plusieurs
permettant d’identifier une occurrence unique d’une entité. Si une telle propriété existe,
elle identifie l’entité.

Clients
# Num client
Société
Contact
Fonction
Adresse
Ville

A.Benmakhlouf
Une Occurrence d’entité

Une « valeur »

Clients
Clients
Clients
ClientsNum client
Client
Clients Num client
ClientsNum
Clients Num client
client
Société
Le titre Clients Num #BONAP Société
client
Num Société
client
Société Contact
NumSociété
client
Bon appContact
L’identifiant # Num client Contact
Société ContactFonction
Société Karim BERRADA
Contact Fonction
Société
Contact Fonction
Fonction Adresse
Contact Propriétaire
Fonction Adresse
Contact
Fonction Adresse
Fonction 12,Adresse
Adresse
VilleII
Bd Hassan
Ville
Fonction
AdresseVilleVille
Adresse Casablanca
Ville
Une propriété Adresse
Ville
Ville
Ville

ENTITE
A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une entité (objet)

Occurrences d’une propriété Occurrence d’une entité


A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une entité (objet)

Notion de dépendance fonctionnelle


Permet de passer d’un ensemble de propriétés non structuré à un
modèle conceptuel des données formé d’entités et d’associations.
Pour quoi on dit que P1 est une propriété de E1 et non pas de E2 ?

Définition : une propriété (ou un groupe de propriétés) P2 est dit


"fonctionnellement dépendante" d’une propriété (ou un groupe de
propriétés) P1 (P1  P2) si : a1 = a2 b1 = b2

a1, a2, b1, b2 étant des valeurs des propriétés P1 et P2 dans une entité
du Modèle.
A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une entité (objet)


Notion de dépendance fonctionnelle
On dit que P1 détermine P2 ou P2 en dépendance fonctionnelle de P1: P1  P2 si
pour chaque valeur de P1 on ne peut faire correspondre qu’une seule valeur de P2.
(si a1 = a2 alors b1 = b2)
Soient les propriétés suivantes: No_CIN, Nom, Adresse, Age, Profession.
Les dépendances fonctionnelles qui peuvent s'appliquer sont les suivantes :
No_CIN  Nom PERSONNEL
No_CIN  Adresse No_CIN
No_CIN  Age Nom
No_CIN  Profession. Adresse
Age
On pourra aussi écrire : Profession
No_CIN  Nom ,Adresse, Age, Profession.
La propriété No_CIN détermine toutes les autres propriétés. Il s'agit d'une
propriété identifiante d’une entité Personnel.
A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une entité (objet)


Notion de dépendance fonctionnelle
Soit {P1, P2, P3, ……, Pn} un ensemble de propriétés:
Si la propriété P1 détermine toutes les autres propriétés: P1  P2, P3, Pn. Alors
on peut dire que P1 est un identifiant de d’une entité E et P2, P3, …Pn sont
des propriétés de E

E
P1
P2
P3
.
.
Pn

A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une entité (objet)


Notion de dépendance fonctionnelle composée
Soit {P1, P2, P3, ……, Pn} un ensemble de propriétés:
Si les propriétés P1 et P2 détermine toutes les autres propriétés:
(P1,P2)  P3, P4, …., Pn. Alors on peut dire que (P1,P2) est un identifiant
composé d’une entité E et P3, P4, …Pn sont des propriétés de E

E
P1
P2
P3
.
.
Pn

A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une entité (objet)


Notion de dépendance fonctionnelle
Soient l’ensemble des propriétés {A, B, C, D, E} dont les valeurs sont données par le
tableau suivant:
A B C D E
a1 b1 c1 d1 e1
a1 b2 c2 d2 e1
a2 b1 c3 d3 e1
a2 b1 c4 d3 e1
a3 b2 c5 d1 e1

Quelles sont les DF possibles ?


Existe-il un identifiant ?
Peut-on créer une entité?

A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une entité (objet)


Notion de dépendance fonctionnelle
Les dépendances fonctionnelles satisfaites par R sont les suivantes :
A -> E ; B -> E ; C -> ABDE ; D -> E ; AB -> D ; AD -> BE ; BD -> AE.
A B C D A B A D B D

E E A B D E E E E
D B A
Entité

C
A
B
D
E
A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une entité (objet)

Notion de dépendance fonctionnelle directe


Pour supprimer les redondances, nous devons avoir une dépendance
fonctionnelle directe entre l’identifiant de l’entité et les autres
propriétés non identifiantes de l’entité.
Une dépendance fonctionnelle x  y est directe s’il n’existe pas de propriété z
telle que : x  z et z  y.

Article AE23 ArticleAZ27 Catégories


BE33
Référence Imprimante Disque-
Référence Toner
Désignation 3000,00 Dur
Désignation 1000,00
PUHT A PUHT 1000,00 N°Catégorie
B
N°Catégorie Mat-Info N°CatégorieA LibelléCatégorie
Conso-info
LibelléCatégorie Mat-Info

A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une entité (objet)

DFD Exemple-1
Soit les propriétés suivantes:
{NumE, Nom, Prénom, NumDep, LibDep, CodeUR, LibelléUR} tel que:

NumE  Nom NumE


NumE  Prénom
NumE  NumDep
NumDep CodeUR
NumE  CodeUR Nom Prénom
NumDep  LibDep
CodeUR  LibUR
LibUR
LibDep

A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une entité (objet)

DFD Exemple-2
Soit les propriétés suivantes :
num-cli, nom, adresse, num-com, date-com, code-prod, prix, lib-prod, quantite:

num-cli --> nom, adresse num-com


num-com --> date-com, num-cli
code-prod --> lib-prod, prix
code-prod, num-com --> quantite
Num-cli
Code-prod Date-com

nom prénom
Lib-prod prix Quantité

A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une association (Relation)


Définition
Une association traduit les rapports ou les relations existants entre deux
ou plusieurs entités.
Occurrence d’association. une correspondance entre deux ou
plusieurs occurrences d’entités afin de conserver les informations
Formalisme
Une association est représentée par une ellipse à l’intérieur de laquelle on écrira
Entitéson
2
Entité 1
nom et ses propriétés éventuelles. Nom de la relation
Propriété1
Propriété1 Propriété
Propriété2
Propriété2

A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une association (Relation)


Passe
Passe
Passer

Clients
Clients
Clients
Clients Commande
Commande
Clients
Clients Commande
Commande Numclient
Num client
Clients Num client
Client
Clients
Num
ANATR
#BONAP
client 121545Société
Société
AL345 ALFKISociété
Société 123413/12/2010
# Num Bonclient
Sociétéapp Contact
Contact
Société
2M LaurenceContact
ContactLebihan Contact
Société
Contact 12/10/2010
Num Fonction
Fonction
Commande
Contact
BENNANI Fonction
Fonction Fonction
Contact Propriétaire
Fonction Date Adresse
Adresse
Commande
Fonction
Directeur Adresse
Adresse Adresse
FonctionC, Araquil
Adresse 67 Ville
Ville
Adresse
52, Rue Ville

Ville Ville
Adresse Madrid
Ville
Ville
Casablanca
VilleA.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une association (Relation)


Client Commande
N° client Passer
Nom-client N° Commande
Prénom-client Date commande
Adresse
etc
Composer
Prix Unitaire
Quantité Fait

Produit Fournisseur
N° produit Fournit N° fournisseur Employé
Nom Produit Société N° Employé
Prix Contact Nom-Emp
etc Fonction-four Prénom-Emp
Fonction
A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une entité (objet)

Entité : Objets qui peut être décrit avec des propriétés appelées
attributs
Une Propriété (attribut) : c’est une caractéristique ou une
qualité d’une entité ou d’une association”. Il peut prendre une
(ou plusieurs) valeur(s).

“Une valeur est un symbole utilisé pour représenter un fait


élémentaire”.

A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une entité (objet)


P1 = V11, V12

P2 = V21, V22, V23


E
P3 = V31, V32, V33

P4 = V41

A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une association (Relation)

La cardinalité d’une relation


C’est une étape essentielle de la démarche de conception de base de donnée.

C’est le nombre de fois minimum et maximum de participation d’une occurrence d’une


entité à une relation.

La cardinalité s’exprime par deux nombres appelés cardinalité minimale et cardinalité


maximale
La cardinalité minimale prend les valeurs 0 ou 1
La cardinalité maximale prend les valeurs 1 ou n

A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une association (Relation)

Passe

(1,1)
(0,n)

Clients
Clients
Clients
Clients Commande
Commande
Clients
Clients Commande
Commande Numclient
Num client
Clients Num client
Client
Clients
Num
ANATR
#BONAP
client 121545Société
Société
AL345 ALFKISociété
Société 123413/12/2010
# Num Bonclient
Sociétéapp Contact
Contact
Société
2M LaurenceContact
ContactLebihan Contact
Société
Contact 12/10/2010
Num Fonction
Fonction
Commande
Contact
BENNANI Fonction
Fonction Fonction
Contact Propriétaire
Fonction Date Adresse
Adresse
Commande
Fonction
Directeur Adresse
Adresse Adresse
FonctionC, Araquil
Adresse 67 Ville
Ville
Adresse
52, Rue Ville

Ville Ville
Adresse Madrid
Ville
Ville
Casablanca
VilleA.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une association (Relation)


Client Commande
N° client Passer Commande
Nom N° Commande
Prénom 0,n 1, 1 Date commande
Adresse
etc

Une commande est tj


Un client peut ne pas passée par un client
passer de commande

Un client peut passer au Une même commande


plus n commandes est passé au plus une
fois
A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une association (Relation)


Client Commande
N° client 0,n Passer 1,1
NomClient 1,n N° Commande 1,1
PrénomClient Date commande
AdresseClient
etc
Composer
PrixVente
Quantité Réalise
0,n
Produit Fournisseur 1,n
N° produit Fournit N° fournisseur Employé
Nom Produit Société N° Employé
1,1 1,n
PrixCatalogue Contact NomEmp
etc Fonction PrénomEmp
FonctionEmp
A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une association (Relation)


Les profs accordent des notes aux étudiants

Prof1 * * Etudiant 1
Prof2 * * Etudiant2

?
Prof3 * * Etudiant3
Prof4 * * Etudiant4

Date 1 * Date 2 * Date3 *

A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une association (Relation)

ENSEIGNANT ETUDIANT

CodeEnseigant CodeEtudiant
NomEnseignant NomEtudiant
PrénomEnseignant PrénomEtudiant
ACCORDER

Note

DATE

Date de la note
A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Le concept d’une association (Relation)

ENSEIGNANT ETUDIANT

CodeEnseigant CodeEtudiant
NomEnseignant NomEtudiant
PrénomEnseignant ACCORDER PrénomEtudiant

Note
Date Note

A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Exemple récapitulatif d’élaboration d’un MCD

Soit les données suivantes


1- quelles sont les données qui ne
Date de commande peuvent pas être des propriétés
Nom client
Désignation produit 2- élaborer un MCD en se basant
Adresse client sur la DFD
N° client
Référence produit
Prix unitaire de vente
Quantité commandé
N° commande
Montant HT/produit
Prix unitaire catalogue
Délai de livraison
Montant total HT
Nombre de
ventes/produit
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Exemple récapitulatif d’élaboration d’un MCD

Soit une PME spécialisée dans la mise à disposition des employés pour le compte de ses clients.

Chaque intervention donne lieu à un contrat avec le client: les principales informations du
contrat sont:
- N° du contrat
- La description de l’intervention
- Date début de l’intervention
 Ce contrat définie les qualifications de chaque intervenant (il existe une vingtaine de
qualifications possibles) et le nombre de jour d’intervention correspondant à chaque qualification
A chaque qualification correspond un tarif journalier. La PME s’accorde en interne une certaine
souplesse sur la détermination précise de la qualification de son personnel en procédant de la
manière suivante:
 Chaque employé possède a priori une qualification de base.
 A chaque intervention il est possible de réajuster la qualification. Donc il faut connaitre le degrés
de compétence de chaque employé dans les autres qualifications.
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Exemple récapitulatif d’élaboration d’un MCD

1- Dictionnaire des données (les entités, les noms de différentes propriétés, les
associations).

Num Client Num Employé


Nom client Nom
Adresse Prénom
Raison sociale Etc
Ville Code qualif
Num Contrat Libelé qualif
Objet Tarif/jour
Date début
Nbre_Jour/Qualif
Degré_compétence

A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Diagramme de dépendance
Matricule

Degré_compétence
N° contrat Email
Nom_Emp
Code_Qualif

Description
N° Client Nbre_Jour_Qualif Tarif_jour
DateDébut Libélé_Qualif

AdresseClient
NomClient TelClient
Prenomlient

A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Exemple récapitulatif d’élaboration d’un MCD


2- Calcule des cardinalités
Entité Association Card. Justification
Client Passe 1,n Un client peut passer 1 contrat comme il peut passer n
contrats
Contrat Est passé 1,1 Un contrat est passé par un client au plus
Contrat Définit 1,n Un Contrat définit au moins une qualification
Qualification Est définit 0 ,n Une qualification peut na pas être définie comme elle
peut être définie par n contrats
Employé Réajuster 0,n Un Employé peut ne réajuster aucune qualification
comme il peut réajuster n qualifs
Qualification Être réajuster 0,n Une qualifs peut ne pas être réajuster par aucun
employé comme elle peut être réajuster par n employés

Employé Posséder 1,1 Chaque employé possède une qualification


Qualification Est possédé 0,n Une qualif peut ne pas être possédé par aucun employé
comme elle peut être possédé par n employés

A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Données (MCD)

Exemple récapitulatif d’élaboration d’un MCD

Clients Contrat
Num Client SIGNER Num Contrat
Nom client Description
1,n
Adresseclient 1,1 Date début
Raison sociale
Villeclient 1,n
DEFINIR
Nbre_jour_qualif
0,n
REAJUSTER
Employé 0,n Degre_comp 0,n Qualification
Matricule Code qualif
NomEmp Libelé qual
PrénomEmp
Etc 1,1 POSSEDER Tarif/jour
0,n
A.Benmakhlouf
Modèle Logique
Modèle Logique de Données Relationnel (MLDR)

C’est l’étape qui consiste à transposer le MCD en Modèle Logique de


Données Relationnelles (MLDR).

Ce MLDR est en fait le dernier pas vers le Modèle Physique de donnée (MPD)

MCD MLD

Des règles strictes, nécessaires et suffisantes pour


passer d'un MCD à un MLDR

A.Benmakhlouf
Modèle Logique
Modèle Logique de Donnée Relationnel (MLDR)

Modèle Logique de donnée Relationnel (MLDR)

Règles de passage : Entités

Toute entité du MCD devient une relation du MR, et donc une table de la
Base de Donnée. La relation porte le même nom que l’entité

Chaque propriété de l'entité devient un champ (attribut) de la relation,

L'identifiant de l'entité devient la Clé Primaire de la relation

A.Benmakhlouf
Modèle Logique
Modèle Logique de Donnée Relationnel (MLDR)

Modèle Logique de donnée Relationnel (MLDR)

Clients
Num client
Société
Contact
Fonction
Adresse
Ville

Client (Num client, Société, Contact, Fonction, Adresse, Ville)

A.Benmakhlouf
Modèle Logique
Modèle Logique de Donnée Relationnel (MLDR)

Modèle Logique de donnée Relationnel (MLDR)

Régles de passage : Association binaire aux cardinalités (X,1) - (X,n),


X=0 ou X=1

La Clé Primaire de la table à la cardinalité (X,n) devient un attribut et donc une Clé
Etrangère dans la table à la cardinalité (X,1) :

A.Benmakhlouf
Modèle Logique
Modèle Logique de Donnée Relationnel (MLDR)

Modèle Logique de donnée Relationnel (MLDR)


Règles de passage : Association binaire aux cardinalités (X,1) - (X,n),
X=0 ou X=1

Profs Cours
CodeProf 1,n Enseigner 1,1
Nom 1 N° Cours
Prénom IntituléCours
Email VolumeHoraire
etc NbreHeures
n

Prof(CodeProf, Nom, Prénom, Email)


Cours(N°Cours, Intitulé, VolumeHoraire, NbreHeures, #CodeProf)

NbreHeures/Prof ????
A.Benmakhlouf
Modèle Logique
Modèle Logique de Donnée Relationnel (MLDR)

Modèle Logique de donnée Relationnel (MLDR)


Règles de passage : Association binaire aux cardinalités (X,1) - (X,n),
X=0 ou X=1

Profs Cours
CodeProf 1,1 Enseigner 0,n
Nom N° Cours
Prénom 1 IntituléCours
Email VolumeHoraire
n
NbreHeures

Prof(CodeProf, Nom, Prénom, Email, NbreHeures, #N°Cours)


Cours(N°Cours, Intitulé, VolumeHoraire)
NbreHeures/Cours ????
A.Benmakhlouf
Modèle Logique
Modèle Logique de Donnée Relationnel (MLDR)

Modèle Logique de donnée Relationnel (MLDR)

Règles de passage : Association binaire aux cardinalités (X,n) - (X,n),


X=0 ou X=1

L’association se transforme en Relation (table) ayant comme Clé


Primaire la concaténation (une clé composée ) des identifiants des
2 entités.

A.Benmakhlouf
Modèle Logique
Modèle Logique de Donnée Relationnel (MLDR)

Modèle Logique de donnée Relationnel (MLDR)

Profs 0,n 1,n Cours


Enseignement
CodeProf 1 NbreHeures N° Cours
1 Intitulé
NomProf
Email VolumeHoraire
Enseignement

CodeProf
N° Cours n
n NbreHeures

NbreHeures/Cours ????
NbreHeures/Prof ????
Profs (CodeProfs, NomProfs, Email)
Cours (N°Cours, intitulé, VolumeHoraire)
Enseignement(CodeProfs, N°Cours, Nbre heures)
A.Benmakhlouf
Modèle Logique
Modèle Logique de Donnée Relationnel (MLDR)

Modèle Logique de donnée Relationnel (MLDR)

Règles de passage : Association binaire aux cardinalités (1,1) - (1,1)

L’association se transforme en Relation (table) ayant comme Clé Primaire la


concaténation (une clé composée ) des identifiants des 2 entités.

A.Benmakhlouf
Modèle Logique
Modèle Logique de Donnée Relationnel (MLDR)

Modèle Logique de donnée Relationnel (MLDR)

Profs 1,1 1,1 Cours


Enseignement
CodeProf 1 Nbre Heures N° Cours
1 Intitulé
NomProf
Email VolumeHoraire
Enseignement

CodeProf
N° Cours 1
1 Nbre Heures

Profs (CodeProfs, NomProfs, Email)


Cours (N°Cours, intitulé)
Enseignement(CodeProfs, N°Cours, Nbre heures)
A.Benmakhlouf
Modèle Logique
Modèle Logique de Donnée Relationnel (MLDR)

Modèle Logique de donnée Relationnel (MLDR)

Régles de passage : Association binaire aux cardinalités (0,1) - (1,1)

La Clé Primaire de la table à la cardinalité (0,1) devient un attribut et donc une Clé
Etrangère dans la table à la cardinalité (1,1) :

A.Benmakhlouf
Modèle Logique
Modèle Logique de Donnée Relationnel (MLDR)

Modèle Logique de donnée Relationnel (MLDR)


Règles de passage : Association binaire aux cardinalités (X,1) - (X,1),
X=0 ou X=1

Profs
0,1 1,1 Cours
CodeProf Enseigner
N° Cours
Nom 1 IntituléCours
Prénom
VolumeHoraire
Email 1 NbreHeures

Profs(CodeProf, Nom, Prenom, Email)


Cours (N°Cours, Intitulé, VolumeHoraire, NbreHeures, CodeProf)

A.Benmakhlouf
Modèle Logique
Modèle Logique de Donnée Relationnel (MLDR)

Modèle Logique de donnée Relationnel (MLDR)


Règles de passage : Association binaire aux cardinalités (X,1) - (X,1),
X=0 ou X=1

Profs Cours
CodeProf 1,1 Enseigner 0,1
Nom N° Cours
Prénom 1 IntituléCours
Email VolumeHoraire
1
NbreHeures

Prof(CodeProf, Nom, Prénom, Email, NbreHeures #N°Cours)


Cours(N°Cours, Intitulé, VolumeHoraire)

A.Benmakhlouf
Modèle Logique
Modèle Logique de Donnée Relationnel (MLDR)

Modèle Logique de donnée Relationnel (MLDR)


Relation n-aire (quelle que soit 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.

A.Benmakhlouf
Cours
Prof
CodeProf N°Cours
(1,n) (1,n)
Nom Intitulé
Prenom VolumeHoraire
Email

Enseignement

NbreHeures

(1,n)
Groupe

IdGroupe
NomGroupe
NbreEtudiant

A.Benmakhlouf
Modèle Logique
Modèle Logique de Donnée Relationnel (MLDR)

Modèle Logique de donnée Relationnel (MLDR)


Relation n-aire (quelle que soit les cardinalités)

PROF(CodeProf, Nom, Prénom, Email)


COURS(N°Cours, Intitulé, VolumeHoraire)
GROUPE(IdGroupe, NomGroupe, NbreEtudiant)
Enseignement(CodeProf, N°Cours, IdGroupe, NbreHeures)

A.Benmakhlouf
Modèle conceptuel
Modèle Conceptuel de Donnée (MCD)

Exemple
Client Commande
N° client 0,n Passer 1,1
Nom N° Commande
Prénom 1,n 1,1
Date commande
Adresse
etc
Composer
Prix Unitaire
Quantité Réalise
0,n
Produit Fournisseur 1,n
N° produit Fournit N° fournisseur Employé
Nom Produit Société N° Employé
Prix 1,1 Contact Nom
1,n
etc Fonction Prénom
Fonction
A.Benmakhlouf
Modèle Logique et physique
Modèle Logique de Donnée (MLDR)

Client (N° Client, nom, prénom, Adresse)


Employé (N° Employé, nom, prénom, Fonction)
Commande (N° commande, Date, #N° client, #N° Employé)
Détail commande (N° commande, N° produit, PrixUnitaire, Quantité)
Produit (N° produit, Nom produit, prix, #N° Fournisseur)
Fournisseur (N° fournisseur, société, contact, Fonction)

A.Benmakhlouf
A.Benmakhlouf
Normalisation du (MLDR)
Pour quoi ?
Eviter les anomalies. tels que les
anomalies de lecture, les anomalies
d'écriture, la redondance des
données et la contre performance.

Permet de vérifier la robustesse


NORMALISATION de la conception pour améliorer
la modélisation

faciliter la mémorisation des


données en évitant la redondance
et les problèmes sous-jacents de
mise à jour ou de cohérence
A.Benmakhlouf
Normalisation du (MLDR)
Dépendance Fonctionnelle (DF)

Permet de passer d’un ensemble de propriétés non structuré à un


modèle conceptuel des données formé d’entités et d’associations et
au modèle relationnel correspondant.

On dit que b est en dépendance fonctionnelle (DF) de a si à une


valeur quelconque de la propriété a, on ne peut faire correspondre
qu’une seule valeur au plus de la propriété b.
On note a  b
(source)  (cible)
Exemple :
Num client  Nom client

La réciproque est fausse :


Nom client Num client
A.Benmakhlouf
Normalisation du (MLDR)
Dépendance Fonctionnelle (DF)
N° client
Matricule Prix de base PrénomClient Adresse
Contact
N°Commande Date_Commande
Client Commande
0,n Passer 1,1
Quantité Vendue
1,n 1,1
N°Produit Société
Composer
Désignation N°Fournisseur Réalise
NomClient
0,n
Produit Fournisseur 1,n
Fournit Prix Vente Employé

1,1
1,n
TitreEmployé

Adressefournisseur NomEmployé
PrénomEmployé
Normalisation du (MLDR)
DF à partir de propriétés concaténées

Il peut exister des dépendances fonctionnelles à partir de propriétés


concaténées (DFC),

Exemple : Considérons une commande qui comporte plusieurs produits


Num_Commande + Ref_Produit quantité commandée

Les dépendances fonctionnelles dont la source est formée de plusieurs


propriétés doivent être élémentaires, c'est-à-dire ne pas être créées
artificiellement.

Exemple :
Num Commande + Num Client date commande

n’est pas une DF élémentaire car on n’a pas besoin du numéro de


client pour connaître la date de commande
A.Benmakhlouf
Normalisation du (MLDR)
Propriétés des dépendances fonctionnelles

- UNION

Si on a deux DF ayant la même source, on peut les rassembler en


une seule, en séparant les cibles par une virgule.

Si a  b et a  c alors ont peut écrire que a  b, c

Exemple :

Référence  Désignation
Référence Prix de vente unitaire
Alors par union on a :
Référence  Désignation, Prix de vente unitaire
A.Benmakhlouf
Normalisation du (MLDR)
Propriétés des dépendances fonctionnelles

- TRANSITIVITE

Si a b et bc alors on a a c

Exemple : Num Médecin  Code Service


Code Service  Num Hopital
Alors on a Num Médecin  Num Hopital
Les DF qui peuvent être déduites par transitivité de deux autres DF
(qui ne sont pas directes) doivent être éliminées car elles sont alors
redondantes.
Il ne reste alors que les DF directes, c'est-à-dire celles qui ne peuvent
pas être retrouvées par transitivité.
A.Benmakhlouf
Normalisation du (MLDR)
Les 3 formes normales

 1ère forme Normale


Une relation est normalisée en première forme normale si :

1) elle possède une clé identifiant de manière unique et stable


chaque ligne
2) chaque attribut est monovalué (ne peut avoir qu’une seule valeur
par ligne)
3) aucun attribut n’est décomposable en plusieurs attributs
significatifs
Contre-exemple :
EMPLOYE (Nom, Enfants, Diplômes)
NOM DIPLOME ENFANTS
KARIMI Nature Année Prénom Année de Naissance
Bac 1975 Ahmed 1988
Licence 1980 Sara 1992
A.Benmakhlouf Anas 2000
Normalisation du (MLDR)
Les 3 formes normales

 2ème forme Normale


Une relation R est en deuxième forme normale si et seulement si :
 elle est en 1FN
 tout attribut non clé est totalement dépendant de toute la clé.
Autrement dit, aucun des attributs ne dépend que d’une partie de la clé.

La 2FN n'est à vérifier que pour les relations ayant une clé composée. Une relation en
1FN n'ayant qu'un seul attribut clé est toujours en 2FN

Contre-exemple :
LIGNE_COMMANDE(Num_cde, RéférenceProd, DésignationProd, Quantité)

Cette relation n’est pas normalisée en 2FN. Désignation de dépend que


d’une partie de la clé

A.Benmakhlouf
Normalisation du (MLDR)
Les 3 formes normales

 3ème forme Normale


Une relation est en 3° forme normale si et seulement si :
 elle est en 2° forme normale
 et tout attribut doit dépendre directement de la clé, c'est-à-dire qu’aucun
attribut ne doit dépendre de la clé par transitivité.
Autrement dit, aucun attribut ne doit dépendre d’un autre attribut non clé.

Contre-exemple :
PRODUITS(IDProduit, NomProduit, IDcateg, nomcateg)

N’est pas normalisée en 3NF, puisque nomcateg dépend de IDProduit


par transitivité

A.Benmakhlouf
Normalisation du (MLDR)
Résumé

Modèle normalisé = relations (table) avec


 une clé, qui permet de distinguer chaque
occurrence
 des attributs élémentaires (1FN)
 en dépendance de TOUTE la clé (2FN),
 et RIEN QUE de la clé (3FN)

A.Benmakhlouf
Normalisation du (MLDR)
Exercices

 Description des commandes d’un client


Commande (N°Commande, Date_commande,
Date_livraison, Code_client, nom client, adresse)

Avec les dépendances fonctionnelles suivantes:


N°Commande - Date_commande, Date_livraison
Code client -- nom client, adresse
 Détails des commandes
Détails_Commande (N°Commande, N°Produit, Quantité,
Désignation-Prod)

Avec les dépendances fonctionnelles suivantes:


N°Commande, N°Produit - Quantité
N°Produit -- Désignation_Prod
Modèle Logique et physique
Modèle Physique de Donnée (MPD)

 C’est l’étape de la création (implantation) du MLD et de la


manipulation des données en utilisant les langages LDD et LMD
 Dans cette étape en utilise un SGBD

A.Benmakhlouf
Fin Programme

A.Benmakhlouf

Vous aimerez peut-être aussi