Vous êtes sur la page 1sur 2

Année Universitaire : 2019 - 2020

Auditoire 1 ère année MP-II AD (formation continue)

Matière
Gestion des Bases de Données
Enseignant
Achraf Mtibaa

TP N° 4

Exercice1 :
Soit la base de données suivante :
CLIENT (cin, Nom, Prenom)
PRODUIT (Ref, Libelle, Prix)
ACHAT (NumAchat, cin#)
ACHAT_PRODUIT (NumAchat#, Ref#, Quantité)

(Les clés primaires sont soulignées et les clés étrangères sont suivies du symbole #)
Un client est caractérisé par son numéro de cin (nombre de taille 8), son Nom (chaine de
caractère de taille 15) et son Prenom (chaine de caractère de taille 15).
Un produit est identifié par une référence : Ref (number de taille 4) et est caractérisé par son
Libelle (chaine de caractère de taille 15) et son Prix (nombre décimale de 7 chiffres dont trois
après la virgule).
Chaque achat est identifié par un numéro : NumAchat (nombre de taille 4) et est relatif à un
client. En fait, un client peut effectuer plusieurs achats, alors que l’achat est relatif à un seul
client.
Dans un même achat, le client peut acheter plusieurs produits. Aussi, un produit peut figurer
dans plusieurs achats. Cette relation est concrétisée à travers la table ACHAT_PRODUIT.
L’attribut Quantité (nombre de taille 4) représente la quantité achetée.
On considère les contraintes suivantes :
 Contrainte clé primaire
 Contrainte clé étrangère
 Autres contraintes sur la table PRODUIT :
 Libelle : Le libelle du produit doit commencer par : 'P_'.
 Libelle : Tous les Libelle sont différents.
 Prix : Entre 5 et 3000.
 Autre contrainte sur la table ACHAT_PRODUIT:
 Quantité : Prend par défaut 1. Doit être toujours >0.

NB. Toutes les contraintes déclarées doivent être nommées.


Q1. Créer la table CLIENT avec toutes ses contraintes.
Q2. Créer la table PRODUIT avec toutes ses contraintes.
Q3. Créer la table ACHAT sans aucune contrainte.
Q4. Ajouter à la table ACHAT toutes ses contraintes.
Q5. Créer la table ACHAT_PRODUIT avec toutes ses contraintes.
Q6. Afficher NumAchat et Quantité de tous les achats dont figure le produit 'P_Clavier'.
Trier le résultat par Quantité décroissante.
Q7. Afficher ref, Libelle et Prix des produits qui n’ont pas été achetés.
Q8. Afficher ref et Quantité_Totale de chaque produit acheté.
Q9. Afficher NumAchat et Nombre de tout achat ayant plus que trois produits.
Q10. Afficher pour chaque achat NumAchat, Nom, Prenom (du client concerné) et la somme
totale de l’achat. Trier le résultat par la somme totale de l’achat.
Q11. Afficher Nom et Prénom des clients qui ont achetés plus que 10 claviers.
1
Q12. Afficher ref et Libelle des produits qui figurent dans tous les achats.
Q13. Afficher pour chaque achat le produit le plus vendu (c.à.d ayant la plus grande quantité).
On demande d’afficher NumAchat et Ref.

Exercice2 :
Soit la base de données suivante :
VEHICULE (Immat, Km, Puiss, Type)
PROJET (NomProj, DateDeb, DateFin, CoutProj)
MISSION (NumMiss, NomProj#)
RESERVATION (Immat#, NumMiss#, DateRes, VilleDep, VilleArr)

(Les clés primaires sont soulignées et les clés étrangères sont suivies du symbole #)
Un Véhicule est caractérisé par sa plaque d’immatriculation (Immat : chaîne de caractères de
taille 15), le kilométrage parcouru (Km : nombre de taille 6) sa puissance (Puiss : nombre de
taille 2) et son type (type : un seul caractère). Il est à noter que :
- Puiss : Présence obligatoire et doit être entre 8 et 12.
- Km : prend par défaut la valeur 0.
- Type : qui ne peut prendre que les valeurs 'T' pour touristique, 'U' pour utilitaire et 'C' pour
camion.
Un Projet est identifié par son nom (NomProj : chaîne de caractères de taille 15), et il est
caractérisé par date début, date fin (de type date) et un coût (CoutProj : nombre de taille 4).
Une Mission est identifiée par un numéro (NumMiss : nombre de taille 4) et elle est relatif à
un projet.

Pour une mission, on peut réserver plusieurs véhicules et, réciproquement, un véhicule peut
participer à plusieurs missions. Ceci est schématisé par la relation RESERVATION. Une
réservation possède une date réservation (de type date et prend par défaut la date système),
ville de départ et ville d’arrivée (chaîne de caractères de taille 15)
NB. Toutes les contraintes déclarées doivent être nommées.
Q1. Créer la table Véhicule sans aucune contrainte.
Q2. Ajouter, en une seule instruction, toutes les contraintes nécessaires pour la table Véhicule.
Q3. En supposant que les tables Projet et Mission sont créées que toutes leurs contraintes sont
déclarées, créer la table Reservation tout en considérant toutes les contraintes nécessaires.
Q4. Modifier la contrainte définie sur la colonne Puis pour la rendre Puis entre 8 et 18.
Q5. Afficher puissance et type des véhicules qui ont été réservés pour le projet PROJ1.
Q6. Afficher nom et coût des projets réalisés dans la même période que le projet PROJ1. Trier
le résultat par coût croissant.
Q7. Afficher nom des projets pour lesquels on n’a pas encore attribué des missions.
Q8. Afficher nom des projets pour lesquels on n’a pas réservé des véhicules de type camion.
Q9. Afficher immatriculation des véhicules qui ont été réservé à la même date que le véhicule
identifié par '1234 TU 111' mais ayant des trajectoires inversés.
Q10. Afficher immatriculation du véhicule qui a été réservé au moins deux fois.
Q11. Afficher pour chaque type de véhicule le nombre de réservations (afficher type et
nombre de réservations).
Q12. Afficher nom des projets ayant un coût compris entre le coût moyen et 1.5 le coût
moyen de tous les projets.
Q13. Afficher immatriculation et type des véhicules qui ont participé à toutes les missions.

Vous aimerez peut-être aussi