TP 11 Exercice 1 E/A / Relationnel Un fournisseur est chargé de
Transcription
TP 11 Exercice 1 E/A / Relationnel Un fournisseur est chargé de
TP 11 Exercice 1 E/A / Relationnel Un fournisseur est chargé de livrer des produits à des entreprises clientes, construisez le schéma Entité / Association correspondant à sa demande : Un produit est caractérisé par un numéro, un libellé, un prix unitaire. Chaque produit peut être stocké dans un ou plusieurs dépôts. Un dépôt est caractérisé par un numéro. Dans chaque dépôt on connaît la quantité en stock de chaque produit et la quantité disponible (la différence représente la quantité réservée pour des commandes déjà validées mais non livrées). Un client est déterminé par son numéro, son nom, son adresse, le total de son chiffre d'affaire le taux de réduction. Chaque client est livré à partir d'un dépôt privilégié, ou à partir d'un dépôt de secours en cas de défaillance du premier. Un client effectue des commandes groupées identifiées par un numéro de commande et dont on conserve la date. A chaque commande, peuvent être associés plusieurs produits avec à chaque fois le code produit, la quantité commandée, le délai de livraison et le montant à facturer. Quand une livraison intervient, une facture est éditée. A chaque facture correspond un numéro de facture et une date. Une facture n'est rattachée qu'à une seule commande et peut concerner tout ou une partie des produits de la commande. 1. Dessinez le Schéma Entité Association 2. Ecrire le schéma relationnel Compagnie Aérienne A partir du modèle conceptuel simplifié de la base de données d'une compagnie aérienne, vous devez créer la base de données. Modèle Conceptuel de Données Projet : Formation Sql Modèle : Compagnie Aérienne Auteur : Fischer Version: 1 10/04/94 Contenu de la base de test : AVION *** table pilote *** NUMPILOTE NOMPILOTE ADRESSE --------- --------------------------------------1 Ader Clément Paris 2 Chanute Nice 3 Lilienthal Mulhouse 4 Blériot Louis Paris 5 Lindbergh Charles New-York 6 Mermoz Jean Paris NUMAVION NOMAVION CAPACITE LOCALISATION PILOTE NUMPILOTE NOMPILOTE ADRESSE N4 A20 A20 0,n 0,n UTILISE EFFECTUE VOL NUMVOL VILLEDEP VILLEARR 1,1 HEUREDEP HEUREARR A6 A20 A20 A5 A5 1,1 N6 A20 N3 A20 7 Fabre Paris 8 Farman Henri Londres 9 Wright Londres 10 Garros Roland Nice 11 Santos Dumont Rio-de-Janeiro 12 Voisin Charles Luxembourg 13 Saint Exupéry Marseille 14 Boucher Hélène Paris 15 Montgolfier Paris 15 rows selected. *** table avion *** NUMAVION NOMAVION CAPACITE LOCALISATION -------- -------------------- -------- -------------------1 Airbus A300 200 Paris 2 Airbus A300 200 Paris 3 Airbus A310 250 Paris 4 Airbus A320 300 Paris 5 Airbus A330 380 Paris 6 Airbus A340 450 Paris 7 Airbus A320 300 Mulhouse 8 Caravelle 180 Strasbourg 9 Caravelle 180 Nice 10 Concorde 140 Paris 11 Concorde 140 Londres 12 Concorde 140 Paris 13 Boeing 707 320 Luxembourg 14 Boeing 707 320 Nice 15 Boeing 717 360 Paris 16 Boeing 717 360 Montréal 17 Boeing 747 460 Montréal 18 Boeing 747 460 Luxembourg 19 Boeing 747 460 Mulhouse 20 Boeing 777 460 Luxembourg 21 DC 9 140 Mulhouse 22 Concorde 140 Londres 22 rows selected. *** table vol *** NUMVOL NUMPILOTE NUMAVION VILLEDEP VILLEARR HEURE ------ --------- -------- --------------- -------------------- ----- ----AF0001 1 1 Paris Johannesbourg 06:00 13:31 AG0002 1 2 Paris Alger 06:45 08:45 AG0003 1 3 Marseille Alger 09:20 10:35 AG0004 1 4 Nice Alger 16:10 17:45 GB0005 1 5 Paris Londres 12:15 13:55 GB0006 1 6 Lyon Londres 10:15 11:55 HEURE GB0007 GB0008 AN0009 AN0010 AN0011 AR0012 AU0013 AU0014 AU0015 BE0016 BE0017 BE0018 BRE019 BRE020 BRE021 BU0022 CA0023 CA0024 QUE025 QUE026 QUE027 CAN028 CAN029 CAN030 CAN031 CHI032 CHI033 CHY034 COT035 CRE036 CRE037 CUB038 CUB039 ECO040 EGY041 EGY042 EQU043 ESP044 ESP045 ESP046 ESP047 ESP048 ESP049 ESP050 USA050 IRL051 GB0052 GB0053 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 3 4 5 6 7 8 9 10 11 12 13 14 8 9 10 11 12 3 4 5 6 7 8 9 10 11 12 8 9 10 8 4 54 rows selected. 7 Strasbourg Londres 07:40 09:00 8 Mulhouse Londres 06:20 07:50 9 Paris Fort-de-France 14:25 18:55 10 Paris Pointe-a-Pitre 11:10 15:55 11 Paris Saint-Martin 12:05 17:25 12 Paris Buenos-Aires 15:10 22:15 13 Paris Sydney 04:00 12:30 14 Paris Melbourne 12:00 20:40 15 Paris Perth 08:40 18:00 16 Paris Cotonou 05:10 10:00 17 Luxembourg Cotonou 09:30 12:15 18 Bordeaux Cotonou 18:00 23:45 19 Paris Rio-de-Janeiro 07:25 14:10 20 Paris Sao-Paulo 13:20 19:20 1 Strasbourg Rio-de-Janeiro 06:30 14:45 4 Paris Varna 13:15 15:45 8 Paris Douala 07:50 12:30 12 Lyon Douala 12:30 18:00 16 Paris Montréal 09:00 13:30 20 Brest Montréal 13:30 19:00 2 Nice Montréal 10:20 15:15 3 Paris Toronto 00:30 06:00 5 Paris Vancouver 04:45 09:15 9 Paris Calgary 16:25 21:04 13 Mulhouse Montréal 09:10 13:35 17 Paris Pékin 12:00 18:30 6 Paris Shanghai 09:00 15:00 10 Paris Larnaca 18:20 21:00 14 Paris Abidjan 15:00 19:00 18 Paris Heraklion 07:30 09:00 7 Mulhouse Heraklion 16:31 18:00 11 Paris La Havane 04:00 09:00 15 Fort-de-France La Havane 19:10 20:20 19 Paris Edimbourg 15:00 17:10 1 Paris Le Caire 11:00 14:20 2 Paris Louxor 09:45 12:40 3 Paris Quito 12:30 20:00 4 Paris Malaga 05:00 06:20 5 Nice Malaga 18:00 19:00 6 Marseille Malaga 10:00 11:00 7 Paris Palma de Majorque 06:30 08:45 8 Mulhouse Palma de Majorque 12:25 14:55 9 Strasbourg Palma de Majorque 15:00 17:00 10 Paris Ibiza 11:00 13:00 11 Paris New-York 06:00 10:00 12 Paris Dublin 08:00 10:00 5 Paris Londres 14:00 15:00 5 Londres Mulhouse 08:00 10:10 Partie 1 : Création de la base de données A partir de votre éditeur, vous devez saisir les instructions Sql permettant d'effectuer les traitements ci-dessous. 1. Création des tables correspondant au schéma fourni (sans les contraintes). 2. Rajouter les contraintes d'intégrité : - NOT NULL, - PRIMARY KEY, - FOREIGN KEY. 3. Rajouter les contraintes suivantes : - La ville de localisation par défaut est : 'Paris' 4. Création des index (clés primaires et autres index jugés nécessaires pour les jointures) Partie 2 : Interrogation de la base de données A partir de la base de données de la compagnie aérienne, on vous demande de rédiger les requêtes ci-dessous, puis de les tester. a. Quelles sont les différentes ville de départ. b. Quels sont les vols (numéro, villedep, villearr, heuredep, heurearr) au départ de Paris entre 14h et 16h ? c. Quels sont les pilotes dont le nom comprend un "i" en 2ème position d. Quels sont les avions qui ont une capacité entre 200 et 300 ? e. Quels sont les noms d'avion avec leurs numéros et leurs localisations (autre que Nice), ayant une capacité supérieure à 200 avec un tri décroissant sur le numéro ? f. Quels sont les noms des pilotes qui habitent dans la ville de localisation d'un Airbus ? g. Pour chaque pilote en service, quel est le nombre de vols assurés? h. Pour chaque Airbus en service l'après-midi (après 12h) et conduit par plus de 2 pilotes, quels sont les trajets (Villedep, Villearr) assurés i. Quelle est la capacité maximum des avions par ville de localisation? j. Quelle est la capacité moyenne des avions par ville et par type ? k. Pour chaque ville de localisation sauf "Paris" de la compagnie donner les capacités minimum et maximum des avions qui s'y trouvent. Partie3 : La manipulation des données 1. Insérer les avions suivants : NUMAVION NOMAVION CAPACITE LOCALISATION -------- -------------------- -------- -------------------23 Airbus A300 200 Mulhouse 24 Airbus A340 450 Paris Valider l'insertion par un Commit. Calculer le nombre d'avions. 2. Insérer les vols suivants : NUMVOL NUMPILOTE NUMAVION VILLEDEP VILLEARR HEURE ------ --------- -------- --------------- -------------------- ----- ----AF0054 1 1 NULL NULL NULL NULL PN0055 15 25 Paris Nice 07:45 09:45 IT0056 10 NULL Marseille Milan 09:20 10:35 HEURE Valider vos insertions par un commit. Calculer le nombre de vols. Quel constat pouvez-vous faire pour le vol 'PN0055' ? Quel constat pouvez-vous faire pour le vol 'IT0056' ? Rechercher les vols pour lesquels le numéro d'avion est incorrect. Rechercher les vols dont la ville de départ est différente de Paris. 3. Modifier la capacité de tous les Concorde. Ajouter 10 places à ces avions. Vérifier la modification. Annuler votre mise à jour. Vérifier la capacité des Concorde. 4. Suppression Supprimer les avions et les vols que vous avez ajouté. Partie 4 : Maintenance de la base de données 1. Modification d'une table 1.1. Dans la table Vol, on accepte des lignes pour lesquelles le numéro de pilote peut prendre la valeur Null. Vérifier la prise en compte de votre modification en insérant un nouveau Vol. 1.2. Ajouter la colonne Date de Naissance dans la table Pilote. 1.3. Supprimer la colonne Date de Naissance dans la table Pilote.