Le logiciel BaseDeFiches n’utilise pas de base de données relationnelles basée sur le langage SQL pour gérer ses données mais utilise directement du XML. Le langage SQL a cependant pour lui deux avantages :
sa syntaxe permet de faire des requêtes très fines,
de nombreux outils l’utilisent comme par exemple le gestionnaire de bases de données d’OpenOffice.
Pour pouvoir utiliser le langage SQL, BaseDeFiches propose un mécanisme d’exportation des données au format SQL. Son principe est très simple : l’export SQL génère un fichier contenant les instructions SQL permettant la création des tables et l’insertion des données (instruction CREATE TABLE et INSERT VALUES). Il suffit alors d’exécuter ces instructions dans le logiciel de base de données de son choix (dans nos exemples, nous prendrons MySql). Bien sûr, il s’agit d’une copie destinée à la sélection de données, les modifications effectuées dans cette copie ne seront pas prises en compte. Dans nos exemples, nous verrons comment automatiser l’export afin que la copie sous forme SQL soit synchronisée tous les soirs.
Gestion des exportations SQL
La gestion se fait via Administration->Gestion des exportations SQL. On peut créer autant d’exportations SQL que l’on veut. À la création d’une nouvelle exportation, il est demandé de lui donner un nom qui est un nom « technique » (pas d’accents, pas d’espace, en minuscules).
Les paramètres d’une exportation sont les suivants :
Implémentations de SqlExport disponibles : l’implémentation de SqlExport définit le format exact des tables qui vont être générées. Une implémentation est fournie par défaut fr.exemole.bdf.sqlexport.DefaultSqlExport. La création d’une nouvelle implémentation nécessite des connaissances en programmation Java. Ceci sera abordé dans un autre temps. Pour le moment, on choisira l’implémentation par défaut.
ou classe hors liste : à laisser vide si on prend l’implémentation par défaut
Modèle de données tabulaires : c’est la liste des modèles d’exportation sous forme de table susceptible d’être utilisée par l’implémentation de SqlExport. L’implémentation n’est pas obligée de l’utiliser. L’implémentation par défaut utilise ce modèle
Paramètres : il s’agit de paramètres propres à l’implémentation choisie plus haut. Les paramètres de l’implémentation par défaut sont décrits ci-après. Les paramètres doivent se présenter sous la forme {nom du paramètre}={valeur du paramètre} avec un paramètre par ligne.
Fichier d'export : il s’agit du nom et du chemin du fichier qui va être généré. Le chemin doit être absolu et le logiciel BaseDeFiches doit bien sûr posséder les droits d’écriture dans le répertoire.
URL d'accès au fichier : ce champ n’est pas vraiment un paramètre mais plutôt un pense-bête pour indiquer l’url qui permet de télécharger le fichier SQL généré si on veut cette option.
L’implémation par défaut fr.exemole.bdf.sqlexport.DefaultSqlExport
Structure des données
L’implémentation par défaut propose de générer les tables SQL correspondant à un modèle tabulaire déjà défini. On obtiendra ainsi l’équivalent sous forme de tables SQL du classeur OpenDocument. par corpus, une table par thésaurus, une table par croisement entre thésaurus et corpus non vide et une table par croisement entre corpus non vide.
Paramètres
L’implémentation par défaut accepte les paramètres suivants :
charset
: c’est le codage des caractères à utiliser pour le fichier généré, par défaut c’est UTF-8
qui est utilisé.
drop_table
: permet d’inclure des instructions DROP TABLE afin d’écraser les tables existants dans une base de données ; le paramètre prend les valeurs suivantes :
0
: pas d’insertion de l’instruction (valeur par défaut)
1
: insertion de l’instruction
2
: insertion avec la clause IF EXISTS (propre à MySql) qui évite un message d’erreur si la table n’existe pas.
create_table
: permet d’inclure l’instruction CREATE_TABLE avant l’insertion des données ; le paramètre prend les valeurs suivantes :
0
: pas d’insertion de l’instruction (valeur par défaut)
1
: insertion de l’instruction
delete_table
: perment d’inclure l’instruction DELETE_TABLE afin de vider les tables avant l’insertion des données; le paramètre prend les valeurs suivantes :
0
: pas d’insertion de l’instruction (valeur par défaut)
1
: insertion de l’instruction
En général, on utilise les paramètres drop_table
et create_table
en combinaison lorsque l’on veut que la structure des tables suivent le modèle d’exportation des données tabulaires. On utilise delete_table
lorsque le modèle s’adapte à une structure de données existantes.
drop_table= 2
create_table=1
Combinaison d’écrasement de la table existante (si elle existe) et de création de la table
delete_table= 1
Suppression des données de la table