Série d exercices. 2 Dans notre base, un skieur peut-il avoir plusieurs spécialités?



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

Le Langage SQL version Oracle

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

Le langage SQL Rappels

Bases de données relationnelles

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

TP Contraintes - Triggers

TP Bases de données réparties

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

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

INFORMATIONS IMPORTANTES

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

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

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

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

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

Le Langage De Description De Données(LDD)

Introduction au Système de Gestion de Base de Données et aux Base de Données

Plan de formation : Certification OCA Oracle 11g. Les administrateurs de base de données (DBA) Oracle gèrent les systèmes informatiques

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

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

Compétences Business Objects

1 Introduction et installation

SQL Serveur Programme de formation. France Belgique Suisse - Canada. Formez vos salariés pour optimiser la productivité de votre entreprise

Auto-évaluation Oracle: cours de base

Gestion des utilisateurs et de leurs droits

Bases de données cours 4 Construction de requêtes en SQL. Catalin Dima

1. Introduction Création d'une requête...2

Les bases de données

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

INTRODUCTION AU DATA MINING

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

Dossier I Découverte de Base d Open Office

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

I/ Présentation. On considère une BD CIRQUE dont le schema conceptuel : PERSONNEL _CIRQUE (NOM, ROLE) ;

Du 10 Fév. au 14 Mars 2014

BTS ASSISTANT DE MANAGER FINALITÉ 2 SOUTIEN À L INFORMATION

Construction d un EDD avec SQL 2008 R2. D. Ploix - M2 Miage - EDD - Création

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

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

Évaluation et optimisation de requêtes

Thème : Gestion commerciale

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

La présente publication est protégée par les droits d auteur. Tous droits réservés.

Bases de données avancées Introduction

Utiliser Access ou Excel pour gérer vos données

TD n 10 : Ma première Base de Données

TP Administration Oracle

Utilisation d Hyperplanning 2011

V- Manipulations de nombres en binaire

CREATION WEB DYNAMIQUE

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

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

A QUOI SERVENT LES BASES DE DONNÉES?

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

Présentation du module Base de données spatio-temporelles

COMPRENDRE LES DIFFERENTS TYPES DE CONNEXION LORS DE LA

Bases de données. Yamine AIT AMEUR. INPT-ENSEEIHT DIMA 2 Rue Charles Camichel Toulouse Cedex 7

Encryptions, compression et partitionnement des données

LES TYPES DE DONNÉES DU LANGAGE PASCAL

TP 8: LES OPERATEURS ENSEMBLISTES

Olivier Mondet

Organisation Gestion du temps. Participation Notes et résumés Etudes et examens

Devoir Data WareHouse

16H Cours / 18H TD / 20H TP

BUSINESS INTELLIGENCE

I. MySQL : Serveur et SGBD

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

TP3 : Creation de tables 1 seance

PHP 4 PARTIE : BASE DE DONNEES

Cours Bases de données 2ème année IUT

MYXTRACTION La Business Intelligence en temps réel

Probabilités. Une urne contient 3 billes vertes et 5 billes rouges toutes indiscernables au toucher.

Introduction aux Bases de Données

Cours Bases de données

Notes de cours : bases de données distribuées et repliquées

Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services

SQL Historique

Durée : 4 heures coefficient : 4 Le sujet se présente sous la forme de deux dossiers indépendants

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

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

Bases de données Cours 4 : Le langage SQL pour ORACLE

CATALOGUE DE FORMATIONS BUSINESS INTELLIGENCE. Edition 2012

Bases de Données. Plan

Master Exploration Informatique des données DataWareHouse

Durée : 4 heures Le sujet se présente sous la forme de deux dossiers indépendants

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Information utiles. webpage : Google+ : digiusto/

GUIDE D ACCUEIL DESTINE AUX ETUDIANTS ETRANGERS ACCUEILLIS EN PROGRAMME D ECHANGE ANNEE UNIVERSITAIRE

Présentation du PL/SQL

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

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

Statistiques II. Alexandre Caboussat Classe : Mardi 11h15-13h00 Salle : C110.

Pour les débutants. langage de définition des données

LE FORFAIT FRANÇAIS TOUJOURS LE MOINS CHER AU MONDE

Transcription:

Série d exercices Modèle relationnel, clés et contraintes Exercice 1 : Utilisation d une base de données, la base «ski» 1 Combien y a-t-il de tables dans la base? donner leur nom. 2 Quels sont les attributs décrivant une station? un skieur? 3 Combien y a-t-il de skieurs connus? de compétitions? 4 Donner le classement de la compétition «comp2», en indiquant la station d'origine de chaque coureur. 5 Indiquer l'altitude de la station où se déroulent les compétitions 3 et 4. Exercice 2 : Contraintes d intégrité 1 Que suffit-il de connaître pour retrouver toutes les informations existantes à propos d'une compétition? Même question pour un skieur et une station. Placer les clés primaires de ces trois tables. 2 Dans notre base, un skieur peut-il avoir plusieurs spécialités? 3 Dans la table «classement», combien y a-t-il de lignes correspondant aux compétitions «compl», «comp3» et «comp6»? Est-ce que «refcomp» peut être utilisé comme clé? Quelle est la clé de cette table? 4 Parmi les dépendances fonctionnelles suivantes, indiquer celles qui sont fausses : (a) nomski nomstat (b) nomski, nomstat altstat (c) refcomp nomski (d) refcomp nomstat (e) nomstat refcomp (f) refcomp, nomski rang (g) refcomp, rang nomski 5 Indiquer quelles sont les clés étrangères présentes dans les différentes tables 6 Ecrire le schéma relationnel de la base SKI 7 Peut-on insérer les lignes suivantes dans la base (pour chaque réponse «non», déterminer ce qu'il faut éventuellement faire pour rendre l'insertion possible)? (a) comp3 11/03/2006 chamonix dans «competition» (b) comp10 11/03/2006 chamonix dans «competition» (c) dupont descente meribel dans «skieur» (d) compl0 27/02/2006 aussois dans «competition» (e) comp9 pascal 3 dans «classement» (f) comp9 dupont 4 dans «classement» (i) comp12 10/03/2006 val d isere dans «competition» (j) clark descente garmisch dans «skieur» (k) comp35 pascal 43 dans «classement» 1

8 Peut-on insérer les lignes suivantes dans la base? Quelles contraintes sur les valeurs faut-il ajouter pour éviter les cas absurdes? (a) pralognan -250 france 0 dans «station». (b) pralognan 1250 france NULL dans «station». (c) pralognan 1250 NULL -6000 dans «station» (d) comp12 32/01/2006 wengen dans «compétition». (e) comp6 suchet 0 dans «classement» Algèbre relationnelle Exercice 3 : écrire les requêtes suivantes en utilisant l'algèbre relationnelle 1 Donner la liste des stations connues. 2 Donner la liste des stations où une compétition a été organisée. 3 Donner la liste des spécialistes de descente originaires de val d isère. 4 Donner la liste des stations françaises avec toutes leurs caractéristiques. 5 Donner la liste des stations d'altitude > 1800 mètres. 6 Donner le classement de la compétition «comp2». 7 Donner la liste des compétitions se déroulant à «val d isère». 8 Donner la liste des compétitions où «kostelic» a été classée dans les 3 premières places. 9 Donner la liste des skieurs qui ont été au moins une fois classé au delà de la cinquième place. 10 Donner la liste des compétitions auxquelles a participé «jacquemod». Exercice 4 : écrire les requêtes suivantes en algèbre relationnelle 1 Liste des skieurs spécialistes de slalom, stations d'origine, pays et altitude. 2 Référence, date et pays de toutes les compétitions. 3 Liste des stations dont est originaire au moins un skieur et où a été organisée au moins une compétition. 4 Pays où kostelic a remporté une ou des victoires. 5 Liste des victoires (date, nom de la station et nom de la skieuse) des skieuses françaises 6 Liste des stations françaises qui n'ont pas organisé de compétitions. 7 Skieurs ayant été classés dans les 5 premiers dans une compétition dans leur station d'origine. 8 Skieurs qui n'ont jamais été classés dans les trois premiers. 9 Skieurs qui ont été classés dans les trois premiers à la fois à «compl» et «comp2». 10 Skieurs toujours classés dans les trois premiers. SQL Requêtes de base Connexion à Oracle : Utiliser SQL*Plus ou SQL Tools SQL*Plus : Nom utilisateur : [login windows] Mot de passe : [mdp initial] Chaîne hôte : infodb Changement du mot de passe : Alter user [login] identified by [nouveau mot de passe] Variables d environnement : Set pagesize 40 : formate la sortie par blocs de 40 lignes Set linesize 100 : formate la sortie par ligne de 100 caractères 2

Exercice 5 : écrire en SQL les requêtes suivantes. 1 Donner la liste des stations connues. 2 Donner la liste des stations où une compétition a été organisée. 3 Donner la liste des skieurs dont le nom commence par la lettre s. 4 Donner la liste des stations françaises avec toutes leurs caractéristiques. 5 Donner la liste des stations d'altitude > 1800 mètres. 6 Donner le classement de la compétition «comp2». 7 Donner la liste des compétitions se déroulant à «val d isère». 8 Liste des compétitions où «kostelic» a été classée dans les 3 premières places. 9 Donner l'altitude (arrondie à la centaine de mètres) et la capacité (en centaine de lits) de toutes les stations 10 Donner la liste triée par rang des compétitions auxquelles a participé «jacquemod». Exercice 6 : écrire en SQL les requêtes suivantes (jointures). 1 Calendrier des compétitions (date, station et pays) 2 Palmarès de kostelic (date, lieu et rang) 3 Liste des skieurs spécialistes de slalom (stations d'origine, pays et altitude). 4 Liste de tous les skieurs avec éventuellement leur station et pays d origine 5 Liste des stations françaises ayant organisé au moins une compétition 6 Pays où kostelic a remporté une ou des victoires. 7 Liste des victoires (date, nom de la station et nom de la skieuse) des skieuses françaises 8 Liste des skieuses qui ont la même spécialité que «clark». 9 Skieurs ayant gagné une compétition dans leur pays d'origine. 10 Altitude des stations où ont lieu des épreuves en janvier 2006 Exercice 7 : écrire à l aide d opérateurs ensemblistes les requêtes suivantes. 1 Liste des stations dont est originaire au moins un skieur et où a été organisée au moins une compétition. 2 Liste des stations françaises qui n'ont pas organisé de compétitions. 3 Skieurs qui n'ont jamais été classés dans les trois premiers. 4 Skieurs qui ont toujours été classés dans les 3 premiers 5 Skieurs qui ont été classés dans les trois premiers à la fois à 'comp3' et 'comp4'. 6 Liste des stations dont aucun skieur n est originaire. 7 Liste des compétitions où il y a moins de 10 skieurs classés 8 Liste des compétitions auxquelles n a pas participé «kostelic» 9 Liste des stations où jacquemot est arrivée à la première place ou bien suchet est arrivées dans les 3 premières places Exercice 8 : écrire en SQL les requêtes suivantes (fonctions d agrégation, group by, having) 1 compter le nombre de compétitions organisées à val d isere. 2 donner la capacité moyenne des stations françaises. 3 Donner le classement moyen, mini et maxi de la skieuse kostelic. 4 Pour chaque pays, indiquer le nombre de skieuses qui en sont originaires. Trier la liste par nombre de skieuses décroissant. 5 Liste des pays qui ont accueilli au moins 2 compétitions. 6 Liste des skieurs figurant au moins 2 fois dans les 3 premiers classés d une compétition. 7 Pour chaque pays d origine des skieuses, le meilleur et le moins bon résultat 8 donner le nombre de skieurs pour chaque station d'altitude >=1800. 3

9 donner le nombre de victoires pour chaque skieur. 10 donner le nombre de stations où ont lieu les compétitions Exercice 9 : écrire en SQL les requêtes suivantes (sous-requêtes) 1 Donner le nom du pays qui a remporté le plus de compétitions 2 donner la liste des pays pour lesquels il y a au moins une compétition où plus de 3 skieuses de ce pays ont été classées 3 Liste des stations dont l altitude correspond à l altitude moyenne de l ensemble des stations + ou 200 mètres. 4 Donner la liste des skieuses qui sont toujours derrière «kostelic» dans les classements Exercice 10 : écrire en SQL les requêtes suivantes 1 liste des compétitions ayant eu lieu en 2006. 2 Quel est l intervalle de temps (nombre de jours) entre comp1 et comp9? 3 Liste des compétitions qui ont lieu après celle de «chamonix» 4 Afficher les dates de compétition au format : «mercredi 28 juin 2006» 5 Afficher les heures : minutes de la date système (Select From dual ; 6 Afficher le jour de votre naissance (lundi, ) 7 Afficher les compétitions qui ont lieu un lundi, un mardi. 8 Afficher les noms des skieurs, la longueur en caractères et les 5 premiers caractères des noms 9 Afficher la liste des skieurs et leurs spécialités où l on remplace la souschaîne os par i 10 Créer une vue qui donne pour chaque compétition la date, la station et le jour de la semaine où elle se déroule 11 Utiliser la vue précédente pour afficher les compétitions qui ont lieu en France un dimanche 12 Construire une vue avec toutes les skieuses, leur station d origine et leur meilleure performance 13 En utilisant la vue créée précédemment donner la liste des stations françaises d où est originaire une skieuse classée au moins une fois dans les 5 premières places. Exercice 11 : Approche des tables «système» 1 Donner le nombre exact de tables «système». 2 Donner le nombre de colonnes de la table USER_TABLES 3 Décrire en français les principales colonnes de la table USER_TABLES 4 Rechercher toutes les tables portant le nom SKIEUR auxquelles vous avez accès, donner le nom de leur propriétaire 5 A quoi sert la table ALL_CONSTRAINTS? 6 Lister toutes les contraintes liées à la table BELLALEM.SKIEUR, indiquer de quel type de contraintes il s agit 7 Donner le nom des contraintes qui indiquent que la colonne nomstat de la table skieur est une clé étrangère SQL création et mise à jour Exercice 12 : Création d une base 1 Créer la table skieur(nomski,specialite,nomstat) avec comme contrainte : la specialité doit appartenir à la liste (descente, slalom, superg, slalom geant). Les types seront les mêmes que ceux de la table bellalem.skieur. 4

Attention à penser à détruire le synonyme (drop synonym skieur) s il existe 2 Remplir la table skieur avec les données de la table bellalem.skieur 3 Créer les 3 tables classement, station et competition à partir des tables utilisées dans les exercices précédents 4 Ajouter les contraintes de clé primaire et étrangère aux tables créées précédemment classement, station et competition. Exercice 13 : mise à jour de données. Écrire les requêtes (ou suites de requêtes) correspondant aux mises à jour suivantes: 1 insérer une nouvelle compétition se déroulant à bormio. 2 insérer la skieuse paerson, originaire de Solden dans la base. 3 créer une table t_temp(refcomp, datcomp, nomski), puis la remplir avec la liste des compétitions s'étant déroulées à val d isere, avec leur vainqueur. 4 supprimer dans cette dernière table les compétions dont le vainqueur n'est pas originaire d une station française. 5 supprimer toutes les lignes de cette table. 6 pour la compétition comp1, insérer la skieuse paerson en lère position et décaler les autres. 7 Ajouter une colonne points (number(4)) à la table classement. Vous définissez une CI qui limite les valeurs possibles entre 0 et 5. 8 Pour chaque ligne de la table classement, vous valorisez la colonne points selon la règle suivante: rang points 1 5 2 3 3 1 9 Créer une table qui contiendra le nom du skieur et le cumul des points obtenus aux différentes compétitions (à partir de la table classement). 10 Afficher le classement des skieurs à partir de la table précédente. 11 Créer un nouveau skieur + 2 lignes dans table classement pour ce skieur a) essayer de supprimer le skieur précédemment créé (qu est-ce qui se passe?) b) faire en sorte qu'on puisse supprimer un skieur et que les lignes correspondantes dans la table classement soient automatiquement supprimées. 5

Base SKI SQL> select * from skieur order by nomski; NOMSKI SPECIALITE NOMSTAT clark descente NULL ertl superg garmisch jacquemod descente val d'isere kostelic slalom maribor montillet descente villard de lans nef descente wengen pascal slalom praloup pequegnot NULL alpe d'huez schneider slalom solden suchet superg les menuires 10 ligne(s) sélectionnée(s). SQL> select * from station order by nomstat; NOMSTAT ALTSTAT PAYSTAT CAPSTAT alpe d'huez 1860 france 32000 bormio 1225 italie 15000 chamonix 1035 france 35000 garmisch 750 Allemagne 10000 kitzbuhel 700 autriche 15000 les menuires 1850 france 26800 maribor 270 slovenie 20000 meribel 1450 france 36300 park city 2200 usa 20000 praloup 1500 france 15000 sestriere 2035 italie 25000 solden 1377 autriche 15000 tignes 1800 france 27000 val d'isere 1850 france 29567 villard de lans 1050 france 3500 wengen 1300 suisse 5500 16 ligne(s) sélectionnée(s). SQL> select * from competition; REFCOMP DATCOMP NOMSTAT comp1 26/10/05 solden comp2 22/11/05 park city comp3 13/12/05 val d'isere comp4 14/12/05 val d'isere comp5 28/12/05 bormio comp6 10/01/06 chamonix comp7 17/01/06 wengen comp8 31/01/06 garmisch comp9 11/03/06 sestriere 9 ligne(s) sélectionnée(s). 6

SQL> select * from classement order by refcomp,rang; REFCOMP NOMSKI RANG comp1 suchet 1 comp1 clark 2 comp1 pascal 3 comp1 ertl 4 comp1 kostelic 5 comp1 schneider 6 comp1 montillet 7 comp1 pequegnot 8 comp1 jacquemod 9 comp2 jacquemod 1 comp2 kostelic 2 comp2 pascal 3 comp2 nef 4 comp2 clark 5 comp2 schneider 6 comp3 montillet 1 comp3 ertl 2 comp3 pascal 3 comp3 kostelic 4 comp3 pequegnot 5 comp3 jacquemod 6 comp4 kostelic 1 comp4 clark 2 comp4 pascal 3 comp4 ertl 4 comp4 nef 5 comp4 schneider 6 comp4 suchet 7 comp4 jacquemod 8 comp4 pequegnot 9 comp4 montillet 10 comp5 ertl 1 comp5 kostelic 2 comp5 clark 3 comp5 jacquemod 4 comp6 pascal 1 comp6 ertl 2 comp6 clark 3 comp6 kostelic 4 comp6 nef 5 comp6 schneider 6 comp6 jacquemod 7 comp7 jacquemod 1 comp7 suchet 2 comp7 pascal 3 comp8 jacquemod 1 comp8 nef 2 comp8 kostelic 3 comp9 kostelic 1 comp9 nef 2 comp9 jacquemod 3 51 ligne(s) sélectionnée(s). 7