TP 2 SQL : compétitions de ski interne

Soit le modèle relationnel suivant :


station(idStation,nomStation,altitude,pays)

competition(idCompetition,libelleCompet,dateComp,#station_id)

classement(#skieur_id,#competition_id,classement)

comporte(#competition_id, #specialite_id)

skieur(idSkieur ,nomSkieur,#specialite_id,#station_id)

specialite(idSpecialite,libelleSpecialite)


SQL, création des tables et importation des données

Écrire dans un fichier script_tp2.sql le script de création des tables correspondant au modèle ci dessus.


(Utiliser les mots clés IF EXISTS lors de la suppression de la table et IF NOT EXISTS lors de la création des tables.)


SQL, traitement de l’information

Écrire les requêtes SQL suivantes :


  1. Nombre de skieurs ayant participé à au moins une compétition.
+-------------------------+
| NbreSkieurDansUneCompet |
+-------------------------+
|                       6 |
+-------------------------+

(exemple avec les données jointes)


  1. Nom de la station de chaque skieur (affichage : nom skieur + nom station)
+-----------+--------------------+
| nomSkieur | nomStation         |
+-----------+--------------------+
| robert    | Chambery           |
| bernard   | Le Ballon d'alsace |
| alberto   | Metabief           |
| jacques   | Tignes             |
| paul      | Tignes             |
| pierre    | Tignes             |
| tom       | Tignes             |
| edouard   | Verbier            |
+-----------+--------------------+

(exemple avec les données jointes)


  1. Classement de la compétition de libellé ‘compet’ (affichage : nom skieur + classement)
+-----------+------------+---------------------------+
| nomSkieur | classement | libelleCompet             |
+-----------+------------+---------------------------+
| pierre    |          1 | compet cadet france       |
| tom       |          2 | compet cadet france       |
| jacques   |          3 | compet cadet france       |
| robert    |          4 | compet cadet france       |
| edouard   |          5 | compet cadet france       |
| paul      |          1 | compet junior france      |
| pierre    |          2 | compet junior france      |
| robert    |          3 | compet junior france      |
| jacques   |          4 | compet junior france      |
| tom       |          5 | compet junior france      |
| edouard   |          6 | compet junior france      |
| paul      |          1 | competition cadet europe  |
| jacques   |          2 | competition cadet europe  |
| edouard   |          3 | competition cadet europe  |
| robert    |          4 | competition cadet europe  |
| jacques   |          1 | competition junior europe |
| pierre    |          2 | competition junior europe |
| edouard   |          3 | competition junior europe |
| robert    |          4 | competition junior europe |
+-----------+------------+---------------------------+

(exemple avec les données jointes)


  1. Liste des compétitions s’étant déroulées à ‘Tignes’ (nom de station) avec leur vainqueur (affichage : libellé Compétition, nom skieur vainqueur)
+--------------------------+-----------+
| libelleCompet            | nomSkieur |
+--------------------------+-----------+
| compet cadet france      | pierre    |
| compet junior france     | paul      |
| competition cadet europe | paul      |
+--------------------------+-----------+

(exemple avec les données jointes)


  1. Nombre de compétitions se déroulant dans chaque station (affichage : id station + nom station + nb de compétition)
+-----------+------------+-------------+
| idStation | nomStation | nbrDeCompet |
+-----------+------------+-------------+
|         3 | Chambery   |           2 |
|         1 | Tignes     |           5 |
|         2 | Verbier    |           1 |
+-----------+------------+-------------+

(exemple avec les données jointes)


  1. Nombre de victoires à ‘Tignes’ pour chaque skieur (affichage : id skieur + nom skieur + nb victoires)
+----------+-----------+-----------------+
| idSkieur | nomSkieur | NbreDeVictoires |
+----------+-----------+-----------------+
|        2 | pierre    |               1 |
|        3 | paul      |               2 |
+----------+-----------+-----------------+

(exemple avec les données jointes)


  1. Noms des skieurs ayant toujours terminé premier (nom skieur)
+-----------+
| nomSkieur |
+-----------+
| paul      |
+-----------+

(exemple avec les données jointes)


Question 3 : analyse du MCD


Utiliser un des 2 logiciels suivants :

Utiliser de préférence looping

Établir le modèle conceptuel des données associé à ce modèle relationnel.



requêtes avancées

Commencer par ajouter des enregistrements :


Vérifier les requêtes ci-dessous avec les nouveaux enregistrements


+-----------+------------+-------------+----------+
| nomSkieur | classement | lieu_compet | club     |
+-----------+------------+-------------+----------+
| pierre    |          1 | Tignes      | Tignes   |
| pierre    |          2 | Tignes      | Tignes   |
| paul      |          1 | Tignes      | Tignes   |
| alberto   |          1 | Tignes      | Metabief |
+-----------+------------+-------------+----------+
+-----------+
| nomSkieur |
+-----------+
| pierre    |
| paul      |
+-----------+



[http://perso.modulonet.fr/placurie/Ressources/BTS1-ALSI/Evaluation-5%20(correction).pdf]

(http://perso.modulonet.fr/placurie/Alsi1.htm)



+------------+
| nomStation |
+------------+
| Tignes     |
+------------+


+-----------+
| nomSkieur |
+-----------+
| tom       |
| alberto   |
+-----------+



+--------------------------------+
| libelleCompet                  |
+--------------------------------+
| championnat cadet europe 2020  |
+--------------------------------+
+-----------+
| nomSkieur |
+-----------+
| pierre    |
| paul      |
| jacques   |
| alphand   |
+-----------+
+-----------+
| nomSkieur |
+-----------+
| pierre    |
| paul      |
| jacques   |
| edouard   |
| alberto   |
+-----------+
+-----------+
| nomSkieur |
+-----------+
| jacques   |
| paul      |
+-----------+