MODELISATION DES CROISIERES POUR LES AGENCES



Documents pareils
Groupe 11 TABLE DES MATIERES

PROJET 1 : BASE DE DONNÉES REPARTIES

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Bases de Données relationnelles et leurs systèmes de Gestion

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Dream Yacht Charter, Vente et Gestion de bateaux Offre le choix à ses propriétaires

Objectifs du TP : Initiation à Access

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

Utiliser le site Voyages-sncf.com

Prenez part à notre INTERNATIONAL TRANSPLANT SNOW WEEK

Bases de données relationnelles

1 Modélisation d une base de données pour une société de bourse

OpenOffice Base Gestionnaire de Base de Données

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

La base de données dans ArtemiS SUITE

Les bases de données

Tutoriel Atout Facture. 14/01/2015 Codelpi

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Bulletin d'inscription

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

Encryptions, compression et partitionnement des données

Ces éléments de correction n'ont qu'une valeur indicative. Ils ne peuvent en aucun cas engager la responsabilité des autorités académiques, chaque

Le langage SQL Rappels

Créer le schéma relationnel d une base de données ACCESS

Documentation Suivi S.E.O

ht t p: // w w w.m e di al o gis.c om E - Ma i l : m ed i a l og i m e di a l o g i s. c om Envoi des SMS

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Saisissez le login et le mot de passe (attention aux minuscules et majuscules) qui vous ont

IFT3030 Base de données. Chapitre 1 Introduction

UNIVERSITE DE CONSTANTINE 1 FACULTE DES SIENCES DE LA TECHNOLOGIE DEPARTEMENT D ELECTRONIQUE 3 ème année LMD ELECTRONIQUE MEDICALE

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

1 Introduction et installation

Bases de données Outils de gestion

Création de Sous-Formulaires

Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION

L outil de réservation en ligne de Carlson Wagonlit Travel dédié aux PME. Guide utilisateur

Donnez la possibilité à vos distributeurs les moyens de mieux vendre vos produits. Offrez les outils qui leurs permettront de booster vos ventes.

1. Base de données SQLite

Base de données relationnelle et requêtes SQL

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

BIRT (Business Intelligence and Reporting Tools)

Création et Gestion des tables

C91 FRANCE C91 FRANCE C91 FRANCE. -5% Réf. SMT DN /pers. 369 TTC STAND STAND STAND. Salon Mondial. Salon Mondial du tourisme.

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Créer une base de données vidéo sans programmation (avec Drupal)

2 Serveurs OLAP et introduction au Data Mining

Langage SQL : créer et interroger une base

Thème : Gestion commerciale

TP Bases de données réparties

Ces envois peuvent être automatiques ou manuels. Nous allons découvrir dans ce manuel comment

iil est désormais courant de trouver sur Internet un document

Partie 0 : Gestion des tablespace et des utilisateurs... 3

1. Cliquez sur dans le coin supérieur gauche de l'écran 2. Sélectionnez la Langue de l'interface désirée 3. Cliquez sur

OUTIL DE RAPPORT DES VENTES EN LIGNE D'AIR CANADA FOIRE AUX QUESTIONS

PRIX FORFAITS ÉTÉ - HIVER DISNEYLAND PARIS

COMMENT CREER SIMPLEMENT UN TABLEAU DE BORD AVEC SAS BI DASHBOARD 4.3?

TOUT SAVOIR SUR LES DEPLACEMENTS DES PATIENTS AVEC LEUR MATERIEL

PROJET PERSONNALISÉ ENCADRÉ : N 6

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

MEGA ITSM Accelerator. Guide de démarrage

Olivier Mondet

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Dossier I Découverte de Base d Open Office

BRAVOFLY DOSSIER DE PRESSE 2012

Gestion de base de données

PLATEFORME MÉTIER DÉDIÉE À LA PERFORMANCE DES INSTALLATIONS DE PRODUCTION

Evolutions dans FFBClubNet v :

Créer un publipostage avec Microsoft Word

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

A QUOI SERVENT LES BASES DE DONNÉES?

Utiliser une base de données

LES RETOMBÉES ÉCONOMIQUES DE LA PÊCHE DE LOISIRS DANS LE SECTEUR DU LAC DU BOURGET. Restitution - 13 octobre 2014

SOMMAIRE. Travailler avec les requêtes... 3

Sélection d un moteur de recherche pour intranet : Les sept points à prendre en compte

Une ergonomie intuitive

FÉDÉRATION MAROCAINE DES SOCIÉTÉS D'ASSURANCES ET DE RÉASSURANCE FICHIER CENTRAL CRM. MANUEL D UTILISATION Version 1.0

TP Contraintes - Triggers

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

Styler un document sous OpenOffice 4.0

SQL Server et Active Directory

Module d échange de données INTERLIS v1.0 GeoConcept Manuel d'utilisation

Le Langage De Description De Données(LDD)

TUTORIEL RADIUS. I. Qu est-ce que RADIUS? II. Création d un groupe et d utilisateur

Créer un rapport pour Reporting Services

Guide de procédures Mise à jour faite le 29/03

MODE OPERATOIRE OPENOFFICE BASE

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

DEVAKI NEXTOBJET PRESENTATION. Devaki Nextobjects est un projet sous license GNU/Public.

Tutoriel D utilisation. Du PGI Open line d EBP

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Stockage du fichier dans une table mysql:

TUTORIAL Microsoft Project 2010 Fonctionalités de base

Bases de données Cours 1 : Généralités sur les bases de données

Transcription:

MODELISATION DES CROISIERES POUR LES AGENCES Groupe 2: CORBERY Evariste (SI) HEINRICHS Alexandre (SI) PANNATIER Grégoire (HEC) IQUISE Victor (Science)

1. Introduction objectif description sources interrogations 2. Prédicats 3. Domaines 4. Table universelle 5. Table fractionnée 6. Graphe des relations 7. Six questions d algèbre relationnel 8. Six questions SQL 9. Masque de saisie 10. Explications du masque de saisie TABLE DES MATIERES 11. Exemple d'utilisation du masque de saisie 12. Create table avec SQLPLUS 13. Exemples d'insert sur SQLPLUS 14. Six questions SQL sur SQLPLUS 15. Create view sur SQLPLUS 15. Conclusion A. Heinrichs & E. Corbery 1

1. Introduction Objectif: KUANI est une centrale de voyage. Elle est membre de la fédération Suisse des agences de voyage. Elle propose différentes catégories de voyages, chacun décrit dans une brochure. Par exemple: île Maurice, Seychelles, Afrique australe Caraïbes Mexique, Amérique du sud Great USA La Floride Arabie Croisières Séjours linguistiques etc... Nous avons décidé de modéliser son catalogue de croisière, qui est constitué d un catalogue des différentes croisières et d un cahier des prix. Description: Nous allons modéliser toutes les informations contenues dans leur catalogue pour en créer une base de donnée. Ainsi les agences de voyages affiliées à Kuani pourront interroger le serveur des croisières Kuani pour donner des informations à leurs clients ainsi qu effectuer des réservations. Genève Lausanne Bâle Lucerne Serveur Kuoni Sion Fribourg Berne Zurich schéma1 - Représentation client-serveur A. Heinrichs & E. Corbery 2

Nous nous situons donc à la centrale Kuani. Nos clients sont les agences affiliées à la centrale Kuani. De ce fait, ces agences auront un accès plus rapide aux informations et pourront connaître en «temps réel» l état des réservations des différentes croisières. Cette base de donnée permet aussi de faciliter les corrections et la mise à jour des différents constituants. Sources: Nous avons les documents suivants: Kuoni Croisières: novembre 1994 - décembre 1995, contenant le descriptif de 119 voyages différents Un cahier de prix pour la même période, contenant des propositions de voyage d acheminement, des prix, des plans de bateau et des conditions de voyage et de contrat. Interrogations: Méthode pour indiquer aux agences qu une cabine est réservée. Quel sera le degré d intégrité de cette base de donnée? Quel sera la fréquence de consultation de la base de donnée? Quel sera la facilité pour mettre à jour la base de donnée? Quel est la capacité d un bateau? A. Heinrichs & E. Corbery 3

2. Les Prédicats Bateau (NomBateau, Compagnie, Classe) Prédicat : " bateau (nb, cie, cl). Le bateau appartenant à la compagnie cie a un nom nb et une classe cl. " Cabine (NoCabine, CatégorieCabine, NomBateau, Pont, Situation, NombreLit, Confort) Prédicat : " cabine (nc, catc nb, p, s, l, c). Une cabine se trouve sur le pont p d un bateau qui a un nom nb. Elle a une situation s, donnant sur l extérieur ou l intérieur du bateau, est identifié par un numéro nc et a une catégorie catc. Les cabines sont caractérisées par le nombre de litsl et un confort c. " Voyage (NoVoyage, NomBateau, Région, NombreJour, Remarques) Prédicat : " voyage (nv, nb, r, j, rem). Un voyage a un numéro nv, se déroule dans une région r et dure un nombre de jours j sur un bateau portant un nom nb. Certains voyages seront étayés de remarques r. " Variante (NoVariante, NoVoyage, DateDépart, DateArrivée) Prédicat : " variante (nv, nvar, dd, da). Chaque voyage nv a une variante nvar, commence à une date dd et fini à une date da. " Programme (NoProgramme, LieuDépart, LieuArrivée, Remarques) Prédicat : " programme (np, ld, la, r, nv). Chaque voyage nv a un programme np, fait état d un lieu de départ ld, d un lieu d arrivée la et est completé de certaines remarques r. " Escales (NoProgramme, NombreEscales, Villes, Observations) Prédicat : " escales (np, ne, v, o). Chaque programme np a un certain nombre d escales ne passant par des villes v. Les diverses curiosités des escales sont répertoriées dans les observations o. " Saison (NoVoyage, NoVariante, Saison, Prix) Prédicat : " saison (nv, nvar, s, pi, ps). Chaque voyage nv avec le numéro de variante nvar a des fourchettes de prix, comprises entre pi et ps, différentes suivant les saisons s. " A. Heinrichs & E. Corbery 4

Réservations (NoCabine, NoVariante, NoAgence, Réservé) Prédicat : " réservations (nc, nvar, na, r). Les agences identifiées par leur numéro na, ont la possibilité de réservé r (oui/non) une cabine nc par rapport à une variante nvar de voyage. " Agence (NoAgences, nom, ville, adresse) Prédicat : " agences (na, n, v, a). Les agences ont un numéro na, un nom n et ont une adresse a dans une ville v. " 3. Les domaines nom_bateau texte char(20) classe entier [1..5] number(1) cie texte char(20) no_cabine texte char(8) cat_cabine entier[1..3] number(3) pont texte char(15) situation booléen char(1) nb_lit entier[1..6] number(1) confort texte char(12) no_voyage texte char(2) région texte char(20) nb_jours entier[1..999] number(3) rem1 texte char(200) rem2 texte char(200) date-dép date date date_arr date date no_variante texte char(6) lieu_dep texte char(15) lieu_arr texte char(15) no_prog entier[1..99] number(2) nb_escale entier[1..20] number(2) villes texte char(200) observations texte char(200) prix_inf entier[1..999] number(10) prix_sup entier[1..999] number(10) saison texte char(20) no_agence entier[1..999] number(3) reserve booléen char(1) nom_agence texte char(20) ville_agence texte char(20) adresse texte char(50) cat_cabine texte char(3) A. Heinrichs & E. Corbery 5

4. Table universelle nom_bateau classe cie no_cabine cat_cabine pont situation nb_lit confort no_voyage region nbre_jour rem1 date_dep date_arr no_variante lieu_dep lieu_arr rem2 no_prog villes observations nb_escales saisons cat_cabine nom_agence reserve adresse no_agence ville_agence prix_inf prix_sup 5. Table fractionnée Bateau nom_bateau classe cie Cabine nom_bateau cat_cabine pont situation no_cabine nb_lit confort Voyage nom_bateau no_voyage region nb_jour rem1 Variante no_voyage no_variante date_dep date_arr Programme no_prog lieu_dep lieu_arr rem2 no_voyage Escale no_prog villes observations nb_escales Saisons no_variante no_voyage prix_inf prix_sup saison Réservation no_cabine no_variante nom_agence reserve Agence nom_agence ville_agence adresse no_agence A. Heinrichs & E. Corbery 6

6. Le graphe des relations classe cie Bateau region nb_jour no_cabine nom_bateau Voyage rem1 date_dep date_arr Cabine situation pont cat_cabine nb_lit confort rem2 lieu_arr lieu_dep Programme no_voyage Variante no_prog no_cabine villes Escale observations nb_escales prix_sup Saisons saison prix_inf reserve Réservation no_variante nom_agence adresse Agence ville_agence no_agence schéma2 - graphe des relations A. Heinrichs & E. Corbery 7

7. Six questions d algèbre relationnel 1) Quels sont les bateaux effectuant une croisière en Méditerranée? (*((région = «Méditerranée») voyage)* bateau) [nom_bateau] 2)Quel est le prix_sup de la croisière no 18 du 30 avril au 7 mai? (*((no_voyage = 18) (date_dép = 30.4)) variante)* saison) [prix_sup] 3)Pendant quels saisons les croisières sont-elles le moins chères? (*(sum(prix_inf, prix_sup) sum(prix_inf, prix_sup)) [saison] 4) Quels sont les bateaux de luxe (classe 4) naviguant dans le pacifique à Noël? (*(((classe = 4) (région = «pacifique») (date_dép < 25.12) (date_arr > 25)) variante * voyage * bateau) [nom_bateau] 5) Quels sont les escales faites par les bateaux naviguant en mer indienne? (*((région = «mer indienne») escales * programme)* voyage) [escales + ] 6) Quels sont les voyages au départ de Marseille sur des bateaux de classe moyenne (classe 2 et 3) pour 3 personnes dans la même cabine orientée vers l extérieur. Donner le prix, les dates de départ et d arrivée ainsi que les remarques liées au voyage et le lieu d arrivée? (*((lieu_dép = «Marseille») ( (classe = 2) (classe = 3)) (nbre_lit = 3) (situation = «extérieur»)) bateau * voyage * cabine * programme)* saisons) [no_voyage, prix_inf, prix_sup, date_dép, date_arr, rem1, rem2, lieu_arr] A. Heinrichs & E. Corbery 8

8. Six questions SQL 1)Quels sont les noms des bateaux de la compagnie Costa Crociere? SELECT nom_bateau FROM Bateau WHERE cie = COSTA CROCIERE ORDER BY nom_bateau; 2) Combien de cabines donnent sur l extérieur à bord du bateau EUGENIO COSTA? SELECT count(no_cabine) FROM Cabine WHERE situation = extérieure AND nom_bateau='eugenio Costa'; 3) Quels sont les voyages de moins de 3 000 frs dans la Méditerranée, classés par ordre de prix? SELECT voyage.no_voyage, saisons.prix_inf FROM Voyage, Saison WHERE voyage.no_voyage = saison.no_voyage AND region = Mediterranee AND prix_inf 3000 ORDER BY prix_inf; 4) Quel sont les cabines encore disponibles sur la compagnie CUNARD? SELECT no_cabine FROM Cabine, Bateau, Réservation WHERE cabine.nom_bateau = bateau.nom_bateau AND cabine.no_cabine = reservation.no_cabine AND reservé = not oui; 5)Quel est le prix moyen d une croisière chez Kuani? SELECT avg(prix_inf) FROM Saisons; A. Heinrichs & E. Corbery 9

6) Quel est la fourchette de prix de la croisière no 18 pendant la période allant du 22.2.1994 au 27.2.1994? SELECT variante.no_variante, saisons.prix_inf, saisons.prix_sup FROM saisons, variante WHERE saison.no_variante = variante.no_variante AND date_dep >= 22-feb-94 AND date_dep <= 27-feb-94 AND variante.no_voyage=18; A. Heinrichs & E. Corbery 10

9. Masque de saisie A. Heinrichs & E. Corbery 11

10. Explications du masque de saisie L'utilisateur commence par sélectionner dans les entités (bateau, cabine...) ce dont il a besoin. Ex.: En cliquant sur bateau, un menu déroulant apparaît avec les constituants de bateau, nom_bateau, cie.... Si on clique sur nom_bateau, le nom de tous les bateaux apparaissent dans la fenêtre en-dessous où on peut sélectionner le nom du bateau qui fera partie de nos préférences. Ses différentes sélections vont apparaître dans la fenêtre dans laquelle il pourra affiner (avec des commandes SQL) ses sélections. Puis en appuyant sur recherche le résultat apparaît dans la fenêtre résultat. Une fois tous ses choix faits, il peut choisir réservation pour réserver la cabine au nom de l'agence. S'il veut faire une nouvelle requête, il va choisir 'Nouvelle', s'il veut imprimer le résultat 'Imprimer' et 'tri' s'il veut classer ses résultats. A. Heinrichs & E. Corbery 12

11. Exemple d'utilisation du masque de saisie Quels sont les noms des bateaux qui voyagent en Méditerranée? 1. Sélection des constituants A. Heinrichs & E. Corbery 13

2. Affichage des résultats A. Heinrichs & E. Corbery 14

12. Create table sous SQLPLUS create table Bateau ( nom_bateau char(20), classe number(1), cie char(20)); create table Cabine ( nom_bateau char(20), cat_cabine number(3), pont char(15), situation char(1), no_cabine char(8), nb_lit number(1), confort char(12)); create table Voyage ( nom_bateau char(20), no_voyage char(3), region char(20), nb_jour number(3), rem1 char(200)); create table Variante ( no_voyage char(3), no_variante char(6), date_dep date, date_arr date); create table programme ( no_prog number(2), lieu_dep char(15), lieu_arr char(15), rem2 char(200), no_voyage char(3)); create table escale ( no_prog number(2), villes char(200), observations char(200), nb_escales number(2)); create table saisons ( no_variante char(6), no_voyage char(3), prix_inf number(10), prix_sup number(10), saison char(20)); A. Heinrichs & E. Corbery 15

create table reservation ( no_cabine char(8), no_variante char(6), nom_agence char(20), reserve char(3)); create table agence ( nom_agence char(20), ville_agence char(20), adresse char(40), no_agence number(3)); A. Heinrichs & E. Corbery 16

13. Exemples d'insert sur SQLPLUS Entité bateau: insert into bateau (nom_bateau, classe, cie) values('achille Lauro', 2, 'Starlauro'); insert into bateau (nom_bateau, classe, cie) values('costa Allegra', 4, 'Costa Crociere'); insert into bateau (nom_bateau, classe, cie) values('eugenio Costa', 3, 'Costa Crociere'); insert into bateau (nom_bateau, classe, cie) values('monterey', 3, 'Starlauro'); insert into bateau (nom_bateau, classe, cie) values('queen Elizabeth 2', 5, 'Cunard'); Entité cabine: insert into cabine (nom_bateau, cat_cabine, pont, situation, no_cabine, nb_lit, confort) values('achille Lauro', 1, 'B', 'i', 'AL0001', 4, 'd/wc'); insert into cabine (nom_bateau, cat_cabine, pont, situation, no_cabine, nb_lit, confort) values('achille Lauro', 8, 'A', 'e', 'AL0329', 2, 'd/wc'); insert into cabine (nom_bateau, cat_cabine, pont, situation, no_cabine, nb_lit, confort) values('costa Allegra', 3, 'Van Gogh', 'i', 'CA0001', 4, 'd/wc'); insert into cabine (nom_bateau, cat_cabine, pont, situation, no_cabine, nb_lit, confort) values('costa Allegra', 4, 'Rousseau', 'e', 'CA0269', 4, 'b/wc appart'); insert into cabine (nom_bateau, cat_cabine, pont, situation, no_cabine, nb_lit, confort) values('eugenio Costa', 1, 'Bordighera', 'i', 'EC0001', 4, 'lavabo'); A. Heinrichs & E. Corbery 17

insert into cabine (nom_bateau, cat_cabine, pont, situation, no_cabine, nb_lit, confort) values('eugenio Costa', 12, 'Embarcations', 'e', 'EC1125', 4, 'b/wc suite'); insert into cabine (nom_bateau, cat_cabine, pont, situation, no_cabine, nb_lit, confort) values('monterey', 1, 'Maile', 'i', 'M0001', 4, 'd/wc'); insert into cabine (nom_bateau, cat_cabine, pont, situation, no_cabine, nb_lit, confort) values('monterey', 5, 'Aloha', 'i', 'M0101', 2, 'd/wc'); insert into cabine (nom_bateau, cat_cabine, pont, situation, no_cabine, nb_lit, confort) values('queen Elizabeth 2', 3, '5', 'i', 'QE0001', 2, 'd/wc'); insert into cabine (nom_bateau, cat_cabine, pont, situation, no_cabine, nb_lit, confort) values('queen Elizabeth 2', 4, 'Sport', 'e', 'QE2125', 4, 'b/wc deluxe'); Entité voyage: insert into voyage (nom_bateau, no_voyage, region, nb_jour, rem1) values( 'Achille Lauro', 37, 'Mediterranee', 12, 'Acheminement par train 1ere classe ou avion Swissair'); insert into voyage (nom_bateau, no_voyage, region, nb_jour, rem1) values( 'Eugenio Costa', 21, 'Mediterranee', 11, 'Acheminement par train 1ere classe ou avion Swissair'); insert into voyage (nom_bateau, no_voyage, region, nb_jour, rem1) values( 'Queen Elizabeth 2', 63, 'Monde', 54, 'Acheminement par train 1ere classe ou avion Swissair'); insert into voyage (nom_bateau, no_voyage, region, nb_jour, rem1) values( 'Costa Allegra', 11, 'Caraibes', 9, 'Acheminement par train 1ere classe ou avion Swissair'); insert into voyage (nom_bateau, no_voyage, region, nb_jour, rem1) values( 'Monterey', 32, 'Caraibes', 13, 'Acheminement par train 1ere classe ou avion Swissair'); A. Heinrichs & E. Corbery 18

Entité variante: insert into variante (no_voyage, no_variante, date_dep, date_arr) values( 11, '11/1', '1-apr-94', '10-apr-94'); insert into variante (no_voyage, no_variante, date_dep, date_arr) values( 18, '18/3', '14-may-94', '21-may-94'); insert into variante (no_voyage, no_variante, date_dep, date_arr) values( 21, '21/5', '2-nov-94', '13-nov-94'); insert into variante (no_voyage, no_variante, date_dep, date_arr) values( 63, '63/1', '7-jan-95', '21-apr-95'); insert into variante (no_voyage, no_variante, date_dep, date_arr) values( 32, '32/3', '1-feb-94', '10-feb-94'); Entité programme: insert into programme (no_prog, lieu_dep, lieu_arr, rem2, no_voyage) values( 6, 'Amsterdam', 'Amsterdam', 'excursions diverses', 6); insert into programme (no_prog, lieu_dep, lieu_arr, rem2, no_voyage) values( 11, 'Pointe-a-Pitre', 'Pointe-a-Pitre', 'excursions diverses', 11); insert into programme (no_prog, lieu_dep, lieu_arr, rem2, no_voyage) values( 21, 'Genes', 'Genes', 'excursions diverses', 21); insert into programme (no_prog, lieu_dep, lieu_arr, rem2, no_voyage) values( 63, 'New-York', 'New-York', 'excursions diverses', 63); insert into programme (no_prog, lieu_dep, lieu_arr, rem2, no_voyage) values( 18, 'Genes', 'Genes', 'excursions diverses', 18); Entité escale: insert into escale (no_prog, villes, observations, nb_escales) values( 11, 'Pointe-a-Pitre/Bridgetown/St- Johns/Roadtown/Philipsbourg/Fort-de-France/Pointe-a-Pitre', 'curiosités', 5); insert into escale A. Heinrichs & E. Corbery 19

(no_prog, villes, observations, nb_escales) values( 21, 'Genes/Barcelone/Casablanca/St- Cruz/Funchal/Malaga/Genes', 'curiosités', 5); Entité saisons: insert into saisons (no_variante, no_voyage, prix_inf, prix_sup, saison) values( '11/1', 11, 2520, 4230, 'CS03SHP001'); insert into saisons (no_variante, no_voyage, prix_inf, prix_sup, saison) values( '11/2', 11, 2930, 5130, 'Tf'); insert into saisons (no_variante, no_voyage, prix_inf, prix_sup, saison) values( '18/1', 18, 1355, 3015, 'EU3SHP001'); insert into saisons (no_variante, no_voyage, prix_inf, prix_sup, saison) values( '18/3', 18, 2675, 6095, 'EU3SHP002'); insert into saisons (no_variante, no_voyage, prix_inf, prix_sup, saison) values( '21/1', 21, 2500, 4615, 'EU3SHP004'); insert into saisons (no_variante, no_voyage, prix_inf, prix_sup, saison) values( '21/5', 21, 1435, 3205, 'EU3SHP005'); insert into saisons (no_variante, no_voyage, prix_inf, prix_sup, saison) values( '63/1', 63, 41010, 151590, 'Tf'); insert into saisons (no_variante, no_voyage, prix_inf, prix_sup, saison) values( '37/1', 37, 2105, 4485, 'AC1SHP001'); Entité reservation: insert into reservation (no_cabine, no_variante, nom_agence, reserve) values('al0001', '37/1', 'KuaniGe', 'o'); insert into reservation (no_cabine, no_variante, nom_agence, reserve) values('qe0001', '63/1', 'KuaniVs', 'n'); Entité agence: insert into agence (nom_agence, ville_agence, adresse, no_agence) values('kuanige', 'Geneve', '12 rue du Lac', 001); insert into agence (nom_agence, ville_agence, adresse, no_agence) values('kuanivs', 'Sion', '4 rue du Vin', 002); A. Heinrichs & E. Corbery 20

insert into agence (nom_agence, ville_agence, adresse, no_agence) values('kuanivd', 'Lausanne', '21 bd du Pont', 003); A. Heinrichs & E. Corbery 21

14. Six questions SQL sur SQLPLUS 1) Quels sont les noms des bateaux de la compagnie Costa Crociere? select nom_bateau from bateau where cie= 'Costa Crociere' order by nom_bateau; NOM_BATEAU -------------------- Costa Allegra Eugenio Costa 2)Quels sont les croisières qui se font dans les Caraibes? select bateau.nom_bateau, voyage.no_voyage from bateau, voyage where voyage.nom_bateau=bateau.nom_bateau and voyage.region='caraibes'; NOM_BATEAU NO_VOYAGE -------------------- --------- Costa Allegra 11 Monterey 32 3)Quels sont les agences qui ont réservé une croisière et laquelle? select agence.nom_agence, no_agence, ville_agence from agence, reservation where agence.nom_agence=reservation.nom_agence and reserve='o'; NOM_AGENCE NO_AGENCE VILLE_AGENCE -------------------- ---------- -------------------- KuaniGe 1 Geneve 4)Quel est la fourchette de prix de la croisière no 18? select no_variante, prix_inf, prix_sup from saisons where no_voyage=18; NO_VAR PRIX_INF PRIX_SUP ------ ---------- ---------- 18/1 1355 3015 18/3 2675 6095 A. Heinrichs & E. Corbery 22

5)Quelle est la ville de départ et les escales de la croisière no 11? select programme.lieu_dep, escale.villes from programme, escale where programme.no_prog=escale.no_prog and programme.no_voyage='11'; LIEU_DEP VILLES ----------- ---------------------------------- Pointe-a-Pitre Pointe-a-Pitre/Bridgetown/St- Johns/Roadtown/Philipsbourg/Fort-de- France/Pointe-a-Pitre 6)Quel est le prix moyen inférieur des croisières Kuani? select avg(prix_inf) " Prix moyen inferieur" from saisons; Prix moyen inferieur --------------------- 7066.25 7) Quels sont les voyages des moins de Fr 3000.- dans la Méditerranée classés par ordre de prix? select voyage.no_voyage, prix_inf from voyage, saisons where voyage.no_voyage=saisons.no_voyage and region='mediterranee' and prix_inf <= 3000 order by prix_inf; NO_ PRIX_INF --- ---------- 21 1435 37 2105 21 2500 A. Heinrichs & E. Corbery 23

15. Create view sur SQLPLUS 1) SQL> create view bat (nom_bateau, classe, cie) as select * from bateau; View created. SQL> select * from bat; NOM_BATEAU CLASSE CIE -------------------- ---------- -------------------- Achille Lauro 2 Starlauro Costa Allegra 4 Costa Crociere Eugenio Costa 3 Costa Crociere Monterey 3 Starlauro Queen Elizabeth 2 5 Cunard 2) SQL> create view batcab(nom_bateau, cie, no_cabine) as select bateau.nom_bateau, cie, no_cabine from bateau, cabine where bateau.nom_bateau = cabine.nom_bateau; View created. SQL> select * from batcab; NOM_BATEAU CIE NO_CABIN -------------------- -------------------- -------- Achille Lauro Starlauro AL0001 Achille Lauro Starlauro AL0329 Costa Allegra Costa Crociere CA0001 Costa Allegra Costa Crociere CA0269 Eugenio Costa Costa Crociere EC0001 Eugenio Costa Costa Crociere EC1125 Monterey Starlauro M0001 Monterey Starlauro M0101 Queen Elizabeth 2 Cunard QE0001 Queen Elizabeth 2 Cunard QE2125 10 rows selected. 3) create view resage (nom_agence, no_agence, ville_agence, reserve) as select agence.nom_agence, agence.no_agence, agence.ville_agence, reservation.reserve from reservation, agence where reserve='o'; View created. SQL> select * from resage; NOM_AGENCE NO_AGENCE VILLE_AGENCE RES A. Heinrichs & E. Corbery 24

-------------------- ---------- -------------------- --- KuaniGe 1 Geneve o KuaniVs 2 Sion o KuaniVd 3 Lausanne o A. Heinrichs & E. Corbery 25

16. Conclusion Par la suite nous allons intégrer les règles d intégrités adéquates qui permettront une plus grandre rigueur dans l entrée des données. Cette base de donnée permettra aux agences Kuani de Suisse de trouver des informations plus rapidement ainsi que d effectuer des mises à jour. Par la suite il faudra affiner les prix par rapport à chaque cabine et non en fonction d'une borne inférieure et supérieure. Il ne faut pas oublier que nos clients sont les agences et donc les clients des agences sont uniquement de leur ressort. Ce travail nous a permis d'aquérir les bases de la constitution d'une base de donnée relationnelle. A. Heinrichs & E. Corbery 26