TP d informatique n 014 Bases de données



Documents pareils
Langage SQL : créer et interroger une base

Le langage SQL Rappels

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

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

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

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

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

1 Introduction et installation

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

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

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

Optimisation SQL. Quelques règles de bases

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

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

Systèmes de Gestion de Bases de Données

Introduction aux Bases de Données 2004/2005

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

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

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

BTS/CGO P10 SYSTEME INFORMATION Année

Cours 4 : Agrégats et GROUP BY

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

16H Cours / 18H TD / 20H TP

TP Bases de données réparties

MODE OPERATOIRE OPENOFFICE BASE

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

Le Langage SQL version Oracle

Vincent Augusto

SQL Historique

INTRODUCTION AU DATA MINING

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

Bases de données élémentaires Maude Manouvrier

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

TP 8: LES OPERATEURS ENSEMBLISTES

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

Cours de bases de données. Philippe Rigaux

Base de données relationnelle et requêtes SQL

FileMaker 13. Guide de référence SQL

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

MySQL / SQL EXEMPLES

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

Bases de données relationnelles

Thème : Gestion commerciale

Mysql avec EasyPhp. 1 er mars 2006

Le Langage De Description De Données(LDD)

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

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

Excel avancé. Frédéric Gava (MCF)

Ecole Polytechnique de Louvain INGI Fichiers et bases de données

COMPRENDRE LES DIFFERENTS TYPES DE CONNEXION LORS DE LA

FORMATION A L UTILISATION DE PMB QUELQUES NOTIONS DE SQL

Bases de données - Modèle relationnel

Session S12 Les bases de l optimisation SQL avec DB2 for i

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

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

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

Les bases fondamentales du langage Transact SQL

Auto-évaluation SQL. Document: f0453test.fm 19/04/2012. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium

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

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

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

Whitepaper. Méthodologie de création de rapports personnalisés SQL Server Reporting Services

Groupe 11 TABLE DES MATIERES

Les bases de l optimisation SQL avec DB2 for i

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

Cours: Les Jointures 1

COURS WINDEV NUMERO 3

Exercices et solutions

CREATION WEB DYNAMIQUE

Création de Sous-Formulaires

Exemples de reque tes dans data.bnf.fr

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

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

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

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

Encryptions, compression et partitionnement des données

SUPPORT SQL. Thierry GRANDADAM

Gestion de base de données

Présentation Windows Azure Hadoop Big Data - BI

Plan d Exécution Graphique pour des Requêtes SQL Simples

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

Introduction aux SGBDR

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

Oracle Décisionnel : Modèle OLAP et Vue matérialisée D BILEK

TP2_1 DE BUSINESS INTELLIGENCE ISIMA ZZ3 F3

Encaissement moyen du distributeur sur une entrée en salle de cinéma ( )

Intégrité des données

Système de Gestion de Bases de Données Relationnelles. MySQL. Youssef CHAHIR

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

SQL Server et Active Directory

Évaluation et optimisation de requêtes

Année Universitaire 2009/2010 Session 2 de Printemps

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

Bases de données documentaires et distribuées Cours NFE04

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

Introduction aux requêtes SQL

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

Transcription:

TP d informatique n 014 Bases de données PCSI 2015 2016 I Schéma Soit le schéma relationnel suivant : Individus(Num_Ind, Nom, Prenom) : l identifiant de l individu ( Num_Ind), le nom et le prénom de l individu. Jouer(Num_Ind, Num_Film, Role) : les attributs représentant respectivement le numéro individu (Num_Ind), le numéro du film (Num_Film) dans lequel il a joué, et le nom du rôle joué. Films(Num_Film Num_Ind, Titre, Genre, Annee) : le numéro du film (Num_Film), l identifiant du réalisateur ( Num_Ind), et les caractéristiques du film. Projection(Num_Cine, Num_Film, Date) Le numéro du cinéma dans lequel a été projeté le film à la date indiqué. Cinémas(Num_Cine, Nom, Adresse)Un identifiant des cinémas, ainsi que leur nom et adresse. Le tableau dans les pages suivantes donne une instance de ce schéma relationnel. II Structure de la base de donnée Représenter la base de donnée sous forme d un schéma bloc en indiquant en titre de chaque bloc le nom de la table, en dessous les attributs, en soulignant les clés primaires et en indiquant via des flèches les clés étrangères. Par exemple dans le TP précédent le schéma aurait été : Artiste ida Nom Origine Epoque Par Artiste Oeuvre Oeuvre ido Titre Genre Estimation Avoir Musee Oeuvre Musee Numero NomMusee Ouverture Fermeture Assurance Gardez ce schéma sous les yeux pour les requêtes, cela aide à voir les conditions nécessaires pour les jointures. III Exercices Donner les requêtes SQL permettant de répondre aux questions suivantes : 1. Quel est le contenu de la table individus? 2. Quels sont les prénoms des individus en conservant les doublons? 3. Quels sont les prénoms des individus en conservant les doublons, mais en les classant par ordre alphabétique? (La clause à utiliser est ORDER BY, regardez la syntaxe sur internet) 4. Quels sont les prénoms des individus sans doublons? Observez le résultat en effectuant un classement alphabétique et sans effectuer de classement. 5. Quels sont les individus dont le prénom est John? 1

6. Quel est le nom des individus dont le prénom est John? 7. Dressez la liste de toutes les associations possibles entre un individu et un film (il n y a pas nécessairement de lien entre l individu et le film qu on lui associe). Observez le nombre de lignes retournées. Était-il prévisible? 8. Quels sont les individus qui sont des acteurs? les acteurs jouent dans les films... 9. Dressez la liste de toutes les associations possibles entre un acteur et un film (il n y a pas nécessairement de lien entre l acteur et le film qu on lui associe). Observez le nombre de lignes retournées. 10. Dressez la liste de toutes les interprétations, en précisant le rôle, d acteur, dont on précisera le nom et le prénom, ayant joué dans des films dont on précisera le titre. Le résultat sera de la forme : \# Prénom Nom Rôle Titre 1 Nicole Kidman Grace Dogville 11. Même question que la précédente, mais en formatant le résultat de la manière suivante : Nicole Kidman a joué le rôle de Grace dans le film Dogville Paul Bettany a joué le rôle de Tom Edison dans le film Dogville... Paul Mazursky a joué le rôle de May Day dans le film Dangereusement vôtr 12. Quels sont les titres des films dont le genre est Drame? 13. Quels films (titres) ont été projetés en 2002? On pourra utiliser le mot clé LIKE (en cherchant de la documentation) ou utiliser les opérateurs de comparaison sur les dates. 14. Donnez le titre des films réalisés par Lars von Trier. 15. Quels films sont projetés au cinéma Le Fontenelle? 16. Quels sont les noms et prénoms des réalisateurs? 17. Quels sont les noms et prénoms des acteurs qui sont également réalisateurs? 18. Quels acteurs a-t-on pu voir au cinéma Le Fontenelle depuis l an 2000? 19. Quels sont les titres des films où Nicole Kidman a joué un rôle et qui ont été projetés au cinéma Le Fontenelle? 20. On désire le nom et le prénom des acteurs et le nombre de films dans lequel ils ont joué. 21. On désire connaitre le nom et le prénom des acteurs ainsi que l année de leur premier et de leur dernier rôle 22. Nom et prénom des acteurs qui ont joué dans au moins deux films. 23. On désire le nom et prénom des acteurs et le nombre de drames dans lesquels ils ont joué. 24. Quels sont les réalisateurs qui ont réalisé des films d épouvante et des films dramatiques? 25. Quels sont les acteurs qui n ont pas joué dans des films dramatiques? 26. Quels sont les noms et prénoms des individus dont le prénom est à la fois celui d un acteur et celui d un réalisateur sans qu il s agisse de la même personne? (Un peu difficile, pensez à décomposer en sous-problème) 27. Quels sont les cinémas qui ont projeté au moins 80% des films? 28. Quel est le nombre de films réalisés par chacun des réalisateurs? 29. Combien de films a réalisé le réalisateur le plus productif? 30. Quel est le nombre de films réalisés par les réalisateurs dont on désire connaitre le nom et le prénom, ayant réalisé au moins un film du même genre que l un des films réalisés par David Cronenberg? 31. On suppose que les têtes d affiche d un film sont les acteurs recensés pour ce film dans la base de données. Quel est le nombre de têtes d affiche et le réalisateur de chacun des films? PCSI Page 2/6

Individus Num_Ind Nom Prenom 1 Kidman Nicole 2 Bettany Paul 3 Watson Emily 4 Skarsgard Stellan 5 Travolta John 6 L.Jackson Samuel 7 Willis Bruce 8 Irons Jeremy 9 Spader James 10 Hunter Holly 11 Arquette Rosanna 12 Wayne John 13 von Trier Lars 14 Tarantino Quentin 15 Cronenberg David 16 Mazursky Paul 17 Jones Grace 18 Glen John 19 Ford John Projection Num_Cine Num_Film Date 3 6 1960-11-09 1 6 1980-07-05 2 7 1985-05-09 1 2 1988-03-12 2 2 1990-09-25 3 6 1990-12-02 4 3 1994-04-08 3 3 1994-11-05 4 3 1994-11-06 1 1 1996-05-07 1 4 1996-08-02 2 4 1996-09-02 2 4 1996-12-02 2 5 2002-05-01 2 5 2002-05-02 2 5 2002-05-03 4 6 2002-08-01 Jouer Num_Ind Num_Film Rôle 1 5 Grace 2 5 Tom Edison 3 4 Bess 4 4 Jan 5 3 Vincent Vega 6 3 Jules Winn?eld 7 3 Butch Coolidge 8 2 Beverly & ElliotMantle 9 1 James Ballard 10 1 Helen Remington 11 1 Gabrielle 4 5 Chuck 16 7 May Day 12 8 Ringo Kid Cinemas Num_Cine Nom Adresse 1 Le Renoir 13100 Aix_en_Provence 2 Le Fontenelle 78160 Marly_le_Roi 3 Gaumont Wilson 31000 Toulouse 4 Espace Cine 93800 Epinay_sur_Seine Films Num_Film Num_Ind Titre Genre Annee 1 15 Crash Drame 1996 2 15 Faux_Semblants Epouvante 1988 3 14 Pulp Fiction Policier 1994 4 13 Breaking the waves Drame 1996 5 13 Dogville Drame 2002 6 12 Alamo Western 1960 7 18 Dangereusement vôtre Espionnage 1985 8 19 La Chevauchee fantastique Western 1939 PCSI Page 3/6

IV Correction 1. Quel est le contenu de la table individus? SELECT * FROM individus 19 lignes 2. Quels sont les prénoms des individus en conservant les doublons? SELECT ALL prenom FROM individus 19 lignes 3. Quels sont les prénoms des individus en conservant les doublons, mais en les classant par ordre alphabétique? SELECT ALL prenom FROM individus ORDER BY prenom ASC 19 lignes 4. Quels sont les prénoms des individus sans doublons? Observez le résultat en effectuant un classement alphabétique et sans effectuer de classement. SELECT DISTINCT prenom FROM individus ORDER BY prenom ASC 15 lignes 5. Quels sont les individus dont le prénom est John? SELECT * FROM individus WHERE prenom = "John" 4 lignes 6. Quel est le nom des individus dont le prénom est John? SELECT nom FROM individus WHERE prenom = "John" 4 lignes 7. Dressez la liste de toutes les associations possibles entre un individu et un film (il n y a pas nécessairement de lien entre l individu et le film qu on lui associe). Observez le nombre de lignes retournées. Était-il prévisible? SELECT * FROM individus, films 152 lignes = nombre de lignes d individus nombre de lignes de films 8. Quels sont les individus qui sont des acteurs? les acteurs jouent dans les films... SELECT * FROM individus JOIN jouer ON individus.num_ind = jouer.num_ind 14 lignes 9. Dressez la liste de toutes les associations possibles entre un acteur et un film (il n y a pas nécessairement de lien entre l acteur et le film qu on lui associe). Observez le nombre de lignes retournées. SELECT * FROM individus JOIN jouer ON individus.num_ind=jouer.num_ind JOIN films 112 lignes 10. Dressez la liste de toutes les interprétations, en précisant le rôle, d acteur, dont on précisera le nom et le prénom, ayant joué dans des films dont on précisera le titre. Le résultat sera de la forme : Même question que la précédente, mais en formatant le résultat de la manière suivante : SELECT * FROM films JOIN projection ON films.num_film = projection.num_f WHERE projection.date > 2001-12-31 and projection.date <= "2002-12-31" Donnez le titre des films réalisés par Lars von Trier. SELECT * FROM films JOIN individus ON films.num_ind = individus.num_ind WHERE Nom = "von Trier" AND Prenom = "Lars" Quels films sont projetés au cinéma Le Fontenelle? SELECT * FROM films JOIN Projection ON films.num_film = Projection.Num_Film JOIN Cinemas ON Cinemas.Num_Cine = Projection.Num_Cine WHERE Nom = "Le Fontenelle" Quels sont les noms et prénoms des réalisateurs? SELECT Nom, Prenom FROM films JOIN individus on films.num_ind = individus.num_ind Quels sont les noms et prénoms des acteurs qui sont également réalisateu SELECT Nom, Prenom FROM Individus JOIN Films ON Films.Num_Ind = Individ JOIN Jouer ON Films.Num_Ind = Jouer.Num_Ind Quels acteurs a-t-on pu voir au cinéma Le Fontenelle depuis l an 2000? SELECT * FROM Individus JOIN Jouer ON Individus.Num_Ind = Jouer.Num_Ind PCSI Page 4/6

JOIN Films ON Jouer.Num_Film = Films.Num_Film JOIN Projection ON Films.N = Projection.Num_Film JOIN Cinemas ON Projection.Num_Cine = Cinemas.Num_ WHERE Cinemas.Nom = "Le Fontenelle" AND Projection.date>="2000-01-01" Quels sont les titres des films où Nicole Kidman a joué un rôle et qui ont été projetés au cinéma Le Fontenelle? SELECT DISTINCT Films.Titre AS "Nom du film" FROM Individus JOIN Jouer ON Individus.Num_Ind = Jouer. JOIN Films ON Jouer.Num_Film = Films.Num_Film JOIN Projection ON Films.N = Projection.Num_Film JOIN Cinemas ON Projection.Num_Cine = Cinemas.Num_ WHERE Cinemas.Nom = "Le Fontenelle" AND Individus.Nom = "Kidman" AND Individus.Prenom = "Nicole" On désire le nom et le prénom des acteurs et le nombre de films dans lequel ils ont joué. SELECT Nom, Prenom, COUNT(*) as nombre FROM Indivi JOIN Jouer ON Individus.Num_Ind = Jouer.Num_Ind GROUP BY Individus.Num_I On désire connaitre le nom et le prénom des acteurs ainsi que l année de leur premier et de leur dernier rôle SELECT Nom, Prenom, MIN(Annee) AS premier_role, MAX(Annee) as dernier_role FROM Individus JOIN Jouer ON Individus.Num_Ind = Jouer.Num_Ind JOIN Films ON Jouer.Num_Film = Films.Num_Film GROUP BY Individus.Num_Ind Nom et prénom des acteurs qui ont joué dans au moins deux films. SELECT Nom, Prenom FROM Individus JOIN Jouer ON Individus.Num_Ind = Jouer.Num_I JOIN Films ON Jouer.Num_Film = Films.Num_Film GROUP BY Individus.Num_Ind HAVING COUNT(*)>1 On désire le nom et prénom des acteurs et le nombre de drames dans lesqu ils ont joué. SELECT Nom, Prenom, COUNT(*) FROM Individus JOIN Jouer ON Individus.Num_Ind = Jouer.Num_Ind JOIN Films ON Jouer.Num_Film = Films.Num_Film WHERE Genre = "Drame" GROUP BY Individus.Num_Ind Problème : n affiche pas 0 s ils n ont joué dans aucun drame Quels sont les réalisateurs qui ont réalisé des films d épouvante et des films dramatiques? SELECT DISTINCT Nom, Prenom FROM Individus JOIN Films ON Films.Num_Ind = Individus.Num_Ind WHERE Genre = "Drame" INTERSE SELECT DISTINCT Nom, Prenom FROM Individus JOIN Films ON Films.Num_Ind = Individus.Num_Ind WHERE Genre = "Epouvante" Quels sont les acteurs qui n ont pas joué dans des films dramatiques? SELECT Nom, Prenom FROM Individus JOIN Jouer ON Individus.Num_Ind = Jouer.Num_Ind JOIN Films ON Jouer.Num_Film = Films.Num_Film EXCEPT SELEC Nom, Prenom FROM Individus JOIN Jouer ON Individus.Num_Ind = Jouer.Num_I JOIN Films ON Jouer.Num_Film = Films.Num_Film WHERE Genre = "Drame" Quels sont les noms et prénoms des individus dont le prénom est à la fois celui d un acteur et celui d un réalisateur sans qu il s agisse de la même personne? étape 1 : nom et prénom des individus dont le prénom est à la fois celui d un acteur et d un réalisateur : SELECT Nom,Prenom FROM Individus WHERE Prenom = ( SELECT Prenom FROM Individus JOIN Jouer ON Individus.Num_Ind = Jouer.Num_Ind JOIN Films ON Jouer.Num_Film = Films.Num_Film INTERSECT SELECT Prenom FROM Individu JOIN Films ON Individus.Num_Ind = Films.Num_Ind ) PCSI Page 5/6

Au complet : SELECT Nom,Prenom FROM Individus WHERE Prenom = ( SELECT Prenom FROM Individus JOIN Jouer ON Individus.Num_Ind = Jouer.Num_Ind JOIN Films ON Jouer.Num_Film = Films.Num_Film INTERSECT SELECT Prenom FROM Individu JOIN Films ON Individus.Num_Ind = Films.Num_Ind ) AND NOT Individus.Num_ =( SELECT Individus.Num_Ind FROM Individus JOIN Jouer ON Individus.Num_I = Jouer.Num_Ind JOIN Films ON Jouer.Num_Film = Films.Num_Film INTERSECT SELECT Individus.Num_Ind FROM Individus JOIN Films ON Individus.Num_Ind = Films.Num_Ind ) Quels sont les cinémas qui ont projeté au moinds 80% des films? SELECT Cinemas.Nom FROM Cinemas JOIN Projection ON Cinemas.Num_Cine = Projectio GROUP BY Cinemas.Num_Cine HAVING COUNT(*) >= 0.8*(SELECT COUNT(*) FROM Films) Quel est le nombre de films réalisés par chacun des réalisateurs? SELEC Nom, Prenom, COUNT(*) FROM Individus JOIN Films ON Films.Num_Ind = Indiv GROUP BY Individus.Num_Ind Combien de films a réalisé le réalisateur le plus productif? SELECT MAX(Nombre) FROM (SELECT COUNT(*) AS Nombre FROM Individus JOIN Films ON Films.Num_Ind = Individus.Num_Ind GROUP BY Individus.Num_Ind) Quel est le nombre de films réalisés par les réalisateurs dont on désire connaitre le nom et le prénom, ayant réalisé au moins un film du même genre que l un des films réalisés par David Cronenberg? Genre des films réalisé par David : SELECT Genre FROM Films JOIN Individus ON Films.Num_Ind = Individus.Num_ WHERE Nom = "Cronenberg" AND Prenom = "David" SELECT Nom,Prenom,COUNT(*) FROM Individus JOIN Films ON Films.Num_Ind = Individus.Num_Ind WHERE Genre IN( SELECT Genre FROM Films JOIN Individ ON Films.Num_Ind = Individus.Num_Ind WHERE Nom = "Cronenberg" AND Prenom = "David") GROUP BY Individus.Num_Ind On suppose que les têtes d affiche d un film sont les acteurs recensés pour ce film dans la base de données. Quel est le nombre de têtes d affi et le réalisateur de chacun des films? SELECT Titre, Nom, COUNT(*) FROM Films JOIN Individus ON Individus.Num_Ind = Films.Num_Ind -ça, c est les réalisateurs JOIN Jouer ON Films.Num_Film = Jouer.Num_Film GROUP BY Films.Num_Film PCSI Page 6/6