Vous êtes sur la page 1sur 22

Objectifs du cours

1. Comprendre le rôle des systèmes d’information

2 Comprendre les concepts des bases de données et leurs intérêts


2.
INTRODUCTION AUX BASES DE  3. Étudier comment concevoir et réaliser une BD

DONNÉES 
É ‰

‰
conception
application : réalisation de bases de données avec le logiciel ACCESS

4. Étudier
É comment exploiter les informations stockées dans une BD
SAIDI Rajaa ‰ application : utilisation du langage d’interrogation SQL
r.saidi@insea.ac.ma

Bibliographie Plan du cours

™ Sur la partie conception ™ Partie 1 – Introduction aux systèmes d’information


z D.Dionisi : L’essentiel sur Merise – édition Eyrolles, 1991

™ Sur Microsoft Access ™ Partie 2 – Introduction aux BD et aux systèmes de gestion de BD


z J.F. Sehan : Access 2003 ; l’assistant visuel – First Edition, 2004 ;
Chapitre 1 – Généralités sur les Systèmes de Gestion de BD
– concis ; présentation claire ; bien organisé ; meilleur ouvrage dans la catégorie poche
Chapitre 2 – Conception de bases de données relationnelles
™ Base de connaissances Microsoft : http://support.microsoft.com/?scid=fh
Chapitre 3 – Exploitation de données en SQL

™ Partie
P ti 3 – Utilisation
Utili ti d du SGBD Access
A
Chapitre 1 – Les tables

Chapitre 2 – Les requêtes

Chapitre 3 – Les formulaires

Chapitre 4 – Les états


3 4
Introduction

™ Enjeu actuel des organisations : amélioration continue face à plusieurs


facteurs

Augmentation de la Ouverture des Changement


Concurrence marchés de la qualité
PARTIE 1
INTRODUCTION AUX SYSTÈMES D’INFORMATION

Augmentation
Diversité Augmentation
des besoins
des produits de la réactivité
Client

Quels systèmes donner au décideur pour comprendre,


comprendre
dimensionner, piloter, et gérer toutes ces informations
5 6

Approche systémique d’une organisation (1/5) Approche systémique d’un système (2/5)
™ Un système correspondant à l’activité de l’entreprise (tâches réelles) est ™ Le SP procède à la régulation et au contrôle du SO en décidant du
appelé Système Opérant (SO) comportement de celui-ci

Système de Pilotage
Informations
sur l’état du SO
™ Un système de prise de décision (équipe dirigeante) lui permettant de Décision sur le SO
réaliser
éa se les
es objec
objectifs
s fixés.
és Ce sys
système
è e es
est appe
appelé
é Sys
Système
è e de Pilotage
o age (S
(SP))
Flux entrant Flux sortant
Système Opérant

7 8
Approche systémique d’un système (3/5) Approche systémique d’un système (4/5)

™ Augmentation en quantité et en complexité des informations échangées ™ Système de pilotage : activité de l’équipe dirigeante
entre ces deux systèmes
™ Système d’information : éléments divers (employés,
(employés règles et méthodes,
méthodes
™ Besoin d’avoir un autre système qui stocke et traite de façon plus efficace etc.) chargés de stocker et de traiter les informations relatives au Système
ces informations Opérant afin de les mettre à la disposition du Système de Pilotage

™ Système opérant : activité productive et fonctionnement opérationnel

Système de pilotage

Système d’information
d information (SI)
Flux d’information Système d’information Flux d’information

Fl physiques
Flux h i Système opérant Flux physiques

9 10

Approche systémique d’un système (5/5) Rôle du système d’information

™ Entreprise qui assemble et commercialise des PC


™ Acquisition et saisie des données
z Les informations doivent être saisies dans les ordinateurs

™ Traitement des données


SP : Direction z Il s’agit
’ it de
d transformer
t f l données
les d é primaires
i i (b t ) en résultats
(brutes) é lt t par des
d
opérations de calculs, de sélection, de regroupement, de mise en forme…
Statistiques de Nouveaux produits
ventes
t ett dde ™ Stockage des données
SI : Service
pannes commercial et Commandes z Il s’agit de conserver les données primaires (brutes) et finales sous des
comptable Paiement formes exploitables et capables de les retrouver rapidement et sans erreur
PC Assemblés
et livrés Ordre de Panne
fabrication ™ Communication des données
Facture
Fournisseur SO : Atelier Client z Il s’agit de transmettre les données à d’autres utilisateurs (hommes ou
machines) par messagerie électronique…
Pièces Livraison

11 12
Système d’information Vs. Système informatique Facettes d’un SI
Système d’information ™ Système d’information
™ Le système d’information (SI) présente 2 facettes
Processus ƒ Informations organisées avec des
z système d’information
d information organisationnel
événements ayant un effet sur ces
informations z système d’information informatisé
ƒ Acteurs q qui agissent
g sur ces
informations ou à partir de ces
Acteurs Informations informations ™ Système d’information organisationnel
ƒ Processus visant une finalité de z étude des p
processus et des données manipulées
p p
par ces p
processus
S’appuie sur Supporte gestion z quelle information doit être gérée, comment l’organiser, qui y accède et avec
Système informatique quels droits, … ?
™ Système
S tè i f
informatique
ti
Matériel
ƒ Ensemble organisé d’objets
techniques
™ Système d’information informatisé
z concerne l’informatisation
’ f de l’information
’ f
Le système informatique réalise Ö Base de Données

Logiciels Applications
ll’infrastructure
infrastructure d’un
d un système
d’information et lui permet de
fonctionner
13 14

Chapitre 1
PARTIE 2 Généralités sur les SGBD

INTRODUCTION AUX BD ET AUX SGBD

15
Plan du chapitre BD et système de gestion de BD

™ Base de données (BD) et Système de Gestion de Bases de Données ™ BD


z ensemble structuré de données inter-reliées
™ Fonctions d’un
d un SGBD z exemple : ONCF, MarocTelecom
™ Utilisateurs des SGBD

™ Marché des SGBD ™ Système de Gestion de BD (SGBD)


z logiciel permettant de créer et manipuler une BD, soit directement, soit à travers
des programmes d’application
d application

17 18

Fonctions d’un SGBD Tableur vs. SGBD

™ Autoriser l’accès partagé aux données Tableur SGBD


z accès aux mêmes données (localisations différentes)
z accès simultané à la base (concurrence)

... ...
base de base de
™ Autoriser une administration efficace des données données 1 données 2

orienté vers la manipulation


orienté vers le calcul
™ Gérer la confidentialité des données de données : requêtes, ...
z en fonction des utilisateurs
z en fonction des modes d’accès (lecture, écriture)
Classeur Base de données
de une à quelques feuilles de calcul grand nombre de tables (plusieurs centaines)
quelques milliers de données quelques millions de données
™ Assurer la sécurité des données et la reprise après panne utilisation individuelle utilisation en réseau

19 20
Différents utilisateurs d’un SGBD Le marché des SGBD

™ 4 générations principales de SGBD

programmeurs exploitants administrateur


d’applications utilisateurs de la base SGBD SGBD SGBD SGBD
hiérarchiques réseaux relationnels objets ?

langage pro- programmes


grammation d’application requêtes schémas 1960 1970 1980 1990 2000

™ Les SGBD relationnels dominent aujourd’hui le marché

™ Les SGBD objets sont adaptés à des types particuliers de données


SGBD z données multimédia

21 22

Outils de gestion basés sur des SGBD

™ Les ERP (Entreprise Resource Planning) ou PGI (Progiciel de Gestion


Intégrée)

™ Les outils de reporting : interrogation de BD dans le but d’élaborer des


rapports périodiques

™ Les outils de datawarehouse : collection et stockage de données provenant Chapitre 2


de différentes BD

™ Les outils de data mining : analyse et exploitation de grandes masses de Conception de BD relationnelles
données

23
Plan du chapitre Étapes de la conception et réalisation d’une BD (1/2)

™ Démarche de conception et réalisation d’une BD ™ 3 étapes

™ Conception de la base de données : le modèle entité


entité-association
association (E/A) Réel perçu
analyse
™ Réalisation de la base de données : le modèle relationnel conceptuelle

™ Passage du modèle entité-association au modèle relationnel


Modèle conceptuel
p
description
logique

Modèle logique

description
physique

Modèle physique

z à chaque étape correspond une vision différente des données

25 26

Étapes de la conception et réalisation d’une BD (2/2) Conception de BD: le modèle entité-association


1. Dico. des données
Attribut Signification Domaine Réel perçu ™ Modèle entité-association
REFPROD Référence du produit Chaîne(12)
DESIGN Désignation du produit Chaîne(30)
PRIXHT Prix unitaire HT réel z cc’est
est un modèle conceptuel de données (MCD),
(MCD) c’est
c est-à-dire
à dire une représentation
... ... ...
• interviews abstraite des données indépendante
2. Graphe des DF • analyse des documents – de l'organisation des données
NUMFACT DATFACT existants
e sta ts analyse – du SGBD utilisé
QTE
• étude des logiciels existants conceptuelle
REFPROD DESIGN z utilise une représentation graphique des données : bon outil de communication
PRIXHT
entre les concepteurs et les utilisateurs finaux
3. Modèle entité-association z technique de conception très utilisée dans les méthodes actuelles d'analyse de SI
PRODUIT
FACTURE
EST-FACTURE REFPROD : MERISE, ...
NUMFACT
DATFACT 1,n QTE
DESIGN
0,n PRIXHT
Modèle conceptuel
description
logique ™ Principe
Pi i :
4. Schéma de la BD données regroupées en classes d’entités et liées par des associations
FACTURE(NUMFACT,DATFACT)
PRODUIT(REFPROD,DESIGN,PRIXHT)
PRODUIT(REFPROD DESIGN PRIXHT) gq
Modèle logique
EST-FACTURE(NUMFACT,REFPROD,QTE)

description
5. Mise en œuvre sur le SGBD physique

Modèle physique
27 28
Principes du modèle E/A : entité et classe d’entités Principes du modèle E/A : attribut et identifiant

™ Attribut d’une classe d’entités : caractéristique des entités d’une classe


z chaque attribut porte un nom
™ Entité : objet discernable parmi d’autres
d autres objets
z chaque attribut possède une valeur dans un domaine
z exemples : le produit de référence AX-37667, la facture n° 6765
! pour une entité donnée, un attribut possède une et une seule valeur

™ Classe d’entités : ensemble d’entités similaires pouvant être regroupées


z exemples : pour la classe PRODUIT : pour la classe FACTURE :
z exemples : les produits, les factures, ...
REFPROD (chaîne de car
car.)) NUMFACT (entier)
z chaque classe d’entités possède un nom : PRODUIT, FACTURE, … DESIGN (chaîne de car.) DATFACT (date)
PRIXHT (réel)

™ Identifiant (ou clé) d’une classe d’entités : ensemble minimal d’attributs


déterminant de manière unique une entité dans la classe
z exemples : REFPROD
REFPROD, NUMFACT

29 30

Représentation graphique d’une classe d’entités Principes du modèle E/A : association

™ Association : relie plusieurs classes d’entités (deux ou plus)


classes d’entités z porte un nom
z exemple : l’association EST-FACTURÉ entre les classes PRODUIT et
FACTURE matérialise le fait que les produits sont facturés sur des factures
FACTURE PRODUIT z peut avoir des attributs (ex : quantité facturée,
facturée ...))
NUMFACT REFPROD
identifiants ™ Représentation graphique d’une association
DATFACT DESIGN
attributs association
i ti
PRIXHT
PRODUIT
FACTURE
EST FACTURE
EST-FACTURE REFPROD
NUMFACT
QTE DESIGN
DATFACT
PRIXHT

attribut d’association

classes d’entités reliées

31 32
Cardinalité d’une association Cardinalité d’une association : exemples
™ Ex. d’une association binaire :
™ Cardinalité d’une association A vis-à-vis d’une classe d’entités E :
PRODUIT
FACTURE
nombre minimum et maximum de fois où une entité donnée de la classe E peut
p EST-FACTURE
EST FACTURE REFPROD
NUMFACT
apparaître dans l’association A QTE DESIGN
DATFACT 1,n 0,n
PRIXHT
™ Cardinalité minimum :
0 : il peut exister des entités de E qui n’apparaissent pas dans A sur une FACTURE donnée sont un PRODUIT donné est facturé
1 : toute entité de E apparaît au moins une fois dans A facturés de 1 à n produits dans 0 à n factures

™ Cardinalité maximum :
1 : toute entité de E apparaît au plus une fois dans A ™ Ex. d’une association ternaire : un CLIENT donné passe 0
n : il peut exister des entités de E apparaissant plusieurs fois dans A à n commandes CLIENT
PRODUIT CODCLI
COMMANDE
REFPROD 0,n NOMCLI
0,n
DESIGN ADRCLI
E A F CPCLI
min , max PRIXHT
0,n VILLECLI
TELCLI
un PRODUIT donné est DATE
commandé 0 à n fois DATE à une DATE donnée sont
passées 0 à n commandes
33 34

Cas particuliers d’associations Construction d'un modèle entité-association

™ Associations unaires ou réflexives : relie une classe à elle-même


™ Pour construire un modèle entité-association, on procède :
z dans ce cas on place des rôles sur les liens de sorte à les distinguer
z en analysant et critiquant ll'existant
existant (documents papier,
papier logiciels,
logiciels ...))
un employé dirige (ou est
directeur) de 0 à n employés z en analysant les besoins des utilisateurs ou futurs utilisateurs
z en imitant des solutions proches
EMPLOYE 0,n
CODEMP directeur DIRIGE
NOMEMP subordonné
PRENOMEMP 0,1
,
™ La
L construction
t ti d'
d'un modèle
dèl entité-association
tité i ti s'appuie
' i sur d
deux
un employé est dirigé par (ou est
représentations complémentaires :
subordonné à)) 0 à 1 employé
p y z le dictionnaire des données
™ Associations multiples : il peut exister plusieurs associations entre z le graphe de dépendances fonctionnelles
différentes entités
EMPLOYE 0,1
DIRIGE SERVICE
1,1
CODEMP CODESERV
NOMEMP NOMSERV
PRENOMEMP 1,1 TRAVAILLE 1,n

35 36
Dictionnaire des données Dépendances fonctionnelles (DF)
™ Inventaire des données manipulées : ™ Dépendance fonctionnelle d'un attribut A vers un attribut B : la connaissance
Attribut Signification Domaine de la valeur de A détermine une valeur unique de B
... ... ...
... ... ... ™ Généralisation aux cas de plusieurs attributs : la connaissance des attributs
... ... ... A1, A2,...,An détermine une valeur unique
q de B
z mettre seulement les données élémentaires, c’est-à-dire les attributs ne pouvant
pas être obtenus par calcul ™ Représentation graphique
A1
™ Exemple : A2 B
A B
Attribut Signification Domaine ...
REFPROD Référence du produit Chaîne(12) An
DESIGN Désignation du produit Chaîne(30)
PRIXHT Prix unitaire HT réel
™ Exemples :
NUMFACT Numéro de la facture. entier NUMFACT
DATFACT Date de la facture. Date/heure NUMFACT DATFACT QTE
QTE Quantité facturée entier REFPROD
... ... ...
un n° de facture détermine une un n°
n de facture et une ref.
ref de produit
z les attributs calculés sont obtenus par programmation - ex : PRIXTTC et une seule date de facture déterminent une et une seule quantité
facturée
37 38

Graphe de dépendances fonctionnelles Étapes de la conception et réalisation d’une BD


1. Dico. des données
™ Graphe de dépendances fonctionnelles : graphe dans lequel on Attribut Signification Domaine Réel perçu
représente l'ensemble des DF REFPROD
DESIGN
Référence du produit
Désignation du produit
Chaîne(12)
Chaîne(30)
PRIXHT Prix unitaire HT réel
... ... ...
• interviews
2. Graphe des DF • analyse des documents
NUMFACT DATFACT NUMFACT DATFACT existants
e sta ts analyse
QTE
• étude des logiciels existants conceptuelle
REFPROD
QTE DESIGN
PRIXHT

REFPROD DESIGN 3. Modèle entité-association


FACTURE PRODUIT
EST-FACTURE REFPROD
PRIXHT NUMFACT
DATFACT 1,n QTE
DESIGN
0,n PRIXHT
Modèle conceptuel

39 40
Graphe de DF et modèle entité-association Graphe de DF et modèle entité-association
™ Le graphe de DF facilite la construction du modèle entité-association en ™ Exemple :
permettant de déterminer :
1. les identifiants ADRCLI
2. les classes d'entités : identifiants et attributs qui dépendent directement et REFCLI NOMCLI
uniquement d’eux
3. les associations : construites à partir DF restantes

™ Exemple : FACTURE EST-FACTURÉ NUMFACT DATFACT


NUMFACT DATFACT NUMFACT DATFACT NUMFACT DATFACT QTE
QTE QTE QTE
REFPROD DESIGN REFPROD DESIGN
REFPROD DESIGN
REFPROD DESIGN

PRIXHT PRIXHT PRIXHT


PRIXHT
PRODUIT
Etape 1 Etape 2 Etape 3
PRODUIT
CLIENT FACTURE
1,n CONCERNE 1,1 1,n EST-FACTURE 0,n REFPROD
REFCLI NUMFACT
PRODUIT QTE DESIGN
FACTURE NOMCLI DATFACT
PRIXHT
EST-FACTURE
EST FACTURE REFPROD ADRCLI
NUMFACT
QTE DESIGN
DATFACT 1,n 0,n
PRIXHT
41 42

Étapes de la conception et réalisation d’une BD Modèle logique des données : le modèle relationnel
1. Dico. des données ™ Principe du modèle relationnel : toutes les données sont stockées dans
Attribut Signification Domaine Réel perçu
REFPROD Référence du produit Chaîne(12) des tables
DESIGN Désignation du produit Chaîne(30)
PRIXHT Prix unitaire HT réel
... ... ...
• interviews ™ Relation ou table : ensemble des enregistrements (ou records) issus
2. Graphe des DF • analyse des documents d’une classe d’entités ou d’une association
NUMFACT DATFACT existants
e sta ts analyse
QTE
REFPROD DESIGN
• étude des logiciels existants conceptuelle ™ Attribut (ou champ) d’une relation :
PRIXHT
z matérialise un attribut d’une classe d’entités ou d’une association
3. Modèle entité-association z caractérisé par un nom et un domaine de valeurs
FACTURE PRODUIT
NUMFACT
DATFACT
EST-FACTURE
1,n QTE
REFPROD
DESIGN Modèle conceptuel attribut ou
0,n PRIXHT
description nom de la table champ p
logique
4. Schéma de la BD PRODUIT REFPROD DESIGN PRIXHT
FACTURE(NUMFACT,DATFACT) 1 Livre 9,20
PRODUIT(REFPROD,DESIGN,PRIXHT)
PRODUIT(REFPROD DESIGN PRIXHT) gq
Modèle logique table ou
EST-FACTURE(NUMFACT,REFPROD,QTE)
enregistrement
i t t 5 C
Cahier 2,30 relation
9 Crayon 5,75
7 Stylo 2,20

) ordre des enregistrements sans importance

43 44
BD relationnelle Modèle relationnel et SGBD relationnel

™ Une BD relationnelle est une collection de tables ™ Les SGBD relationnels permettent de construire et manipuler des relations :
™ Exemple : z le schéma (ou la structure) des relations : nom de relation + liste des attributs
PRODUIT
FACTURE z le contenu des relations (enregistrements)
EST-FACTURE REFPROD
NUMFACT
QTE DESIGN
DATFACT 1,n 0,n
,
PRIXHT
™ Le
L modèle
dèl relationnel
l ti l exige
i que chaque
h relation
l ti ait
it une clé

z clé (ou clé primaire) d’une relation : sous-ensemble minimum d’attributs d’une
relation qui détermine les autres
FACTURE NUMFACT DATFACT PRODUIT REFPROD DESIGN PRIXHT exemple - pour FACTURE : NUMFACT
6 13/10/2010 1 Livre 19,20
z correspond à la notion d’identifiant dans un modèle entité-association
2 16/10/2010 5 Cahier 2,30
,
3 16/10/2010 9 Crayon 5,75
7 Stylo 2,20 ™ Le schéma d’une relation est souvent noté : FACTURE(NUMFACT , DATFACT)
EST FACTURÉ NUMFACT REFPROD
EST-FACTURÉ QTE
nom de la relation liste d’attributs
6 1 7
6 5 3
2 5 10 FACTURE(NUMFACT , DATFACT)
2 1 5 clé de la relation soulignée
3 7 4
45 46

Passage du modèle entité-association au relationnel Passage du modèle entité-assoc. au relationnel (suite)


1. A chaque classe d’entités correspond une relation : 3. Simplification du modèle relationnel:
z nom : nom de la classe d’entités les associations binaires ayant une cardinalité 0,1 ou 1,1 vis-à-vis d’une classe
z attributs : attributs de la classe d’entités
d entités d’entités
d entités peuvent être supprimées en déplaçant l’identifiant
l identifiant relié
z clé : identifiant de la classe d’entités ) clé étrangère
CLIENT
2 A chaque
2. h association
i ti correspond
d une relation
l ti : exemple :
FACTURE CODCLI
CONCERNE-CLIENT 0,n NOMCLI
z nom : nom de l’association NUMFACT 1,1
DATFACT ADRCLI
z attributs : identifiants des classes d’entités reliées + attributs de l’association CPCLI
z clé : ensemble des identifiants des classes d’entités reliées VILLECLI
TELCLI
PRODUIT normalement :
FACTURE
NUMFACT
EST-FACTURE REFPROD FACTURE(NUMFACT DATFACT)
FACTURE(NUMFACT,DATFACT)
QTE DESIGN
DATFACT 1,n 0,n CLIENT(CODCLI,NOMCLI,ADRCLI,CPCLI,VILLECLI,TELCLI)
PRIXHT
CONCERNE-CLIENT(NUMFACT,CODCLI)

après simplification :
FACTURE(NUMFACT,DATFACT) FACTURE(NUMFACT,DATFACT,CODCLI)
PRODUIT(REFPROD,DESIGN,PRIXHT) CLIENT(CODCLI,NOMCLI,ADRCLI,CPCLI,VILLECLI,TELCLI)
EST-FACTURE(NUMFACT,REFPROD,QTE) CONCERNE-CLIENT(NUMFACT,CODCLI)
47 48
Cas particuliers pour le passage au relationnel Étapes de la conception et réalisation d’une BD
™ Cas des associations réflexives 1. Dico. des données
Réel perçu
Î on donne des noms différents aux attributs: Attribut
REFPROD
Signification
Référence du produit
Domaine
Chaîne(12)
DESIGN Désignation du produit Chaîne(30)
avant simplification : PRIXHT Prix unitaire HT réel
EMPLOYE ... ... ...
• interviews
0,n
DIRIGE
EMPLOYE(CODEMP, NOMEMP, PRENOMEMP)
CODEMP directeur
NOMEMP
DIRIGE(CODEMP-SUBORDONNÉ, CODEMP-DIRECTEUR) 2. Graphe des DF • analyse des documents
subordonné NUMFACT DATFACT existants
e sta ts analyse
PRENOMEMP 0,1 après simplification : QTE
• étude des logiciels existants conceptuelle
REFPROD DESIGN

EMPLOYE(CODEMP, NOMEMP, PRENOMEMP, PRIXHT

CODEMP-DIRECTEUR)
3. Modèle entité-association
™ Cas des entités qui ne comportent pas d’attributs non-identifiant FACTURE
EST-FACTURE
PRODUIT
REFPROD
NUMFACT
DATFACT 1,n QTE
DESIGN
0,n PRIXHT
Modèle conceptuel
Î on peut souvent supprimer ces tables sans perte d’information description
logique
PRODUIT(REFPROD, DESIGN, PRIXHT) 4. Schéma de la BD
PRODUIT CLIENT(CODLI, NOMCLI) FACTURE(NUMFACT,DATFACT)
gq
Modèle logique
COMMANDE CLIENT
REFPROD 0,n 0n
0,n
0,n
DATE(DATE) PRODUIT(REFPROD,DESIGN,PRIXHT)
PRODUIT(REFPROD DESIGN PRIXHT)
EST-FACTURE(NUMFACT,REFPROD,QTE)
DESIGN
CODCLI COMMANDE(REFPROD, CODCLI, DATE)
NOMCLI description
PRIXHT 0,n
5. Mise en œuvre sur le SGBD physique
DATE
table DATE peut être supprimée car n’apporte
n apporte
DATE
aucune information par rapport à COMMANDE Modèle physique
! Ceci ne s’applique qu’aux entités 49 50

Méthodes pour la description physique des données Interface graphique de descripn physique des données

™ Deux méthodes pour la description physique des données : ™ exemple sur Access
z en utilisant le langage SQL z en utilisant une interface graphique
spécifique à chaque SGBD
CREATE TABLE FACTURE (
NUMFACT INTEGER IDENTITY
PRIMARY KEY,
KEY
DATEFACT DATETIME NOT NULL
DEFAULT GETDATE()
)

™ Avantages et inconvénients des deux méthodes :

SQL interface graphique


avantages standard : peut être utilisé avec facile à utiliser
tout SGBD
inconvénients langage textuel, peu "convivial" dépend du SGBD utilisé

51 52
Plan du chapitre

™ Exploitation de données

™ Langage SQL vs. requêteur graphique

™ Les requêtes pour la recherche d’information


Chapitre
p 3
z requêtes simples
Exploitation de données en SQL z calculs dans les requêtes
z opérations ensemblistes

™ Les autres types de requêtes

54

Exploitation des données dans une BD Exemple de BD relationnelle


™ Différentes opérations pour manipuler les données dans une BD : PRODUIT REFPROD DESIGN PRIXHT
1 Livre 19,20
z recherche d’information (ou interrogation)
5 Cahier 2,30
z insertion de données 9 C
Crayon 4 75
4,75
z mise à jour de données 7 Stylo 2,20
z suppression de données
FACTURE NUMFACT DATFACT
6 13/10/2010
™ Langage de manipulation de données (DML): permet d’effectuer ces 2 16/10/2010
opérations 3 16/10/2010

EST-FACTURÉ NUMFACT REFPROD QTE


™ Un SGBD tel qu’Access offre deux moyens pour manipuler les données : 6 1 7
z langage de manipulation de données SQL 6 5 3
z outil graphique de manipulation de données (ou requêteur graphique) 2 5 10
2 1 5
SQL requêteur graphique 3 7 4
avantages standard : peut être utilisé avec facile d
d’utilisation
utilisation pour des ANC-PRODUIT REFPROD DESIGN PRIXHT
tout SGBD opérations simples 1 Livre 19,10
inconvénients langage textuel, peu "convivial" • non standard 9 Crayon 4,75
4 Cartable 80
• pas très simple à utiliser pour 5 Cahier 2,30
des opérations complexes 2 Trousse 10,50
55 56
Le langage SQL La recherche de données : SELECT PRODUIT REFPROD
1
DESIGN
Livre
PRIXHT
19,20
5 Cahier 2,30
9 Crayon 4 75
4,75
7 Stylo 2,30
™ SQL comporte 4 mots-clés principaux :
z SELECT : recherche ™ Syntaxe d’une requête SELECT simple :
champs présentés dans le
z INSERT : ajout SELECT champ1, ... , champn résultat de la requête
z UPDATE : mise à jour FROM table1, ... , tablem tables (et/ou requêtes) utilisées
z DELETE : suppression WHERE condition condition devant être vérifiée par un
ORDER BY champ1, ... , champj enreg. pour figurer dans le résultat
ordre de présentation des enreg.
du résultat de la requête

™ Exemple
E l : référence
éfé ett dé
désignation
i ti d des produits
d it coûtant
ût t moins
i d de 5 dh ttriés

par désignation
SELECT REFROD, DESIGN REFPROD DESIGN
FROM PRODUIT 5 Cahier
WHERE PRIXHT < 5 9 Crayon
ORDER BY DESIGN 7 y
Stylo

sauts à la ligne facultatifs


57 58

La clause SELECT – 1 PRODUIT REFPROD


1
DESIGN
Livre
PRIXHT
19,20 La clause WHERE – 1 / 3 PRODUIT REFPROD
1
DESIGN
Livre
PRIXHT
19,20
5 Cahier 2,30 5 Cahier 2,30
9 Crayon 4 75
4,75 9 Crayon 4 75
4,75
7 Stylo 2,30 7 Stylo 2,20
™ SELECT * : retourne tous les champs ™ Sélectionne les enregistrements vérifiant une
condition, composée de :
z exemple
p :
z noms de champs (ex: PRIXHT ou PRODUIT.PRIXHT
PRODUIT PRIXHT )
SELECT * z constantes num. (ex: 2.3), chaînes (ex: 'Dupont'), dates (ex: #2010/10/21# )
FROM PRODUIT REFPROD DESIGN PRIXHT
5 Cahier 2,30 z opérateurs (=, <>, <, <=, >, >=, +, -, *, /, …) et fonctions (sin, log, …)
WHERE PRIXHT < 5
9 Crayon 4,75 z opérateurs logiques : OR,
O AND, NOT O
7 Stylo 2,30
™ Exemple : désignation des produits dont le prix est compris entre 3 et 5 dh
™ SELECT DISTINCT : supprime les valeurs identiques SELECT DESIGN
DESIGN
exemple : FROM PRODUIT
z Crayon
PRIXHT WHERE PRIXHT >= 3
SELECT PRIXHT 2,30 SELECT DISTINCT PRIXHT PRIXHT AND PRIXHT <= 5
FROM PRODUIT FROM PRODUIT 2,30 noter la répétition du champ PRIXHT
4,75 4,75
WHERE PRIXHT < 5 2,30 WHERE PRIXHT < 5
! Utiliser des parenthèses en cas d’utilisation
d utilisation conjointe de AND et OR
• exemple : désign. des produits SELECT DESIGN
SELECT DISTINCT REFPROD, PRIXHT REFPROD PRIXHT FROM PRODUIT
dont le prix est entre 3 et 5 dh ou
! FROM PRODUIT
5 ,
2,30 WHERE (PRIXHT >= 3
9 4,75 ≠ dont la réf. est supérieure à 2 AND PRIXHT <= 5)
WHERE PRIXHT < 5 7 2,30 OR REFPROD > 2
59 60
La clause WHERE – 2 / 3 PRODUIT REFPROD
1
DESIGN
Livre
PRIXHT
19,20 La clause WHERE – 3 / 3 PRODUIT REFPROD
1
DESIGN
Livre
PRIXHT
19,20
5 Cahier 2,30 5 Cahier 2,30
9 Crayon 4 75
4,75 9 Crayon 4 75
4,75
7 Stylo 2,20 7 2,20
™ L’opérateur BETWEEN : ™ Opérateur LIKE : comparaison avec un motif
champ BETWEEN x AND y champp LIKE 'motiff '
est équivalent à : où motif contient:
champp >= x AND champp <= y ? un caractère quelconque
* une suite quelconque de caractères (éventuellement vide)
z Remarque : x et y peuvent être des expressions quelconques # un chiffre quelconque

z exemple : désignation produits dont le nom commence par 'c'


SELECT DESIGN
™ Exemple : désignation des produits dont le prix est compris entre 3 et 5 dh FROM PRODUIT DESIGN
WHERE DESIGN LIKE 'c*' Cahier
SELECT DESIGN DESIGN Crayon
FROM PRODUIT Crayon
WHERE PRIXHT BETWEEN 3 AND 5
™ Opérateur IS NULL : champ non rempli
z exemple : réf. des produits dont la désignation n’est pas remplie
SELECT REFPROD
FROM PRODUIT REFPROD
WHERE DESIGN IS NULL 7
61 62

La clause ORDER BY PRODUIT REFPROD


1
DESIGN
Livre
PRIXHT
19,20 La clause FROM – 1 / 5 PRODUIT REFPROD
1
DESIGN PRIXHT
Livre 19,20
5 Cahier 2,30 5 Cahier 2,30
9 Crayon 4 75
4,75 9 Crayon 4 75
4,75
™ Trie les résultats sur un ou plusieurs champs : 7 Stylo 2,20 ™ Exemple : désignation des produits facturés 7 Stylo 2,20

EST-FACTURÉ NUMFACT REFPROD QTE


SELECT ... PRODUIT( REFPROD , DESIGN, PRIXHT) 6 1 7
FROM … 6 5 3
WHERE … ASC : ordre croissant - par défaut EST FACTURE( NUMFACT,
EST-FACTURE( NUMFACT REFPROD , QTE)
2 5 10
ORDER BY champ1,…, champn ASC ou DESC DESC : ordre décroissant 2 1 5
optionnel SELECT DESIGN 3 7 4
FROM EST
EST-FACTURE
FACTURE, PRODUIT
z deux critères de tri: le plus à gauche est prioritaire ; le 2e utile en cas d’ex-aequo WHERE EST-FACTURE.REFPROD = PRODUIT.REFPROD jointure
exemple : ORDER BY NOM, PRENOM champ REFPROD de la champ REFPROD de la
table EST-FACTURE table PRODUIT
z ordre utilisé :
™ Lorsque plusieurs tables sont nécessaires :
type champ ordre
z il faut les mettre dans FROM
texte lexicographique (ordre alphabétique étendu)
numérique numérique z il faut les "joindre" sur leur(s) champ(s) commun(s)
date / heure chronologique EST-FACTURE PRODUIT
NUMFACT REFPROD QTE REFPROD DESIGN PRIXHT DESIGN
SG
™ Exemple : produits de moins de 5 dh triés par désignation croissante 6 1 7 1 Livre 19,20 Livre
6 5 3 5 Cahier 2,30 Cahier
SELECT REFPROD, DESIGN REFPROD DESIGN 2 5 10 5 Cahier 2,30 Cahier
FROM PRODUIT 5 Cahier 2 1 5 1 Livre 19,20 Livre
WHERE PRIXHT < 5 9 Crayon 3 7 4 7 Stylo 2,20 Stylo
ORDER BY DESIGN 7 Stylo 63 = 64
La clause FROM – 2 / 5 La clause FROM – 3 / 5

™ Lorsque deux tables n’ont pas de champ commun, utiliser les tables inter- ™ Une requête peut être basée sur une (ou plusieurs) autres requête(s) :
médiaires pour effectuer la jointure : consulter le modèle entité-association SELECT ... req peut être utilisée comme une table dont les champs
FROM req, ...
exemple : désignation des produits facturés après le 14/10/2010 sont ceux affichés dans la clause SELECT de req
z ...
PRODUIT FACTURE
™ Intérêt :
PRODUIT
FACTURE( NUMFACT, DATFACT) FACTURE
EST-FACTURE z écrire des requêtes qui peuvent être réutilisées dans d’autres requêtes
REFPROD
? NUMFACT
1,n QTE 0,n DESIGN z décomposer une requête complexe à écrire en requêtes plus simples
DATFACT PRIXHT
PRODUIT(( REFPROD,, DESIGN,, PRIXHT))

FACTURE( NUMFACT , DATFACT)


EST FACTURE(NUMFACT , REFPROD , QTE)
EST-FACTURE(NUMFACT

PRODUIT( REFPROD , DESIGN , PRIXHT)

SELECT DESIGN
FROM FACTURE, EST-FACTURE , PRODUIT
WHERE EST-FACTURE.NUMFACT = FACTURE.NUMFACT
j i t
jointures
AND EST-FACTURE.REFPROD = PRODUIT.REFPROD
AND DATFACT > #2010/10/14#
65 66

La clause FROM – 4 / 5 La clause FROM – 5 / 5 PRODUIT REFPROD


1
DESIGN
Livre
PRIXHT
19,20
5 Cahier 2,30
9 Crayon 4 75
4,75
Désignation des produits ayant été facturés, dont PRODUIT REFPROD DESIGN PRIXHT 7 Stylo 2,20
le prix a augmenté par rapport à l’ancien
1 Livre 19,20 ™ Il arrive que l’on utilise plusieurs fois la même
catalogue (table ANC-PRODUIT)
5 Cahier 2,30 table dans une requête
ref et prix des produits facturés
ref. 9 C
Crayon 4 75
4,75
R1 z exemple : liste des produits ayant un prix supérieur à celui du produit n° 9
7 Stylo 2,20
SELECT REFPROD,PRIXHT
EST-FACTURÉ NUMFACT REFPROD QTE SELECT P2.DESIGN
FROM EST-FACTURE,
EST-FACTURE PRODUIT
6 1 7 FROM PRODUIT AS P1 , PRODUIT AS P2 DESIGN
WHERE EST-FACTURE.REFPROD = PRODUIT.REFPROD
6 5 3 WHERE P1.REFPROD = 9 Livre
2 5 10 AND P2.PRIXHT > P1.PRIXHT
2 1 5
3 7 4

R1 REFPROD PRIXHT ANC-PRODUIT REFPROD DESIGN PRIXHT P1 P2


1 19 20
19,20 1 Livre 19,10
5 2,30 PRODUIT REFPROD DESIGN PRIXHT PRODUIT REFPROD DESIGN PRIXHT
9 Crayon 4,75
5 2,30 1 Livre 19,20 1 Livre 19,20
4 Cartable 80
1 ,
19,20 5 Cahier 2,30 5 Cahier 2,30
5 Cahier 2 30
2,30
7 2,20 9 Crayon 4,75 9 Crayon 4,75
2 Trousse 10,50
7 Stylo 2,20 7 Stylo 2,20
SELECT DESIGN
FROM R1 , ANC-PRODUIT DESIGN
WHERE R1.REFPROD = ANC-PRODUIT. REFPROD Livre
AND R1.PRIXHT > ANC-PRODUIT.PRIXHT
67 68
PRODUIT REFPROD DESIGN PRIXHT
Calculs dans les requêtes Calculs sur les lignes 1 Livre 19,20
5 Cahier 2,30
9 Crayon 4 75
4,75
™ Il est possible d’effectuer des calculs dans une requête ™ Principales opérations : 7 Stylo 2,20

z COUNT : nombre d’enregistrements


™ Il existe deux types de calcul :
z SUM : somme des valeurs du champ (numérique) sur un ensemble d’enreg
d enreg.
z sur les lignes
z AVG : moyenne des valeurs du champ (numérique) sur un ensemble d’enreg.
REFPROD PRIXHT
1 19,20 19,20 z MIN, MAX : valeur min. et max. dans l’ensemble d’enregistrements
5 2 30
2,30 z opérateurs (+, -, *, /, ...) et fonctions (sin, exp, …)
max(PRIXHT) 9 5,75
7 2,20 ™ Exemple: prix le plus élevé parmi les produits
SELECT MAX(PRIXHT)
z sur les colonnes x 1,196 FROM PRODUIT 19,20
REFPROD PRIXHT REFPROD PRIXTTC
1 19,20 1 22,96
5 2,30 5 2,75
™ Ne pas confondre COUNT (nombre d’enreg.) et SUM (somme sur un champ):
9 5,75 9 6,87 SELECT COUNT (PRIXHT) ( enregistrements
(3 g
7 2 20
2,20 7 2 63
2,63 FROM PRODUIT 3 vérifiant la condition)
WHERE PRIXHT < 5
™ Dans les deux cas, les opérations s’effectuent dans la clause SELECT
SELECT SUM (PRIXHT)
SELECT opération
é i (champ
h )
FROM PRODUIT (9,25 = 2,30 + 4,75 + 2,20)
FROM ... 9,25
WHERE PRIXHT < 5
...
69 70

PRODUIT REFPROD DESIGN PRIXHT


Calculs sur les colonnes 1 Livre 19,20 Nommage des colonnes
5 Cahier 2,30
9 Crayon 4 75
4,75
™ On peut effectuer des calculs sur une 7 Stylo 2,20
™ On peut nommer une colonne affichée par une requête dans SELECT
ou plusieurs colonnes en utilisant : EST-FACTURÉ NUMFACT REFPROD QTE
z intérêt : réutiliser ce nom dans une autre requête
6 1 7
z des constantes
6 5 3
z des noms de champ 2 5 10 ™ Pour nommer une colonne :
z des opérateurs : +, -, *, /, ... 2 1 5
SELECT expr AS nom
3 7 4
z d ffonctions
des ti : sin,
i exp, … FROM …
WHERE …
™ Exemple: réf. des produits avec leur prix TTC REFPROD ™ Exemple :
1 22,96
SELECT REFPROD, PRIXHT * 1.196 5 2,75
FROM PRODUIT 9 6,87 R1 R1 REFPROD PRIXTTC
1 22,96
7 2,63 SELECT REFPROD,
REFPROD PRIXHT * 1.196
1 196 AS PRIXTTC 5 2,75
FROM PRODUIT 9 6,87
™ On peut combiner calcul sur lignes et colonnes dans une même requête : 7 2,63

z exemple:
l montant
t t HT de
d la
l ffacture
t 6
SELECT REFPROD, PRIXTTC REFPROD PRIXTTC

SELECT SUM(PRIXHT * QTE) FROM R1 1 22,96


9 6,87
FROM PRODUIT,, EST-FACTURE WHERE PRIXTTC > 6.10
WHERE PRODUIT.REFPROD = EST-FACTURE.REFPROD 141,3
AND NUMFACT = 6
71 72
Regroupements d’enregistrements Exemple
™ Regroupement : opération d’agrégation sur une ou plusieurs dimensions ™ Numéro de la facture ayant le montant le plus élevé PRODUIT REFPROD DESIGN PRIXHT
1 Livre 19,20
5 Cahier 2,30
™ Exemples : R1 : Montant de chaque facture 9 Crayon 4,75
z CA par client (regroupement par client)
7 Stylo 2,20
SELECT NUMFACT, SUM (PRIXHT *QTE) AS MONTANT
z nombre de ventes par commercial et par mois (regroupement par FROM PRODUIT, EST- FACTURE EST-FACTURÉ NUMFACT REFPROD QTE

commercial et par mois ) WHERE EST-FACTURE.REFPROD = PRODUIT.REFPROD 6 1 7


GROUP BY NUMFACT 6 5 3
z … 2 5 10
2 1 5
affiche les groupes
™ Regrouper des enregistrements : 3 7 4

SELECT champ1,..., champn , expr1,..., exprm calculs sur les groupes R1 NUMFACT MONTANT
FROM … R2 : Maximum des montants 2 119,00
WHERE … champ(s) sur le(s)quel(s) 3 8,80
GROUP BY champ1,..., champn s’effectue les regroupements
SELECT MAX(MONTANT) AS MAXMONTANT 6 141,30
FROM R1
™ Exemple
p :qquantités facturées p
par p
produit R2 MAXMONTANT
141,30
EST- NUMFACT REFPROD QTE R3 : Numéro de la facture ayant le montant le plus élevé
FACTURÉ REFPROD
6 1 7 SELECT REFPROD, SUM(QTE) SELECT NUMFACT
1 12
6 5 3 FROM EST-FACTURE
EST FACTURE 5 13 FROM R1,R2
R3 NUMFACT
2 5 10 GROUP BY REFPROD 7 4 WHERE R1.MONTANT=R2. MAXMONTANT 6
2 1 5
3 7 4 73 74

Opérations ensemblistes en SQL Union de deux relations : UNION


™ Union de deux relations : enregistrements appartenant à au moins une des
™ Union de deux relations : UNION deux relations B
A
™ Intersection de deux relations : INTERSECT SELECT FROM … WHERE …
SELECT...
UNION
™ Différence de deux relations : EXCEPT SELECT ... FROM … WHERE ….
z les deux relations doivent avoir le même schéma (même liste d’attributs)

™ Exemple: réf. et désign. des produits dans PRODUIT ou ANC-PRODUIT


REFPROD DESIGN REFPROD DESIGN
1 Livre 1 Livre
5 Cahier 9 Crayon
SELECT REFPROD
REFPROD, DESIGN 9 Crayon 4 C t bl
Cartable
FROM PRODUIT 7 Stylo 5 Cahier
UNION 2 Trousse
SELECT REFPROD,, DESIGN
FROM ANC-PRODUIT REFPROD DESIGN
1 Livre
5 Cahier
9 Crayon
7 Stylo
4 Cartable
75 2 Trousse 76
Intersection de deux relations : INTERSECT Différence de deux relations : EXCEPT
™ Intersection de deux relations : enreg. appartenant aux deux relations ™ Différence de deux relations : enregistrements appartenant à la 1e relation,
mais pas à la 2e
SELECT... FROM … WHERE … A B A
SELECT FROM … WHERE …
SELECT... B
INTERSECT
SELECT ... FROM … WHERE …. EXCEPT
SELECT ... FROM … WHERE …
z les deux relations doivent avoir le même schéma (même liste d’attributs) z les deux relations doivent avoir le même schéma (même liste d’attributs)
) remarque : l’opérateur INTERSECT n’existe pas en ACCESS ) remarque
q : l’opérateur
p EXCEPT n’existe p
pas en ACCESS

™ Exemple: réf. et désign. des produits dans PRODUIT et ANC-PRODUIT ™ Exemple: réf. et désign. des produits dans PRODUIT mais pas dans ANC-
REFPROD DESIGN REFPROD DESIGN PRODUIT
1 Livre 1 Livre REFPROD DESIGN REFPROD DESIGN
SELECT REFPROD, DESIGN 1 Livre 1 Livre
5 Cahier 9 Crayon
FROM PRODUIT SELECT REFPROD, DESIGN 5 Cahier 9 Crayon
9 Crayon 4 Cartable
INTERSECT FROM PRODUIT 9 Crayon 4 Cartable
7 Stylo 5 Cahier
SELECT REFPROD, DESIGN EXCEPT 7 Stylo 5 Cahier
2 Trousse
FROM ANC-PRODUIT SELECT REFPROD, DESIGN 2 Trousse
FROM ANC-PRODUIT
REFPROD DESIGN
1 Livre REFPROD DESIGN
5 Cahier 7 Stylo
9 Crayon 77 78

Autres opérations de manipulation de données en SQL Insertion d’enregistrements : INSERT – 1 / 2


™ L’insertion d’enregistrements permet :
™ Insertion d’enregistrements : INSERT
z d’ajouter un enregistrement dans une table
d enregistrements : DELETE
™ Suppression d’enregistrements z d’ajouter
d ajouter un ensemble d’enreg
d enreg. spécifié au moyen d’une
d une requête SELECT

™ Mise à jour d’enregistrements : UPDATE ™ L’ajout d’un seul enregistrement s’effectue de la manière suivante :
INSERT INTO table
bl (champ
h 1, … , champ
h n)
VALUES (valeur1 , … , valeurn)

z exemple : ajouter le produit de ref. n° 19 et de désignation ‘Agrafeuse' dont le


prix HT est 50,6 dh
INSERT INTO PRODUIT ((REFPROD,, DESIGN,, PRIXHT))
VALUES (19, ‘Agrafeuse', 50.6)

™ Remarque : l’insertion dans une table dont la clé est auto-incrémentée


ne doit pas fixer de valeur pour ce champ
z exemple : insertion en supposant le champ REFPROD auto-incrémenté
INSERT INTO PRODUIT (DESIGN, PRIXHT)
VALUES (‘Agrafeuse', 50.6)

79 80
Insertion d’enregistrements : INSERT – 2 / 2 Suppression d’enregistrements : DELETE – 1 / 2

™ L’ajout d’enregistrements spécifiés par une requête s’effectue de la manière ™ La suppression d’enregistrements s’effectue de la manière suivante :
suivante : DELETE
INSERT INTO table (champ1 , … , champn) FROM table
t bl
SELECT … FROM … WHERE … WHERE condition
! les enregistrements concernés sont irrémédiablement supprimés
z le nombre et le type des champs dans la clause SELECT doivent être identiques
à ceux des champs insérés dans table
™ Exemple : supprimer toutes les factures émises après le 16/10/2010
DELETE
z exemple : ajouter à la table ANC-PRODUIT tous les produits de PRODUIT FROM FACTURE
WHERE DATFACT > #16/10/2010#
INSERT INTO ANC
ANC-PRODUIT
PRODUIT (REFPROD, DESIGN, PRIXHT)
SELECT REFPROD, DESIGN, PRIXHT FROM PRODUIT

81 82

Suppression d’enregistrements : DELETE – 2 / 2 Mise à jour d’enregistrements : UPDATE – 1 / 2


™ Lors d’une suppression sur une table correspondant à une entité, il faut
™ La mise à jour d’enregistrements s’effectue de la manière suivante :
souvent supprimer les enreg. dans les tables des associations connexes
z exemple : la suppression d’une
d une facture dans FACTURE doit s’accompagner
s accompagner de UPDATE table
la suppression des enreg. correspondants dans EST-FACTURE SET champ1 = valeur1 , … , champn = valeurn
WHERE condition
™ Deux méthodes pour réaliser ces suppressions :
! les enregistrements sont irrémédiablement mis à jour
1. Ecrire plusieurs requêtes suppression
2. Utiliser l’intégrité référentielle et la suppression en cascade

DELETE ™ Exemple : remplacer la référence de produit 4 par 7 dans les factures


FROM FACTURE
WHERE DATFACT > #16/10/2010# UPDATE EST-FACTURE
EST FACTURE
SET REFPROD = 7
WHERE REFPROD = 4
suppression dans FACTURE et
dans EST-FACTURE

• remarque : la deuxième méthode est déconseillée car risquée


83 84
Mise à jour d’enregistrements : UPDATE – 2 / 2

™ De manière analogue à la suppression, il est possible d’utiliser la mise à


jour en cascade
z exemple : changement de référence du produit 4 qui devient 7

UPDATE PRODUIT
SET REFPROD = 7
WHERE REFPROD = 4

La réf. 4 est changée en 7


dans EST-FACTURE
EST FACTURE

85

Vous aimerez peut-être aussi