MySQL-workbench : conception de bases de données relationnelles pour tous les SGBDR SQL ?

Posté le 22 février 2009
8
Présentation succinte

Le logiciel de conception de (schéma de) base de données relationnelles DBDesigner permet de concevoir des bases de données MySQL. Il n'est malheureusement plus maintenu.

Racheté par MySQL (cf. un fil de discussion sur les forums linuxfr), il évolue donc plus ou moins (selon ce même fil de discussion, il était complètement bogué il y a un an), sous le nom mysql-workbench.

mysql-workbench existe en version GPL et propriétaire (disponible pour 99$ US). La version courante est la 5.1-alpha. Cette version est largement utilisable, bien que des fonctions de base telles que copier/coller nécessite l'utilisation de la souris. L'ergonomie reste à améliorer, mais je n'ai pas rencontré de plantage durant une semaine d'utilisation intensive.

Je n'ai pas trouvé d'outil libre plus performant. Il permet notamment :

  • de concevoir via des diagrammes sa base de données,
  • d'exporter dans différents formats (svg, png, pdf),
  • de générer du SQL,
  • de se connecter directement à une base MySQL (non testé),
  • de travailler sur différents systèmes d'exploitation : MacOS, Windows, Linux.

Un comparatif des fonctionnalités entre la version GPL et la version commerciale est également disponible sur le site de MySQL.

L'interface est en GTK, donc il s'intègre parfaitement dans Gnome.

L'obtenir et l'installer

mysql-workbench est disponible au téléchargement sur le site web de MySQL. Il est disponible en format binaire et sources ; des paquets pour MacOS 10.5, Fedora Core 9 et Ubuntu 8.04 sont proposés.

Autres distributions :

  • Debian : le .deb Ubuntu ne s'installe pas sur une Lenny, mais la compilation à partir des sources se déroule bien, moyennant l'installation de nombreux paquets de développement.
  • Fedora Core 10 : le paquet Fedora Core 9 est directement utilisable.
  • Autres distributions : je n'ai pas essayé.

Note : il est nécessaire de s'identifier sur le site de MySQL pour accéder à la page de téléchargement ; la création d'un profil est bien entendu gratuite.

Utiliser mysql-workbench avec un autre SGBDR

C'est super me direz-vous, mais si je n'utilise pas MySQL ? Eh bien, c'est mon cas : je travaille avec PostgreSQL. La bonne nouvelle, c'est que les fichiers générés sont des archives (zip ? tar.gz ? je ne sais pas, mais ça s'ouvre avec file-roller). Et l'archive contient un fichier XML très verbeux, sans DTD mais compréhensible. A partir de là, une transformation XSLT permettra facilement de générer du SQL compatible PostgreSQL. J'en suis encore à la phase de conception, je n'ai donc pas encore de feuille de style XSL à proposer.

Par ailleurs, il existe des outils de conversion tels que SQLFairy permettant de passer d'un SGBDR à un autre.

L'intérêt de l'outil graphique

Il est manifestement plus rapide, quand on connait le langage SQL, d'écrire le schéma manuellement. Néanmoins, travailler en équipe nécessite de pouvoir communiquer avec des gens qui ne maîtrisent pas nécessairement le langage, dans ces conditions un diagramme est plus rapide à appréhender que du texte.

Ressources

liées à mysql-workbench :

liées à la conception et la modélisation de bases de données relationnelles :

> Lire le journal (15 commentaires, moyenne: 3,3).

De "OpenDocument Text" vers "X/HTML" dynamiquement...

Posté le 22 décembre 2008
10
Bonjour,

Le format de document OpenDocument est standard et ouvert ; les fichiers respectant ce standard sont donc potentiellement manipulables par n'importe quelle application. Notamment par des scripts PHP.

Mon objectif est simple : déposer par FTP des documents .odt sur un serveur web et les proposer à la lecture sous forme HTML via une conversion dynamique.

J'ai par ailleurs deux contraintes :

  • je souhaite un code x/html excessivement propre (pas de "html" façon OpenOffice ou Word et consorts),

  • je souhaite convertir ces documents dynamiquement, ce qui interdit tout utilitaire graphique.



J'ai donc fouiné sur le web et suis tombé sur différentes librairies/outils permettant d'envisager la manipulation de documents odt via PHP.

odt2xhtml :: http://odt2xhtml.eu.org/
Cet librairie génère du xhtml "propre", une démonstration en ligne est utilisable.
Je n'ai pas encore regardé le code PHP, mais ça devrait être bien puisqu'orienté objet en PHP.

Package PEAR OpenDocument :: http://pear.php.net/package/OpenDocument
Je n'ai pas essayé cette librairie, mais la dernière version est en alpha et date de juillet 2007, ce qui ne m'inspire pas vraiment.

Librairie odtPHP :: http://sourceforge.net/projects/odtphp/
Cette librairie permet de manipuler des fichiers .odt via PHP, mais est visiblement orientée vers la génération de documents.

Par ailleurs, l'installation ne fonctionnait pas directement sur ma Debian (problèmes d'include mineurs, mais problèmes tout de même ; pour faire fonctionner des "tests" qui ne sont pas très explicites)

Note : une librairie ods-php existe également pour manipuler les feuilles de calcul ; je n'ai pas du tout creusé.

Writer2LaTex :: http://www.hj-gym.dk/~hj/writer2latex/ (pas en PHP mais...)
Il se trouve que j'avais déjà utilisé la démonstration en ligne de odt2xhtml, mais ne parvenant pas à remettre la main dessus (jusqu'à maintenant), j'ai cherché un peu plus loin que "php" et je suis également tombé sur writer2latex qui permet de convertir des documents odt en latex ou xhtml. L'intérêt de ce logiciel est qu'il convertit de base en un format xhtml excessivement propre (qui reprend notamment le nom des styles définis dans le document d'origine) et que son comportement peut être personnalisé en définissant des options ou la feuille de style XSL utilisée pour la conversion du document.

Bilan
Le site pour lequel je souhaite implémenter cette conversion dynamique étant hébergé sur un VDS, il m'est possible d'installer writer2latex. Je n'ai pas encore tranché, je penche légèrement vers cette solution tant le code généré est propre. Néanmoins odt2xhtml reste une librairie générant du xhtml presque "parfait" (de mon point de vue), et l'intégration sera facilitée puisque c'est déjà du PHP.

Note : les documents que je souhaite publier sont uniquement textuels : pas de tableaux, pas d'images, pas de mise en page complexe. Pour cette raison, je pense que votre opinion et vos retours d'expérience pourraient être utiles.

Merci

> Lire le journal (19 commentaires, moyenne: 1,7).

Imprimante Lexmark E120n sous Debian Lenny

Posté le 26 mai 2008
0
Voilà... je suis l'heureux propriétaire d'une imprimante Lexmark E120n et bien qu'officiellement reconnue pour être compatible Linux, je ne l'ai pas trouvée dans la liste d'imprimantes proposée par défaut sous Debian Lenny.

Après quelques recherches sur le web, je constate qu'elle est pilotable :
- par des drivers binaires proposés par le fabricant
- comme une imprimante PostScript sous MacOS.

En fouinant encore un peu, je tombe sur un patch proposé pour adapter le fichier de description PostScript (.ppd) pour Ubuntu.

L'url qui va bien est : http://petrkristof.googlepages.com/
Une explication plus complète : http://www.pausechoco.com/dotclear/index.php?2007/03/11/78-l(...)

Mais finalement la procédure que j'ai utilisée (arborescence locale légèrement différente sous Debian) :
1. télécharger le fichier de description PostScript original http://pages.google.com/edit/petrkristof/LexmarkE120n.ppd.tx(...)
2. télécharger le patch pour linux http://pages.google.com/edit/petrkristof/lex-e120n-linux.pat(...)
3. les renommer en retirant l'extension .txt
4. appliquer le patch via la commande patch -p0 < lex-e120n-linux.patch
5. installer le fichier de description pour Cups : gzip -c LexmarkE120n.ppd > /usr/share/ppd/custom/lex120n.ppd.gz
6. Ensuite, il n'y a plus qu'à lancer l'assistant graphique (j'aime bien les gnomes) en indiquant les paramètres à utiliser :
-> imprimante réseau
-> dans la liste, on choisit "imprimante Cups IPP",
-> uri de l'imprimante : ipp://ip_de_l'imprimante

Et... et puis voilà ! J'ai rien inventé, mais ça mange pas de pain de partager une expérience :o)

Note : pour savoir quelle adresse IP possède mon imprimante, j'ai simplement lancé un scan du réseau local (en root) :
mozart:~# nmap -sP 192.168.0.0/24
Starting Nmap 4.53 ( http://insecure.org ) at 2008-05-26 20:28 CEST
Host 192.168.0.1 appears to be up.
MAC Address: 00:04:00:F9:92:5A (Lexmark International)

> Lire le journal (3 commentaires, moyenne: 1,3).

Ajouter [plus de 500|des] polices de caractères à votre distribution Linux

Posté le 12 mars 2006
0
Introduction

Amateur d'infographie, je restais sur ma faim avec ma distribution Debian Sarge jusqu'à peu... Je me souviens de mon bon vieux 166MMX avec Win95 et Corel Draw et les centaines de polices disponibles sur les CDs... que je n'ai plus :( J'ai donc fouiné un peu sur l'internet et j'ai trouvé une solution satisfaisante.

Voici la procédure que j'ai suivi avec succès :
1. Configurer sa distribution correctement en suivant par exemple les conseils de cet article - http://www.the-asw.com/articles/2005/08/01/2-comment-avoir-d(...)
2. Récupérer des polices (libres de préférence, mais pas forcément) sur l'internet. Là, c'est fontolino.de qui m'a bien aidé :-p

Oui, mais voilà, sur fontolino, il faut cliquer sur chaque police pour la télécharger, et j'avais pas envie de passer des heures sur le site en question qui comporte plus de 500 polices...

J'ai donc créé des outils adéquats pour récupérer les polices qui sont proposées au téléchargement sous forme de fichier zip. Ces outils sont écrits en PHP et sont à utiliser en ligne de commande. c'est cette procédure que je vais expliquer ici.


Récupérer et installer les polices de Fontolino

1. Télécharger les polices de caractère

Lorsqu'on télécharge les polices "manuellement" depuis fontolino.de, on constate que les urls sont de la forme http://www.fontolino.de/files/download.php?d=123d est l'identifiant de la police (ici police n°123)...

J'ai donc commencé par récupérer toutes les polices à l'aide de l'outil dont le code apparait ci-dessous.
<?php
// fichier get_fonts.php
if ($argc != 3)
{
echo "usage: php get_fonts.php first last\nwhere first and last are (included) indexes\n\n";
}
else
{
for($i=$argv[1]; $i<=$argv[2]; $i++)
{
$url = "http://www.fontolino.de/files/download.php?d=".$i;
$name = "font-".$i.".zip";
$command = "wget -q -O $name $url";
echo $command." ...";
exec($command);
echo "ok\n";
}
}
?>

Cet outil est exécuté en ligne de commande [ php get_fonts.php id_debut id_fin ]. Il exécute simplement wget avec les paramètres appropriés pour récupérer les polices et les sauvegarder dans le dossier courant.

Note : dans mon cas, id_debut vaut 1 et id_fin vaut 500.


2. Extraire les fichiers

A ce niveau, on se retrouve avec une série de fichiers zip de la forme font-123.zip. Il faut alors supprimer les fichiers vides (correspondant à des identifiant de police inexistant). On les détectera facilement à l'aide d'un gestionnaire de fichiers en constatant que leur taille est de quelques octets seulement.

L'étape suivante consiste à dézipper tous ces fichiers. J'ai donc utilisé un outil qui se content d'extraire tous les fichiers d'un zip :
<?php
//fichier extract_font_files.php

// ouverture du dossier courant en lecture
if($dir_handle = opendir("."))
{
while($file = readdir($dir_handle))
{
// on ne traite que les fichiers ".zip"
if(strlen($file)>=3 && substr($file,-3)=="zip")
{
echo "Archive file : $file\n";
$zip_file = zip_open($file);
// pour ces fichiers on extrait tout le contenu
while ($zip_entry = zip_read($zip_file))
{
$zipped_file_name = zip_entry_name($zip_entry);
echo "> Font file : $zipped_file_name\n";

// on ouvre le fichier contenu dans le zip et on l'extrait localement
if (zip_entry_open($zip_file, $zip_entry, "r"))
{
$zipped_file_content = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
$new_file_handle = fopen($zipped_file_name, "w");
fwrite($new_file_handle, $zipped_file_content);
fclose($new_file_handle);
zip_entry_close($zip_entry);
}
}
}
}
closedir($dir_handle);
}
?>


Cet outil est exécuté en ligne de commande [ php extract_font_files.php ]. Il extrait simplement tous les fichiers contenus dans tous les zip du répertoire courant.

Remarque : cela pose un problème quant aux licences d'utilisation des différentes polices :la licence se trouve dans un fichier texte inclus dans le zip qui sera écrasé par les fichiers de licence suivants.


3. Installer les polices

On se retrouve maintenant avec un dossier bien rempli, contenant :
- les fichiers zip,
- les fichiers des polices (ttf, otf),
- les fichiers php.

Reste à installer les polices qui nous intéressent... Rien de plus facile : visualiser le dossier à l'aide d'un gestionnaire de fichiers tel que Nautilus permet de prévisualiser les polices et de sélectionner celles qui nous intéressent. On se contentera alors de les copier (utilisateur root) dans un sous-dossier de /usr/share/fonts/truetype/ créé à cet effet, par exemple /usr/share/fonts/truetype/fontolino.de. La réouverture de session devrait suffire à les prendre en compte.


Conclusion

La station GNU/Linux propose maintenant une série de polices de qualité variable mais riche. Il n'y a plus qu'à les utiliser :-p

Cette solution n'est vraisemblablement pas la plus simple ni la plus rapide, elle permettra néanmoins aux utilisateurs familiers du langage PHP d'enrichir leur système.


Ressources

Packages nécessaires à la manipulation :
- wget
- php4
- php4-cli
- php4-common

Liens utiles :
- Configurer ses polices : http://www.the-asw.com/articles/2005/08/01/2-comment-avoir-d(...)
- Fontolino, des polices à télécharger : http://www.fontolino.de
- Documentation php : http://nexen.net

> Lire le journal (9 commentaires, moyenne: 3,1).