Td corrigé TD 3 - Pages perso de Sandra Berasaluce pdf

TD 3 - Pages perso de Sandra Berasaluce

TD 3. Le langage algébrique. CORRECTION. 3 Dragons. Voici le schéma .... Cependant, dans les SGBD tels qu'ACCESS il vous sera possible de réaliser une  ...




part of the document



" AND Sexe = "M" ;


3 Noms des dragons femelles qui ne crachent pas de feu ?
Pð Nom (sðCracheDuFeu? =  non et Sexe = "F" (Dragons))


en SQL :
SELECT Dragon FROM dragons WHERE CracheDuFeu? = "oui" AND Sexe = "M" ;

4 Noms des dragons amoureux ?
Pð ðDragonAimant (Aime)

en SQL :
SELECT DragonAimant FROM aime ;

5 Qui aime qui passionnément ?
Pð ðDragonAimant, DragonAimé ( sð ðForce =  passionnément (Aime))

en SQL :
SELECT DragonAimant, DragonAime FROM aime WHERE force = "passionnément" ;

6 Noms des dragons qui mangent des Sufs ?
Pð ðDragon (sð ðProduit =  Suf (Repas))

en SQL :
SELECT dragon FROM repas WHERE produit = "oeuf" ;

7 Noms des dragons qui ne sont pas amoureux ?
Pð ðDragon (Dragons) - Pð ðDragonAimant (Aime)

en SQL :
SELECT dragon FROM dragons MINUS SELECT dragonaimant FROM aime ;

8 Liste des couples de dragons qui s aiment mutuellement ?
Pð ðA1.DragonAimant,A1.DragonAimé (Aime A1  EMBED Word.Picture.8 A1.DragonAimant=A2.DragonAimé Ùð A2.DragonAimant = A1.DragonAimé Aime A2)

en SQL :
SELECT D1.dragonaimant, D1.dragonaime FROM aime D1, aime D2
WHERE D1.dragonaimant = D2.dragonaime AND D2.dragonaimant = D1.dragonaime ;

9 Noms des dragons qui ne mangent pas ?
Pð ðDragon (Dragons) - Pð ðDragon (Repas)

en SQL :
SELECT dragon FROM dragons MINUS SELECT dragon FROM repas ;

10 Noms des dragons qui n aiment personne et qui ne mangent pas ?
(Pð ðDragon (Dragons) - Pð ðDragon (Repas)) Çð (Pð ðDragon (Dragons) - Pð ðDragonAimant (Aime))



en SQL :
(SELECT dragon FROM dragons MINUS SELECT dragonaimant FROM aime) INTERSECT
SELECT dragon FROM dragons MINUS SELECT dragon FROM repas ;

Ou bien
SELECT dragon FROM dragons MINUS (SELECT dragonaimant FROM aime
INTERSECT SELECT dragon FROM repas) ;

11 Noms des dragons qui mangent de tout ?
ðPð ðProduit,Dragon (Repas) ð ð%ð ðPð ðProduit (NOURRITURES)

en SQL :
traduction de la requête par une double négation : dragons pour lesquels il n'existe pas de produit qu'ils ne mangent pas (élémentaire, non ?).

SELECT dragon FROM dragons WHERE NOT EXISTS (SELECT produit FROM nourriture WHERE produit NOT IN (SELECT produit FROM repas
WHERE dragons.dragon=repas.dragon )) ;


2 Clients - Fournisseurs

1 Théoriquement, l’union n'est pas faisable car les deux relations ont des schémas différents. Cependant, dans les SGBD tels qu'ACCESS il vous sera possible de réaliser une telle opération. Le problème est celui de l'intérêt d'une telle opération …
2 Le produit cartésien fournit ici beaucoup plus de n-uplets (32) qu’intuitivement nécessaires ; c’est la jointure naturelle qui devrait être opérée.
3 Commandes passées par le client “Jean” (N°Com : 1 et 2).
4 NomP et Coûts des produits dont on connaît le prix (la table correspondant à la relation prix mais en conservant seulement les colonnes NomP et Coûts).
5 Nom des fournisseurs qui apparaissent à la fois dans le catalogue de Prix et dans le catalogue de fournisseurs. Si l'on impose que toute valeur du champ NomF de la relation Prix fasse référence à un fournisseur de la relation Fournisseurs (contrainte d'intégrité référentielle), on n'a pas besoin de faire l'intersection mais seulement la projection de la relation Prix sur le champ NomF.
6 Ne retient que les clients ayant passé des commandes : chaque n-uplet résultant contient les informations sur les commandes auxquelles s'ajoutent l'adresse et le solde du client correspondant.
7 Nom des produits commandés par le client “Jean” (briques et ciment).
8 Commandes passées par le client “Jean” avec les coûts possibles de produits suivant les fournisseurs.
9 Même réponse qu’auparavant mais calculée plus efficacement.
10 Coûts et nom des fournisseurs possibles pour les produits commandés par le client “Jean”.
11 Noms et adresses des fournisseurs dont on a le catalogue des prix.
12 Noms des fournisseurs qui fournissent tous les produits commandés.

13 Quels sont les noms des produits commandés par Jean ?
"NomP ( sðNomC =  Jean (Commandes))

en SQL :
SELECT NomP FROM commandes WHERE NomC = "Jean" ;


14 Quels sont les noms des fournisseurs qui fournissent les produits qui figurent dans les commandes de Paul ? "NomF(Prix  EMBED Word.Picture.8  "NomP(sðNomC = “Paul”(Commandes)))

en SQL :
SELECT Prx.NomF FROM commandes Com, prix Prx WHERE Com.NomC = "Paul" ;


15 Quelle est l’adresse des fournisseurs qui fournissent des parpaings à un coût strictement inférieur à 1200 ? ( AdresseF (Fournisseurs  EMBED Word.Picture.8  "NomF(sðNomP =  parpaing Ùð Coûts