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

Posté par (page perso) .
Tags : aucun
8
22
fév.
2009

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 :


  • # cool

    Posté par (page perso) . Évalué à 4.

    effectivement, DBDesigner4 n'était à peu près utilisable que sous windows (soucis d'affichage et de segfault iirc sous GNU/Linux).
    mysql-workbench avait aussi ses petits soucis de jeunesse lorsque j'avais essayé (il y a plus d'un an, ça segfaultait limite au démarrage).

    ton idée que ce soit aussi utilisable pour PostgreSQL est importante aussi (ce serait bien que ça puisse être pris en compte upstream, mais bon :D).
    En tout cas, heureux que ma page de liste d'outils de modélisation puisse servir ;-) (j'allais la reproposer quand j'ai vu que tu l'avais déjà citée :p).
    • [^] # MeriseAcide

      Posté par (page perso) . Évalué à 6.

      Tu peux rajouter MeriseAcide à ta liste.

      MeriseAcide adopte une approche KISS de la conception de base de données. Dans un fichier de texte plat (un .ma si vous voulez suivre la convention), vous saisissez vos tables et leurs champs, puis les relations (pour la syntaxe voir l'exemple ci-dessous). MeriseAcide va générer le MCD et le MPD pour vous, de même que les fichiers sql pour créer la base avec (mysql|postgresql|sqlite).

      Exemple :

      # Vous pouvez commenter votre fichier
      # Les commentaires c'est le bien(tm), mettez en

      # Une table
      [trolls]
      # le "+" est pour signaler la clef, MA complète le "_"
      # avec le nom de la table
      +id_
      # vous pouvez préciser le type de la valeur et autre
      # joyeusetés sqliennes
      velu boolean
      nom varchar(42) UNIQUE
      histoire text
      # ou pas et juste lister les champs
      vendredi
      godwin

      [géniteurs]
      +id_
      nom
      aime_sa_boulangère boolean

      # Puis les relations
      géniteurs 0,n engendre 0,n trolls


      Personnellement je ne me reverrais pas passer à une interface click-click pour faire des shémas de base de données. En plus d'être on ne peux plus portable (fichier texte plat, vous pouvez bosser dessus n'importe où) les graphiques, et notamment les liaisons, se font automatiquement, là où vous perdez un temps fou à les placer de manière lisible avec d'autres outils graphiques.

      MeriseAcide est libre (GPLv3) vous le trouverais par là http://bombela-dev.is-a-geek.org/MeriseAcide
      • [^] # Re: MeriseAcide

        Posté par (page perso) . Évalué à 2.

        J'aime bien cette approche en terme d'efficacité. Ca génère correctement les diagrammes avec Graphiz ?

        Pour travailler en équipe, je trouve que l'aspect graphique du schéma de la base (pas de l'interface utilisateur) est fondamental.
        • [^] # Re: MeriseAcide

          Posté par (page perso) . Évalué à 4.

          je l'ai ajouté à ma liste et j'ai trouvé sur la doc' de MeriseAcide un exemple (avec les schémas générés par graphviz)
          http://www.metal3d.org/index.php/blog/ticket/2008/08/12/Meri(...)

          (il faudrait trouver un exemple "taille réelle" pour se faire une idée)
          • [^] # Re: MeriseAcide

            Posté par (page perso) . Évalué à 3.

            Je l'ai utilisé avec un schéma d'une dizaine d'entités et une quinzaine de relations (ce qui n'est pas énorme mais déjà plus gros que l'exemple donné) et il s'en sort pas trop mal. Au niveau du MCD il m'a juste fait passer un trait d'une relation par dessus la bulle d'une autre relation, mais sinon, pas de problème.
      • [^] # Re: MeriseAcide - limitations

        Posté par (page perso) . Évalué à 2.

        J'ai essayé MeriseAcide, et je trouve que pour faire un modèle de données "propre", il a des inconvénients (ou des fonctionnalités que je n'ai pas trouvées :
        - les clés étrangères ne sont pas nommées nommées identiquement ie (une clé étrangère matable.monchamp est appelée fkmonchamp et nom pas monchamp, ce qui est moins intuitif)
        - le SQL généré inclus un "ON DELETE CASCADE" systématiquement, ce qui n'est pas forcément ce que l'on recherche (s'il faut retoucher le SQL au niveau "modèle", l'outil perd pas mal de son intérêt)
        - L'outil ne propose pas de créer des indexes (on peut le faire en ajoutant le code nécessaire)

        Ces problèmes peuvent être contourné en "codant" directement ce qui est nécessaire, néanmoins du coup les diagrammes générés ne sont pas corrects.
  • # Mysql-workbench et DB designer

    Posté par . Évalué à 4.

    Je suis assez déçu de Mysql workbench pour le moment.
    D'abord parce qu'il n'est pas stable (chez moi ça plante dès que je veux renommer une table) et puis parce que ça n'est pas la continuation de DBDesigner.
    Sun a racheté ce logiciel qui avait ses mérites et l'a enterré, reprenant l'aspect extérieur mais pas vraiment le fonctionnement.
    L'intérêt de DBDesigner était de permettre la modélisation Merise comme AMC designer sous linux.
    Maintenant, mysql workbench ne peut que s'améliorer c'est évident et quand il sera fonctionnel je le réessayerai.
  • # Erreur lors de la création du package Debian

    Posté par (page perso) . Évalué à 4.

    J'ai oublié de préciser : j'ai compilé mysql-workbench en utilisant la commande "make_deb" (inclue dans les sources), qui échoue finalement (sur ma machine, je ne sais pas si c'est générique) avec le résultat suivant :

    dpkg-deb : construction du paquet « mysql-workbench-oss » dans « ../mysql-workbench-oss_5.1.7-1_i386.deb ».
    signfile mysql-workbench_5.1.7-1.dsc
    gpg: « Alfredo Kojima <kojima@sun.com> » a été ignoré: la clé secrète n'est pas disponible
    gpg: [stdin]: clearsign failed: la clé secrète n'est pas disponible


    Je ne connais pas le fonctionnement de la signature de paquets (donc je ne peux pas investiguer) ; néanmoins le binaire est bien généré et fonctionnel. On le trouvera dans le dossier :
    <repertoire_de_travail>debian/mysql-workbench/usr/bin
    • [^] # Re: Erreur lors de la création du package Debian

      Posté par . Évalué à 6.

      En fait la compilation elle-même n'échoue pas, c'est juste un warning qui dit que le fichier de signature n'a pas été généré.

      Normal, le paquet est censé être généré (ça doit être spécifié quelque part dans le répertoire "debian/" des sources) par « Alfredo Kojima <kojima@sun.com> » qui n'est pas toi, donc j'imagine que tu n'as pas sa clé secrète :)
  • # Version mandriva a venir

    Posté par (page perso) . Évalué à 4.

    Je viens de tester cette version et elle compile (enfin) sous Mandriva et démarre !

    Avant ça plantais lamentablement au lancement après des magouilles pour le compiler...

    Ça semble un très bon outil, si la distinction version oss <-> commerciale n'est pas faite sous linux ça sera utilisable

    Sinon il risque d'y avoir un fork si on ne peux même pas se faire les plugins complémentaire à l'outil pour palier les plugin castrés de la version libre...

    C'est vraiment typique d'une réflexion de commercial windows quand même, limiter les possibilités d'un logiciel et faire payer pour avoir des fonctionnalités en plus...

    Plutôt que de vendre juste le support + plugins supplémentaires spécifiques à la demande.

    Paquet a venir dans la cooker bientôt ;)

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.