TD 8 - LRI

Transcription

TD 8 - LRI
Année 2014/2015
Premier semestre
DUT FC Air France
Département INFORMATIQUE
Travaux Pratiques et Dirigés de Bases de Données n˚ 8
Scripts de création et de manipulation de données
Dans ce TD on vous demande de créer des tables sous votre compte Oracle avec un script de création. Les
exercices font référence à la base de données « Camping » dont le schéma relationnel et un jeu d’essai sont
annexés.
Création et exécution d’un script
− Dans un fichier (nommé par exemple monscript.sql), écrivez le script de création pour les nouvelles tables. Le script doit d’abord supprimer les tables existantes, puis les créer.
− Dans SQL Developer
o Ouvrez votre script avec File puis Open puis indiquer le chemin complet, par exemple
H:/BD/TP/monscript.sql,
o Exécutez le script (Run Script) pour créer les nouvelles tables sous votre compte.
− Supprimez toutes les tables de votre compte à la fin du TP. Vous aurez la possibilité de les recréer
avec le script. Conservez soigneusement les divers scripts que vous aurez créés : vous aurez besoin de
les utiliser, parfois aussi de les compléter lors de diverses séances.
− N’hésitez pas à mettre des commentaires dans votre script (sous SQL Developer on utilise -- pour un
commentaire sur une ligne ou /* ... */ pour les commentaires sur plus d’une ligne).
− Si vous voulez sauvegarder la sortie (par exemple vers un ficher nommé monficher.sql), utilisez
la touche Save File dans la fenêtre Script Output au dessous de la feuille de travail.
Présentation de la base de données « Camping »
Une société de villages vacances répertorie dans une base de données la liste des campings où elle loue des
chalets. Chaque camping peut être rattaché (ou pas) à une ville touristique. La liste des villes touristiques
connues est établie dans la table ville tandis que le fait qu’un camping soit rattaché à une ville est renseigné par la valeur du champ ville de la table camping.
En plus de son nom, chaque camping est décrit par des informations allant de son adresse (champ adrCamping de la table camping) jusqu’à sa composition (contenu de la table inventaire). En effet, chaque
camping peut être composé d’un ou plusieurs chalets (chaque chalet est présent en nbUnite unités). Les
chalets sont inventoriés par type (table typeChalet). Le tarif de location (table tarif) est donné à la
semaine pour un chalet dans un camping et selon la période (libellée « Hors saison » (HS) et « Pleine saison » (PS) dans la table periode).
Page 1
Bases de données – TD 8
Année 2014/2015
Premier semestre
Département INFORMATIQUE
DUT FC Air France
1. Script de destruction
En vous aidant du schéma relationnel, indiquer l’ordre nécessaire pour détruire les tables de cette
base de données. Donner deux scripts de destruction différents compatibles avec cet ordre.
2. Création des tables
On veut recréer cette base de données mais suite à une corruption de fichier on ne retrouve
qu’une partie du script :
CREATE TABLE periode (
codePeriode CHAR(2) CONSTRAINT PK_periode PRIMARY KEY,
nomPeriode VARCHAR2(30) NOT NULL);
CREATE TABLE camping (
numCamping NUMBER(8) CONSTRAINT PK_camping PRIMARY KEY,
nomCamping VARCHAR2(30) NOT NULL,
adrCamping VARCHAR2(120),
telCamping CHAR(14),
ville NUMBER(8) CONSTRAINT CIR_ville REFERENCES ville,
dateOuv DATE,
dateFerm DATE,
nbEtoiles NUMBER(1) CONSTRAINT CHK_nbEtoiles
CHECK(nbEtoiles BETWEEN 1 AND 4),
qualiteFrance CHAR(3) DEFAULT 'Non' NOT NULL CONSTRAINT CHK_QF
CHECK(qualiteFrance IN ('Oui', 'Non')),
CONSTRAINT CHK_DATE CHECK(dateOuv < dateFerm));
CREATE TABLE typeChalet (
numTypeChalet NUMBER(8) CONSTRAINT nomcontrainte PRIMARY KEY,
nomTypeChalet VARCHAR2(30) NOT NULL,
capacite NUMBER(8) CHECK(capacite > 0),
descr VARCHAR2(120));
a. Quelles sont les tables qui pourraient être crée grâce à cette portion de script de création ?
b. Pour que les requêtes de création de ces tables fonctionnent quelles tables doivent préalablement exister (justifier la réponse) ?
c. Lister les noms des contraintes d’attribut, sont-ils assez parlants pour les comprendre en cas
de violation de contrainte ?
d. Lister les noms des contraintes de tables, sont-ils assez parlants pour les comprendre en cas
de violation de contrainte ?
e. Existe-t-il des contraintes d’attributs non nommées ? Si oui, corriger le script pour les nommer de manière utile et parlante.
f. Existe-t-il des contraintes de tables non nommées ? Si oui, corriger le script pour les nommer de manière parlante.
3. Script de création
Réinventer les parties manquantes du script de création pour qu’il implante totalement le schéma
relationnel.
4. Manipulation de données
a. Une version de la base de données est accessible sur machine sous le nom d’utilisateur
« francesca_fiorenzi ». Quelle requête faut-t-il faire pour copier tout le contenu de
Page 2
Bases de données – TD 8
Année 2014/2015
Premier semestre
DUT FC Air France
Département INFORMATIQUE
b.
c.
d.
e.
f.
l’ancienne table typeChalet dans la nouvelle table typeChalet ? Cette volonté de récupérer d’anciennes données impose-t-elle des contraintes sur les attributs de la nouvelle
table typeChalet ? Si oui, lesquelles ? Sinon, pourquoi ?
Écrire les deux requêtes qui permettent d’ajouter, avec pour numéro 20, un nouveau camping trois étoiles ayant le label qualiteFrance, nommé « Les Flots Bleus », non rattaché à une ville touristique, ouvert toute l’année 2015 et qui contient en un seul exemplaire
tous les types de chalets possibles.
Écrire les deux requêtes qui permettent d’ajouter avec un numéro calculé en incrémentant de
un le plus grand numéro enregistré dans la base de données, un nouveau camping quatre
étoiles ayant le label qualiteFrance, nommé « Les Dents de la Mer » non rattaché à une
ville touristique, ouvert du 5 juillet au 31 août 2015 et qui contient en un seul exemplaire
tous les types de chalets possibles.
Écrire les requêtes qui permettent d’ajouter un chalet numéro 6 à tous les campings rattachés
à la ville de Vers (deux requêtes, certains campings contenant déjà ce type de chalet).
Ecrire les trois requêtes qui permettent de supprimer les campings non rattaché à une ville
touristique.
Remplacer, dans tous les campings, tous les chalets « Palace » par autant de chalets « Détente ». (Quatre requêtes, certains campings contenant déjà un chalet « Détente ». Pour les
campings n’ayant pas de chalets « Détente », on ne cherchera pas à renseigner les prix de location de ce nouveau type de chalet).
Annexes
tarif
periode
codePeriode
nomPeriode
numCamping
numChalet
codePeriode
prixSemaine
camping
inventaire
typeChalet
ville
numVille
nomVille
nomDept
numCamping
nomCamping
adrCamping
telCamping
ville
dateOuv
dateFerm
nbEtoiles
qualiteFrance
numCamping
numChalet
nbUnite
numTypeChalet
nomTypeChalet
capacite
descr
Schéma relationnel de la base de données « Camping »
Page 3
Bases de données – TD 8
Année 2014/2015
Premier semestre
DUT FC Air France
Département INFORMATIQUE
Jeu d’essai de la base de données « Camping » sous ffioren
Ville
NUMVILLE
---------1
2
3
4
NOMVILLE
-------------------Pyla/Mer
Le Château d'Oléron
Sarlat
Vers
NOMDEPT
-------------------Gironde
Charente Maritime
Dordogne
Lot
Periode
CODEPERIODE
----------HS
PS
NOMPERIODE
--------------Hors saison
Pleine saison
Camping
NUMCAMPING
---------2
3
4
5
6
7
8
9
10
11
12
13
NOMCAMPING
ADRC TELCAMPING
VILLE DATEOUV
DATEFERM NBETOILES QUALITEFRANCE
---------------- ---- -------------- ----- --------- --------- --------- ------------La Forêt
05 56 22 73 28
1 15-04-15 01-10-15
3 Non
Panorama
05 56 22 10 44
1 01-05-15 30-09-15
3 Non
La Brande
05 46 47 62 37
2 15-03-15 15-11-15
4 Oui
Les Gros-Joncs
05 46 76 52 29
2 01-01-15 31-01-15
4 Non
Fief-Melin
05 46 47 62 37
2 01-06-15 15-09-15
3 Oui
Les Granges
05 53 28 11 15
3 02-05-15 16-09-15
4 Non
Aqua Viva
05 53 31 46 00
3 15-05-15 30-09-15
4 Non
Soleil Plage
05 53 28 33 33
3 01-04-15 30-09-15
4 Oui
Le Mont Libre
04 70 90 12 16
01-04-15 15-10-15
2 Non
La Rivière
02 51 40 24 07
01-06-15 30-09-15
2 Non
Le Mas de Saboth
05 65 31 41 74
4 01-01-15 31-12-15
3 Oui
La Chêneraie
05 65 31 40 29
4 01-05-15 30-09-15
3 Non
TypeChalet
NUMTYPECHALET
------------1
2
3
4
5
6
Page 4
NOMTYPECHALET CAPACITE DESCR
------------- -------- ----Evasion
2
Eden
4
Azur
4
Rêve
4
Palace
6
Détente
6
Bases de données – TD 8
Année 2014/2015
Premier semestre
Département INFORMATIQUE
DUT FC Air France
Inventaire
NUMCAMPING NUMCHALET
NBUNITE
---------- ---------- ---------2
4
20
3
6
5
4
1
5
4
4
20
4
6
10
5
5
15
5
6
20
6
2
10
6
6
10
7
2
5
7
3
5
7
5
10
8
1
5
8
4
10
8
5
10
8
6
10
9
4
10
9
5
10
9
6
10
10
4
5
11
5
2
11
6
3
12
2
5
12
4
5
12
5
5
12
6
5
13
4
15
Page 5
Bases de données – TD 8
Année 2014/2015
Premier semestre
Département INFORMATIQUE
DUT FC Air France
Tarif
NUMCAMPING NUMCHALET CODEPERIODE PRIXSEMAINE
---------- ---------- ----------- ----------2
4 HS
350
2
4 PS
550
3
6 HS
500
3
6 PS
680
4
1 HS
200
4
1 PS
370
4
4 HS
280
4
4 PS
620
4
6 HS
280
4
6 PS
620
5
5 HS
280
5
5 PS
700
5
6 HS
280
5
6 PS
700
6
2 HS
180
6
2 PS
460
6
6 HS
220
6
6 PS
550
7
2 HS
200
7
2 PS
460
7
3 HS
220
7
3 PS
520
7
5 HS
250
7
5 PS
620
8
1 HS
190
8
1 PS
460
8
4 HS
250
8
4 PS
590
8
5 HS
300
8
5 PS
670
8
6 HS
280
8
6 PS
640
9
4 HS
250
9
4 PS
550
9
5 HS
290
9
5 PS
610
9
6 HS
290
9
6 PS
610
10
4 HS
200
10
4 PS
350
11
5 HS
230
11
5 PS
450
11
6 HS
220
11
6 PS
430
12
2 HS
230
12
2 PS
460
12
4 HS
270
12
4 PS
550
12
5 HS
310
12
5 PS
620
12
6 HS
310
12
6 PS
620
13
4 HS
230
13
4 PS
500
Page 6
Bases de données – TD 8