TP: Le grand bazard
Introduction aux bases de données relationnelles
D. Pellier
Description du problème
On considère le schéma relationnel défini par les trois relations suivantes où les clés sont
soulignées :
PRODUIT(NPRO, NOMP, QTP, COULEUR)
{(npro, nomp, qtp, couleur) ∈ P RODU IT ⇐⇒ qui donne pour chaque produit identifié
par son numéro npro, son nom nomp, sa quantité qtp disponible en stock et sa couleur
couleur.} ;
VENTE(NVEN, NOMC, NPRV, QTV, DATEV)
{(nven, nomc, nprv, qtv, date) ∈ V EN T E ⇐⇒ qui décrit toutes les ventes de produits
réalisées. Pour chaque vente, identifiée par son numéro nven, on conserve le nom du
client nomc le numéro du produit vendu nprv, la quantité qtv de produit vendu ainsi que
la date date de la vente.} ;
ACHAT(NACH, NOMF, NPRA, QTA, DATEA)
{(nach, nomf, npra, qta, date) ∈ ACHAT ⇐⇒ qui décrit les commandes de produits aux
fournisseurs. Pour chaque achat, identifié par son numéro nach, on donne le nom du
fournisseur nomf , le numéro du produit commandé npra, la quantité commandée qta
ainsi que la date date à laquelle le produit a été commandé.} ;
Les domaines associés aux différents attributs sont :
– domaine(NOMP) = {“chaussette”, “casserole”, “téléphone”, etc.} ;
– domaine(NOMC) = {“John”, “Catherine”, “Alphonse”, etc.} ;
– domaine(NOMF) = {“Darty”, “LaRedoute”, “Carefour”, etc.} ;
– domaine(COULEUR) = {“rouge”, “vert”, “bleu”, etc.} ;
– domaine(NPRO) = domaine(NVEN) = domaine(NACH) = domaine(NPRV) = do-
maine(NPRA) = domaine(QTP) = domaine(QTV) = domaine(QTA) = entiers ≥ 0 ;
– domaine(DATE) = date.
Les contraintes d’intégrité référentielle sont :
– VENTE[NPRV] ⊆ PRODUIT[NPRO] ;
– ACHAT[NPRA] ⊆ PRODUIT[NPRO].
Partie : Écriture de requêtes
Donner en algèbre relationnelle (lorsque cela est possible) et en SQL l’expression des requêtes
suivantes :
1. Donner les noms et couleurs de tous les produits ;
2. Donner les noms et quantités en stock des produits de couleur rouge ;
3. Donner les numéros de vente, le nom du client, la quantité vendue pour les ventes du
produit de nom « torchon », réalisées avant le 12/09/87 ;
Université Grenobles Alpes: Introduction aux bases de données relationnelles 2
4. Donner les noms des clients ayant acheté au moins un produit de couleur verte ;
5. Donner les noms des fournisseurs qui sont également des clients ;
6. Donner les noms des fournisseurs qui fournissent les produits de couleur bleu et dont la
quantité en stock (actuellement) est inférieur à 100 ;
7. Donner le nom des fournisseurs avec lesquels aucune commande de produit n’a été réalisée
depuis le 30/06/87 ;
8. Donner pour chaque produit, les noms des fournisseurs du produit et les noms des clients
l’ayant acheté ;
9. Donner les noms des clients ayant acheté au moins une fois de tous les produits disponibles ;
10. Donner les noms des fournisseurs qui fournissent tous les produits ;
11. Donner, pour chaque couleur, le nombre de produits de cette couleur ;
12. Donner le nom et le nombre des produits vendus lors de la plus grosse vente.
Partie : Travaux Pratique
Pour chacune des requêtes précédentes donner les lignes résultats obtenues. La base de données
est téléchargeable sur le page du cours. Le fichier s’appelle « le grand [Link] ».