Base de Données XML : Création, modification et suppression de données avec BaseX.

Manipulation de la BDD et des données

Mise en place BaseX

  • Pour accéder à l'interface de BaseX, exécuter .../basex/bin/basexgui avec ./basexgui

Créer une base de données à partir d'un fichier XML

Nous prendrons comme base de travail, un fichier XML de données Open Data, sur les prix des carburants mises à disposition quotidiennement :

Télécharger

On aurait un fichier dont nom est sous forme "PrixCarburants_xxxxxxx.xml". Renommz-le en "PrixCarburants.xml" pour simplifier l'exercice en suite.

Question

Créer la BDD à partir du fichier téléchargé. Nommez-le en Open_Data

Question

Ajouter le fichier XML suivant à la base de données et vérifier sur l'interface graphique

Produit.xml

Question

Supprimer la "table" qui vient d'être créée et vérifier sur l'interface graphique

XQuery Update

Syntax de XQuery :

  • Syntax

    Explication

    Example

    let

    • Déclaration d'une variable et/ou affectation de sa valeur.

    • Une variable est toujours précédée par le symbole "$"

    let $var := "maVariable"

    return

    Clause qui permet de construire le résultat.

    Elle est obligatoire.

    return + [XQuery Update]

Étudier le fichier suivant puis s'en servir pour supprimer le premier nœud <pdv> du fichier PrixCarburants.xml.

Télécharger le fichier suivant

suppressionNoeud.xq

Question

Exécutez le suppressionNoeud.xq et vérifiez le résultat dans l'interface graphique.

Question

Exporter PrixCarburants.xml modifié.

Supplémentaire : Remettre le nœud qu'on vient de supprimer dans le fichier PrixCarburants.xml en passage de file système

CTRL+C pour copier, CTRL+V pour coller
1
<pdv id="1000001" latitude="4620114" longitude="519791" cp="01000" pop="R">
2
    <adresse>596 AVENUE DE TREVOUX</adresse>
3
    <ville>SAINT-DENIS-LèS-BOURG</ville>
4
    <ouverture debut="01:00:00" fin="01:00:00" saufjour=""/>
5
    <services>
6
      <service>Station de gonflage</service>
7
      <service>Vente de gaz domestique</service>
8
      <service>Automate CB</service>
9
    </services>
10
    <prix nom="Gazole" id="1" maj="2016-11-14T09:11:30" valeur="1119"/>
11
    <prix nom="SP95" id="2" maj="2016-11-14T09:11:30" valeur="1309"/>
12
    <prix nom="SP98" id="6" maj="2016-11-14T09:11:30" valeur="1355"/>
13
    <rupture id="5" nom="E10" debut="2015-02-09T16:02:00" fin="2016-11-20T00:11:42"/>
14
  </pdv>
<pdv id="1000001" latitude="4620114" longitude="519791" cp="01000" pop="R">
    <adresse>596 AVENUE DE TREVOUX</adresse>
    <ville>SAINT-DENIS-LèS-BOURG</ville>
    <ouverture debut="01:00:00" fin="01:00:00" saufjour=""/>
    <services>
      <service>Station de gonflage</service>
      <service>Vente de gaz domestique</service>
      <service>Automate CB</service>
    </services>
    <prix nom="Gazole" id="1" maj="2016-11-14T09:11:30" valeur="1119"/>
    <prix nom="SP95" id="2" maj="2016-11-14T09:11:30" valeur="1309"/>
    <prix nom="SP98" id="6" maj="2016-11-14T09:11:30" valeur="1355"/>
    <rupture id="5" nom="E10" debut="2015-02-09T16:02:00" fin="2016-11-20T00:11:42"/>
  </pdv>

Question

Comment on accède un document XML en passant par file system ?

Question

Qu'est-ce qu'on doit faire pour mettre à jour le fichier source ?

Question

Que est XQuery pour faire telle modification ?

Question

Est-ce qu'on voit la modification dans l'interface graphique ? Pour quoi ?

Question

Supprimer la base de données en ligne de commandes

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimer Alexandra Duval, Simei YIN, 2015-2016 (Contributions : Stéphane Crozat, les étudiants de l'UTC) Paternité - Partage des Conditions Initiales à l'IdentiqueRéalisé avec Scenari (nouvelle fenêtre)