SIG 11 ARTICLES DOCUMENTS MEMBRES LIENS

OpenOffice.org et les bases de données

En perdant Adabas, le serveur de bases de données de Software AG dont l'édition personnelle gratuite accompagne StarOffice, pour cause d'incompatibilité avec la licence GPL, Open Office se retrouve privé d'un accès natif à un SGBDR, ce qui manque, quand même, dans le paysage. Bien sûr, ce logiciel est toujours présent dans StarOffice 6.0 laquelle, sous Linux, ne coûte rien d'autre que les 70 Euros nécessaires à l'acquisition de l'excellente Mandrake 9.0 PowerPack, mais on a le droit d'être fauché, on a le droit d'être radin, et on peut préférer trouver une autre solution à partir d'OpenOffice.
Faute de connexion directe, il nous faudra accèder à notre serveur au travers d'une couche supplémentaire, en l'occurrence une interface ODBC : développée par Microsoft et adaptée sur Unix, cette technique permet de communiquer avec n'importe quel logiciel de bases de données, pourvu qu'il soit accompagné d'un pilote adapté. On se doute que le désormais célèbre MySQL fait partie, depuis longtemps, du lot.

Initialiser le serveur MySQL

On ne présente plus MYSQL, serveur de bases de données GPL auquel, pour peu que l'on utilise la version Mysql-Max qui autorise en particulier les clés externes grâce aux tables InnoDB, il ne manque plus grand'chose pour faire comme les grands, et qui garde sa redoutable simplicité d'utilisation. Pour égayer l'aspect un peu austère de la ligne de commande, on utilisera en lieu et place une interface graphique pour construire la table qui accueillera les adresses de notre publipostage. On connaît bien, en la matière, PhpMyAdmin, interface Web qui, comme ses soeurs, a les défauts de ses qualités, et reste loin, malgré son excellente ergonomie, de la souplesse d'une interface graphique.
Des interfaces graphiques pour MySQL, on en trouve beaucoup moins sous Linux que sous Windows : sans conteste, les plus intéressantes sont knoda, développée par Horst Knorr, encore bien expérimentale mais qui fournira à terme une interface complète sous KDE, création de formulaires et d'états compris, et MySQLcc, la console développée par l'équipe de MySQL, toujours fort expérimentale mais tout à fait utilisable pour la création de tables, comme on va le voir maintenant.

En attendant, rappelons les cinq commandes qui constituent le vade-mecum de l'administrateur pressé, et permettent d'initialiser un serveur MySQL fraîchement installé :

  1. mysql_install_db
    d'abord et avant tout, pour créer les tables systèmes
  2. mysql -u root
    ensuite, pour un premier accès au serveur. Rappelons que l'utilisateur root ne peut se connecter que sur un hôte local.

  3. Sa première tâche sera de se munir d'un mot de passe :
    set password for root=password('mon_passe');
  4. Il sera alors temps de créer la base de données :
    create database publipostage;
  5. Et pour finir, on va attribuer à un utilisateur les droits d'administration de cette base :
    grant all privileges on publipostage.* to daniela@"192.168.100.%"  
    identified by 'son_passe';

Créer une table avec MySQLcc

Terminé pour la ligne de commande : toutes les autres opérations pourront être réalisée à l'aide de la console MySQLcc. Téléchargée sur le site de MySQL, elle se présente sous la forme d'une application indépendante et prête à l'emploi, et qui existe en deux parfums :

  • glibc 2.2 pour les principales distributions de la fin 2002, comme la Mandrake 9.0
  • glibc 2.3 si l'on a effectué une mise à jour, possible par exemple pour la Debian 3.0
On téléchargera la version appropriée, on décompressera où l'on veut les trois mégas de la console d'administration, et il ne restera plus qu'à lancer le binaire mysqlcc. On commencera, au moyen du menu Options, par indiquer les chemins d'accès, à priori exacts par défaut, de fichiers textes contenant les règles de syntaxe SQL, et la toute récente traduction française.
C'est tout, c'est parti, et la console s'affiche, dans sa virginité initiale où paraît, en évidence, le bouton permettant de déclarer un nouveau serveur.

Rien que de très banal ensuite : on donne un nom au serveur, on précise son adresse, l'identifiant et le mot de passe de l'administrateur de la base. Les autres paramètres, comme le numéro de port, sont déjà remplis par défaut. Un click sur le bouton Tester : pas de message d'erreur, pourvu que le serveur tourne et connaisse bien l'utilisateur.
Il ne reste plusqu'à cliquer sur Ajouter pour enregistrer ses paramètres. Le serveur apparaît alors dans la partie gauche de la console. D'un click droit sur son nom on se connectera, dépliant par la même une arborescence où l'on trouvera notamment un dossier renfermant les bases de données.

Comme dans tout bon explorateur, il suffit alors de cliquer sur le + pour afficher la liste des bases de données : un click droit sur notre base publipostage ouvre un menu contextuel où il ne nous reste plus qu'à sélectionner l'action Connecter.
Ensuite, en ouvrant publipostage, un click droit sur l'icône Tables nous permettra de demander la création de notre table.
L'interface qui apparaît alors se divise en deux grandes parties :
  • En haut, un tableau où l'on saisira les principaux paramètres des champs de notre table. Outre leur nom, on précisera si l'on souhaite autoriser des valeurs vides en cochant Permettre le NULL, lequel est donc interdit par défaut, et l'on choisira dans la liste déroulante le type de champ approprié.
  • En bas, quatre onglets regrouperont dans un certain désordre des caractéristiques s'appliquant aussi bien aux champs qu'à la table elle-même : dans le premier, Propriétés du Champ, on précisera la taille du champ, une possible valeur par défaut, et d'éventuels paramètres dépendant du type de champ choisi.
Le second onglet nous permettra de déclarer des index ; le premier d'entre eux, sur le champ identifiant sera bien sûr la clé primaire de la table : l'interface graphique nous permet de le sélectionner en le faisant passer de la colonne Champs Disponibles à Champs Utilisés, et de choisir dans la liste déroulante jouxtant Nom de l'Index la désormais omniprésente petite clé jaune.
Si l'on désire indexer ensuite un autre champ, le nom de nos destinataires en particulier, il suffira de le sélectionner de la même façon, puis de cliquer sur le signe + vert : MySQLcc nous demande alors d'attribuer un nom à ce nouvel index. noms fera l'affaire, et il ne restera qu'à choisir le type d'index approprié : en l'occurrence, seul INDEX est pertinent.
Il ne nous reste plus qu'à nous rendre sur l'onglet Propriétés de la Table, où l'on déclarera le nom de la table, agrémenté d'un commentaire si besoin est.
Notre serveur étant paramétré pour utiliser par défaut les tables de type InnoDB à la place des MyISAM habituelles sur MySQL, on les choisira dans la liste.

Ajouter des champs et des enregistrements

Le reste n'est plus qu'ordinaire travail de saisie d'un classique carnet d'adresses. Les champs prénom, nom, voie, ville seront de type varchar, code_postal étant bien sûr un champ de longueur fixe, alias char, d'une taille de 5 caractères. On se permettra de laisser vide le champ email.
On ajoutera un champ sexe sous forme de liste, donc de type enum, en saisissant sur la ligne Valeur de l'onglet Propriétés du Champ les codes, séparés par des virgules, de la classification internationale, soit 0,1,2 et 9.
Un dernier champ pourvu d'un index, departement, recevra les noms des divisions où travaillent nos destinataires.
La table est maintenant prête, et, si on la sélectionne dans la console, MySQLcc affiche sa structure dans la partie droite de la fenêtre. Pour l'instant, ses capacités s' arrêtent là : si l'on définit une deuxième table, on ne pourra pas créer de relations à l'aide de l'interface.
Toujours avec le bouton droit, un click sur le nom de la table, puis l'action Ouvrir la Table / Editer tous les enregistrements, affichera les champs sous forme de colonne, et nous donnera donc la possibilité de saisir nos enregistrements. En apparence, l'environnement est toujours aussi famillier. Notons toutefois que la touche TAB permet un déplacement à l'intérieur de la table, mais ne permet pas la création automatique d'une nouvelle ligne.
Pour insérer un nouvel enregistrement, il nous faudra cliquer chaque fois sur le bouton de la barre d'outils, ou utiliser le raccourci Ctrl + i. Les déplacements, eux, se font classiquement avec les touches de direction. Et si l'on souhaite modifier une valeur d'un champ, un double-click suffit pour être prêt à saisir la nouvelle valeur.
Encore en plein développement, MySQLcc permet déjà de créer des tables et d'insérer des données de manière simple et fiable. La fonction d'administration du serveur donne accès à toutes les variables et statistiques du serveur, l'administration des utilisateurs permet en quelques clicks de définir, table par table, les droits des utilisateurs, domaine dans lequel MySQL se distinguait par des lignes de commande à rallonge.
Les requêtes, quant à elles, se font toujours pour l'instant purement en SQL. Et si nombre de fonctions restent à ajouter, on a déjà avec MySQLcc bien plus qu'une ébauche du client graphique idéal pour MySQL.

 

SIG 11 DOCUMENTS LA SOURCE DE DONNÉES LA CONNEXION ODBC LE PUBLIPOSTAGE

info@sig-11.org