Vous êtes sur la page 1sur 2

EXAMEN

Semestre : 1 2

Session : Principale Rattrapage

Module : SGBD
Enseignants : Equipe SGBD
Classes : 3A
Documents autorisés : OUI NON Nombre de pages : 02
Date : 07/05/2016 Heure: 09h00 Durée : 1h30

On souhaite gérer le système d’informations relatif


relatif aux offres et achats de deals. Pour
P cela, on
se propose d’utiliser le schéma relationnel suivant :

PrestataireService (Nom_prestataire
restataire, Adresse, Num_tel, Email)

Membre (Id_membre,, Login, Pwd, Email)

Deal (Id_deal, Date_début, Période_validité,


Pé Prix, Type_deal, Score,, #Nom_prestataire)
#Nom

Achat (#Id_deal,
#Id_deal, #Id_membre, Date_achat,
Date_a Nb_coupons, Montant)

Questions :

1. Ecrire les requêtes SQL permettant


permet de :
a- Créer la séquence SEQ_MEMBRE qui commence par 100 et s’incrémente par
1.(0.5 pt)
b- Ajouter la colonne Note de type entier à la table Achat.. Sachant que la note peut
varier entre 0 et 5. Faites le nécessaire. (1 pt)
2. Créer la vue V_MAX
AX_DEAL qui permet d’afficher les noms des prestataires de
services qui ont vendus le plus grand nombre de deals. (2 pts)
3. Ecrire une procédure stockée PS_MEMBRE (p_login varchar, p_pwd varchar,
p_email varchar) qui permet d’ajouter un nouveau membre. La procédure doit gérer
les exceptions suivantees :
a- Le login ne doit pas correspondre à un autre login existant dans la table Membre.
b- Le mot de passe doit commencer par une lettre en majuscule et sa taille ne doit pas
dépasser 6 caractères.

Si les critères sont vérifiés, la procédure doit insérer un nouveau membre en utilisant
la séquence SEQ_MEMBRE.
SEQ_MEMBRE (3 pts)
1
4. Ecrire un trigger TRIG_MONTANT qui, avant chaque insertion dans la table
ACHAT, permet de calculer le montant de l'achat effectué. (2 pts)

Montant = Nb_coupons * Prix

5. Ecrire une fonction stockée FN_MNT_DEAL (p_deal number) qui permet de


retourner le montant total cumulé relatif aux différents achats d’un deal dont
l’identifiant est donné en paramètre. Si le deal n’existe pas, la fonction doit retourner
la valeur -1. (2 pts)

6. Ecrire une procédure stockée PS_PRES_DEAL qui permet d’afficher pour chaque
prestataire son nom, son adresse et la liste de ses deals proposés. Pour chaque deal on
affiche son type, son score ainsi que le montant total cumulé en utilisant la fonction
FN_MNT_DEAL. (3 pts)

7. a- Ecrire une procédure stockée PS_DEAL (mois number) qui permet d’afficher pour
chaque deal acheté pendant le mois passé en paramètre de l’année en cours, une liste
numérotée selon un ordre décroissant de score, comportant la date de l’achat,
l’identifiant du deal, l’identifiant du membre ainsi que le score. (3 pts)

b- Tester la procédure pour le mois de mars. (1 pt)

8. Ecrire un trigger TRIG_DEAL_EXPIRE qui empêche tout achat de deal expiré


(période de validité dépassée). Il est à noter que la période de validité d’un deal est
exprimée en nombre de jours. (2.5 pts)

Bonne chance

Vous aimerez peut-être aussi