TP2 : Les producteurs

D'après un sujet de Nicole Bidoit

Segment (origine : chaîne, destination : chaîne, longueur : réel,
  méthode ORDER compare : entier)

Chargement ( itineraire : liste de segments, marchandise : chaîne , quantite : entier, prod : Producteur,
  méthodes depart : chaîne, arrivee : chaîne, distance : réel, prix : réel)

Producteur (nom : chaîne, status : chaîne, routage : ensemble de chargements)

    Segments :

Paris         Boulogne    200

Angers        Paris       350
Nantes        Angers      100
Boulogne      Dunkerque   100
    Chargements du producteur Dupont et Fils :

Angers-Paris-Boulogne-Dunkerque     Essence     200

Nantes-Angers-Paris                 Poisson     50

  1. Créez les tables objet-relationnelles Lessegments, Leschargements (qui contient une table imbriquée d'OIDs de segment) LesProducteurs (qui contient une table imbriquée d'OIDs de chargement).
  2. Insérez les segments ci-dessus.
  3. Faîtes une requête renvoyant les valeurs des attributs des segments, les OIDs, les objets segments.
  4. Faîtes une requête permettant de trouver les segments d'un itinéraire qui part d'Angers et qui arrive à Dunkerque.
  5. Insérez les producteurs et les chargements.
  6. Faîtes une requête permettant d'afficher les segments de l'itinéraire pour le chargement d'essence.
  7. Faîtes une requête permettant de calculer la longueur totale de l'itinéraire du chargement d'essence.
  8. Faîtes une requête permettant d'afficher pour chaque marchandise en chargement, les segments de l'itinéraire de ce chargement.
  9. Créez la méthode compare qui teste l'égalité entre deux segments et en cas d'inégalité compare leurs longueurs.
  10. Classez les segments par ordre de longueur (en utilisant implicitement votre fonction).
  11. Créez les méthodes depart, arrivee, distance et prix de la classe Chargement.
  12. Faîtes afficher les depart, arrivee, distance et prix de tous les chargements.
  13. Donner l'ensemble des chargements au départ de Nantes (marchandise,quantité).
  14. Donner l'ensemble des marchandises en chargement.
  15. Donner l'ensemble des chargements de poissons au départ de Nantes et dont la destination est à plus de 250km de Nantes.
  16. Donner tous les points de départ des chargements de poissons.
  17. Donner les destinations des chargements du producteur Dupont et Fils.
  18. Donner le chargement ayant le coût le plus élevé du producteur Dupont et Fils.
  19. Donner les chargements dont l'itinéraire est direct (marchandise,quantité, producteur) (utilisez un bloc PL/SQL) (Pour le test vous ajouterez un producteur Martin independant qui possède un chargement de 500 tonnes de Poisson sur un itinéraire ne contenant que le segment Paris-Strasbourg 350)
  20. Donner les producteurs qui sont exclusivement spécialisés dans le poisson.
  21. Donner les producteurs qui ont des marchandises à transporter vers toutes les destinations. (Pour le test vous ajouterez le meme chargement que Martin au producteur Dupont et Fils)
  22. Donner les chargements que le producteur Dupont et Fils peut allouer à un même camion (parce que concernant la même marchandise pour le même itinéraire). (Définissez une fonction qui teste l'égalité entre deux tables de segments) (Pour le test ajouter un chargement de 25 tonnes de Poisson a Dupont et Fils a transporter sur un itinéraire passant par le segment Paris-Strasbourg-350, ajouter ensuite à cet itinéraire le segment Strasbourg-Nantes-600, ajouter le au chargement de poisson précédent)


Florence Bannay 28-11-2000