Vous êtes sur la page 1sur 45

Economie et Gestion

M. DHIBA YOUSSEF

COURS bases de donnes de gestion

- licence fondamentale
- licences professionnelles

Anne Universitaire : 2014-2015


Y.DHIBA -FDM- 1
SOMMAIRE

1. Base de donnes : Notions de base..3

1.1 Dfinition....3
1.2 Types de donnes...3
1.3 Notions : Tables, Champs et Enregistrement...4
1.4 Notion de cl Primaire et rgles de gestion....5
1.5 Systmes de Gestion de Bases de Donnes....6

2 Gestion de bases de donnes....7


2.1 Gestion dune BD....7
2.2 Relation entre tables...12

3 Les requtes : Extraire des informations dune BD.16

3.1 Dfinitions et Types de requtes..16


3.2 Requte de slection...16
3.3 Requte analyse croise....23
3.4 Requte de mise jour...24
3.5 Requte de suppression....25

4 Formuler les requtes en SQL....30

5 Etudes de cas..37

Y.DHIBA -FDM- 2
1. Base de donnes : Notions de bases

1.1 Dfinition dune base de donnes

Une base de donnes (BD) est un ensemble de donnes structures, organises et stockes
dans des entits logiques appeles Tables . Chaque donne est caractrise par un type
de donnes.

Chaque systme dinformation dune entreprise repose sur une ou plusieurs BDs pour la
gestion des donnes concernant, par exemple, les clients, les commandes, les produits, les
stocks, le personnel, les salaris, les ventes etc.

1.2 Types de donnes

Dans une BD, chaque donne est caractrise par un type de donnes permettant de
spcifier la nature des valeurs que peut prendre cette donne. Les types standards de
donnes sont:

- Texte: Concerne les valeurs alphanumriques (Suite de caractres ou de caractres


et de chiffres).

- Numrique: Concerne les valeurs numriques (entiers ou rels etc.).

- Date et heure: Concerne les valeurs de type date (Date dune commande, date de
livraison, date dembauche, date dinscription..etc.) ou les valeurs concernant les
heures (heure de dpart, heure darrive, heure dune transaction.).

- Montaire: Concerne les valeurs numriques contenant des symboles des units
montaires comme $, , , DH.etc. Tous les traitements de calcul quon peut faire
sur les donnes numriques sont valables pour les donnes montaires.

- Oui/Non : Concerne les donnes qui ne peuvent avoir que deux valeurs possibles (oui
ou non; vrai ou faux).

- Objet Multimdia ou Objet OLE: concerne les donnes qui peuvent tre des images,
des sons, des vidos ou des fichiers.

1.3 Notions: Tables, Champs et Enregistrements.

- Une Table est une structure qui regroupe un ensemble de donnes faisant rfrence
une entit logique (client, produit, fournisseursetc.). Elle porte un nom et elle est
compose dun ensemble de colonnes et de lignes.

Y.DHIBA -FDM- 3
- Champ dune table: Un champ dcrit une donne dune table et correspond une
colonne de la table. Il porte un nom et il est caractris par un type de donnes.
Chaque colonne dune table est rserve pour un et un seul champ et porte le nom
de ce champ.

- Enregistrement dune table: Un enregistrement correspond une ligne dune table


et il est constitu par une suite de valeur de chaque champ de la table. Un
enregistrement donne une valeur relle de lentit dcrite par la table.

Une BD peut tre compose dune ou plusieurs tables. Chaque table a la structure suivante :

Fig 1 : structure dune Table

Ci-dessous un exemple de table dune BD pour la gestion des produits dune entreprise :

Y.DHIBA -FDM- 4
Fig 2 : Exemple de table dune BD

1.4 Notion: Cl Primaire dune table.

- Une cl primaire ou principale dune table est un ou plusieurs champs de cette table
permettant didentifier dune manire unique les diffrents enregistrements de cette
table. Chaque table dune BD doit avoir une cl primaire.

- Consquence: une cl ne peut pas avoir une valeur vide (Null) et sa valeur ne peut
pas se rpter dans la mme table.

- Exemple cas dune table pour grer les clients-:

Table_Clients( N Client, Nom, Prnom, Adresse, Ville)

Fig3 : Exemple de cl primaire dune table

Y.DHIBA -FDM- 5
Le choix dune cl primaire dpend des rgles de gestion du cas tudi.

Exemple: Dans une base de donnes de gestion des stocks, on dispose dune table dont la
structure est:

Table_Marchandise(Code_marchandise, Volume, Poids, Nentrept)

- Question: Dterminer la cl primaire de cette table, sachant les rgles de gestion


suivantes:

- Une marchandise est caractris par un et un seul code;

- Une marchandise peut tre stocker dans un ou plusieurs entrepts.

- Solution: La cl primaire est (Code_marchandise, Nentrept) et la table devrait


scrire comme:

Table_Marchandise(Code_marchandise, Nentrept, Volume, Poids)

1.5 Systme de Gestion de Bases de Donnes.

Dfinition : Un SGBD est un logiciel offrant un ensemble dobjets permettant la cration et


la gestion des BDs. Il existe plusieurs SGBD sur le march qui permettent la cration des
petites, moyennes ou grandes BDS tels que Access, Oracle ou SQL Serveur.etc.

Y.DHIBA -FDM- 6
2. Gestion de bases de donnes sous Access.

2.1 Cration dune base de donnes.

- Access est un SGBD pour la gestion de petites et moyennes BDs. Chaque BD porte un
nom et lextension .mdb .

- Etapes pour crer une BD:

1) Lancer lenvironnement Access;

2) Cliquer sur le bouton de menu est choisir loption Nouveau ;

3) Donner un nom la BD et choisir lemplacement de stockage de la BD ;

4) Cliquer sur Crer pour la cration de la BD.

Pour grer une BD, Access propose principalement les objets suivants:

Y.DHIBA -FDM- 7
A) Cration dune Table: Pour crer une table dans une BD:

-- Ouvrir la BD;

-- Afficher la liste des Objets Access et cliquer sur lobjet Tables ;

--Dans la barre de menu, cliquer sur Crer puis sur llment Cration de
Table ;

Exemple: Dans la BD gestion des clients et commandes , crer la table suivante:

-- Enregistrer la table sous le nom T_Clients et fermer cette table.

Y.DHIBA -FDM- 8
-- Ouvrir la table T_clients en mode cration et ajouter un nouveau champ Adresse;

Remarque sur le type NumAuto : Le type de donnes NumAuto est un type


numrique dont les valeurs sont attribues et gres par le SGBD. La premire valeur est 1,
la deuxime est 2 .etc.

Exemple: Dans la table T_Clients, modifier le type de donnes du champ NClient


pour quil devient NumAuto . Ouvrir la table en mode affichage, des enregistrements et
vrifier les valeurs attribus par le SGBD ce champ. Supprimer un enregistrement et
ajouter un nouvel enregistrement. Que remarquez-vous?

B) Quelques proprits dun champ:

-- Taille: Permet de limiter le nombre de caractres pour un champ texte.

-- Valeur par dfaut: permet de spcifier une valeur que va attribuer le SGBD un
champ

-- Null interdit: Cette proprit peut avoir deux valeurs: oui (cad le champ accepte
une valeur

vide) ou non (cad le champ naccepte pas une valeur vide).

-- Masque de saisie: Permet de spcifier une manire contrle pour saisir les valeurs
dun

champ ( Cas du Tl: (##) ## / ## / ## / ## ).

-- Dans la table T_Clients , limiter le nombre de caractres 15 pour les champs Nom ,
Prnom et 25 pour le champ Adresse . Dfinir la valeur Rabat comme valeur par
dfaut pour le champ Ville . Choisir les champs pour lesquels Null interdit est non. Dfinir
un masque de saisi pour le champ Tl .

-- Proprit: Liste de choix: Permet daffecter une liste de valeurs un champ donn. Par
exemple, dans la table T_Clients, on peut affecter une liste de valeur pour le champ
ville de la faon suivante:

Y.DHIBA -FDM- 9
C) Ajout et modification des enregistrements

-- Ouvrir la table en mode cration et: Dfinir un masque de saisi pour le champ tl;
Choisir les champs pour lesquels la proprit Null interdit doit avoir la valeur Non ;
Dfinir la proprit Taille pour les champs Nom, Prnom et adresse; dfinir la valeur
Rabat pour la proprit Valeur par dfaut du champ Ville .

-- Passer en mode Affichage et Crer les enregistrements suivants:

Exercice 1:

Dans la base de donnes gestion des clients et commandes , crer la ou les tables
permettant de grer les commandes des clients sur les diffrents produits sachant que:

-- Une commande est caractris par un numro de commande et la date de la commande;

Y.DHIBA -FDM- 10
-- Une commande est faite par un et un seul client;

-- une commande porte sur un ou plusieurs produits;

-- Un client peut faire une ou plusieurs commandes mais des dates diffrentes;

-- Un produit peut tre command plusieurs fois et par plusieurs clients.

Solution:

Dans la base de donnes gestion des clients et commandes , pour grer les commandes
des clients sur les diffrents produits selon les rgles proposes, on doit crer les deux
tables suivantes :

Remarque: Utilisation de la proprit Liste de choix pour avoir des informations


provenant dune autre table

Dans la table T_commandes , on aimerait faciliter la saisie du champ Num_Client en


fournissant des informations sur ce champ partir de la table Clients de la manire
suivante:

Y.DHIBA -FDM- 11
Pour raliser lexemple prcdent:

-- Ouvrir la table Commandes en mode cration;

-- Slectionner le champ Num_Client , cliquer sur la proprit liste de choix et


procder de la faon suivante:

2.2 Relation entre tables et Intgrit rfrentielle

Une relation entre deux tables dune BD permet dexprimer le lien logique qui existe entre
ces tables. Lapplication de lintgrit rfrentielle, permet au SGBD de faire tous les
contrles ncessaires pour que le lien logique soit respect au moment de lexploitation des
tables.

Y.DHIBA -FDM- 12
Exemple des incohrences dues au manque de relations entre tables :

Pour tablir une relation entre deux tables :

Dans le cas de la BD gestion des clients et commandes , pour tablir une relation entre les
deux tables Clients et Commandes ayant en commun le champ N Client :

-- fermer toutes les tables et dans la barre de menu cliquer sur Outils de base de
donnes ;

-- Cliquer sur llment relations

-- Un espace relations sera affich, cliquer ensuite sur llment Afficher la table

-- Ajouter les deux tables Clients et Commandes ;

-- Glisser le champ N Clt de la table Clients jusquau champ N Client de la


table Commandes ;

-- Une fentre Modifier les relations apparait, cocher alors la case Appliquer
lintgrit rfrentielle ;

-- Enfin, cliquer sur le bouton Crer pour obtenir la relation suivante :

Cas dune relation Pre/Fils

Y.DHIBA -FDM- 13
Signification de cette relation:

-- Le 1 signifie quune commande correspond un et un seul client. Le SGBD va


refuser de crer une commande avec un N Client qui nexiste pas dans la table
T_Clients ;

-- L signifie quun client peut faire une ou plusieurs commandes. Le SGBD va


refuser de supprimer un client ayant encore des commandes.

Remarque: Une relation entre deux tables suppose quil y a un champ en commun entre
ces tables et dont le nom peut tre diffrent dans les deux tables mais qui doit avoir le
mme type de donnes dans ces tables.

Exercice: Dans la base de donnes gestion clients commandes , crer les relations
possibles entres les diffrentes tables. Expliquer la signification des deux relations suivantes:

Exercice: On veut grer les approvisionnements et les entres en stocks des diffrents
produits fournis par les fournisseurs dune socit. Pour cela :

1) Crer une nouvelle BD appele Gestion approvisionnements ;


Y.DHIBA -FDM- 14
2) Crer les trois tables suivantes:

-- T_Stock (Rfrence, Dsignation, Qte_Stock);

-- T_Fournisseurs(NFournisseur, Nom, Ville, tl)

-- T_Approvisionnements( Rfrence, NFournisseur, Date, Qte_Livre, PU).

Sachant que:

-- Un produit en stock est identifi par sa rfrence qui est de type Texte;

-- Un fournisseur est identifi par son NFournisseur qui est de type numrique et qui
peut tre attribu par le SGBD;

-- Un produit peut tre livr par un ou plusieurs fournisseurs; Un fournisseur peut


livrer un ou plusieurs et peut livrer le mme produit mais des dates diffrentes (la date est
limite au JJ-Mois-Anne).

3) Appliquer la proprit Liste de choix pour les champs de la table T-


Approvisionnements qui ont en besoin.

Dfinir les relations entre les tables et donner la signification de chacune de ces relations.

5) Remplir les tables avec les enregistrements suivants:

Y.DHIBA -FDM- 15
3. Les requtes : Extraire des informations dune BD

3.1 Dfinition et types de requtes

A) Dfinition: Une requte est une interrogation ou consultation de la BD pour extraire des
informations selon diffrents points de vue ou pour la mise jour des donnes ou la mise
jour de la structure de la BD.

-- En gnrale, le langage utilis pour formuler les requtes est le langage SQL (Structured
Querry Language). Access propose, en plus de ce langage, un mode appel mode QBE
(Querry By Example) pour faciliter lexpression des requtes. Une fois la requte est
exprim dans ce mode, Access se charge de la traduire en SQL avant de lexcuter.

B) Type de requtes: On distingue principalement les types de requtes suivantes:

- Requte de slection: Permet de slectionner des enregistrements partir dune ou


plusieurs tables dune BD avec la possibilit dexprimer des critres ou de faires des
traitements de calcul.

- Requte de mise jour: Permet de modifier les valeurs de certains champs.

- Requte de suppression: Permet de supprimer des enregistrements selon des


critres.

- Requte danalyse croise: Favorise lanalyse de donnes en permettant de


transformer le rsultat dune requte de slection en un jeu de deux valeurs

3.2 Requte de slection:

- Cration dune requte de slection

Pour crer une requte de slection:

-- Fermer toutes les tables ouvertes de la BD;

-- Slectionner lobjet Requtes dans la liste Tous les objets Access et cliquer sur
Crer dans la barre de menu;

-- Cliquer sur llment Cration de requte :

C) Requte de slection:

Cration dune requte de slection

Pour crer une requte de slection:

Y.DHIBA -FDM- 16
-- Fermer toutes les tables ouvertes de la BD;

-- Slectionner lobjet Requtes dans la liste Tous les objets Access et cliquer sur
Crer dans la barre de menu;

-- Cliquer sur llment Cration de requte :

-- Ajouter, partir de la fentre Afficher la table , la ou les tables concernes par la


requte; -- On obtient ensuite linterface suivante:

Structure dune requte de slection:

Remarque : -- Une fois la requte est cre, on peut lenregistrer sous un nom significatif;

-- A chaque fois quune requte est excute elle consulte ltat courant de la BD tenant
compte de toutes les mises jour.

Requte de slection avec des critres:

Y.DHIBA -FDM- 17
Exemple 1: Dans la BD gestion clients et commandes , on veut crer une requte
permettant dafficher le n, le nom, le prnom et la ville des clients dont le nom commence
par S et qui sont de casa ou Rabat. Le rsultat doit tre tri par ville :

Principe: Les critres qui sont sur une mme sont automatiquement lis par loprateur
Et et ceux qui sont placs sur deux lignes diffrentes sont lis par loprateur Ou .

Requte de slection avec des critres:

Lexemple 1 peut aussi tre formul de la faon suivante:

Critres sur les donnes de type Texte :

Le symbole * remplace une suite de caractres et le symbole ? remplace un seul


caractre.

Y.DHIBA -FDM- 18
Exemple 2: Dans la BD gestion clients et commandes , on veut slectionner le n, le nom,
le prnom des clients dont le nom ne commence ni par S ni par M et qui sont de
casa, Marrakech, Kenitra ou Rabat:

Exemple 3: Dans la BD gestion clients et commandes , on veut slectionner le n, le nom,


le prnom des clients qui ne sont pas de Rabat et ayant fait des commandes entre le
01/09/2010 et le 30/09/10:

Requte de slection paramtre:

Exemple: Dans la BD gestion clients et commandes , on veut slectionner les clients dont
la ville est un paramtre (variable) qui sera dtermin au moment de lexcution de la
requte:

A lexcution de cette requte, on obtient la fentre suivante:

Y.DHIBA -FDM- 19
Exercice: Dans la BD Gestion clients commandes , Crer les requtes suivantes:

1) Afficher les produits non disponibles en stock et qui sont commands avec une
quantit suprieur 10.

2) Afficher les clients de Casa ou Rabat ayant pass des commandes entre deux
dates donnes comme paramtres;

3) Afficher les produits disponibles en stock dont le PU est soit entre 100 et 300 soit
entre 500 et 1000; et qui ont t commands au cours de lanne 2009.

4) Afficher les clients dont la ville est un paramtre et ayant pass des commandes
contenant le produit R1 ou R2 ou R4 ou R5 au cours du mois de janvier 2010.

5) Afficher les commandes dun client dont le nom et le prnom sont des paramtres.

6) Afficher les commandes faites au cours des 45 derniers jours!.

Requte de slection avec les fonctions de traitement des dates:

Quelques fonctions de traitement des dates:

Y.DHIBA -FDM- 20
Remarque: Le premier paramtre de la fonction Diffdate peut avoir les valeurs suivantes:
aaaa (diffrence en nombre dannes); t (trimestre); ww (semaine); m (mois); h
(heure); n (minute); s (seconde).

Exemple1: Dans la BD gestion clients et commandes , on veut slectionner les clients


ayant pass des commandes aujourdhui :

Exemple2: Dans la BD gestion clients et commandes , on veut slectionner les clients


ayant pass des commandes au cours du premier trimestre de lanne 2010:

Exemple3: Dans la BD gestion clients et commandes , on veut slectionner les


commandes faites le lundi ou le Mardi ou le Jeudi du premier semestre de lanne 2010
(afficher les mois en lettres alphabtiques):

Exemple4: Dans la BD gestion clients et commandes , on veut slectionner les produits


commands au cours des derniers 60 Jours avec une quantit par commande infrieure
100:

Y.DHIBA -FDM- 21
Requte de slection avec les fonctions de calcul:

- Il sagit dintroduire dans une requte des fonctions de calcul telles que: somme, moyenne,
min, max etc. Ou des fonctions rserves au BD telles que: compte et regroupement.

- Pour introduire des fonctions de calcul dans une requte en mode cration, il suffit de
cliquer sur llment:

Une ligne opration sera alors ajoute dans la structure de la requte.

Exemple1: la fonction compte: Dans la BD gestion clients et commandes , on veut


compter le nombre total de clients:

Exemple2: la fonction regroupement: Dans la BD gestion clients et commandes , on veut


compter le nombre de clients par ville:

Remarque : La fonction regroupement permet de factoriser un traitement effectu sur


un champ en fonction de chaque valeur dun autre champ. Dans lexemple 2, la fonction
regroupement permet de factoriser lopration compte effectue sur le champ N
Client en fonction de chaque valeur du champ Ville .

Y.DHIBA -FDM- 22
Exemple3: Dans la BD gestion clients et commandes , on veut afficher pour chaque
produit: la rfrence, la dsignation, la quantit moyenne, la qt minimale, la quantit
maximale, la quantit totale. On sintresse aux quantits commandes par ville.

3.3 Requte analyse croise:

Une requte Analyse croise permet de calculer et de restructurer des donnes afin d'en
faciliter l'analyse. Elle permet deffectuer des calculs (somme, moyenne, compte etc.) pour
des donnes regroupes en lignes ou en colonnes.

Exemple1: Dans la BD gestion clients et commandes , Pour chaque ville, calculer la


quantit totale commande, par les clients de cette ville, pour chaque produit. Chaque
dsignation dun produit doit tre affich dans une seule colonne et chaque ville doit tre
placer dans une seule ligne :

- Crer une nouvelle requte en introduisant les tables : Clients , Commandes ,


Lignes commandes et produits.
- Dans la zone type de requte , cliquez sur le bouton Analyse Croise:

- Dans la ligne Analyse de la grille de la requte, choisir en tte de ligne pour le


champ Ville et en tte de colonne pour le champ Rfrence . Tout champ
dfini en ligne ou en colonne doit avoir Regroupement dans la zone Opration.
Choisir Valeur pour le champ Quantit et dfinir lopration somme pour ce
champ dans la ligne Opration :

Y.DHIBA -FDM- 23
Exemple2: Dans la BD gestion clients et commandes , on veut crer une requte analyse
croise permettant dafficher les quantits totales mensuelles commandes pour chaque
produit au cours du premier semestre de lanne 2010. Les mois doivent tre affichs en
lettres alphabtiques et les produits doivent tre affichs par leur dsignation :

Avant dexcuter cette requte et pour avoir les mois dans lordre chronologique, cliquer
avec le bouton droit sur la deuxime colonne et puis sur proprits . Ensuite, saisir les
mois dans la proprit En-ttes des colonnes de la faon suivante:

3.4 Requte de mise jour:

Une requte de mise jour permet deffectuer des modifications globales sur un ou
plusieurs enregistrements dans une ou plusieurs tables. Ces modifications peuvent tre
conditionnes par un ou plusieurs critres.

- Cration de requtes de mise jour :

- Crer une nouvelle requte en mode cration et slectionner la ou les tables


contenant les champs concerns par la mise jour.
- Dans la zone type de requte , cliquer sur licne mise jour .
Y.DHIBA -FDM- 24
- Dans la grille de la requte, placer les champs concerns par la mise jour et
spcifier lexpression ou la valeur de mise jour dans la cellule mise jour . Placer
aussi les champs concerns ventuellement par les critres.

- - Pour afficher la liste des enregistrements qui seront mis jour, cliquez sur
Affichage dans la zone Rsultats .

- - Pour raliser la mise jour sur les enregistrements, cliquez sur Excuter dans la
zone Rsultats .

- Remarque: Une mise jour une fois excute ne pourra pas tre annule.

Exemple 1: Dans la BD gestion clients et commandes , on veut Augmenter de 20% le prix


unitaire pour chaque produit dont le PU actuel est compris entre 20 Dh et 260 Dh:

Exemple 2: Dans la BD gestion clients et commandes , on veut doubler les quantits


commandes par les clients de casa ou rabat pour les commandes du mois de Fvrier
2010.

3.5 Requte de suppression:

Une requte suppression permet de supprimer un ou plusieurs enregistrements d'une ou


plusieurs tables. Une requte de suppression, supprime des enregistrements entiers, et
non uniquement certains champs dans ces enregistrements.

- Crer une nouvelle requte en mode cration et slectionner la ou les tables


contenant les champs concerns par la mise jour.

Y.DHIBA -FDM- 25
- Dans la zone type de requte , cliquer sur licne suppression :
- -Cliquer sur le symbole (*) dans la table partir de laquelle la suppression sera
ralis. Si la suppression est conditionne par des critres alors placer les champs
de cette table ou des autres tables concernes par ces critres.
- Pour afficher la liste des enregistrements qui seront mis jour, cliquez sur Affichage
dans la zone Rsultats .
- Pour raliser la mise jour sur les enregistrements, cliquez sur Excuter dans la zone
Rsultats .

Exemple 1: Dans la BD gestion clients et commandes , on veut supprimer le client


SLIMANI Omar sachant quil na pas de commandes:

Remarque: Pour autoriser la suppression des enregistrements annexes dans le cas dune
.relation pre/fils, il faut choisir dans la relation: loption Effacer en cascade les
enregistrements correspondants :

Exercice: Dans la BD Gestion clients commandes , Crer les requtes suivantes:

1) Pour chaque client, afficher la commande la plus rcente et la commande la plus


ancienne.

2) Afficher le nombre de commandes faites mensuellement au cours des deux dernires


annes. Les mois doivent tre affichs en lettres. Formuler la mme requte pour
que le nombre des dernires annes soit un paramtre.

Y.DHIBA -FDM- 26
3) Pour chaque client, afficher le nombre de commandes faites au cours dune anne
donne et au cours dun mois dont le nom est un paramtre. (le nom et le prnom
du client doivent tre affichs dans une seule colonne).

4) Pour chaque commande, calculer le montant HT et le montant TTC avec taux de


tva=20%. Formuler la mme requte avec taux de tva variable.

5) Afficher les produits dont la dernire commande remonte deux mois ou plus.

6) Pour chaque ville, afficher le nombre de commandes faites au cours des mois de
janvier, mars, juin et septembre dune anne donne comme paramtre.

7) Crer une requte analyse croise permettant dafficher le nombre de commandes


faites annuellement par client. Le numro, le nom et le prnom dun client doivent tre
places dans une seule ligne.

8) Crer une requte mise jour paramtre permettant de modifier ladresse ou le


numro de tl dun client dont le nom et prnom sont des paramtres.

9) Rduire de 10% les prix unitaires des produits qui ont t commands au moins
une fois avec une quantit infrieure 5 au cours de mois de janvier 2010.

10) Le client n1 dcide de supprimer de la commande n1 deux produits dont les


dsignations sont : Vido Projecteur et Camra Sony .

11) Supprimer les commandes du client n3 faites au cours de mois de janvier 2010.

12) Crer une requte suppression paramtre permettant de saisir le nom et


prnom du client est de supprimer les commandes de ce client.

Etudes de cas

Etude de cas 1: Le schma simplifi dune base de donnes pour la gestion des commandes
et des livraisons dun systme dinformation, comprend les tables suivantes :

Y.DHIBA -FDM- 27
Questions:

1) Que se passe t-il si on prend uniquement la Rfrence comme cl primaire de la


table Dtail_livraisons ? Que se passe t-il si on prend uniquement
Num_livraison comme cl de cette mme table.

2) Donner la relation avec lintgrit rfrentielle entre la table fournisseurs et


livraisons. Donner la signification et lutilit de lintgrit rfrentielle dans ce cas.

3) On suppose quon a tablit les relations avec lintgrit rfrentielle entre les
diffrentes tables. Parmi les enregistrements suivants lesquels seront rejets par le
SGBD et pourquoi ?

4) Formuler en mode QBE les requtes suivantes:

A- Afficher le numro et la date des livraisons faites au cours du dernier mois de


chaque trimestre dune anne donne.

B- Pour chaque livraison, afficher le numro, la date, le nombre de jours qui sont
passs depuis la cration de la livraison et le montant. Limiter la slection uniquement
pour les livraisons dont la dure est suprieur 100 jours et ayant un montant < 5000
DH ou les livraisons faites au cours des 100 derniers jours avec un montant suprieur
10000 DH.
Y.DHIBA -FDM- 28
C- Afficher, laide dune requte analyse croise, les bnfices mensuelles raliss
pour chaque produit au cours du premier semestre des deux derniers annes. La
rfrence et la dsignation des produits doivent tre affiches dans une mme
colonne.

D- Effectuer une augmentation de prix de vente de 10% pour les produits dont la
quantit en stock est comprise entre 1 et 100 et qui ont t commands au cours des
mois de janvier, mai ou septembre de lune des deux dernires annes.

5) Comment faire pour avoir le ou les fournisseurs ayant raliss le nombre maximum
de livraison au cours dune anne donne?

6) A travers le schma de cette BD, peut on connaitre les moments de pnurie de


stock pour un produit donn?

7) Peut-on connatre les clients nayant pas passs de commandes au cours dune
priode donne?

Etude de cas 2: Les ventes des produits dune entreprise sont gres par une BD
gestion_ventes o Chaque vente est assure par un et un seul reprsentant et concerne
un seul client. Le schma simplifi de cette BD est le suivant :

Questions:

1) Une vente peut-elle contenir deux ou plusieurs produits ? (Justifier la rponse). Que
se passe t-il si on prend (Nvente, Nreprsentant) comme cl de la table ventes?
Proposer une amlioration de cette BD pour quune vente puisse contenir plusieurs
produits.

2) A partir des relations entre les tables, prciser les cas o une vente ne sera pas
accepte par le SGBD. Quels sont les champs de la table vente ayant besoin de la
proprit List de Choix .

3) Dites ce que permet de faire la requte suivante :

Y.DHIBA -FDM- 29
4) Formuler en mode QBE les requtes suivantes:

A-Pour chaque produit, afficher le numro, le nom et la quantit totale vendue au


cours des lundi, mardi et mercredi du deuxime trimestre dune anne donne comme
paramtre.

B-Pour chaque reprsentant, afficher le numro, le nom, lge et lanciennet. Limiter


la recherche pour les reprsentants embauchs il y a plus que 20 ans.

C- Donner une requte permettant dafficher pour chaque produit la quantit totale
vendue quotidiennement au cours des 7 premiers jours du mois de janvier 2010.
Limiter la recherche pour les produits dont le PU est entre 2089 et 6000 ou ceux dont
la Qte totale dpasse 2000.

D- Donner une requte de mise jour permettant de modifier le prix unitaire dun
produit dont le nom est un paramtre.

E- Donner une requte mise jour permettant de faire une augmentation de 25% sur
les salaires bruts des reprsentants dont lanciennet dpasse 7 ans ou dont lge est
entre 30 et 35 ans.

F-Donner une requte analyse croise permettant dafficher le chiffre daffaire ralise
mensuellement par reprsentant et par catgorie de produit au cours du deuxime
semestre des 5 dernires annes. Les noms des mois doivent tre affichs en colonne.

G- Donner une requte analyse croise permettant dafficher la quantit moyenne


commande par produit et par ville au cours des deux dernires semaines. Placer les
villes en ligne.

4. Langage de requtes structur SQL (Structured Querry Language)

SQL est un langage de requtes structur permettant la cration et la gestion de bases de


donnes relationnelles. Il a t conu par IBM dans les annes 70 et a t normalis ds

Y.DHIBA -FDM- 30
1986. SQL est pass de plusieurs normes et est aujourdhui considr le langage standard
des systmes de gestion des bases de donnes relationnelles.

SQL est compos de plusieurs parties contenant chacune un ensemble de commandes


appeles Clauses :

Dans ce cours, on sintresse la partie de SQL permettant linterrogation dune BD


(Requtes avec Clause SELECT).

A) Clause: Select From

Syntaxe:

Exemples:(Cas de la BD gestion commandes et livraisons)

1) Afficher tous les champs de la table Clients:

2) Afficher la rfrence, la dsignation et le prix unitaire de chaque produit:

3) Afficher la liste des villes des clients:

B) Clauses WHERE et ORDER By : Pour exprimer respectivement des conditions sur


les champs et Trier le rsultat.

Y.DHIBA -FDM- 31
Exemples:(Cas de la BD gestion commandes et livraisons )

- Afficher tous les clients de la ville Casa ou Rabat :

- Afficher les clients dont le nom commence par S et qui ne sont pas de Rabat .
Trier le rsultat par ordre croissant sur ville:

- Afficher les commandes faites au cours de janvier 2012:

C) Clause WHERE et Jointures entre deux tables

Exemples:(Cas de la BD gestion commandes et livraisons)

- Afficher les commandes faites par les clients de casa ou rabat:

- Pour chaque commande, afficher la quantit commande de chaque produit:

Y.DHIBA -FDM- 32
D) Les fonctions de calcul: Count, Sum, Avg, Min et Max

Exemple: Afficher le nombre total de clients

E) Clause: Group by : Pour regrouper le rsultat dun calcul sur des champs en fonctions
dautres champs.

Exemples:(Cas de la BD gestion commandes et livraisons)

- Afficher le nombre de clients par ville:

- Afficher le nombre de commandes faites par client:

- Pour chaque produit command, afficher la quantit moyenne, la quantit minimale,


la quantit maximale et la quantit totale commande:

Y.DHIBA -FDM- 33
- Pour chaque commande, donner le MHT et MTTC sachant que Taux TVA=14%:

D) Clause Having : Permet dexprimer des critres sur des champs calculs. Elle est
utilise avec la clause Group by .

Exemples:

- Afficher les villes ayant mois que 3 Clients:

- Afficher les produits dont la Quantit totale commande est entre 200 et 700:

Y.DHIBA -FDM- 34
D) Fonctions traitement des date:.

Remarque: Le premier paramtre de la fonction Diffdate peut avoir les valeurs suivantes:
yyyy (diffrence en nombre dannes); ww (semaine); m (mois); h (heure); n
(minute); s (seconde).

Exemples :

Cas de la BD gestion des commandes et livraison dont le schma relationnel est le suivant :

- Calculer et afficher le nombre de commandes faites aujourdhui:

Y.DHIBA -FDM- 35
- Calculer et afficher le nombre de commandes faites par client au cours du mois
courant:

- Afficher la liste des produits commands au cours du mois prcdent:

E) Requtes imbriques: Il sagit dintroduire une deuxime requte lintrieure dune


requte.

Exemples:

- Afficher les clients qui nont pas passs de commandes au cours de 2010:

Y.DHIBA -FDM- 36
- Afficher le produit dont la quantit commande est maximale:

5. Etudes de cas

Etude de cas

Une entreprise dispose de plusieurs entrepts pour stocker ses diffrents produits. La
gestion des approvisionnements en produits (livrs par les fournisseurs) et les sorties des
produits destines aux clients, repose principalement sur une base de donnes dont le
schma simplifi est le suivant :

Questions:

1) A quoi sert une cl primaire et quest ce quune requte de slection? Que se passe t-
il si on prend le couple (NSortie, NEntrept) comme cl primaire de la table Sortie ?

2) Un approvisionnement peut-il tre stock dans plusieurs entrepts ? Que se passe t-il
Y.DHIBA -FDM- 37
si on ntablit pas de relation entre les deux tables Entrept et Sortie ?

3) Donner lexplication et lutilit de la relation entre les deux tables Produit et


Lignes_Approvisionnement.

4) Dites ce que permet de faire la requte suivante :

5) Formuler en mode QBE les requtes suivantes :

A- Afficher les sorties effectues un Lundi ou Mardi ou Vendredi du troisime


trimestre de lanne en cours.

B- Afficher les produits qui ont t approvisionns avec une quantit comprise
entre 1000 et 2400 au cours des 15 premiers jours dun mois et dune anne donnes
comme paramtres

C- Pour chaque approvisionnement, afficher le numro, la date et le nombre de


mois qui se sont passs depuis la cration de lapprovisionnement. Limiter la slection
uniquement pour les approvisionnements dont la dure dpasse trois mois et qui ne
concernent pas les villes de casa et rabat ou les approvisionnements dont la
dure ne dpasse pas un mois et qui ne concernent pas les produits dont la rfrence
contienne les lettres RS .

D- Afficher les sorties effectus quotidiennement au cours de la premire


semaine du mois de Mars dune anne donne comme paramtre. Les jours doivent

Y.DHIBA -FDM- 38
tre affichs en lettres alphabtiques.

Etude de cas

Une compagnie arienne dispose dun systme dinformation pour grer les billets des
passagers et les diffrents vols quelle propose. Ce systme dinformation repose
principalement sur une base de donnes dont le schma simplifi est le suivant :

Questions:

1) Comment sont organises les donnes dans une Base de donnes ? Citer six types de
donnes disponibles dans les SGBD.

2) Un mme billet peut-il contenir plusieurs vols ? (Justifier la rponse).

3) Peut-on associ le type Texte au champ Prix_vol de la table Detail-Billets ?

4) Donner lexplication et lutilit de la relation entre les deux tables Avions et


Vols . Que se passe t-il si on prend le couple ( N Vol , N Avion ) comme cl de la
table Vols ?

5) Dites ce que permet de faire la requte suivante :

Y.DHIBA -FDM- 39
6) Formuler en mode QBE les requtes suivantes

A- Pour chaque passager, afficher le numro, le nom et le numro de billet dont le


nombre de vols est entre 2 et 5. Limiter la recherche pour les billets achets au
cours du troisime trimestre dune anne donne comme paramtre.

B- Afficher les vols effectus dans les 15 premiers jours du mois de juin 2011 et dont
la dure en nombre dheures dpasse 10 heures ou dont la ville de dpart est
Tanger ou Agadir .

C- Donner une requte mise jour permettant de rduire de 15% le prix dun vol
prvu pour un lundi ou mardi du mois de dcembre 2011 et dont la ville darrive
est un paramtre.

D- Donner une requte analyse croise permettant dafficher par ville de dpart
et par nationalit, le nombre de vols raliss mensuellement au cours du premier

Y.DHIBA -FDM- 40
semestre des trois dernires annes. Les noms des mois doivent tre affichs en
colonne.

E- Donner une requte de suppression permettant de supprimer les vols


destination de Damas prvus pour la premire semaine du mois de dcembre
2011.

Etude de cas :

Une socit dispose de plusieurs vendeurs qui sont des salaris chargs deffectuer des
visites aux clients pour leur vendre les diffrents produits quelle propose. Chaque visite,
effectue par un vendeur un client, engage des frais de dplacement et de restauration.
Pour grer les visites et les frais, la socit dispose dun systme dinformation qui repose
principalement sur une base de donnes dont le schma simplifi est le suivant :

La table T_Frais_Engags permet de stocker les frais de dplacement et de restauration


engags par les visites effectues par un vendeur au cours dune priode dune semaine.
Dans la table T_Priodes , on dcrit une priode (semaine) par un numro, la date de
dbut et la date de fin de la semaine.

Questions :

Y.DHIBA -FDM- 41
1) Quest ce quune base de donnes et quoi sert une requte danalyse croise ?

2) Que se passe t-il si on prend le couple (NVisite, NClient) comme cl de la table


T_Visites ?

3) Donner lexplication et lutilit de la relation entre les deux tables T_Vendeurs et


T_Frais_Engags .

4) Dites ce que permet de faire la requte suivante :

5) Formuler en mode QBE les requtes suivantes :

A- Pour chaque vendeur, afficher le numro, le nom, le prnom et le total des frais
de dplacements engags au cours dune anne donne comme paramtre.
Limiter la recherche pour les vendeurs dont lanciennet est suprieur 10 ans.

B- Afficher le nombre de visites effectues par vendeur un Lundi ou Mardi ou


Vendredi du troisime trimestre de lanne en cours. Limier la recherche pour les
visites ne concernant pas les clients de Casa et de Marrakech.

C- Donner une requte mise jour permettant de rduire de 15% les frais de
dplacement engags au cours du mois daot ou septembre dune anne
donne comme paramtre.

Y.DHIBA -FDM- 42
D- Donner une requte analyse croise permettant dafficher le total des frais
de restauration engags annuellement par vendeur. Limiter cette requte pour
les cinq dernires annes. Afficher, par ligne, le nom et prnom de chaque
vendeur. Les annes doivent tre affiches en colonne.

Ltablissement ELECTROMEN est charg de la maintenance de matriels lectromnagers


de haut de gamme. Outre le directeur, le personnel se compose de 4 secrtaires et dune
trentaine de techniciens regroups par spcialit dans sept ateliers. Pour grer les
rparations de matriels des clients, la socit dispose dun systme dinformation qui
repose principalement sur une base de donnes dont le schma simplifi est le suivant :

Questions :
1) Dfinir les notions suivantes : SGBD; Table ; Cl primaire et requte.

2) Peut-on avoir une rparation faite dans deux ateliers ? Un mme matriel peut-il tre
sujet plusieurs rparations ? Que se passe t-il si on prend le couple (NRparation,
NSrie) comme cl de la table REPARATION ?

3) Donner lexplication et lutilit de la relation entre les deux tables CLIENT et


Y.DHIBA -FDM- 43
MATERIEL.

4) Dites ce que permet de faire la requte suivante :

5) Formuler en mode QBE les requtes suivantes :

A- Pour chaque atelier, afficher le nom et la moyenne des frais de rparations


effectues au cours du premier semestre dune anne donne comme variable.

B- Pour chaque atelier, afficher le numro, le nom et le nombre de rparations faites


au cours dune anne donne comme paramtre pour les clients de Casa ou
Rabat . Limiter la recherche pour les ateliers dont le nombre de techniciens est
suprieur 4.

C- Afficher le nombre de matriels rpars par atelier au cours du troisime


trimestre de lanne 2015. Limier la recherche pour le matriel dont la dure de
rparation na pas dpass 5 jours.

Y.DHIBA -FDM- 44
D- Donner une requte mise jour permettant de rduire de 25% les frais de
rparations ayant une dure qui dpasse 10 jours ou celles faites au cours des
mois daot ou septembre de 2015.

E- Donner une requte analyse croise permettant dafficher la dure moyenne


de rparations (en nombre de jours) par type de matriel et par atelier. Limiter
cette requte pour les cinq dernires annes. Afficher le type de matriel en-tte
de ligne et le nom de latelier en-tte de colonne.

Y.DHIBA -FDM- 45