Miniprojet SQL SERVER
Miniprojet SQL SERVER
Miniprojet SQL SERVER
La societe SeneMarket fait appel à vous afin d'automatiser ses tâches de marketing (analyse
des ventes, analyse des profils des clients) et commerciales (facturation).
L'objectif est de réaliser une base de données permettant de gérer les clients, produits, et
factures.
Les règles suivantes doivent être respectées dans la conception du schéma :
• Une facture comporte un ou plusieurs produits.
• Un produit peut paraître dans plusieurs factures.
• Une facture est associée à un seul client.
• Un client peut établir plusieurs factures.
Indice
Le MCD E-A vous est fourni par un collègue.
Dr B.NGOM
Travail demandé:
1. Déduire du MCD ci dessus le modèle relationel.
2. Donner les scripts de création de la base de données et des tables sur SQL SERVER.
3. Inserer des données sur les tables.
4. Écrivez et exécutez la requête permettant d'afficher toutes les factures, avec pour
chacune :
• le numéro de la facture,
• et la quantité achetée.
5. Écrivez la requête permettant de calculer le chiffre d’affaires, c'est à dire le nombre de
produits achetés multiplié par leur prix, pour chaque facture.
6. Le service après vente (SAV) est instruit à se comporter vis à vis des clients, selon leur
catégorie :
• "VIP" si le chiffre d'affaire pour ce client est supérieur à 500 euros,
• "client ordinaire" si le chiffre d'affaire est compris entre 50 et 500 euros,
• et "client à potentiel" si le chiffre d'affaire est inférieur à 50 euros.
Le mécanisme de vue est fréquemment utilisé pour masquer la complexité d'un schéma
de BD aux yeux d'opérateurs nécessitant un schéma simple (on parle de schéma
externe).
Dans notre cas, les opérateurs du SAV désirent avoir la catégorie du client au téléphone
grâce à une instruction très simple :
select * from v_chiffre_affaire where code_client=# ;
a. Écrivez la requête SQL qui permet de renvoyer la liste des clients (num, nom et
prénom) avec leur chiffre d'affaire et leur catégorie (VIP, Ordinaire ou Potentiel)
Indice: Utilisez l’expression
CASE
WHEN when_expression THEN result_expression [ ...n ]
[ ELSE else_result_expression ]
END
b. Écrivez la requête SQL LDD qui crée la vue "v_chiffre_affaire" permettant de
répondre au besoin des opérateurs du service après vente.
Indice: Utilisez l’instruction
CREATE VIEW v_chiffre_affaire AS …..
c. Écrire la requête SQL LMD qui renvoie la catégorie d'un client ayant pour nom
Morin
7. À la fin de chaque année, le fournisseur des produits du projet SeneMarket demande à
l’entreprise un inventaire sur les produits vendus.
Cet inventaire lui est envoyé par e-mail pour analyse et traitement. L'information
demandée est la suivante : donner pour chaque produit, sa désignation, son prix actuel,
et une mention sur la demande :
Dr B.NGOM
• demande "forte" si le nombre d'articles vendus dépasse 15,
• demande "moyenne" si le nombre d'articles vendus est compris entre 11 et 15,
• et demande "faible" sinon.
a. Écrire une fonction stockée qui retourne la valeur de demande (forte, moyenne,
faible) en fonction d'un numéro de produit.
b. Écrire une requête SELECT qui utilise cette fonction pour présenter la liste des
produits avec la demande.
Dr B.NGOM