2. Refaire la même chose, avec cette fois le nom des colleurs.
3. Déterminer les quadruplets (élève, professeur, note, semaine) pour toutes les colles où la note était
supérieure ou égale à 19.
Exercice 10 Des agrégats
1. Déterminer la moyenne des notes de colle de Jacques-Louis Lions.
2. Déterminer la liste des couples (élève, moyenne).
3. Respirer lentement, puis écrire une requête permettant de calculer la moyenne des moyennes.
Merci de ne pas tricher, et bien calculer une moyenne de moyennes, et non pas la moyenne globale
des notes (qui est la même ici, tout le monde ayant eu 25 colles !)
4. Parmi tous les élèves, déterminer le nom de ceux ayant eu au moins 10 notes strictement sous la
moyenne.
5. Déterminer les élèves ayant eu une moyenne de 14 ou plus.
6. Parmi tous les élèves, déterminer ceux ayant eu au moins 6 notes strictement supérieures à 18.
4 Des matchs de foot
On veut créer une base de matchs de foot entre clubs européens prestigieux (le Réal, la Juve, Guin-
gamp, etc.) sur quelques dizaines d’années. Disons de 1971 à2014.
Les impatients peuvent passer directement au dernier exercice, où on fait des requêtes (absurdes) sur
une telle base (absurde) !
Exercice 11 Les clubs.
1. Ouvrir le fichier clubs.csv, observer le contenu. Définir sur papier un schéma relationnel permet-
tant de représenter les différents clubs. On impose un attribut entier qui sera une clé primaire : cet
attribut ne prend jamais deux fois la même valeur.
Pour jeter à la poubelle une éventuelle table, puis en créer une, les commandes SQL sont typique-
ment :
DROP TABLE IF EXISTS clubs
CREATE TABLE clubs
(idc integer primary key,
nom text,
...)’’’
2. À l’aide d’un script Python, créer une base de données, constitué d’une table clubs, et l’alimenter
à l’aide du fichier clubs.csv qu’on lira ligne-à-ligne.
On pourra s’inspirer su squelette fourni au TP précédent : import sqlite3...
Exercice 12 Et maintenant, les matchs
Un match est la donnée de deux équipes distinctes, deux scores, une année, un jour dans cette année.
1. Définir sur papier un schéma relationnel pour constituer une table représentant des matchs. Ajouter
cette table (vierge, pour le moment) à la base de donnée en cours.
Pour établir le nombre bde buts marqués par une équipe lors d’un match 2, on tire au hasard
x∈[0,1]. Ensuite
– si x > 3/4,bvaut 0;
– si 5/12 < x 63/4,bvaut 1;
– si 1/12 < x 65/12,bvaut 2;
– sinon, on détermine le plus petit k>3tel que x61
12 1−1
4k−2, et bvaut alors k.
2. Écrire une fonction buts sans entrée, et retournant un entier déterminé selon les rêgles précédentes.
Vérifier la vraisemblance en faisant 106tirages et en observant les fréquences.
Les probabilités théoriques d’obtenir 0, 1, 2, ... buts sont respectivement 1
4,1
3,1
3,1
3×4,1
3×42, etc.
2. on ne se soucie pas du fait de jouer à domicile ou à l’extérieur
3