TP ORACLE n 1. SQL - Interrogation simple



Documents pareils
TP Contraintes - Triggers

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

TP Bases de données réparties

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

1 Introduction et installation

Bases de données élémentaires Maude Manouvrier

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

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Jérôme FESSY. IUT de Paris 5. Base de Données. Cours Introductif. Base de Données

Dossier I Découverte de Base d Open Office

Le langage SQL Rappels

II. Modèle conceptuel le modèle entité-association

Rappel sur les bases de données

Introduction aux Bases de Données

Conception des bases de données : Modèle Entité-Association

16H Cours / 18H TD / 20H TP

Bases de données avancées Introduction

Langage SQL : créer et interroger une base

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

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

Modèle conceptuel : diagramme entité-association

Bases de Données Relationnelles. Le Modèle Relationnel

A QUOI SERVENT LES BASES DE DONNÉES?

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

TP1 - Prise en main de l environnement Unix.

Information utiles. webpage : Google+ : digiusto/

Les bases de données

Le Langage SQL version Oracle

Bases de Données. Plan

Services bancaires par Internet aux entreprises. Guide pratique pour : Rapports de solde Version

CREATION WEB DYNAMIQUE

TP 1 Prise en main de l environnement Unix

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

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

Bases de données relationnelles

MODE OPERATOIRE OPENOFFICE BASE

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

TP1 : Initiation à l algorithmique (1 séance)

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

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

Objectifs du TP : Initiation à Access

TP 4 de familiarisation avec Unix

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

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

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

TP3 : Creation de tables 1 seance

ARCHIVES DEPARTEMENTALES DE L'EURE ALEXANDRIE

Créer une base de données

Utiliser une base de données

Progression secrétariat

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

Microsoft Excel 2000 Fonctions avancées

COURS WINDEV NUMERO 3

EXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version /11/05

EXCEL TUTORIEL 2012/2013

Cours Bases de données

PROJET 1 : BASE DE DONNÉES REPARTIES

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

et Groupe Eyrolles, 2006, ISBN :

Utilisation d Hyperplanning 2011

COURS DE MS EXCEL 2010

Module BDR Master d Informatique (SAR)

Créer sa première base de données Access Partie 4/4 - Création d un état

Ecran principal à l ouverture du logiciel

1. Base de données SQLite

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

TP 8: LES OPERATEURS ENSEMBLISTES

Groupe Eyrolles, 2003, ISBN : X

INTRODUCTION : Données structurées et accès simplifié

Database Manager Guide de l utilisateur DMAN-FR-01/01/12

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

Guide PME Version

Une ergonomie intuitive

Projet Matlab : un logiciel de cryptage

INTRODUCTION AU DATA MINING

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

SOMMAIRE. 1. Préambule Le calendrier Trajectoire d un objet lancé Régression linéaire...9

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

Optimisations des SGBDR. Étude de cas : MySQL

Structure fonctionnelle d un SGBD

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

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

.../5. Gestion de Bases de Données (J. Wijsen) 27 janvier 2011 NOM + PRENOM : Orientation + Année : Cet examen contient 8 questions. Durée : 2 heures.

Bases de données cours 1

Ces Lettres d informations sont envoyées aux extranautes inscrits et abonnés sur le site assistance (voir point N 3).

Access 2007 FF Access FR FR Base

Éditeur Koninklijke Brill Langue(s) Multilingue

Excel 2007 Niveau 3 Page 1

A.-M. Cubat PMB - Import de lecteurs - Généralités Page 1 Source :

Courrier électronique : vocabulaire

Le modèle de données

1 - Se connecter au Cartable en ligne

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information

Unix/Linux I. 1 ere année DUT. Université marne la vallée

COMMUNICATION TECHNIQUE N TCV060 Ed. 01. OmniVista 4760 Nb de pages : 18 Date : URGENTE NON URGENTE TEMPORAIRE DEFINITIVE

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

Transcription:

Polytech Montpellier - IG3 - BD Relationnelles TP ORACLE n 1 SQL - Interrogation simple L objet de cette première séance de TP est de formuler, en utilisant sqlplus d Oracle, des requêtes d interrogation mettant en jeu les opérateurs algébriques suivants : Projection, Sélection, Jointure, Union, Intersection et Différence, ainsi que d exprimer des calculs verticaux et horizontaux. La base de données exemple, sur laquelle vous allez travailler, a déjà été partiellement créée. Elle permet d effectuer la gestion très simplifiée d une bibliothèque à partir du dictionnaire de données suivant : NOM LIBELLE DOMAINE CI NUM_AB Numéro d un abonné D_NUM_AB : Number(6,0) valeurs uniques NOM Nom d un abonné D_NOM : Varchar2(30) PRENOM Prénom d un abonné D_PRENOM : Varchar2(20) VILLE Ville d un abonné D_VILLE : Varchar2(30) AGE Age d un abonné D_AGE : Number(3,0) valeurs dans [0..100] TARIF Tarif d abonnement D_TARIF : Number(3,0) valeurs dans [0..500] REDUC % de réduction D_REDUC : Number(3,0) valeurs dans [0..100] NUMERO Numéro d un exemplaire D_NUMERO : Number(4,0) valeurs uniques DATE_ACHAT Date d achat d un exemplaire D_DATE : Date PRIX Prix d un exemplaire D_PRIX : Number(5,2) ETAT Etat d un exemplaire D_ETAT : Varchar2(15) valeurs parmi : {Bon, Perdu, Abimé, En réparation} CODE_PRET Code de prêt d un exemplaire D_CODE_PRET : Varchar2(20) valeurs parmi : {Exclu, Empruntable, Consultable} ISBN Numéro ISBN d un livre D_ISBN : Varchar2(20) valeurs uniques TITRE Titre d un livre D_TITRE : Varchar2(45) SIECLE Siècle d un livre D_SIECLE : Number(2,0) valeurs dans [0..21] CATEGORIE Catégorie d un livre D_CATEGORIE : Varchar2(20) valeurs parmi : {Roman, Médical, Sciences, Gestion, Cuisine,...} MOT Mot clef caractérisant un D_MOT : Varchar2(20) Liste de valeurs prédéfinies livre D_EMPRUNT Date d emprunt D_DATE D_RETOUR Date de retour prévue D_DATE calculée D_RET_REEL Date de retour effective D_DATE NB_RELANCE Nombre de relances d un B_NB_RELANCE : Number(1,0) valeurs dans [0..3] emprunt Les types syntaxiques, utilisés pour la description des domaines, sont disponibles dans Oracle. 1

A partir du dictionnaire de données, le schéma conceptuel, établi selon le modèle Entité/Association, est le suivant : 1,n DATE - Date_EMP ABONNE - NUM_AB - NOM - PRENOM - VILLE- AGE - TARIF - REDUC Emprunte / Est emprunté 0,n 0,n - D_RETOUR - D_RET_REEL - NB_RELANCE Reproduit / est reproduit EXEMPLAIRE 1,1 - NUMERO - DATE_ACHAT - PRIX - CODE_PRET - ETAT MOT_CLEF - MOT 0,n Caractérise / Est caractérisé 0,n 0,n LIVRE - ISBN - TITRE - SIECLE - CATEGORIE Le schéma relationnel normalisé de la base exemple, dérivé du schéma conceptuel précédent, est donné ci-après. Par convention les clefs primaires sont soulignées et les clefs étrangères sont indiquées en italique. ABONNE (NUM_AB, NOM, PRENOM, VILLE, AGE, TARIF, REDUC) EXEMPLAIRE (NUMERO, DATE_ACHAT, PRIX, CODE_PRET, ETAT, ISBN) LIVRE (ISBN, TITRE, SIECLE, CATEGORIE) MOT_CLEF (MOT) EMPRUNT (NUM_AB, NUM_EX, D_EMPRUNT, D_RETOUR, D_RET_REEL, NB_RELANCE) CARACTERISE (ISBN, MOT) Remarques : Les attributs NUM_EX dans EMPRUNT et NUMERO dans EXEMPLAIRE représentent le numéro identifiant un exemplaire de livre. Le domaine D_MOT est un sur-ensemble de D_CATEGORIE. Au niveau des valeurs saisies dans la BD, Oracle fait une distinction entre minuscules et majuscules. Par contre les mots clefs SQL, les noms d attributs ou de relations peuvent être indifféremment tapés en majuscules ou minuscules. Par convention, toutes les données déjà saisies dans la BD BIBLIO l ont été en majuscules!! Étape préliminaire : Connexion et mise en place de la base de données Vous disposez tous d un compte oracle avec login (prenom.nom) et mot de passe ( oracle, à changer à la première connexion). La connexion à Oracle se fait soit selon trois méthodes possibles décrites dans le fichier connexionoracle.pdf Une fois la connexion établie, vous devez mettre en place le schéma de la base et insérer les n- uplets dans les tables en exécutant les fichiers http ://www.lirmm.fr/ laurent/polytech/creation.sql et http ://www.lirmm.fr/ laurent/polytech/remplissage.sql N hésitez pas à étudier le contenu de ces deux fichiers! 2

Première étape : Expression des projections et sélections Q1 Quels sont les nom, prénom des abonnés domiciliés à Montpellier? Q2 Donnez toutes les informations sur les exemplaires dont le code de prêt est : EMPRUNTABLE Q3 Donnez la liste des ouvrages (leur numéro ISBN, titre et catégorie), dont le titre inclut le mot ROSE, triée par ordre décroissant de numéro. Q4 Donnez la liste des livres (leur titre et catégorie) de toutes les catégories sauf Médecine, Sciences et Loisirs. Cette liste sera donnée triée par ordre alphabétique selon la catégorie. Q5 Donnez toutes les informations sur les emprunts pour lesquels la date de retour effective (attribut D_RET_REEL) n est pas renseignée dans la BD. Deuxième étape : Expression des jointures Formulez les requètes suivantes en préférant la forme prédicative chaque fois que possible. Q6 Donnez, pour l abonné Jean Dupont, la liste des exemplaires empruntés (leur numéro et la date d emprunt), par ordre croissant de date d emprunt. Q7 Donnez la liste des exemplaires empruntés (leur numéro, code prêt et état) du livre de titre LE MUR. Q8 Donnez la liste des exemplaires (leur numéro, code prêt et le titre du livre associé) d un livre caractérisé par le mot clef INFORMATIQUE. Q9 Quels sont les exemplaires (numéro) reproduisant le même livre que l exemplaire de numéro 4112 et dont l état est : BON? Q10 Quels sont les abonnés (numéro et nom) ayant emprunté un exemplaire du livre LE MUR? Q11 Existe-t-il une catégorie pour laquelle aucun livre n a été emprunté? Troisième étape : Formulation de calculs horizontaux et verticaux Q12 Combien y a-t-il d abonnés actuellement saisis dans la base? Q13 Quel est le nombre d emprunt en cours de l abonné Renard Albert? Q14 Par combien d abonné le livre LE MIRACLE DE LA ROSE a-t-il été emprunté (tous exemplaires confondus)? Q15 Donnez le prix d achat moyen des exemplaires de roman. Q16 Pour tous les abonnés (numéro, nom) bénéficiant d une réduction, donnez le montant effectivement payé pour l abonnement, uniquement s il est inférieur à 200 F et en tenant compte de la possibilité d avoir des valeurs manquantes pour les différents attributs concernés. Q17 Quel est le tarif d abonnement le plus faible? Q18 Quels sont les abonnés (numéro et nom) bénéficiant du tarif le plus faible? Q19 Quelle est la catégorie de livres pour laquelle l exemplaire le plus cher a été acheté? Quatrième étape : Utilisation des opérateurs ensemblistes Formulez ces requêtes en utilisant au moins un des opérateurs ensemblistes. Q20 Quels sont les titres des livres indexés par un mot clef correspondant à leur catégorie? Q21 Existe-t-il des exemplaires dans l état Abimé et qui sont actuellement empruntés? Si oui, donnez leur numéro. Q22 Existe-t-il des mots clefs ne caractérisant aucun livre? Q23 Donnez le numéro et nom des abonnés relancés pour un emprunt en cours, ainsi que ceux des abonnés de moins de 16 ans. 3

Environnement de travail SQLplus Avant toute opération, veuillez exécuter le fichier suivant : source alaurent/env_oracle10g Appel de SQLplus sqlplus login/mdp Sortie de SQLplus exit Aide help Cette commande peut être utilisée suivie d un mot clef sql pour obtenir une aide spécifique sur cette instruction. Pour connaitre la structure d une relation : desc nom_relation Commentaires Ils doivent être encadrés de /* et */ (sur plusieurs lignes) ou et (pour une seule ligne). Editeur d Oracle Une commande SQL est mémorisée dans un buffer de travail. Il est possible de la modifier, de la stocker ou de l exécuter. l ln n c/ch1/ch2 i del Liste les lignes de la commande Affiche la ligne n la ligne courante devient la ligne n Changement de la chaîne ch1 par chaîne ch2 dans la ligne courante Insertion après la ligne courante Suppression de la ligne courante Exécution d une commande SQLplus Une commande SQLplus est exécutée par : ; à la fin de la dernière ligne de commande / seul sur la dernière ligne de commande Appel d une commande Unix host commande_unix ou! commande_unix Néanmoins, il vous est conseillé d utiliser l éditeur de votre choix, de sauvegarder vos requêtes terminées par ; et avec comme dernière ligne uniquement / (attention, ce n est pas toujours nécessaire selon l éditeur) dans des fichiers avec extension.sql Puis, vous pouvez au niveau de l éditeur SQLplus utiliser les commandes suivantes @ nom_fichier run Chargement et exécution sans affichage de la commande Exécute le contenu du buffer Vous pouvez utiliser emacs ou xemacs puis partager la fenêtre en deux (Ctrl X puis 2), exécuter un shell dans l une des deux fenêtres (Echap X puis shell), l autre étant dédiée à l écriture des requêtes, puis lancer sqlplus / L intérêt d utiliser cette fenêtre est l accès aux commandes précédentes en utilisant les touches Ctrl plus Flèche (haut et bas). 4

Contenu des tables La relation Abonne 901001, LEVEQUE, PIERRE, MONTPELLIER,40,500,NULL 902043, DUPONT, MARIE, MONTPELLIER,20,200,20 902075, RENARD, ALBERT, MONTPELLIER,18,200,NULL 911007, MARTIN, LOIC, BEZIER,35,500,20 911021, DUPONT, ANTOINE, MONTPELLIER,38,500,NULL 911022, DUPONT, SYLVIE, MONTPELLIER,35,500,NULL 911023, DUPONT, JEAN, MONTPELLIER,22,200,20 922016, MEUNIER, LUC, MONTPELLIER,14,100,NULL 921102, LUCAS, PAUL, MONTPELLIER,48,500,20 922143, REVEST, ANNIE, MONTPELLIER,12,100,NULL 932010, ANTON, JEANNE, MONTPELLIER,10,100,NULL La relation Livre 1_104_1050_2, LE MUR,20, NOUVELLE 0_15_270500_3, LE MIRACLE DE LA ROSE,20, ROMAN 0_85_4107_3, L ENFANT,19, ROMAN 0_112_3785_5, POESIES COMPLETES, 15, POEME 0_201_14439_5, AN INTRODUCTION TO DATABASE SYSTEMS,20, SCIENCES 0_12_27550_2, NEW APPLICATIONS OF DATABASES,20, SCIENCES 0_8_7707_2, BASES DE DONNEES RELATIONNELLES,20, SCIENCES 1_22_1721_3, LE NOM DE LA ROSE,20, ROMAN 3_505_13700_5, LE GRAND VESTIAIRE,20, ROMAN 0_18_47892_2, UNE ROSE POUR MORRISSON,20, ROMAN 9_782070_36, LA PERLE,20, ROMAN 2_7296_0040, GODEL ESCHER BACH : LES BRINS D UNE GUIRLANDE,20,NULL 0_26_28079_6, OBJET, DE MERISE A C++,20, SCIENCES La relation Mot_clef LITTERATURE, ROMAN, POESIE, SCIENCES, INFORMATIQUE, BASES DE DONNEES, HISTOIRE, ESSAI, NOUVELLE, MEDECINE La relation Caracterise 1_104_1050_2, LITTERATURE 0_15_270500_3, LITTERATURE 0_15_270500_3, ROMAN 0_85_4107_3, LITTERATURE 0_85_4107_3, ROMAN 0_112_3785_5, LITTERATURE 0_112_3785_5, POESIE 0_201_14439_5, SCIENCES 0_201_14439_5, INFORMATIQUE 0_201_14439_5, BASES DE DONNEES 0_12_27550_2, SCIENCES 0_12_27550_2, INFORMATIQUE 0_8_7707_2, SCIENCES 0_8_7707_2, INFORMATIQUE 0_8_7707_2, BASES DE DONNEES 1_22_1721_3, ROMAN 1_22_1721_3, HISTOIRE 3_505_13700_5, LITTERATURE 3_505_13700_5, ROMAN 0_26_28079_6, SCIENCES 0_26_28079_6, INFORMATIQUE 0_26_28079_6, BASES DE DONNEES 5

La relation Exemplaire 1010, 10-04-1995,55, EMPRUNTABLE, BON, 0_18_47892_2 1011, 10-04-1995,55, EMPRUNTABLE, BON, 0_18_47892_2 1012, 20-05-1995,112, EMPRUNTABLE, BON, 3_505_13700_5 2909, 30-03-1993,35, EMPRUNTABLE, BON, 3_505_13700_5 2673, 15-03-1992,42, EMPRUNTABLE, ABIME, 3_505_13700_5 2710, 20-06-1994,270, CONSULTABLE, BON, 0_8_7707_2 2711, 20-06-1994,270, EMPRUNTABLE, BON, 0_8_7707_2 3014, 15-09-1993,420, CONSULTABLE, BON, 0_201_14439_5 3016, 15-09-1993,420, EMPRUNTABLE, BON, 0_201_14439_5 3702, 20-02-1992,210, EMPRUNTABLE, BON, 1_22_1721_3 3703, 20-02-1992,210, CONSULTABLE, BON, 1_22_1721_3 4111, 03-01-2000,48, EMPRUNTABLE, BON, 1_22_1721_3 4112, 03-01-2000,48, EXCLU, BON, 1_22_1721_3 4203, 29-11-1992,35, EMPRUNTABLE, BON, 1_104_1050_2 4204, 29-11-1992,35, EMPRUNTABLE, ABIME, 1_104_1050_2 5003, 10-06-1993,39, EMPRUNTABLE, BON, 1_104_1050_2 5004, 10-06-1993,41, EMPRUNTABLE, BON, 0_15_270500_3 5005, 10-06-1993,41, EMPRUNTABLE, BON, 0_15_270500_3 5103, 20-12-1993,470, CONSULTABLE, BON, 0_12_27550_2 5104, 20-12-1993,470, EMPRUNTABLE, BON, 0_12_27550_2 6006, 15-12-2000,33, EMPRUNTABLE, BON, 0_85_4107_3 6007, 15-12-2000,33, EMPRUNTABLE, BON, 0_85_4107_3 5202, 18-10-1997,40, EMPRUNTABLE, BON, 0_18_47892_2 7000, 01-09-1987,420, CONSULTABLE, BON, 2_7296_0040 7001, 01-09-1987,420, EMPRUNTABLE, BON, 2_7296_0040 7002, 01-09-1987,420, EXCLU, BON, 2_7296_0040 1090, 23-11-1995,150, EXCLU, ABIME, 9_782070_36 1091, 23-11-1995,150, CONSULTABLE, EN_REPARATION, 9_782070_36 1109, 30-05-1999,170, EMPRUNTABLE, BON, 9_782070_36 La relation Emprunt 911023,5003, 10-03-2003, 30-03-2003, 30-03-2003,NULL 911023,5005, 30-03-2003, 15-04-2003, 10-04-2003,NULL 911023,1012, 30-03-2003, 15-04-2003, 10-04-2003,NULL 911023,5103, 17-06-2003, 30-06-2003, 20-07-2003,1 901001,4203, 03-01-2002, 18-01-2002, 18-01-2002,NULL 901001,5005, 03-01-2002, 18-01-2002, 18-01-2002,NULL 911007,4203, 25-02-2002, 08-03-2002, 25-03-2002,1 911007,1010, 13-05-2002, 31-05-2002, 31-05-2002,NULL 921102,4204, 08-08-2003, 22-08-2003, 30-08-2003,NULL 921102,5005, 08-08-2003, 22-08-2003, 30-08-2003,NULL 911021,5004, 10-12-2003, 30-12-2003, 28-12-2003,NULL 911007,5004, 20-07-2003, 10-08-2003, 10-08-2003,NULL 911007,4204, 19-01-2003, 10-02-2003,NULL,1 911007,2673, 10-12-2003, 30-12-2003, 28-12-2003,NULL 902075,2673, 15-02-2003, 28-02-2003,NULL,NULL 902075,1010, 05-01-2003, 25-01-2003,NULL,1 921102,6006, 20-12-2003, 10-01-2003,NULL,2 911023,6007, 22-12-2003, 12-01-2003, 13-01-2003,NULL 902043,7001, 15-09-2001, 09-10-2001, 10-10-2001,NULL 902043,3014, 01-10-2001, 21-10-2001, 20-11-2001,2 902043,3014, 01-12-2001, 20-12-2001, 20-12-2001,NULL 911023,1109, 15-09-2003, 05-10-2003, 05-11-2003,2 902043,7001, 20-11-2001, 10-12-2001, 10-12-2001, NULL 901001,7001, 30-01-2001, 20-02-2001, 18-02-2001,NULL 901001,7001, 22-05-2003, 12-06-2003, 15-06-2003,NULL 6