On considère une base COOPERATIVE qui possède le schéma relationnel suivant :
· VINS (Num, Cru, Annee, Degre)
· PRODUCTEURS (Num, Nom, Prenom, Region)
· RECOLTES (Nprod, Nvin, Quantite)
Un vin est caractérisé par un numéro entier, un cru, une année de production et un degré. L'ensemble des vins est représenté par la relation VINS. La clé de la relation VINS est l’attribut Num.
Un producteur est caractérisé par un numéro entier, un nom, un prénom et une région. L'ensemble des producteurs est représenté par la relation PRODUCTEURS. La clé de la relation PRODUCTEURS est l’attribut Num.
Un producteur produit zéro ou plusieurs vins. Réciproquement, un vin est produit par zéro ou plusieurs producteurs (éventuellement aucun!). L'ensemble des productions est représenté par la relation RECOLTES. Un tuple de RECOLTES représente une production particulière d'un vin de numéro Nvin par un producteur de numéro Nprod en une certaine quantité La clé de la relation RECOLTES est le groupe d’attributs (Nvin,Nprod).
Ecrire les requêtes suivantes en algèbre relationnelle et/ou en SQL.
1. Donner la liste des producteurs (nom, prénom, région) triée par nom.
2. Quels sont les producteurs de la région du Beaujolais?
3. Quels sont les producteurs de la région du Beaujolais qui ont récolté au moins un vin en quantité supérieure à 300 litres? On veut les noms et les prénoms des producteurs, avec un tri par ordre alphabétique.
4. Réaliser le produit cartésien entre les relations VINS et RECOLTES.
5. Donner la liste des numéros de vin qui ont un degré supérieur à 12 ou qui ont été produits par le producteur numéro 24.
6. Donner les noms des producteurs du vin numéro 12, par ordre alphabétique.
7. Quelle est la quantité totale de vin numéro 12 produite?
8. Donner la liste des crus triée par ordre alphabétique. Pour chaque cru, on veut son nom et la quantité de vin produite par ce cru.
9. Quels sont les producteurs qui produisent des vins issus de trois crus différents, au moins? Pour chaque producteur sélectionné, on veut le nom et le prénom.
10. Quels sont les couples de producteurs (numéro de chacun des producteurs) qui habitent la même région?
11. Pour un producteur, un cru est significatif s'il a été récolté en quantité supérieure à 200 litres. Calculer le nombre de crus significatifs récoltés par chaque producteur (pour ceux ayant produit au moins un cru significatif). On veut le nom et le prénom pour chaque producteur.
12. Quels sont les producteurs (numéro et nom) qui ont produit tous les vins?
Ecrire la requête en utilisant la fonction Count et puis en utilisant le quantificateur exists et l'opérateur logique not.
13. Quels sont les producteurs (numéro et nom) qui produisent au moins tous les vins produits par le producteur 35?
Ecrire la requête en utilisant la fonction Count et puis en utilisant le quantificateur exists et l'opérateur logique not.