Si vous avez fait beaucoup de choses avec SQL, vous avez probablement utilisé une forme d’IDE SQL pour vous aider à compléter ce travail. Oui, il est possible de tout faire en SQL depuis la ligne de commande ; mais créer ou même maintenir des bases de données et des tables de cette façon est un exercice de masochisme. Il existe quelques IDE commerciaux sympathiques tels que dbArtisan et Management Studio de SQL Server, mais les IDE sont un domaine où l’open-source peut faire tout aussi bien (voire mieux dans certains cas).
Ceci est particulièrement pertinent car l’impact du cloud (c’est-à-dire des SAAS) commence à se faire sentir sur le marché des bases de données commerciales. Les raisons en sont notamment l’utilisation accrue par les fournisseurs de services des bases de données à code source ouvert, ainsi que la montée en puissance d’alternatives telles que NoSQL. Le site web statista suggère que les revenus mondiaux des bases de données commerciales continueront à diminuer dans les années à venir.
Pour cet article, les cinq clients SQL que j’ai choisis sont Squirrel, HeidiSQL, DBeaver, Tora et OmniDB. J’utilise HeidiSQL et Squirrel depuis un certain temps, alors commençons par ce dernier.
Squirrel
Squirrel était un choix de client populaire dans la banque où je travaillais il y a cinq ans, car ils préféraient Java, et c’est en cela qu’il est écrit. Sybase était également très utilisé (ce n’était pas exactement la base de données la plus populaire), et Squirrel est l’un des rares clients qui peut lui parler. (Si vous comptez les points à la maison, Sybase était aussi l’ancêtre de SQL Server). Squirrel coche les cases pour toutes les principales bases de données (Oracle, DB2, Informix, Ingres, SQL Server, SAPDB et Sybase), plus beaucoup d’autres, et a un historique de 17 ans.
Mais Squirrel a fini par être interdit en production à la banque, principalement à cause de sa capacité à supporter des sessions simultanées avec plusieurs bases de données. A quelques reprises, il a manqué de mémoire, causant des problèmes avec les bases de données en direct ; cela lui a valu le carton rouge. Pour l’étendue de la couverture (grâce à JDBC), il est fortement recommandé, mais surveillez le nombre de sessions que vous exécutez ; plus vous avez de mémoire, mieux c’est.
HeidiSQL
A peine plus de la moitié de l’âge de Squirrel, HeidiSQL a été mon préféré personnel au cours des trois dernières années. Il est plus restreint dans sa gamme de bases de données (vous obtenez seulement MySQL/MariaDB, SQL Server et PostgreSQL) mais pour beaucoup, c’est suffisant. Je l’ai trouvé très rapide, ce qui est vital pour des projets tels qu’une table de 29 millions de lignes ; une commande SQL select count (*) contre MariaDB fonctionnant sur mon PC prend environ deux minutes.
Je pense qu’une grande partie de la vitesse est due au fait qu’il utilise ses propres pilotes et se connecte directement, pas par ODBC. Les fonctionnalités d’importation/exportation et l’importation par lots sont particulièrement bonnes : Vous pouvez exécuter de grands fichiers SQL (tels que les exportations de sauvegarde) directement sans les charger dans la fenêtre de requête.
Une autre fonctionnalité intéressante : Lorsque vous écrivez une requête SQL, les colonnes de la table actuellement sélectionnée sont affichées dans une autre fenêtre avec les fonctions et les mots-clés SQL, ainsi que vos propres extraits. Lorsque vous travaillez avec des bases de données en direct et en développement, pouvoir déplacer facilement de gros blocs de données est très important.
HeidiSQL est pour Windows mais peut être utilisé ailleurs via l’émulateur Wine sur Linux et Mac (mais pour être honnête, je préférerais utiliser Squirrel ou DBeaver).
DBeaver
DBeaver est un autre client SQL alimenté par Java ; comme le connecteur JDBC, il possède un large ensemble de bases de données auxquelles il peut se connecter. Il existe une version Enterprise, qui inclut le support des bases de données NoSQL (Cassandra, MongoDb et Redis), mais l’édition communautaire est celle que j’ai examinée.
Il y a une grande liste de bases de données à essayer à partir de l’assistant de connexion ; j’ai choisi SQLite, car j’ai une base de données de 600 Mo créée pour un projet il y a quelques années. Il a fonctionné avec cette base de données sans problème, et j’ai été impressionné. Bien que je préfère toujours HeidiSQL, je serais très heureux d’utiliser DBeaver si l’occasion se présentait.
Une chose à noter : DBeaver n’installe pas les pilotes au départ, mais va les chercher au fur et à mesure que vous en avez besoin (c’est très « Eclipse-like »). C’est probablement parce qu’il est construit sur la plate-forme Eclipse, donc si vous êtes habitué à cela, vous vous sentirez à l’aise. En tout cas, je n’ai eu aucun problème avec cette application, qui m’a semblé très rapide. La gamme de formats d’exportation comprend CSV, HTML et XML, ainsi que JSON et Markdown.
L’avantage de Java pour ce logiciel et Squirrel est que vous n’êtes pas limité par la plate-forme ; DBeaver comprend à la fois des installations Debian et RPM pour Linux, ainsi que Windows et Mac.
Tora
Écrit en C++, j’ai choisi Tora comme l’un des cinq parce qu’il supporte Oracle et possède un débogueur PL/SQL. Il est multiplateforme et testé avec GCC, Clang et MSVC 2013/2015. En plus d’Oracle, il prend en charge MySQL, PostgreSQL et d’autres bases de données via ODBC. Il est devenu open source il y a 13 ans.
Comme vous pouvez vous y attendre, Tora utilise Qt pour l’interface utilisateur et est rapide, mais il semble un peu daté, en particulier lors de la connexion à MySQL. Si vous travaillez avec Oracle, et que vous n’avez pas de logiciel commercial, utilisez Tora ; mais pour MySQL/PostgreSQL, ou n’importe lequel de HeidiSQL, Squirrel et DBeaver est probablement meilleur.
OmniDB
OmniDB est un peu différent du reste. Il est écrit en Python et installe un serveur web local et un navigateur. Les bases de données prises en charge sont Oracle, MySQL, MariaDB et PostgreSQL. Les bases de données SQLite, SQL Server, DB2 et Firebird ne sont pas actuellement prises en charge, mais sont clairement sur la feuille de route.
Je ne suis pas un fan des interfaces graphiques Web en général, mais cela avait l’air génial et fonctionne très bien. HeidiSQL et DBeaver fournissent un meilleur import/export, mais OmniDB est ouvert aux suggestions de développement futur. Tout comme les deux clients Java, OmniDB est multiplateforme, et a l’apparence la plus moderne.
Conclusion
Je suis habitué à HeidiSQL, mais les fonctionnalités de DBeaver m’ont impressionné. Squirrel est très solide et mature. OmniDB a l’air sympa, bien qu’il soit un peu léger en fonctionnalités pour le moment ; vous ne devineriez probablement pas qu’il utilise le CMS Django. Tora est assez bon mais pourrait avoir une meilleure connectivité.