Académique Documents
Professionnel Documents
Culture Documents
Cours Bases de Donnees de Gestion PDF
Cours Bases de Donnees de Gestion PDF
M. DHIBA YOUSSEF
- licence fondamentale
- licences professionnelles
1.1 Définition…………………………………………………………..………………………………………..3
1.2 Types de données…………………………………………………………………………………….…..3
1.3 Notions : Tables, Champs et Enregistrement…………………………………………….……..4
1.4 Notion de clé Primaire et règles de gestion…………………………………………………....5
1.5 Systèmes de Gestion de Bases de Données…………………………..………………………..6
5 Etudes de cas………………………………………………………….……………………………………….37
Y.DHIBA -FDM- 2
1. Base de données : Notions de bases
Une base de données (BD) est un ensemble de données structurées, organisées et stockées
dans des entités logiques appelées « Tables ». Chaque donnée est caractérisée par un type
de données.
Chaque système d’information d’une entreprise repose sur une ou plusieurs BDs pour la
gestion des données concernant, par exemple, les clients, les commandes, les produits, les
stocks, le personnel, les salariés, les ventes …etc.
Dans une BD, chaque donnée est caractérisée par un type de données permettant de
spécifier la nature des valeurs que peut prendre cette donnée. Les types standards de
données sont:
- Date et heure: Concerne les valeurs de type date (Date d’une commande, date de
livraison, date d’embauche, date d’inscription…..etc.) ou les valeurs concernant les
heures (heure de départ, heure d’arrivée, heure d’une transaction….).
- Monétaire: Concerne les valeurs numériques contenant des symboles des unités
monétaires comme $, €, £, DH….etc. Tous les traitements de calcul qu’on peut faire
sur les données numériques sont valables pour les données monétaires.
- Oui/Non : Concerne les données qui ne peuvent avoir que deux valeurs possibles (oui
ou non; vrai ou faux…).
- Objet Multimédia ou Objet OLE: concerne les données qui peuvent être des images,
des sons, des vidéos ou des fichiers….
- Une Table est une structure qui regroupe un ensemble de données faisant référence
à une entité logique (client, produit, fournisseurs…etc.). Elle porte un nom et elle est
composée d’un ensemble de colonnes et de lignes.
Y.DHIBA -FDM- 3
- Champ d’une table: Un champ décrit une donnée d’une table et correspond à une
colonne de la table. Il porte un nom et il est caractérisé par un type de données.
Chaque colonne d’une table est réservée pour un et un seul champ et porte le nom
de ce champ.
Une BD peut être composée d’une ou plusieurs tables. Chaque table a la structure suivante :
Ci-dessous un exemple de table d’une BD pour la gestion des produits d’une entreprise :
Y.DHIBA -FDM- 4
Fig 2 : Exemple de table d’une BD
- Une clé primaire ou principale d’une table est un ou plusieurs champs de cette table
permettant d’identifier d’une manière unique les différents enregistrements de cette
table. Chaque table d’une BD doit avoir une clé primaire.
- Conséquence: une clé ne peut pas avoir une valeur vide (Null) et sa valeur ne peut
pas se répéter dans la même table.
Y.DHIBA -FDM- 5
Le choix d’une clé primaire dépend des règles de gestion du cas étudié.
Exemple: Dans une base de données de gestion des stocks, on dispose d’une table dont la
structure est:
- Question: Déterminer la clé primaire de cette table, sachant les règles de gestion
suivantes:
Y.DHIBA -FDM- 6
2. Gestion de bases de données sous Access.
- Access est un SGBD pour la gestion de petites et moyennes BDs. Chaque BD porte un
nom et l’extension « .mdb ».
Pour gérer une BD, Access propose principalement les objets suivants:
Y.DHIBA -FDM- 7
A) Création d’une Table: Pour créer une table dans une BD:
-- Ouvrir la BD;
--Dans la barre de menu, cliquer sur « Créer » puis sur l’élément « Création de
Table » ;
Y.DHIBA -FDM- 8
-- Ouvrir la table « T_clients » en mode création et ajouter un nouveau champ « Adresse»;
-- Valeur par défaut: permet de spécifier une valeur que va attribuer le SGBD à un
champ
-- Null interdit: Cette propriété peut avoir deux valeurs: oui (cad le champ accepte
une valeur
-- Masque de saisie: Permet de spécifier une manière contrôlée pour saisir les valeurs
d’un
-- Dans la table « T_Clients », limiter le nombre de caractères à 15 pour les champs « Nom »,
« Prénom » et à 25 pour le champ « Adresse ». Définir la valeur « Rabat » comme valeur par
défaut pour le champ « Ville ». Choisir les champs pour lesquels Null interdit est non. Définir
un masque de saisi pour le champ « Tél ».
-- Propriété: Liste de choix: Permet d’affecter 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 façon suivante:
Y.DHIBA -FDM- 9
C) Ajout et modification des enregistrements
-- Ouvrir la table en mode création et: Définir un masque de saisi pour le champ tél;
Choisir les champs pour lesquels la propriété « Null interdit » doit avoir la valeur « Non »;
Définir la propriété « Taille » pour les champs Nom, Prénom et adresse; définir la valeur
« Rabat » pour la propriété « Valeur par défaut » du champ « Ville ».
Exercice 1:
Dans la base de données « gestion des clients et commandes », créer la ou les tables
permettant de gérer les commandes des clients sur les différents 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 différentes;
Solution:
Dans la base de données « gestion des clients et commandes », pour gérer les commandes
des clients sur les différents produits selon les règles proposées, on doit créer les deux
tables suivantes :
Y.DHIBA -FDM- 11
Pour réaliser l’exemple précédent:
Une relation entre deux tables d’une BD permet d’exprimer le lien logique qui existe entre
ces tables. L’application de l’intégrité référentielle, permet au SGBD de faire tous les
contrôles nécessaires pour que le lien logique soit respecté au moment de l’exploitation des
tables.
Y.DHIBA -FDM- 12
Exemple des incohérences 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
données »;
-- Un espace « relations » sera affiché, cliquer ensuite sur l’élément « Afficher la table »
-- Une fenêtre « Modifier les relations » apparait, cocher alors la case « Appliquer
l’intégrité référentielle »;
Y.DHIBA -FDM- 13
Signification de cette relation:
Remarque: Une relation entre deux tables suppose qu’il y a un champ en commun entre
ces tables et dont le nom peut être différent dans les deux tables mais qui doit avoir le
même type de données dans ces tables.
Exercice: Dans la base de données « gestion clients commandes », créer les relations
possibles entres les différentes tables. Expliquer la signification des deux relations suivantes:
Exercice: On veut gérer les approvisionnements et les entrées en stocks des différents
produits fournis par les fournisseurs d’une société. Pour cela :
Sachant que:
-- Un produit en stock est identifié par sa référence qui est de type Texte;
-- Un fournisseur est identifié par son N°Fournisseur qui est de type numérique et qui
peut être attribué par le SGBD;
Définir les relations entre les tables et donner la signification de chacune de ces relations.
Y.DHIBA -FDM- 15
3. Les requêtes : Extraire des informations d’une BD
A) Définition: Une requête est une interrogation ou consultation de la BD pour extraire des
informations selon différents points de vue ou pour la mise à jour des données ou la mise à
jour de la structure de la BD.
-- En générale, le langage utilisé pour formuler les requêtes est le langage SQL (Structured
Querry Language). Access propose, en plus de ce langage, un mode appelé mode « QBE
(Querry By Example) » pour faciliter l’expression des requêtes. Une fois la requête est
exprimé dans ce mode, Access se charge de la traduire en SQL avant de l’exécuter.
-- Sélectionner l’objet « Requêtes » dans la liste « Tous les objets Access » et cliquer sur
« Créer » dans la barre de menu;
C) Requête de sélection:
Y.DHIBA -FDM- 16
-- Fermer toutes les tables ouvertes de la BD;
-- Sélectionner l’objet « Requêtes » dans la liste « Tous les objets Access » et cliquer sur
« Créer » dans la barre de menu;
Remarque : -- Une fois la requête est créée, on peut l’enregistrer sous un nom significatif;
-- A chaque fois qu’une requête est exécutée elle consulte l’état 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 créer une requête
permettant d’afficher le n°, le nom, le prénom et la ville des clients dont le nom commence
par « S » et qui sont de casa ou Rabat. Le résultat doit être trié par ville :
Principe: Les critères qui sont sur une même sont automatiquement liés par l’opérateur
« Et » et ceux qui sont placés sur deux lignes différentes sont liés par l’opérateur « Ou ».
Y.DHIBA -FDM- 18
Exemple 2: Dans la BD « gestion clients et commandes », on veut sélectionner le n°, le nom,
le prénom 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 sélectionner les clients dont
la ville est un paramètre (variable) qui sera déterminé au moment de l’exécution de la
requête:
Y.DHIBA -FDM- 19
Exercice: Dans la BD « Gestion clients commandes », Créer les requêtes suivantes:
1) Afficher les produits non disponibles en stock et qui sont commandés avec une
quantité supérieur à 10.
2) Afficher les clients de « Casa » ou « Rabat » ayant passé des commandes entre deux
dates données comme paramètres;
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é commandés au cours de l’année 2009.
4) Afficher les clients dont la ville est un paramètre 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 d’un client dont le nom et le prénom sont des paramètres.
Y.DHIBA -FDM- 20
Remarque: Le premier paramètre de la fonction « Diffdate» peut avoir les valeurs suivantes:
aaaa (différence en nombre d’années); t (trimestre); ww (semaine); m (mois); h
(heure); n (minute); s (seconde).
Y.DHIBA -FDM- 21
Requête de sélection avec les fonctions de calcul:
- Il s’agit d’introduire dans une requête des fonctions de calcul telles que: somme, moyenne,
min, max …etc. Ou des fonctions réservées au BD telles que: compte et regroupement.
- Pour introduire des fonctions de calcul dans une requête en mode création, il suffit de
cliquer sur l’élément:
Y.DHIBA -FDM- 22
Exemple3: Dans la BD « gestion clients et commandes », on veut afficher pour chaque
produit: la référence, la désignation, la quantité moyenne, la qté minimale, la quantité
maximale, la quantité totale. On s’intéresse aux quantités commandées par ville.
Une requête Analyse croisée permet de calculer et de restructurer des données afin d'en
faciliter l'analyse. Elle permet d’effectuer des calculs (somme, moyenne, compte etc.) pour
des données regroupées en lignes ou en colonnes.
Y.DHIBA -FDM- 23
Exemple2: Dans la BD « gestion clients et commandes », on veut créer une requête analyse
croisée permettant d’afficher les quantités totales mensuelles commandées pour chaque
produit au cours du premier semestre de l’année 2010. Les mois doivent être affichés en
lettres alphabétiques et les produits doivent être affichés par leur désignation :
Avant d’exécuter cette requête et pour avoir les mois dans l’ordre chronologique, cliquer
avec le bouton droit sur la deuxième colonne et puis sur « propriétés ». Ensuite, saisir les
mois dans la propriété « En-têtes des colonnes » de la façon suivante:
Une requête de mise à jour permet d’effectuer des modifications globales sur un ou
plusieurs enregistrements dans une ou plusieurs tables. Ces modifications peuvent être
conditionnées par un ou plusieurs critères.
- - Pour afficher la liste des enregistrements qui seront mis à jour, cliquez sur
Affichage dans la zone « Résultats ».
- - Pour réaliser la mise à jour sur les enregistrements, cliquez sur Exécuter dans la
zone « Résultats ».
- Remarque: Une mise à jour une fois exécutée ne pourra pas être annulée.
Y.DHIBA -FDM- 25
- Dans la zone « type de requête », cliquer sur l’icône « suppression »:
- -Cliquer sur le symbole (*) dans la table à partir de laquelle la suppression sera
réalisé. Si la suppression est conditionnée par des critères alors placer les champs
de cette table ou des autres tables concernées par ces critères.
- Pour afficher la liste des enregistrements qui seront mis à jour, cliquez sur Affichage
dans la zone « Résultats ».
- Pour réaliser la mise à jour sur les enregistrements, cliquez sur Exécuter dans la zone
« Résultats ».
Remarque: Pour autoriser la suppression des enregistrements annexes dans le cas d’une
.relation père/fils, il faut choisir dans la relation: l’option « Effacer en cascade les
enregistrements correspondants »:
Y.DHIBA -FDM- 26
3) Pour chaque client, afficher le nombre de commandes faites au cours d’une année
donnée et au cours d’un mois dont le nom est un paramètre. (le nom et le prénom
du client doivent être affichés dans une seule colonne).
5) Afficher les produits dont la dernière 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 d’une année donnée comme paramètre.
9) Réduire de 10% les prix unitaires des produits qui ont été commandés au moins
une fois avec une quantité inférieure à 5 au cours de mois de janvier 2010.
10) Le client n°1 décide de supprimer de la commande n°1 deux produits dont les
désignations sont : « Vidéo Projecteur » et « Caméra Sony ».
11) Supprimer les commandes du client n°3 faites au cours de mois de janvier 2010.
Etudes de cas
Etude de cas 1: Le schéma simplifié d’une base de données pour la gestion des commandes
et des livraisons d’un système d’information, comprend les tables suivantes :
Y.DHIBA -FDM- 27
Questions:
3) On suppose qu’on a établit les relations avec l’intégrité référentielle entre les
différentes tables. Parmi les enregistrements suivants lesquels seront rejetés par le
SGBD et pourquoi ?
B- Pour chaque livraison, afficher le numéro, la date, le nombre de jours qui sont
passés depuis la création de la livraison et le montant. Limiter la sélection uniquement
pour les livraisons dont la durée est supérieur à 100 jours et ayant un montant < 5000
DH ou les livraisons faites au cours des 100 derniers jours avec un montant supérieur
10000 DH.
Y.DHIBA -FDM- 28
C- Afficher, à l’aide d’une requête analyse croisée, les bénéfices mensuelles réalisés
pour chaque produit au cours du premier semestre des deux derniers années. La
référence et la désignation des produits doivent être affichées dans une même
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é commandés au cours des
mois de janvier, mai ou septembre de l’une des deux dernières années.
5) Comment faire pour avoir le ou les fournisseurs ayant réalisés le nombre maximum
de livraison au cours d’une année donnée?
6) A travers le schéma de cette BD, peut –on connaitre les moments de pénurie de
stock pour un produit donné?
7) Peut-on connaître les clients n’ayant pas passés de commandes au cours d’une
période donnée?
Etude de cas 2: Les ventes des produits d’une entreprise sont gérées par une BD
« gestion_ventes » où Chaque vente est assurée par un et un seul représentant et concerne
un seul client. Le schéma simplifié de cette BD est le suivant :
Questions:
1) Une vente peut-elle contenir deux ou plusieurs produits ? (Justifier la réponse). Que
se passe t-il si on prend (N°vente, N°représentant) comme clé de la table ventes?
Proposer une amélioration de cette BD pour qu’une vente puisse contenir plusieurs
produits.
2) A partir des relations entre les tables, préciser les cas où une vente ne sera pas
acceptée par le SGBD. Quels sont les champs de la table « vente » ayant besoin de la
propriété « List de Choix ».
Y.DHIBA -FDM- 29
4) Formuler en mode QBE les requêtes suivantes:
C- Donner une requête permettant d’afficher 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 dépasse 2000.
D- Donner une requête de mise à jour permettant de modifier le prix unitaire d’un
produit dont le nom est un paramètre.
E- Donner une requête mise à jour permettant de faire une augmentation de 25% sur
les salaires bruts des représentants dont l’ancienneté dépasse 7 ans ou dont l’âge est
entre à 30 et 35 ans.
F-Donner une requête analyse croisée permettant d’afficher le chiffre d’affaire réalisée
mensuellement par représentant et par catégorie de produit au cours du deuxième
semestre des 5 dernières années. Les noms des mois doivent être affichés en colonne.
Y.DHIBA -FDM- 30
1986. SQL est passé de plusieurs normes et est aujourd’hui considéré le langage standard
des systèmes de gestion des bases de données 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 résultat 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 résultat d’un calcul sur des champs en fonctions
d’autres champs.
Y.DHIBA -FDM- 33
- Pour chaque commande, donner le MHT et MTTC sachant que Taux TVA=14%:
D) Clause « Having »: Permet d’exprimer des critères sur des champs calculés. Elle est
utilisée avec la clause « Group by ».
Exemples:
- Afficher les produits dont la Quantité totale commandée est entre 200 et 700:
Y.DHIBA -FDM- 34
D) Fonctions traitement des date:.
Remarque: Le premier paramètre de la fonction « Diffdate» peut avoir les valeurs suivantes:
yyyy (différence en nombre d’années); ww (semaine); m (mois); h (heure); n
(minute); s (seconde).
Exemples :
Cas de la BD gestion des commandes et livraison dont le schéma 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 n’ont pas passés de commandes au cours de 2010:
Y.DHIBA -FDM- 36
- Afficher le produit dont la quantité commandée est maximale:
5. Etudes de cas
Etude de cas
Une entreprise dispose de plusieurs entrepôts pour stocker ses différents produits. La
gestion des approvisionnements en produits (livrés par les fournisseurs) et les sorties des
produits destinées aux clients, repose principalement sur une base de données dont le
schéma simplifié est le suivant :
Questions:
1) A quoi sert une clé primaire et qu’est ce qu’une requête de sélection? Que se passe t-
il si on prend le couple (N°Sortie, N°Entrepôt) comme clé primaire de la table « Sortie » ?
2) Un approvisionnement peut-il être stocké dans plusieurs entrepôts ? Que se passe t-il
Y.DHIBA -FDM- 37
si on n’établit pas de relation entre les deux tables « Entrepôt » et « Sortie » ?
B- Afficher les produits qui ont été approvisionnés avec une quantité comprise
entre 1000 et 2400 au cours des 15 premiers jours d’un mois et d’une année données
comme paramètres
Y.DHIBA -FDM- 38
être affichés en lettres alphabétiques.
Etude de cas
Une compagnie aérienne dispose d’un système d’information pour gérer les billets des
passagers et les différents vols qu’elle propose. Ce système d’information repose
principalement sur une base de données dont le schéma simplifié est le suivant :
Questions:
1) Comment sont organisées les données dans une Base de données ? Citer six types de
données disponibles dans les SGBD.
Y.DHIBA -FDM- 39
6) Formuler en mode QBE les requêtes suivantes
B- Afficher les vols effectués dans les 15 premiers jours du mois de juin 2011 et dont
la durée en nombre d’heures dépasse 10 heures ou dont la ville de départ est
« Tanger » ou « Agadir ».
C- Donner une requête mise à jour permettant de réduire de 15% le prix d’un vol
prévu pour un lundi ou mardi du mois de décembre 2011 et dont la ville d’arrivée
est un paramètre.
D- Donner une requête analyse croisée permettant d’afficher par ville de départ
et par nationalité, le nombre de vols réalisés mensuellement au cours du premier
Y.DHIBA -FDM- 40
semestre des trois dernières années. Les noms des mois doivent être affichés en
colonne.
Etude de cas :
Une société dispose de plusieurs vendeurs qui sont des salariés chargés d’effectuer des
visites aux clients pour leur vendre les différents produits qu’elle propose. Chaque visite,
effectuée par un vendeur à un client, engage des frais de déplacement et de restauration.
Pour gérer les visites et les frais, la société dispose d’un système d’information qui repose
principalement sur une base de données dont le schéma simplifié est le suivant :
Questions :
Y.DHIBA -FDM- 41
1) Qu’est ce qu’une base de données et à quoi sert une requête d’analyse croisée ?
2) Que se passe t-il si on prend le couple (N°Visite, N°Client) comme clé de la table
« T_Visites » ?
A- Pour chaque vendeur, afficher le numéro, le nom, le prénom et le total des frais
de déplacements engagés au cours d’une année donnée comme paramètre.
Limiter la recherche pour les vendeurs dont l’ancienneté est supérieur à 10 ans.
C- Donner une requête mise à jour permettant de réduire de 15% les frais de
déplacement engagés au cours du mois d’août ou septembre d’une année
donnée comme paramètre.
Y.DHIBA -FDM- 42
D- Donner une requête analyse croisée permettant d’afficher le total des frais
de restauration engagés annuellement par vendeur. Limiter cette requête pour
les cinq dernières années. Afficher, par ligne, le nom et prénom de chaque
vendeur. Les années doivent être affichées en colonne.
Questions :
1) Définir les notions suivantes : SGBD; Table ; Clé primaire et requête.
2) Peut-on avoir une réparation faite dans deux ateliers ? Un même matériel peut-il être
sujet à plusieurs réparations ? Que se passe t-il si on prend le couple (N°Réparation,
N°Série) comme clé de la table « REPARATION » ?
Y.DHIBA -FDM- 44
D- Donner une requête mise à jour permettant de réduire de 25% les frais de
réparations ayant une durée qui dépasse 10 jours ou celles faites au cours des
mois d’août ou septembre de 2015.
Y.DHIBA -FDM- 45