Académique Documents
Professionnel Documents
Culture Documents
FST – Marrakech
IRISI S2
Mini projet PL/SQL
Gestion de Mediatek
La conception :
L'association MediaTek 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.
et la quantité achetée.
Les vues:
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,
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=# ;
1- Écrivez la requête SQL qui crée la vue "v_chiffre_affaire" permettant de répondre au besoin
des opérateurs du service après-vente.
Fonctions stockées :
À la fin de chaque année, le fournisseur des produits du projet MediaTek demande à l'association
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 :
demande "forte" si le nombre d'articles vendus dépasse 15,
Les curseurs :
Afin d'affiner l'analyse du profil de chaque client, le service marketing souhaite avoir un état
pour chaque client avec le nombre de ses factures et son chiffre d'affaire total.
1- Écrivez deux fonctions stockées qui prendront en argument un numéro de client, et
retourneront sous forme de number le nombre de factures et le chiffre d'affaire, respectivement.
2- Écrivez un programme PL/SQL anonyme qui affiche pour le client numéro 1 le nombre de
factures et le chiffre d'affaire.
3- Écrivez un second programme PL/SQL qui affiche pour chaque client son nombre de factures
et son chiffre d'affaire.
4- Transformez le bloc anonyme en procédure. Testez cette procédure.
Les triggers :
Un ensemble de règles de gestion est défini afin de gérer le stock des produits du projet
MediaTek. La politique suivante a été admise :
1. après chaque vente, la quantité vendue est soustraite de la quantité disponible indiquée dans
une colonne de la table des produits,
2. si cette quantité (disponible) est inférieure à un "seuil" alors insérer un avertissement dans une
table de journalisation avec la date du jour, le numéro de produit, et stock restant après mise à
jour.
- Créer un déclencheur permettant de mettre à jour la quantité disponible dans la table produit à
chaque insertion dans la table ligne facture (traitement du point 1).
- Testez votre trigger TR_STOCK_AUDIT en supprimant et en réinsérant les données des tables
FACTURE et LIGNE_FACT.
- Créer la table de journalisation.
- Modifiez votre déclencheur de telle façon qu'après la mise à jour, il teste si le stock est inférieur
à une valeur seuil de 5. Si le stock est inférieur à ce seuil, alors il devra insérer les informations
adéquates dans la table de journalisation (traitement du point 2).
- Testez à nouveau votre trigger jusqu'à obtenir au moins un message.