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.