TD – Informatique – PSI
Q.9. Quel est le nombre d'exemplaires en stock de chaque film par titre et par format ?
Q.10. Quel est le nombre d'emprunts effectués en moyenne par les clients ? On pourra utiliser la fonction AVG qui calcule une
moyenne.
Q.11. Quelle est la liste des sommes déjà dépensées par client ?
Q.12. Quelles personnes ont été à la fois acteur(-trices) et réalisateur(-trices) ?
Q.13. Quels sont les films possédant le plus d'exemplaires ?
Q.14. Dans quels films peut-on voir Alain Delon et Simone Signoret jouer ensemble ?
Q.15. Qui est l'acteur qui a joué dans le plus grand nombre de films ?
3. Exploitation d’une base de données météo sous Python
La NOAA (National Oceanic and Atmospheric Administration), une agence des Etats-Unis, diffuse des données météorologiques
relatives au territoire américain. Il s'agit de relevés journaliers, effectués en général dans les aéroports. Le fichier « noaa.db3 »
fourni contient les données journalières pour une année. La base de données est constituée de deux tables :
- « Station » qui modélise les stations de relevés :
oStationId : identifiant unique à usage interne ;
oCallSign : indicatif, unique également, en général un code d'aéroport ;
oName : nom ;
oState : code de l'état (deux lettres) ;
oLocation : emplacement, en langage naturel ;
oLatitude, Longitude : coordonnées géographiques (degrés) ;
oGroundHeight, StationHeight.
- « Weather » qui modélise un relevé journalier :
oStationId : identifiant de la station ;
oDate : date sous la forme AAAAMMJJ ;
oTmax, Tmin, Tavg : températures maximale, minimale, moyenne (certaines valeurs peuvent valoir Null si les
données sont indisponibles) ;
o…
On peut toujours utiliser le module Sqlite Manager comme précédemment, mais comme on souhaite récupérer des valeurs et les
analyser, on préfèrera le langage Python. Le langage Python permet d'accéder facilement à des bases de données SQLite, grâce au
module sqlite3. Le schéma général d'un programme Python utilisant une base SQLite est le suivant :
Par exemple, si l’objectif est d’obtenir le nom, l’état et les coordonnées GPS de la station qui est située la plus au nord, on saisira
dans un script les lignes de code suivantes :
import sqlite3 as sql
bdd=sql.connect("noaa.db3")
requete='SELECT Name, State, Latitude, Longitude \
FROM station \
WHERE Latitude= \
(SELECT MAX(Latitude) FROM station)'
reponse=bdd.execute(requete)
print(reponse)
La dernière ligne affichera le résultat suivant dans la console : <sqlite3.Cursor object at 0x035A6360>
Il s’agit d’un objet curseur qu’on ne peut pas afficher directement. Par contre, cet objet est itérable. On récupère ainsi les lignes de
la réponse sous la forme de tuples. Ainsi, si l’on intègre les lignes de codes suivantes au script :
for li in reponse:
print(li)