Vous êtes sur la page 1sur 3

T. P. Bases de donnes. e ESIL.

2i`me anne e e

UNIVERSITE DE LA MEDITERRANEE

Enseignants : Nicolas Durand & Odile Papini

Anne universitaire 2011/2012 e

Toutes les documentations sont consultables partir du site dOracle : http://www.oracle.com/technology/products/database/sql developer/ http://www.oracle.com/technology/products/database/oracle10g/ Exercice 1 : Interrogation de base de donnes en SQL Oracle e Soit la BD vols-rservations dcrite par les 6 schmas de relations : e e e
AVIONS(NumAv, NomAv, CapAv, VilleAv ) PILOTES(NumPil, NomPil, NaisPil, VillePil) VOLS(NumVol,VilleD, VilleA, DateD, DateA, NumPil, NumAv, CoutVol) CLIENTS(NumCl, NomCl, NumRueCl, NomRueCl, CodePosteCl, VilleCl) DEFCLASSES(NumVol, Classe, CoePlace, CoePrix ) RESERVATIONS(NumCl, NumVol, Classe, NbPlaces ) Les attributs souligns forment la clef primaire de la relation o` ils se trouvent. e u Les attributs ayant mme nom quune clef primaire rfrencent cette clef. Le sens e ee de chaque attribut est exprim par son nom. e Les types des attributs, autres que cha de caract`res, sont donns ici : ne e e Les numros servant de clefs sont des entiers, ` lexception du numro de vol e a e NumVol qui est une cha de caract`res commenant par la lettre V. ne e CapAv, NaisPil, NbPlaces, NumRueCl, CodePosteCl sont des entiers. CoutVol, CoePlace et CoePrix sont des nombres dcimaux : CoePlace, e dans lintervalle [0,1], donne le pourcentage de places existant dans la Classe concerne, pourcentage relatif ` CapAv, capacit totale de lavion. CoePrix, e a e suprieur ou gal ` 1, donne le coecient multiplicatif a appliquer ` CoutVol pour e e a ` a obtenir le prix rel dun voyage dans la classe voulue. CoutVol est donc le prix e minimal dune place, sur le vol concern. e DateD et DateA sont des dates, comportant le jour et lheure voulue. Requtes ` formuler sur la base vols-rservations en SQL Oracle e a e

Feuille de T. P. 2 : Interrogation de BD en SQL Oracle Prliminaires Se connecter sous Windows e Pour se connecter au serveur Oracle version Oracle Database 10g Express: cliquer sur licne SQLdeveloper o selectionner : new connexion donner un nom ` la connexion : choisir un nom de connexion a donner un nom dutilisateur : compten (consulter la liste des numros e attribus : 1 par personne) e donner un mot de passe : compten (la premi`re fois) e changer le nom du host, remplacer localhost par : pedaserv1 Des instructions SQL utiles : instruction SQL pour changer de mot de passe ALTER USER username identied BY new password; (en ligne de commande) instruction SQL pour acher une date avec jour, mois, anne, heure et minutes ALTER SESSION SET nls date format=dd/mm/rrrr hh24:mi; (ou en mode graphique) : selectionner Tools, puis Preference, puis Database puis NLS FORMAT changer le format de la date

1 Numros des pilotes qui assurent au moins un trajet autre que Paris-Marseille. e 2 Numros des vols dont la dure est comprise entre 2h et 4h. e e 3 Numros et noms des avions dont le nom ne contient pas la lettre a. e 4 Noms et ages des pilotes habitant Nice et ags de plus de 35 ans e 5 Numros des vols auxquels ni lavion 101 ni lavion 401 nont t aects. e ee e (Les vols auxquels aucun avion na t aect doivent tre slectionns). ee e e e e 6 Numro et ville de rsidence de chaque pilote. Lorsque la ville est inconnue, e e acher Ville inconnue comme valeur. 7 Trier les vols a destination de Marseille, par ordre croissant sur les dates de ` dpart et par ordre dcroissant sur les heures de dpart. Acher le numro e e e e de vol, la ville, la date et lheure de dpart. e 8 Acher les noms davions en supprimant la rfrence du mod`le. Par exee e emple, Boeing 747 deviendra Boeing, de mme Airbus A310 sera e transform en Airbus. e 9 Nombre de villes desservies (villes darrive) par la compagnie e 10 Nombre davions qui ont une capacit inconnue, et aussi la plus petite des e capacits connues. e 11 Nombre de places rserves sur le vol V101 (idem avec V222) e e 12 Numros des clients ayant eectu plus de 3 rservations e e e 13 Numros des pilotes qui assurent en avril un nombre dheures de vol suprieur e e a 170. ` 14 Numros des clients ayant eectu au moins une rservation et cot total de e e e u toutes ses rservations e 15 Horaire du premier vol, pour chaque jour de vol et chaque trajet. 16 Nombre de vols assurs au dpart de Paris pour chaque jour de vol du mois e e davril. 17 Pourcentage de vols assurs au dpart de Paris pour le mois davril. e e 18 Y a-t-il au moins un vol au dpart de Marseille vers Amsterdam tous les e jours du mois davril ? (Donner une rponse en oui ou non) e

19 Numros des vols qui assurent le mme jour le trajet inverse du vol V101. e e 20 Numros et noms des clients qui ont rserv sur un vol transportant Mr e e e Lorentz 21 Numros et noms des pilotes qui neectuent aucun vol au dpart de Paris. e e 22 Numro de chaque pilote et nombre davions dirents quil pilote e e 23 Pour chaque vol ` destination de Marseille, numro du vol et nom de lavion a e qui lui est aect e 24 Nombre de places existant dans chaque classe du vol V240 (idem avec V590 et V650) 25 Nombre de places rserves dans chaque classe du vol V101 (idem avec V240 e e et V590) 26 Nombre de places disponibles (non rservs) dans chaque classe du vol V101 e e (idem avec V240 et V590) 27 Numros des pilotes qui eectuent le plus de vols e 28 Pour chaque vol rserv, donner le numro des clients qui ont rserv le plus e e e e e grand nombre de places. 29 Numros des pilotes qui conduisent tous les Airbus A340. e Exercice 2 : Cration de base de donnes en SQL Oracle e e Rdiger les triggers qui expriment les contraintes suivantes : e contrainte 1 : une rservation ne peut pas tre passe sur un vol dont le e e e dpart a dj` eu lieu. e ea contrainte 2 : il est impossible de supprimer une rservation relative ` un e a vol en cours. contrainte 3 : pour chaque vol, la somme des coecients CoePlace de chaque classe doit tre infrieure ou gale ` 1. e e e a contrainte 4 et 5 : ` un instant donn, un pilote assure au plus un vol. De a e mme pour un avion. e

contrainte 6 : le nombre de places rserves, pour une classe et un vol donns, e e e est infrieur ou gal au nombre de places existant dans cette classe et ce vol. e e La base de donnes restera cohrente si sa ralisation courante vrie ces six e e e e contraintes. Seules les instructions : insert delete update peuvent transformer une ralisation existante et cohrente en ralisation incohrente. e e e e Pour chaque contrainte, indiquez quelles sont les tables et les instructions quil faut contrler. Quel type de contrle faut-il faire : immdiat ou dir ? o o e e e