24/09/2006 1 Richard CHBEIR, Florent BARTH
TD 2 – Accès à une BDD Oracle avec SQL*Plus et Access
Dans ce TD, vous allez voir comment manipuler plusieurs tables dans Oracle en utilisant SQL*Plus. Après, vous allez manipuler ces tables en utilisant ACCESS.
Partie 1
Dans ce TD, nous allons travailler sur la fusion de deux systèmes d’information : celui de l’agence de location de voitures du TD1 qui a élargi ses activités en achetant une société de location d’avions. La nouvelle société s’appelle @BushBoy et a pour mission de gérer les réservations des clients, le parc de voitures et d’avions, et le personnel (pilotes, chauffeurs, secrétaires, etc.). L’ancienne société de location d’avions avait déjà son système de gestion de parc possédant le schéma relationnel suivant :
PILOTE (PLNUM, PLNOM, PLPRENOM, VILLE, SALAIRE) AVION (AVNUM, AVNOM, CAPACITE, LOCALISATION)
VOL (VOLNUM, PLNUM, AVNUM, VILLEDEP, VILLEARR, HEUREDEP, HEUREARR)
Les clés primaires sont soulignées et les clés étrangères sont indiquées en italiques.
M. Bushboy a fait appel à vous de nouveau pour élaborer le nouveau système d’information de sa société. Plusieurs tâches vous ont été demandées :
1. Recopier les tables PILOTE, AVION et VOL_IQ2 depuis le schéma de l’utilisateur SCOTT (DBA ou administrateur de BDD de l’ancienne société) à l’aide de la syntaxe suivante :
SQL> CREATE TABLE nom_table AS (SELECT * FROM SCOTT.”nom_table”) 2. Vérifier maintenant que le contenu des tables que vous venez de récupérer est
identique aux tableaux suivants.
PILOTE :
PLNUM PLNOM PLPRENOM VILLE SALAIRE 1 Chbeir Rich Paris 21000 2 Barth Flo Toulouse 21000 3 Nicolle Christophe Nice 18000 4 Dupont Nicolas Paris 17000 5 Darmont Jerome Toulouse 19000 6 pourkoi Stephane Paris 18000 7 kifkif Ricco Nice 17000 8 Chauchat Jean-Hughes Lyon 15000 9 Jalamé Joujou Nice 18000 10 Muhlenbach Fabrice Paris 20000
IUT Dijon – Département Informatique BDD-IQ S3
AVION :
AVNUM AVNOM CAPACITE LOCALISATION 1 A300 300 Nice 2 A310 300 Nice 3 B707 250 Paris 4 A300 280 Lyon 5 Concorde 160 Nice 6 B747 460 Paris 7 B707 250 Paris 8 A310 300 Toulouse 9 Mercure 180 Lyon 10 Concorde 160 Paris
Vol_IQ2 :
VOLNUM PLNUM AVNUM VILLEDEP VILLEARR HEUREDEP HEUREARR 1 1 1 Nice Toulouse 11 12 2 1 8 Paris Toulouse 17 18 3 2 1 Toulouse Lyon 14 16 4 5 3 Toulouse Lyon 18 20 5 9 1 Paris Nice 6 8 6 10 2 Lyon Nice 11 12 7 1 4 Paris Lyon 8 9 8 8 4 Nice Paris 7 8 9 1 8 Nantes Lyon 9 15 10 8 2 Nice Paris 12 13 11 9 2 Paris Lyon 15 16 12 1 2 Lyon Nantes 16 20 13 4 5 Nice Lens 11 14 14 3 5 Lens Paris 15 16 15 8 9 Paris Toulouse 17 18 16 7 5 Paris Toulouse 18 19
17 5 8 Bordeaux Clermont-Fd 12 13 18 12 7 Paris Lille 11 12
3. Renommer la table Vol_IQ2 en TRAJET et la table Pilote en PERSONNEL. Vous pouvez utiliser
SQL> RENAME ancien_Nom TO nouveau_Nom
4. Modifier le trajet n° 14 (VILLEDEP = ‘Lille’, HEUREARR = 17) en utilisant : SQL> UPDATE nom_table SET col1=valeur1, col2=valeur WHERE condition;
5. Supprimer le trajet n° 17 en utilisant
SQL> DELETE FROM nom_table WHERE condition
6. Modifier la structure de la table PERSONNEL en y rajoutant un attribut Fonction dont le contenu sera la valeur ‘pilote’ pour l’ensemble des enregistrements déjà saisis.
Montrez le résultat à votre enseignant
24/09/2006 2 Richard CHBEIR, Florent BARTH
IUT Dijon – Département Informatique BDD-IQ S3
Partie 2
Dans cette partie, on vous demande de créer un certain nombre de requêtes afin que la nouvelle société de Mr. BushBoy puisse préparer ses bulletins de salaires et sa compagne publicitaire. Vous allez créer un ficher script (script_requête_TD4.sql) dans lequel vous allez stocker toutes les requêtes.
Formuler les requêtes suivantes :
1. Afficher la structure de la table TRAJET 2. Afficher la liste de tous les trajets
3. Afficher les nom, prénom, et ville de tous les pilotes, par ordre alphabétique (changer les noms des colonnes en Nom, Prénom et ville)
4. Afficher les nom, prénom, et salaire des pilotes dont le salaire est supérieur à 20 000 F
5. Sélectionner les noms des personnels dont le salaire est 10000 FF ou 20000 FF (utiliser la fonction ANY)
6. Afficher la liste des personnels dont le salaire dépasse la moyenne de tous les pilotes
7. Afficher le numéro et nom des avions localisés à Paris
8. Donner le nom et prénom des pilotes dont le salaire est supérieur à un salaire plafond saisi au clavier (requête paramétrée). Un paramètre en SQL*Plus est écrit selon la syntaxe suivante : &valeur_à_saisir
9. Donner les caractéristiques (AVNUM, AVNOM, CAPACITE, LOCALISATION) des avions localisés dans la même ville qu’un pilote dont le nom est saisi au clavier
10. Donner les caractéristiques (VOLNUM, VILLEDEP, VILLEARR, HEUREDEP, HEUREARR, AVNOM, PLNOM) d’un trajet dont le numéro est saisi au clavier (paramètre)
11. Donner le nom, prénom, et numéro du trajet des pilotes affectés à (au moins) un trajet.
12. Donner le numéro et nom des avions affectés à des trajets (éliminer les doublons) 13. Afficher le nombre total de trajets
14. Afficher la somme des capacités de tous les avions 15. Donner la moyenne des durées des voyages
16. Donner les capacités minimum et maximum de tous les avions 17. Afficher le nombre total d’heures de trajet, par pilote.
Montrez le résultat global (fichier script) à votre enseignant.
Partie 3
Dans cette partie, vous allez interroger votre BDD Oracle à partir de Microsoft Access.
Pour cela, plusieurs étapes sont à respecter:
1- Connexion ODBC
Créer maintenant une source de données ODBC qui va vous permettre de manipuler la base d’Oracle à partir d’Access. Nommer-la BDD_BushBoy.
24/09/2006 3 Richard CHBEIR, Florent BARTH
IUT Dijon – Département Informatique BDD-IQ S3
2- Création de la BDD (virtuelle)
Lancer Access et créer une nouvelle BDD. Créer de nouvelles tables virtuelles en les attachant aux tables Oracle (Fichier/Données Externes, Lier)
1. Réaliser les requêtes précédentes 4, 6, 10, 11, 15, 16 et 17
2. Changer la structure de la table Personnel en y ajoutant une colonne diplôme, que constatez-vous ?
3. Créer un formulaire permettant de rechercher les informations concernant un pilote donné à partir d'une liste déroulante.
Montrez le résultat à votre enseignant
24/09/2006 4 Richard CHBEIR, Florent BARTH