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
|
|
- 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).
- Insérez les segments ci-dessus.
- Faîtes une requête renvoyant les valeurs des attributs des segments, les
OIDs, les objets segments.
- Faîtes une requête permettant de trouver les segments d'un itinéraire
qui part d'Angers et qui arrive à Dunkerque.
- Insérez les producteurs et les chargements.
- Faîtes une requête permettant d'afficher les segments de l'itinéraire
pour le chargement d'essence.
- Faîtes une requête permettant de calculer la longueur totale de
l'itinéraire du chargement d'essence.
- Faîtes une requête permettant d'afficher pour chaque marchandise en
chargement, les segments de l'itinéraire de ce chargement.
- Créez la méthode compare qui teste l'égalité entre deux segments et
en cas d'inégalité compare leurs longueurs.
- Classez les segments par ordre de longueur (en utilisant implicitement
votre fonction).
- Créez les méthodes depart, arrivee, distance et prix de la classe
Chargement.
- Faîtes afficher les depart, arrivee, distance et prix de tous les chargements.
- Donner l'ensemble des chargements au départ de Nantes (marchandise,quantité).
- Donner l'ensemble des marchandises en chargement.
- Donner l'ensemble des chargements de poissons au départ de Nantes et
dont la destination est à plus de 250km de Nantes.
- Donner tous les points de départ des chargements de poissons.
- Donner les destinations des chargements du producteur Dupont et Fils.
- Donner le chargement ayant le coût le plus élevé du producteur Dupont et
Fils.
- 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)
- Donner les producteurs qui sont exclusivement spécialisés dans le
poisson.
- 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)
- 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