Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
site:enseignement:licence:2i009:tme4 [22/01/2019 19:27] camelia |
site:enseignement:licence:2i009:tme4 [10/02/2021 16:19] (Version actuelle) camelia ↷ Liens modifiés en raison d'un déplacement. |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== TME 4 Premiers pas en SQL ====== | + | ====== TME 4: Premiers pas en SQL ====== |
Le système utilisé pendant les TME est Oracle. Il s'agit d'un système de gestion de bases de données (SGBD), fonctionnant selon l'architecture client/serveur. | Le système utilisé pendant les TME est Oracle. Il s'agit d'un système de gestion de bases de données (SGBD), fonctionnant selon l'architecture client/serveur. | ||
Ligne 9: | Ligne 9: | ||
On considère le schéma de la base JeuxOlympique2014 donné en TD où l'on a modifié le schéma de **RangEpreuve**: | On considère le schéma de la base JeuxOlympique2014 donné en TD où l'on a modifié le schéma de **RangEpreuve**: | ||
- | * **Athlete** (nom,prenom,dateNaissance,pays) | + | * **Athlete** (__nom,prenom__,dateNaissance,pays) |
- | * **RangEpreuve**(sport,epreuve,categorie,dateDebut,dateFin,nomAth*,prenomAth*,rang) | + | * **RangEpreuve**(__sport,epreuve,categorie,nomAth*,prenomAth*__,dateDebut,dateFin,rang) |
+ | |||
+ | ------------- | ||
<fc #6495ed>Premières requêtes sous Oracle: </fc> | <fc #6495ed>Premières requêtes sous Oracle: </fc> | ||
Ligne 18: | Ligne 21: | ||
* Renvoyer la liste de toutes les relations de la base de données: | * Renvoyer la liste de toutes les relations de la base de données: | ||
<code sql>select * from tab;</code> | <code sql>select * from tab;</code> | ||
- | * Renvoyer la liste des attributs de la relation **Athlete**: | + | * Renvoyer la liste des attributs de la relation **Athlete** et **RangEpreuve**: |
- | <code sql> desc Athlete;</code> | + | <code sql> desc Athlete |
+ | desc RangEpreuve | ||
+ | </code> | ||
* Renvoyer tous les n-uplets stockés dans la relation **Athlete**: | * Renvoyer tous les n-uplets stockés dans la relation **Athlete**: | ||
<code sql> select * from Athlete;</code> | <code sql> select * from Athlete;</code> | ||
Ligne 25: | Ligne 30: | ||
<code sql>select count(*) from Athlete;</code> | <code sql>select count(*) from Athlete;</code> | ||
+ | |||
+ | |||
+ | ------------- | ||
+ | |||
+ | |||
+ | <fc #6495ed>Exercice 1: </fc> | ||
+ | |||
+ | Exprimez les requêtes suivantes en **SQL**: | ||
+ | * **1.** Les athlètes (nom, prénom) d'Inde. | ||
+ | ''Résultat attendu: IQBAL Nadeem, KESHAVAN Shiva, THAKUR Himanshu'' | ||
+ | *** 2.** Le prénom des athlètes dont le nom est 'GOLD'. | ||
+ | ''Résultat attendu: Arielle, Gracie, Taylor'' | ||
+ | * **3.** La nationalité de AONO Ryo. | ||
+ | ''Résultat attendu: Japon'' | ||
+ | * **4.** Le gagnant du médaille d'or de chaque épreuve. Triez le résultat par sport, puis par épreuve. | ||
+ | ''Résultat attendu: (74 lignes)'' | ||
+ | * **5.** Toutes les épreuves (sport, épreuve, catégorie) triées par la date de fin de l'épreuve. | ||
+ | ''Résultat attendu: (73 lignes)'' | ||
+ | * **6.** Les athlètes nés entre 1990 et 1995. | ||
+ | ''Résultat attendu: (87 lignes)'' | ||
+ | * **7.** Les athlètes suisses ayant participé au sport 'Biathlon' et disqualifié à au moins une épreuve de ce sport. | ||
+ | ''Résultat attendu: GASPARIN Elisa'' | ||
+ | * **8.** Les épreuves dans lesquelles il n'y a pas eu une médaille d'argent. | ||
+ | ''Résultat attendu: Ski alpin Descente Femmes'' | ||
+ | |||
+ | ------------- | ||
+ | |||
+ | <fc #6495ed>Exercice 2: </fc> | ||
+ | |||
+ | On considère maintenant le schéma complet de la base Jeux Olympiques 2014 | ||
+ | * **Pays** (__codePays__, nomP) | ||
+ | * **Sport** (__sid__, nomSp) | ||
+ | * **Epreuve** (__epid__, sid*, nomEp, catégorie, dateDebut, dateFin) | ||
+ | * **Athlete** (__aid__, nomAth, prenomAth, dateNaissance, codePays*) | ||
+ | * **Equipe** (__eqid__, codePays*) | ||
+ | * **AthletesEquipe** (__eqid*, aid*__) | ||
+ | * **RangIndividuel** (__epid*, aid*__, rang) | ||
+ | * **RangEquipe** (__epid*, eqid*__, rang) | ||
+ | |||
+ | La relation **Pays** contient le code et le nom de tous les pays, même si ils n'ont pas participé aux Jeux Olympiques. Les sports (n-uplets de la relation **Sport**) sont un ensemble d'épreuves (n-uplets de la relation **Epreuve**). Pour chaque épreuve on connaît son nom et les date de début et fin de l'épreuve. Les épreuves peuvent être individuelles ou par équipe. Dans le premier cas, la participation des athlètes (n-uplets de la relation **Athlete**) est stocké dans la table **RangIndividuel** qui contient en plus le rang qu'ils ont obtenu (1 pour la médaille d'or). Pour les épreuves par équipe les résultats sont stockés dans la relation **RangEquipe**, alors que l'information sur le pays de chaque équipe et ses participants et stocké dans les relations **Equipe** et **AthletesEquipe**. Dans les relations **RangIndividuel** et **RangEquipe** l'attribut rang est égal à null si l'athlète ou l'équipe a été disqualifié. | ||
+ | |||
+ | <fc #800080>Une représentation graphique du schéma pour la BD JO_v2 se trouve {{:site:enseignement:licence:2i009:jo_v2_diagram.pdf| ici}}.</fc> | ||
+ | |||
+ | * <fc #008080>Effacez la base de données JO_v1 en exécutant</fc>: | ||
+ | <code sql>@vider</code> | ||
+ | * <fc #008080>Chargez la base de données JO_v2 en exécutant</fc>: | ||
+ | <code sql>@jo_v2</code> | ||
+ | |||
+ | //Exprimez les requêtes suivantes en **SQL** :// | ||
+ | |||
+ | * **9.** Les épreuves (sport, épreuve, catégorie) individuelles. | ||
+ | ''Résultat attendu: (73 lignes)'' | ||
+ | * **10.** Les résultats (nom, prénom, pays de l'athlète et rang) de l'épreuve '1000m' du 'Patinage de vitesse' pour les 'Femmes'. | ||
+ | ''Résultat attendu: (36 lignes)'' | ||
+ | * **11.** Le nom et prénom des athlètes qui forment l'équipe qui a gagné la médaille d'or dans l'épreuve 'relais 4x6km' de 'Biathlon' de 'Femmes'. | ||
+ | ''Résultat attendu: SEMERENKO Vita, SEMERENKO Valj, DZHYMA Juliya, PIDHRUSHNA Olena'' | ||
+ | |||
+ | |||
+ | <fc #800080>**Divers**: [[site:enseignement:licence:2i009:documents-tme:start| notes sur les TME]]</fc> |