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