• Aucun résultat trouvé

TD1- Conception d’une BDD et Utilisation sous Access et Oracle

N/A
N/A
Protected

Academic year: 2022

Partager "TD1- Conception d’une BDD et Utilisation sous Access et Oracle"

Copied!
5
0
0

Texte intégral

(1)

TD1- Conception d’une BDD et Utilisation sous Access et Oracle

Partie 1 - Conception

Il s'agit de M. Bushboy, le directeur d'une agence de location de voitures qui vous a appelé (en tant qu'analyste expert) pour vous demander de l'aider à informatiser son SI.

Voilà le discours enregistré entre M. Bushboy et vous :

M. Bushboy : je souhaite optimiser le fonctionnement de mes agences situées partout en France

Vous : Avant de commencer mon analyse, pouvez-vous me dire pourquoi ?

M. Bushboy : Malheureusement, je ne peux pas vous en dire plus, c'est confidentiel Vous : D’accord, pouvez-vous m’expliquer comment se déroule une location ?

M. Bushboy : En effet, un client arrive dans une de nos agences (situées dans différentes villes mais identifiées par un code) et signe un bon de location après avoir choisi son véhicule.

Vous : Que renseignez vous sur ce fameux bon ?

M. Bushboy : Et bien, nous avons un numéro de bon et bien sûr une date de début de location ainsi que l’immatriculation du véhicule concerné.

Vous : le prix varie selon quel critère ?

M. Bushboy : Le prix varie évidemment en fonction du nombre de kilomètres effectués par le client. Nous relevons d’ailleurs ceci lors du retour du véhicule, ce qui nous permet de compléter notre bon de location en saisissant la date de retour et le kilométrage effectué.

Vous : Et la location d’une Ferrari est équivalente à celle d’un C15 ? M. Bushboy : A votre avis ?

Vous : Je n'en ai aucune idée.

M. Bushboy : Bien sûr que non ! On voit que vous n'avez jamais géré une agence de location. Nous classons chaque véhicule par catégorie et chaque catégorie possède un prix au kilomètre. Nous calculons ensuite le prix de la location en multipliant le nombre de kilomètres parcourus par le prix au kilomètre de la catégorie correspondant au véhicule loué.

Vous : Avez-vous un système de point de fidélité pour vos meilleurs clients ?

M. Bushboy : euh… non… nous gardons seulement ses préférences au niveau des catégories de véhicule. En fait, il donne une note entre 1 et 10 pour les différentes catégories qu’il a déjà utilisées.

Vous : Gardez-vous un historique des notes données à une catégorie par une client ? M. Bushboy : cela serait effectivement intéressant mais pas pour l’instant.

Vous : conformément à votre déclaration à la CNIL, quelles informations traitez vous sur vos clients ?

M. Bushboy : On leur donne juste un numéro et on conserve leur nom et leur ville.

Vous : Mais comment vous faites en cas de réservation par téléphone ? M. Bushboy : Nous procédons de la même manière.

(2)

Vous : Mais si vous voulez rappeler le client en cas de problème (indisponibilité de véhicule, grève, etc.) comment vous faites ?

M. Bushboy : Bah, c'est une bonne question. Pour l'instant, nous ne le faisons pas.

Vous : D'accord, dites-moi comment vous gérez la maintenance de votre parc ? M. Bushboy : Nous conservons pour chaque véhicule le kilomètre de révision.

Vous : C'est tout ? M. Bushboy : Ben oui.

Vous : Ok, je vais étudier votre SI et je vous contacterai la semaine prochaine. Merci M.

Bushboy.

Travail à faire :

1) Ecrivez le schéma E-A (MCD).

2) Trouvez un modèle logique relationnel correspondant (MLD).

Montrez le résultat à votre enseignant

Partie 2 – QBE Access

3) Ouvrez une session et démarrez le SGBDR ACCESS

4) Importez les données à l’intérieur de votre nouvelle BDD se trouvant actuellement sous format XML (le chemin d’accès sera donné par votre enseignant). L’importation pourra générer des erreurs qui n’ont pas d’impact sur la suite du TD.

5) Créez maintenant les relations entre les tables du schéma selon votre modèle logique.

6) Traduisez les requêtes suivantes en QBE (Query By Example) :

1. Liste des véhicules par ordre croissant du kilométrage de révision.

2. Liste des clients de DIJON et PARIS.

3. Liste des « VilleClient » distinctes en minuscules.

4. Liste des clients dont le nom commence par un « B ».

5. Liste des véhicules loués dont la date de début de location se situe entre le 01/01/2002 et le 01/04/2002.

6. Nom du Client qui a fait le plus grand trajet avec un véhicule.

7. Pour organiser des transferts de véhicules permettant d’équilibrer la

répartition du parc, on désire connaître le nombre de véhicules disponibles par classe pour chaque agence.

8. Pour détecter certaines erreurs de saisies, on désire connaître la liste des véhicules faisant l’objet de plusieurs locations simultanées.

9. Liste des Clients et le montant qu’ils ont dû payer pour chaque location.

10. Liste des Villes et du nombre de clients par ville pour les villes ayant plus de deux clients.

Montrez le résultat à votre enseignant

Partie 3 : SQL Oracle

7) Tracez le schéma E-A (MCD) précédent sous Windesign. Choisissez bien vos types de données. Pour les dates, choisissez ici le type texte car dans Oracle la manipulation des dates nécessite un traitement particulier qui sera abordé dans les prochains TD.

(3)

8) Générez le modèle logique sous Windesign et produisez le script SQL de création du schéma de la BDD sous Oracle. Pensez à décocher l’option de "création" et d’"ouverture" de la base.

9) Avant de pouvoir utiliser Oracle sur votre machine, il faut configurer sa connexion au serveur Oracle de la manière suivante :

Lancez Oracle Net Configuration, et rajoutez la BDD « BDDIQ » du serveur serv-iq-ora (ayant une adresse IP 172.23.1.12) en choisissant « Configuration d’un nom de service réseau local » dans la fenêtre qui va apparaître (Figure 1).

Indiquer le nombre de port utilisé par défaut pour la connexion ici :

Figure 1: Assistant de Configuration de la connexion vers le serveur Oracle

10) Lancez maintenant SQL*Plus (ou SQL PLUS worksheet) et utilisez Nom d’utilisateur : Sx_Py

Mot de passe : Sx_Py Chaîne hôte : BDDIQ

Demandez à votre enseignant la valeur de x et y ☺

Vous pouvez consulter l’annexe pour avoir plus de détails sur SQL*Plus.

11) Créez maintenant le schéma généré par WinDesign dans Oracle.

Insérez les données dans Oracle se trouvant dans la base Access. Pour insérer un enregistrement en SQL, vous utilisez les syntaxes suivantes :

INSERT INTO nom_table VALUES(valeur_champs_1, valeur_champs_1, …) Ou

INSERT INTO nom_table(champi, champ j) VALUES(valeur_champs_i, valeur_champs_j) N’oubliez pas que vous pouvez exécuter un fichier externe dans SQL*Plus. Pensez à préparer un script SQL global permettant d’insérer la totalité de vos données. Vous avez toute la liberté pour trouver une solution qui vous évite de saisir toutes les données.

(4)

12) Exprimez avec SQL*Plus les requêtes suivantes permettant d’extraire les informations suivantes :

1. Liste de toutes les agences de l’entreprise.

2. Liste des clients de DIJON.

3. Liste des clients dont le nom commence par un « B ».

4. Liste des véhicules (numeroImmatriculation et codeclasse) qui n’ont jamais été loués.

5. Nombre de km effectués tout véhicule confondu par client par ordre décroissant.

6. Quels sont les véhicules disponibles à Dijon dans les classes préférées de Mr

‘Baillekar’ (triées par préférences décroissantes).

7. Nombre de clients à DIJON.

8. Code de l’agence qui n’a pas de voiture en « stock ».

9. Liste des clients qui ont effectué plus de 300 Km avec un véhicule de type Sportive.

Montrez le résultat à votre enseignant

(5)

Annexe

SQL*Plus est l'utilitaire d'ORACLE qui permet de soumettre directement des commandes SQL. Il ne reste plus qu'à effectuer votre première requête (attention au point-virgule à la fin de la commande) :

SQL> select table_name from user_tables;

Ou

SQL> select * from cat;

Pour insérer un commentaire, il suffit de mettre : SQL> -- c’est un commentaire

Cette requête permet de vous afficher la liste des tables disponibles dans votre schéma.

Pour décrire la structure d’une table, utilisez la commande : SQL> describe nom_table;

SQL*Plus permet de regrouper un ensemble de commandes SQL dans un fichier, et de les exécuter ensuite en utilisant la commande:

SQL> @« nom_fichier »;

Ou SQL> start « Nom_fichier » ;

Pour obtenir de l'aide sur la commande donnée en argument, utiliser la commande

SQL> Help « commande » Autres commandes :

SQL> list; -- Affiche le dernier ordre exécuté SQL> run; -- exécute le contenu du buffer

SQL> save fichier; -- enregistre le contenu du buffer dans fichier.sql SQL> get fichier; -- stocke le fichier.sql dans le buffer

SQL> exit; -- Sortir de SQLPLUS

Références

Documents relatifs

Un intrus peut béné- ficier de cette ressemblance entre les comman- des pour migrer le concept de rootkits mais aussi d'autres logiciels malveillants, comme les virus, du monde

c Une commande SQLPLUS peut être tapée sur plusieurs lignes, chaque ligne intermédiaire étant terminée par -. SQLPLUS commence la ligne suivante par

En outre, dans le profil, peut être déterminé le nombre d’essais que possède un utilisateur pour entrer un mot de passe avant que le compte ne soit bloqué. PASSWORD_LOCK_TI-

17.Afficher le numéro et la date des commandes faites au premier de chaque mois au cours de l’année 2018 (utiliser la fonction jour (date)). 18.Afficher le numéro et la date

Etant donnée une assignation des variables d’entrées d’une fonction F, la valeur de la fonction F peut être trouvée en traversant le BDD depuis la racine jusqu’à une feuille

Donner les caractéristiques (AVNUM, AVNOM, CAPACITE, LOCALISATION) des avions localisés dans la même ville qu’un pilote dont le nom est saisi au

- chaque double clic sur Insertion : une procédure qui insère dans la table AGENCE une nouvelle ligne (« AG007 », « TOURS »).. - chaque clic sur Suppression : une procédure

P306 + P360 EN CAS DE CONTACT AVEC LES VÊTEMENTS : rincer immédiatement et abondamment avec de l’eau les vêtements contaminés et la peau avant de les enlever.. P307 + P311 EN