Bases de Données / Databases

Site Web de l'équipe BD du LIP6 / LIP6 DB Web Site

Outils pour utilisateurs

Outils du site


site:enseignement:licence:2i009:tme4

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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:39]
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 4Premiers 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 20: 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>​
   * Renvoyer le nombre de n-uplets stockés dans la relation **Athlete**:​   * Renvoyer le nombre de n-uplets stockés dans la relation **Athlete**:​
 <code sql>​select count(*) from Athlete;</​code>​ <code sql>​select count(*) from Athlete;</​code>​
 +
 +
 +
 ------------- -------------
  
-<fc #6495ed>Exercices: </fc>  + 
-Exprimez les requêtes suivantes en SQL: +<fc #6495ed>Exercice 1: </​fc> ​ 
-  * 1. Les athlètes (nom, prénom) d'​Inde. ​+ 
 +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''​ ''​Résultat attendu:​ IQBAL Nadeem, KESHAVAN Shiva, THAKUR Himanshu''​
-  * 2. Le prénom des athlètes dont le nom est '​GOLD'​.+  ​*** 2.** Le prénom des athlètes dont le nom est '​GOLD'​.
 ''​Résultat attendu:​ Arielle, Gracie, Taylor''​ ''​Résultat attendu:​ Arielle, Gracie, Taylor''​
-  * 3. La nationalité de AONO Ryo.+  ​* **3.** La nationalité de AONO Ryo.
 ''​Résultat attendu:​ Japon''​ ''​Résultat attendu:​ Japon''​
-  * 4. Le gagnant du médaille d'or de chaque épreuve. Triez le résultat par sport, puis par épreuve.+  ​* **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)''​ ''​Résultat attendu:​ (74 lignes)''​
-  * 5. Toutes les épreuves (sport, épreuve, catégorie) triées par la date de fin de l'​épreuve.+  ​* **5.** Toutes les épreuves (sport, épreuve, catégorie) triées par la date de fin de l'​épreuve.
 ''​Résultat attendu:​ (73 lignes)''​ ''​Résultat attendu:​ (73 lignes)''​
-  * 6. Les athlètes ​français ​nés entre 1995 et 2000.+  ​* **6.** Les athlètes nés entre 1990 et 1995.
 ''​Résultat attendu:​ (87 lignes)''​ ''​Résultat attendu:​ (87 lignes)''​
-  * 7. Les athlètes suisses ayant participé au sport '​Biathlon'​ et disqualifié à au moins une épreuve.+  ​* **7.** Les athlètes suisses ayant participé au sport '​Biathlon'​ et disqualifié à au moins une épreuve ​de ce sport.
 ''​Résultat attendu:​ GASPARIN Elisa''​ ''​Résultat attendu:​ GASPARIN Elisa''​
-  * 8. Les épreuves dans lesquelles il n'y a pas eu une médaille d'​argent ​(il y a eu deux médailles d'or).+  ​* **8.** Les épreuves dans lesquelles il n'y a pas eu une médaille d'​argent.
 ''​Résultat attendu:​ Ski alpin Descente ​ Femmes''​ ''​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>​
site/enseignement/licence/2i009/tme4.1548182351.txt.gz · Dernière modification: 22/01/2019 19:39 par camelia