Cours Bases de Donnees de Gestion
Cours Bases de Donnees de Gestion
Cours Bases de Donnees de Gestion
M. DHIBA YOUSSEF
- licence fondamentale
- licences professionnelles
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
5 Etudes de cas..37
Y.DHIBA -FDM- 2
1. Base de donnes : Notions de bases
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.
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:
- 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.
- 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.
Une BD peut tre compose dune ou plusieurs tables. Chaque table a la structure suivante :
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
- 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.
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:
Y.DHIBA -FDM- 6
2. Gestion de bases de donnes sous Access.
- Access est un SGBD pour la gestion de petites et moyennes BDs. Chaque BD porte un
nom et lextension .mdb .
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;
--Dans la barre de menu, cliquer sur Crer puis sur llment Cration de
Table ;
Y.DHIBA -FDM- 8
-- Ouvrir la table T_clients en mode cration et ajouter un nouveau champ Adresse;
-- 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
-- Masque de saisie: Permet de spcifier une manire contrle pour saisir les valeurs
dun
-- 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 .
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:
Y.DHIBA -FDM- 10
-- Une commande est faite par un et un seul client;
-- Un client peut faire une ou plusieurs commandes mais des dates diffrentes;
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 :
Y.DHIBA -FDM- 11
Pour raliser lexemple prcdent:
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 :
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 ;
-- Un espace relations sera affich, cliquer ensuite sur llment Afficher la table
-- Une fentre Modifier les relations apparait, cocher alors la case Appliquer
lintgrit rfrentielle ;
Y.DHIBA -FDM- 13
Signification de cette relation:
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 :
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;
Dfinir les relations entre les tables et donner la signification de chacune de ces relations.
Y.DHIBA -FDM- 15
3. Les requtes : Extraire des informations dune BD
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.
-- Slectionner lobjet Requtes dans la liste Tous les objets Access et cliquer sur
Crer dans la barre de menu;
C) 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;
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.
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 .
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: 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:
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.
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).
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:
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.
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.
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:
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.
- - 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.
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 .
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 :
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).
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.
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.
11) Supprimer les commandes du client n3 faites au cours de mois de janvier 2010.
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:
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 ?
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?
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 .
Y.DHIBA -FDM- 29
4) Formuler en mode QBE les requtes suivantes:
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.
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.
Syntaxe:
Y.DHIBA -FDM- 31
Exemples:(Cas de la BD gestion commandes et livraisons )
- Afficher les clients dont le nom commence par S et qui ne sont pas de Rabat .
Trier le rsultat par ordre croissant sur ville:
Y.DHIBA -FDM- 32
D) Les fonctions de calcul: Count, Sum, Avg, Min et Max
E) Clause: Group by : Pour regrouper le rsultat dun calcul sur des champs en fonctions
dautres champs.
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 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 :
Y.DHIBA -FDM- 35
- Calculer et afficher le nombre de commandes faites par client au cours du mois
courant:
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 ?
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
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.
Y.DHIBA -FDM- 39
6) Formuler en mode QBE les requtes suivantes
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.
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 :
Questions :
Y.DHIBA -FDM- 41
1) Quest ce quune base de donnes et quoi sert une requte danalyse croise ?
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.
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.
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 ?
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.
Y.DHIBA -FDM- 45