Cours 3 EG
Cours 3 EG
Cours 3 EG
Sami MEJRI
1
3ème EG – Prof. Sami MEJRI
Dans la suite de ce cours on utilisera le Logiciel Microsoft Office 2007 comme SGBD et la Base
de Données "Gestion_Restaurant"
Étude de cas :
Afin de mieux gérer les différents services dans un restaurant, on se propose d'utiliser la base de
données simplifiée intitulée "Gestion_Restaurant" décrite par le schéma textuel suivant :
Table (NumTable, NbrePlaces)
Serveur (IdServeur, NomPrenom)
Plat (CodePlat, NomPlat, PrixPlat)
Commande (NumTable#, IdServeur#, CodePlat#, DateCom, HeureCom, NbrePlats)
Soit la description des colonnes des tables de cette base de données :
Pour créer le fichier d’une nouvelle base de données on procède comme suit : Lancer le logiciel
Access
2
3ème EG – Prof. Sami MEJRI
Créer les tables et les relations de cette base de données tout en respectant les types et les
propriétés citées dans la description ci-dessus.
Pour créer une table on suit les étapes suivantes :
❖ Cliquer sur la commande "Création de table" du menu "Créer" ;
❖ Dans la fenêtre qui s’affiche, saisir les noms des attributs de chaque table dans la
colonne "Nom du champ" en précisant le type de chaque attribut dans la colonne
"Type de données" et en spécifiant pour chaque attribut la taille, le format et
éventuellement les contraintes
nécessaires ;
❖ Sélectionner le ou les champs qui
représente(ent) la clé primaire et
cliquer sur le bouton "Clé
primaire" situé dans le menu
"Création de table" ;
❖ Enregistrer la table avec son nom.
3
3ème EG – Prof. Sami MEJRI
4
3ème EG – Prof. Sami MEJRI
Une fois les tables sont créées et les relations entre elles sont établies, il est temps de les
remplir par les données nécessaires. Pour remplir les tables d’une base de données on les ouvre
une par une, on saisit les enregistrements de chacune d’elles ligne par ligne et on enregistre la
saisie.
Attention, il faut toujours commencer par remplir les tables sources de la relation avant
la/les table(s) cible(s) ! Dans notre cas on doit remplir les tables "Table", "Serveur" et
"Plat" avant la table "Commande".
Stocker sans cesse des informations dans une base de données et en assurer la maintenance,
n'est pas une fin en soi. Il faut pouvoir retrouver, chaque fois que cela est nécessaire, les
informations pertinentes donton a besoin. La requête de sélection a été créée dans ce but. Elle
joue, dans les bases de données, un rôle très important. La sélection représente l'outil courant
de recherche d'informations dans les bases de données.
5
3ème EG – Prof. Sami MEJRI
Champ :
Table :
Tri : …………………………………………..
Afficher :
Critères :
Ou :
R2 : Afficher les noms et les prix des plats triés dans l’ordre décroissant selon les prix ;
Table(s) à ouvrir : ……………
Champ :
Table :
Tri : …………………………………………..
Afficher :
Critères :
Ou :
R3 : Afficher le nom et le nombre total de chaque plat servi le 03/01/2022 pour la table N°1 ;
Table(s) à ouvrir : ……………
Champ :
Table :
Opération :
Tri :
Afficher :
Critères :
Ou :
………………………………………
R4 : Afficher le nom et le prix d'un plat donné par son code
Table(s) à ouvrir : ……………
Champ :
Table :
Tri :
Afficher :
Critères :
Ou :
……………………………………………
6
3ème EG – Prof. Sami MEJRI
R5 : Calculer et afficher le nombre de plats servis par un serveur donné par son IdServeur ;
Table(s) à ouvrir : ………………………..
Champ :
Table :
Opération :
Tri :
Afficher :
Critères :
Ou :
……………………………………..
R6 : Afficher la liste des commandes (NumTable, NomPrenom, NomPlat, PrixPlat,
NbrePlats) servis pendant l’année 2022, triée par ordre chronologique des dates de commande.
Table(s) à ouvrir : ……………………………………
Champ :
Table :
Tri :
Afficher :
Critères :
Ou :
…………………………………………….
R7 : Afficher les noms et prix des plats servis par le serveur "Salhi Jamel" ou "Selmi Kamilia".
Table(s) à ouvrir : …………………………….
Champ :
Table :
Tri :
Afficher :
Critères :
Ou :
……………………………………..
Ou bien
Table(s) à ouvrir : …………………………………
Champ :
Table :
Tri :
Afficher :
Critères :
Ou :
7
3ème EG – Prof. Sami MEJRI
R8 : Afficher les noms et prix des plats servis par le serveur "Salhi Jamel" ou dont
le prix > 18dt.
Table(s) à ouvrir : …………………………………….
Champ :
Table :
Tri :
Afficher :
Critères :
Ou :
………………………………………………
Comme leur nom l’indique les requêtes de mise à jour sont utilisées pour apporter une mise à
jour (modification) au contenu d’une table. Par exemple, modification de l’adresse d’un client,
augmentation du salaire d’un employé, apporter une remise à un prix, etc…
Champ :
Table :
Mise à jour :
Critères :
Ou :
………………………………………………..
R10 : Modifier le nom du plat de code "PIZ01" par "Pizza Napolitaine".
Table(s) à ouvrir : …………………
Champ :
Table :
Mise à jour :
Critères :
Ou :
…………………………………………………
8
3ème EG – Prof. Sami MEJRI
R11 : Augmenter le nombre de places de 2 d’une table donnée par son numéro.
Table(s) à ouvrir :………………………….
Champ :
Table :
Mise à jour :
Critères :
Ou :
………………………………………………
Exemple :
Champ :
Table :
Supprimer :
Critères :
Ou :
……………………………………………..
9
3ème EG – Prof. Sami MEJRI
Champ :
Table :
Supprimer :
Critères :
Ou :
………………………………………………….
Comme leur nom l’indique, une requête d'ajout ajoute un groupe d'enregistrements d'une ou
de plusieurs tables à la fin d'une ou de plusieurs tables...
Revenons à notre base de données "Gestion_Restaurant" et soit la table "Nouveaux Plats"
qui a le même schéma que la table "Plats" et contenant la liste des nouveaux plats que notre
chef préparera à nos clients.
Voici le contenu de la table "Nouveaux Plats" :
Nouveaux Plats
CodePlat NomPlat PrixPlat
PIZ02 Pizza 4 saisons 18
RIZ02 Paella 25
RIZ03 Riz aux fruits secs 35
On se propose d’ajouter à la table Plats tous les plats de riz qui se trouvent dans la table
"Nouveaux Plats".
Pour répondre à cette question on doit parcourir la table "Nouveaux Plats" et extraire les
enregistrements répondant à la contrainte (CodePlat = Comme "RIZ*") puis les ajouter à la
table "Plat". Pour cela, on doit suivre les étapes suivantes :
10
3ème EG – Prof. Sami MEJRI
Dans la boite de dialogue qui s’affiche, choisir la table dans laquelle on va ajouter les
enregistrements en question. Dans notre cas, choisir la table "Plat" ;
Dans la grille de création de la requête, fixer les champs à ajouter à la table "Plat"
puis spécifier la contrainte (CodePlat = Comme "RIZ*")
Enregistrer la requête sous le nom Req_ajout_plats et l’exécuter.
Champ :
Table :
Tri :
Ajouter à :
Critères :
Ou :
…………………………………………..
On peut également créer une requête d’ajout paramétrée, par exemple ajouter les plats d’un
CodePlat donné par l’utilisateur. On procède de la même façon déjà décrite pour les requêtes
d’ajout simple sauf que le critère sera comme suit :
CodePlat=[Taper le code du plat à ajouter :]
Champ :
Table :
Tri :
Ajouter à :
Critères :
Ou :
……………………………………………………
11
3ème EG – Prof. Sami MEJRI
En exécutant une requête d’ajout une boite de dialogue s’affiche à l’utilisateur lui
demandant de confirmer l’action d’ajout.
Si l’utilisateur est certain de vouloir ajouter les lignes sélectionnées, il doit alors cliquer sur
"Oui".
Le traitement d’importation est souvent utilisé lorsque le contenu d’une table qu’on veut créer
dans notre base existe déjà soit dans une autre base de données soit sous un autre format (Excel,
texte, csv, …). Donc au lieu de la créer et remplir de nouveau il suffit alors de l’importer. Dans
notre cas on va voir comment importer une table à partir d’un fichier Excel ou encore csv.
12
3ème EG – Prof. Sami MEJRI
Figure 6 : les étapes d’importation d’une table à partir d’un fichier csv
13
3ème EG – Prof. Sami MEJRI
Pour les fichiers de type ".csv" ou ".txt", l’opération d’export ne s’arrête pas à ce
niveau, il faut encore spécifier quelques paramètres comme le délimiteur qui séparera
les champs ( ; ), Inclure les noms des champs sur la première ligne,
14
3ème EG – Prof. Sami MEJRI
15
3ème EG – Prof. Sami MEJRI
Requête
C’est un moyen pour interroger la base de données d’une ou de
plusieurs tables,
Requête de Requête de
sélection mise à jour
Requête de Requête
suppression d’ajout
16
3ème EG – Prof. Sami MEJRI
C’est un outil qui permet de de gérer des nouvelles bases de données, c'est-à-dire :
17
3ème EG – Prof. Sami MEJRI
Requête d’ajout
18
3ème EG – Prof. Sami MEJRI
19
3ème EG – Prof. Sami MEJRI
Requête de suppression
Important :
1. Utiliser des critères pour renvoyer uniquement les
enregistrements de la table.
20
3ème EG – Prof. Sami MEJRI
Requête de sélection
Utiliser les opérateurs Permet de créer à chaque fois Pour pouvoir calculer la
relationnels et/ou les une table résultat suivant un somme, la moyenne, l’effectif,
autres opérateurs déjà critère donnée dans l’exécution la valeur maximale/
cités (comme, entre,…) (paramètre), donc la requête est minimale,… on ajoute la ligne
écrite une seule fois mais le Opération à la grille de la
critère change pour chaque requête par un simple clic sur
exécution, donc le résultat diffère la commande et
d’une exécution à une autre. choisir parmi la liste, l’option
qui vous convient.
21
3ème EG – Prof. Sami MEJRI
Opérateurs
Exemple : Caractères
utilisés : Pas
Entre "A" et "C"
* : Remplace de 0 à Sélectionne les enregistrements ne
Entre 10 et 2
n caractères correspondant pas au critère
Entre #01/01/24# et
? : Remplace 1 seul Pas Entre "A" et "C"
#31/12/24#
caractères
Exemple : 2ème
lettre B et se
termine par e
comme "?B*e" 22
3ème EG – Prof. Sami MEJRI
23
3ème EG – Prof. Sami MEJRI
24
3ème EG – Prof. Sami MEJRI
25
3ème EG – Prof. Sami MEJRI
Pierre
CodeP Type Poids Qualité Forme Couleur NumC
P1 Rubis 0,40 AAAA Ovale Rouge 2
P16 Emeraude 1,48 AAAA+ Emeraude Vert Foncé 4
P23 Diamant 0,35 SI1 Princesse Rose 3
P33 Diamant 0,25 SI2 Ovale Noir 3
P52 Saphir 2,50 AAAA+ Ovale Rose 1
4) Créer les requêtes suivantes :
R1 : Afficher la liste des collectionneurs (Nom, Prénom et Adresse) qui habitent dans une
ville commençant par la lettre B.
R2 : Afficher la liste des pierres (Type, Poids, Forme, Qualité et Couleur) appartenant à
une collection de numéro donné.
R3 : Afficher le nombre de pierres de type "Diamant" en utilisant la commande
"Totaux".
5) Exporter, dans votre dossier de travail et sous le nom "pierre.csv", le résultat de la table
"Pierre" au format csv (Point-virgule en séparateur de champs, point en séparateur décimal,
page de codes : Unicode (UTF-8) et inclure les noms des champs sur la première ligne).
26
3ème EG – Prof. Sami MEJRI
Appareil
Code Désignation Type PrixUnit QteVendue DateSortie IdOS IdFab
C001 Sony Xperia Smartphone 1500 5500 20/10/2015 S002 F001
Z5
C002 iPhone 6s iPhone 2200 3000 20/09/2015 S003 F003
Plus
C003 Nokia Lumia Smartphone 300 18600 10/06/2014 S001 F002
635
Système Fabricant
IdOS Famille Editeur IdFab Nom PaysOrigine
S001 Windows Microsoft F001 Sony Japon
S002 Android Google F002 Nokia Finlande
S003 iOS Apple F003 Apple USA
27
3ème EG – Prof. Sami MEJRI
Chaine Satellite
CodeCh NomCh DateLancement Fréquence CodeSat NomSat Position
CH01 C1 01/01/2001 11023 S01 Sat1 7.0W
CH02 C2 05/12/2001 10087 S02 Sat3 21.5W
CH03 C3 27/03/2005 10776
Emission
CodeCh CodeSat TitreEmission Catégorie Durée
CH01 S02 LeRally Sport 25
CH03 S01 BdJunior Enfant 20
CH02 S01 TNews Information 35
CH02 S02 LeMatch Sport 90
CH01 S02 KindKids Enfant 100
28
3ème EG – Prof. Sami MEJRI
FOURNISSEUR
REMISE
29
3ème EG – Prof. Sami MEJRI
b. Afficher les noms des fournisseurs et les taux de remise accordés à un article donné.
c. Augmenter les taux de remise de 5% pour tous les produits fournis par le fournisseur numéro
13
30
3ème EG – Prof. Sami MEJRI
Afin de gérer les courses hippiques planifiées, le comité d’organisation exploite la base de
données simplifiée "Gestion_course" décrite par le schéma suivant :
Cheval (NumCh, NomCh, SexeCh, PoidsCh, DateNaissCh)
Jockeys ( CodeJ, NomJ, PrénomJ, PoidsJ)
Parcours (CodeParc, Ville, Distance)
Course (NumCh, CodeJ, CodeParc, DateCourse, Durée)
1) Pour chacune des phrases suivantes, encercler la réponse correcte par les listes des
alternatives proposées entre parenthèses.
• "DateNaissCh" est (un attribut / une clé primaire / une clé étrangère )
• "Parcours" est (un enregistrement / une clé étrangère / une table )
• "CodeJ" est (une table / une clé primaire / un enregistrement ) de la table (Jockeys / Course)
31
3ème EG – Prof. Sami MEJRI
………………………………………………………………………………..
………………………………………………………………………………..
………………………………………………………………………………..
………………………………………………………………………………..
………………………………………………………………………………..
32
3ème EG – Prof. Sami MEJRI
Une grande surface veut gérer la distribution des magazines par les différents coursiers. Pour
cela, on se propose d’exploiter la base de données simplifiée intitulée "Gestion_Coursier"
décrite par le schéma textuel suivant :
1- Compléter les propriétés "Valide si" et "Null interdit " du champ "NbMagDistribus"
de la table "Distribution", sachant que ce champ ne doit pas etre vide et le nombre de
magazines distribués doit être supérieur ou égal à 500
33
3ème EG – Prof. Sami MEJRI
Champs :
Table :
Opération :
Tri :
Afficher :
Critère :
Ou :
34