LIF4 - TD9 Requêtes SQL Correction



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

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

Langage SQL : créer et interroger une base

Le langage SQL Rappels

1 Introduction et installation

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

25/01/05 TD Entrepôt de données IHS / Master ICA

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

Les bases 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

16H Cours / 18H TD / 20H TP

Systèmes de Gestion de Bases de Données

Bases de données relationnelles

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

Évaluation et optimisation de requêtes

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

A QUOI SERVENT LES BASES DE DONNÉES?

Groupe 11 TABLE DES MATIERES

Introduction aux Bases de Données 2004/2005

SQL Historique

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

Bases de données avancées Introduction

Devoir Data WareHouse

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

Cours 4 : Agrégats et GROUP BY

INTRODUCTION AU DATA MINING

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

I4 : Bases de Données

BTS/CGO P10 SYSTEME INFORMATION Année

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

Année Universitaire 2009/2010 Session 2 de Printemps

Bases de données. PTSI Lycée Eiffel. 28 février 2014

comptable cours & Applications François Cartier Gep Éditions / Eyrolles Éducation, 2013 ISBN :

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

Vincent Augusto

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

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

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

Le Langage SQL version Oracle

Guide pratique : Les coûts d emprunt d argent

Modèle Entité-Association. C est un modèle important pour la conception des bases de données relationnelles. Il

FileMaker 13. Guide de référence SQL

SQL Server et Active Directory

L éducation financière. Manuel du participant Les notions de base du crédit

Bases de données élémentaires Maude Manouvrier

TP Bases de données réparties

Bases de données et sites WEB

Cours SQL. Base du langage SQL et des bases de données

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

Optimisation SQL. Quelques règles de bases

.../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.

TP 8: LES OPERATEURS ENSEMBLISTES

MySQL / SQL EXEMPLES

PHP 5. La base de données MySql. A. Belaïd 1

Prénom : MATHÉMATIQUES. 120 minutes Compas, règle métrique, rapporteur, équerre, calculatrice non programmable

Analyse Financière Les ratios

2. Cliquez Contact Directory of Public Administration. 5. Tapez le mot de passe - Hello (pour OFPA). Changez le mot de passe en cas de

UE8 Systèmes d information de gestion Corrigé indicatif

Sommaire. I.1 : Alimentation à partir d un fichier Access (.mdb)...2

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

BAREME sur 40 points. Informatique - session 2 - Master de psychologie 2006/2007

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

Principe d optimisation. Optimisation technico-économique. Coût. Isolation thermique. Isolation optimale

Intégrité des données

Logistique, Transports

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

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

TP2_1 DE BUSINESS INTELLIGENCE ISIMA ZZ3 F3

MODE OPERATOIRE OPENOFFICE BASE

Nom Prénom :... Mon livret de stage

Rencontres Marché Retail

Bases de Données OLAP

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

ÉVALUATION EN FIN DE CM1. Année scolaire LIVRET DE L'ÉLÈVE MATHÉMATIQUES

Bases de données - Modèle relationnel

HiDA Fiche 1. Je crois que ça va pas être possible ZEBDA. Leçon EC1 - Les valeurs, principes et symboles de la république

Olivier Mondet

Mysql avec EasyPhp. 1 er mars 2006

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

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

Pascale Borla-Salamet Consultante Avant Vente Oracle France. Oracle Exadata Performance et Optimisation de votre Datawarehouse

Le revenu et le pouvoir d achat

Monnaie. Options de paiement Il y a différentes façons de paiement pour les produits et services en Estonie:

SQL Server ressource SOMMAIRE

Ce rêve est devenu réalité.

Quel système d équations traduit cette situation? x : la hauteur du rectangle. y : l aire du rectangle. C) y = 4x + 25.

CORRIGÉ GEDOC SA. Proposition de barème sur 70 points

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

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

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

Bases de données multidimensionnelles et mise en œuvre dans Oracle

Déclaration d opérations douteuses

Le Langage De Description De Données(LDD)

INFO 364 : Bases de Données Projet Professeur : Esteban Zimányi Assistants : Pierre Stadnik et Mohammed Minout Année Académique :

Comment Créer une Base de Données Ab Initio

L objet de cet article est de présenter succinctement ces possibilités.

Administration de Bases de Données : Optimisation

Transcription:

LIF4 - TD9 Requêtes SQL Correction Exercice 1: On considère une entreprise de ventes de voitures. Un modèle de voiture est décrit par une marque, une déination. Une voiture est identifiée par un numéro de série, et a un modèle, une couleur et un prix affiché et un coût (prix auquel la voiture est revenue). Des clients, on connaît le, le pré et l adresse. Parmi les clients, on trouve les anciens propriétaires des voitures d occasion, ainsi que les personnes ayant acheté une voiture au magasin. Lorsqu une vente est réalisée, on en connaît le vendeur (dont on connaît le, le pré, l adresse et le salaire fixe) et le prix d achat réel (en tenant compte d un rabais éventuel). Chaque vendeur touche une prime de 5% de la différence entre le prix d achat affiché et le coût de la voiture. L entreprise est répartie sur un certain bre de magasins et chaque vendeur opère dans un magasin unique. Chaque voiture est, ou à été, stockée dans certains magasins et est vendue dans le dernier magasin où elle a été stockée. On garde trace des dates d arrivée dans et de départ des magasins. Un transfert de voiture entre deux magasins se fait dans la journée. 1. Donner un diagramme Entité/Association pour représenter ces données Modele marque déination modele_de vends 1,n 0,1 Voiture numserie couleur prix cout 1,n Arrivée date 0,1 vendue Vente date prixachat numero achete Client pre adresse dans effectue Magasin 1,n estdans Vendeur pré adresse salairefixe 2. Donner un schéma de base de données correspondant à ce diagramme Voiture(numserie, couleur, prix, cout, marque, modele,p?,prep?) Arrivee(numserie,date,magasin) Client(,pre,adresse) Vendeur(,pre,adresse,salairefixe,magasin) Vente(numero,date,prixachat,numserie,a,prea,v,prev) 3. Écrire les requêtes suivantes en SQL: 1

(a) Donner la liste des voitures (numéro) vendues après le 15 avril 2007. SELECT Voiture.numserie FROM Voiture, Vente AND date > 2007-04-15 (b) Donner la voiture qui rapporté le plus d argent. SELECT Voiture.numserie AND prixachat-cout >= ALL (SELECT prixachat-cout ) (c) Donner le vendeur ayant accordé le plus gros rabais. SELECT v, prev AND prix-prixachat >= ALL (SELECT prix-prixachat ) (d) Les bénéfices de chaque magasin pour le mois de janvier 2007. SELECT magasin, SUM(benef) as benefice FROM (SELECT,pre,magasin, SUM(prixachat-cout-0.5*(prix-cout))-salaire as benef,vendeur AND v = AND prev = pre AND date BETWEEN 2007-01-01 AND 2007-01-31 GROUP BY,pre,magasin) BeneficesVendeurs GROUP BY magasin (e) Le meilleur client (celui ayant rapporté le plus d argent à l entreprise). SELECT c,prec GROUP BY c,prec HAVING SUM(prixachat-cout-0.5*(prix-cout)) >= ALL (SELECT SUM(prixachat-cout-0.5*(prix-cout)) GROUP BY c,prec) (f) La marque pour laquelle on a accordé le plus de rabais. A faire 2

4. Écrire en algèbre relationnelle une requête pour obtenir la voiture ayant le coût le plus élevé. Donner, parmi les requêtes précédentes, celles qui peuvent être traduites en algèbre relationnelle. Requête en algèbre (les voitures moins celles ayant au moins une voiture plus chère): π numserie (V oiture) \ π numserie (σ cout<cout2 V oiture ρ cout/cout2 (π cout (V oiture))) Les requêtes a,b et c peuvent être traduites en algèbre relationnelle. Exercice 2: On considère le Schéma de la base de données CINEMA: FILM (NUMF,TITRE, GENRE, ANNEE, DUREE, BUDGET, REALISATEUR, SALAIRE REAL) DISTRIBUTION (NUMF, NUMA, ROLE, SALAIRE) PERSONNE (NUMP, PRENOM, NOM, DATENAIS) ACTEUR (NUMA, AGENT, SPECIALITE, TAILLE, POIDS) L attribut REALISATEUR de la relation FILM est l identifiant d une PERSONNE. Il en est de même pour les attributs NUMA et AGENT de la relation ACTEUR. Donner les requêtes SQL permettant de répondre aux questions suivantes. Lorsque cela est possible, on donnera également les requêtes équivalentes en calcul relationnel de n-uplets (tuples) et en algèbre relationnelle, puis on donnera un plan d exécution en utilisant l optimisation à base de règles. 1. Retrouver la liste de tous les films. SELECT * 2. Retrouver la liste des films dont la longueur dépasse 180 min. SELECT * WHERE DUREE >180 3. Donner la liste de tous les genres de film. SELECT DISTINCT GENRE 4. Donner le bre de films par genre. 3

SELECT GENRE, COUNT(*) GROUP BY GENRE 5. Trouver le/les titre(s) et l /les année(s) du/des film(s) le(s) plus long(s). SELECT TITRE, ANNEE WHERE DUREE = (SELECT MAX(DUREE) ) 6. Trouver tous les couples d acteurs, i.e., les acteurs ayant joués le Premier rôle dans un même film (sans doublons). 7. Trouver le des personnes qui ne sont ni agents, ni acteurs et ni réalisateurs. Pour les questions suivantes, proposer deux requêtes différentes : une avec des jointures et une autre avec le mot clé IN. 8. Donner le et le pré des réalisateurs qui ont joué dans au moins un de leurs propres films forme plate: SELECT DISTINCT P.PRENOM, P.NOM FROM PERSONNE P, FILM F, DISTRIBUTION D WHERE P.NUMP = F.REALISATEUR AND WHERE F.NUMF = D.NUMF AND D.NUMA = F.REALISATEUR forme imbriquée: SELECT DISTINCT PRENOM, NOM FROM PERSONNE WHERE P.NUMP IN ( SELECT REALISATEUR WHERE (REALISATEUR, NUMF) IN ( SELECT NUMA, NUMF FROM DISTRIBUTION)) 9. Quel est le total des salaires des acteurs du film Nuits blanches à Seattle. forme plate: SELECT SUM(D.SALAIRE) F, DISTRIBUTION D WHERE F.NUMF = D.NUMF AND F.TITRE = Nuits blanches à SEATLE 4

forme imbriquée: SELECT SUM(SALAIRE) FROM DISTRIBUTION WHERE NUMF IN ( SELECT NUMF WHERE TITLE="NUITS BLANCHES à SEATLE") 10. Pour chaque film de Spielberg (titre, année), donner le total des salaires des acteurs. forme plate SELECT F.TITRE, F.ANNEE, SUM(D.SALAIRE) F, DISTRIBUTION D, PERSONNE P WHERE F.NUMF = D.NUMF AND F.REALISATEUR = P.NUMP AND P.NOM = Spielberg GROUP BY F.TITRE, F.ANNEE forme imbriquée SELECT F.TITRE, F.ANNEE, X.SUMSAL F, ( SELECT NUMF, SUM(SALAIRE) AS SUMSAL FROM DISTRIBUTION GROUP BY NUMF ) AS X WHERE F.NUMPF = X.NUMF AND F.REALISATEUR IN( SELECT NUMP FROM PERSONNE WHERE NOM= SPIELBERG ) 5