Exploitation de données
L'un des grands intérêt de BaseX est l'exploitation de volumes importants de données fournis sous format XML ce qui le rend intéressant pour l'exploitation des données Open Data.
De nombreuses sources sont disponibles sur internet permettent d'obtenir des fichiers exploitables :
Data.gov (www.data.gov)
Pour cette exercice, nous allons exploiter les données sur les prix des carburants mises à disposition quotidiennement sur le site :
http://www.prix-carburants.economie.gouv.fr/rubrique/opendata/
Mise en place BaseX
BaseX est léger et portable, sous Linux, on peut l'utiliser directement par extraire l'archive.
Lien de téléchargement : http://basex.org/products/download/all-downloads/
Sous Linux : Zip Archive
Sous Windows : Windows Installer
Pour accéder à l'interface de BaseX, exécuter .../basex/bin/basexgui avec
./basexgui
Import du fichier XML
Après avoir téléchargé le fichier à l'adresse http://donnees.roulez-eco.fr/opendata/jour et en extraire le XML, il faut créer une nouvelle base à partir de ce fichier sous BaseX.
Pour cela :
Database -> New (raccourci CTRL + N)
Dans le champ input file or directory : browse => fichier xml téléchargé.
OK
La base est chargée !
Visualisation des données
Explorer le fichier XML grâce aux différentes vues de BaseX. Utiliser diverses représentations graphiques. Pour cela :
Cliquer sur "Vizualisation"
Selectionner une représentation
Explorer les données
Question
Compter, pour chaque station présente à Compiègne, le nombre de service qu'elle offre et produire un XML de la forme :
<listeStation>
<station id="$ID">
<adresse> $Adresse </adresse>
<nombreService> $NBService </nombreService>
</station>
</listeStation>
<listeStation> <station id="$ID"> <adresse> $Adresse </adresse> <nombreService> $NBService </nombreService> </station> </listeStation>
Question
Donner le nombre de stations services qui proposent chaque type d'essence et le prix moyen.
<récapitulatif>
<produit nom="$Variable1">
<nombreStation> $NOMBRE_STATION </nombreStation>
<prixMoyen> $PRIX_MOYEN </prixMoyen>
</produit>
</récapitulatif>
<récapitulatif> <produit nom="$Variable1"> <nombreStation> $NOMBRE_STATION </nombreStation> <prixMoyen> $PRIX_MOYEN </prixMoyen> </produit> </récapitulatif>