Developpez.com - Rubrique SGBD

Le Club des Développeurs et IT Pro

Quels sont vos SGBD gratuits préférés en 2022 ? Et pourquoi ?

Partagez vos avis

Le 2022-12-01 08:00:00, par Malick, Community Manager
Comme vous le constatez, les bases de données sont au cœur du système d'information des entreprises et il devient donc relativement très important de bien choisir son Système de gestion de base de données (SGBD). Pour ce faire, il existe actuellement un nombre important de SGBD payants et propriétaires dont le support et les prestations engendrent des coûts qui sont parfois très élevés. Parallèlement à ces SGBD payants, on trouve également des SGBD gratuitement mis à la disposition des utilisateurs qui peuvent alors les utiliser comme de véritables alternatives aux SGBD propriétaires. Le sondage que nous vous proposons ici portera donc sur ces derniers SGBD gratuits, cela afin de recueillir vos avis et retours d'expériences quant à vos SGBD gratuits préférés, et les raisons pour lesquelles vous avez choisi tel SGBD en lieu et place d'un autre.

Rappelons que lors du précédent sondage, PostgreSQL occupait la première marche du podium avec 50 % des voix sur un total de 106 votants. Il était suivi par Firebird et SQLite classés respectivement deuxième et troisième avec 24 % des voix et 21 % des votants. MySQL (18 % des votants) arrivait en quatrième position tandis que SQL Server Express se classait cinquième avec 15 % des votants.


Comme pour l'édition précédente, notre sélection a porté sur les SGBD ci-après , et la liste pourra être complétée en fonction de vos suggestions :

  • Cassandra ;
  • Firebird (base de données en C++, développée à partir d'une version d'Interbase) ;
  • MariaDB (fork de MySQL depuis le rachat de Sun par Oracle) ;
  • MongoDB (la nouvelle base à la mode, fer de lance de la démocratisation du mouvement NoSQL, du stockage et des traitements distribués) ;
  • MySQL (est-il encore besoin de présenter ?) ;
  • Oracle XE (la déclinaison gratuite du SGBD d'Oracle, avec des limitations) ;
  • PostgreSQL (l’autre SGBD open source « traditionnel » avec MySQL, avec un modèle plus « orienté objet » ;
  • SQLite (le moteur de base de données le plus distribué au monde) ;
  • SQL Server Express (la déclinaison gratuite du SGBD de Microsoft, avec ses fonctionnalités principales, mais évidemment sans la haute disponibilité ou le clustering).


Pour résumer, l'objectif à travers ce sondage est donc d'avoir vos retours, en tant qu’utilisateur de l’une ou de plusieurs de ces SGBD, sur ceux que vous avez le plus appréciés du fait de leur facilité d'utilisation, de leur puissance, de leur rapidité, de leur flexibilité, etc.). Aussi, nous souhaiterions savoir quels SGBD vous recommanderiez à la communauté comme alternatives aux solutions payantes.

La qualité du débat viendra donc du partage d'expérience ; au plaisir de vous lire.

Et vous ?

Votre SGBD préféré est-il sur la liste que nous vous proposons ? Sinon, lequel souhaiteriez-vous voir apparaître ?
Pourquoi le SGBD choisi vous a-t-il particulièrement séduit ?
  Discussion forum
51 commentaires
  • Pierre Louis Chevalier
    Expert éminent sénior
    Envoyé par kbadache
    MongoDB a pas disparut aussi vite qu'il est arrivé ?
    A une époque tout le monde en parlait et voulait l'utiliser, aujourd'hui, j'en entend plus parler du tout.
    Tu n'as pas forcément de meilleures performances avec Mongo DB versus MariaDB (fork de MySQL), et avec MongoDB tu dois faire une appli spécifique NoSQL et énormément downgrader en fonctionnalités par rapport à SQL.
    Beaucoup pensent qu'en fait le NoSQL a été un buzz marketing commercial, mais que dans les faits en production ça se justifie très rarement. C'est bien plus simple de rester sur SQL, et d'utiliser des batteries de serveurs MariaDB ou MySQL ou équivalent, c'est ce que font la plupart des grosses boites du web. Et si les performances c'est pas crucial et que tu n'as pas une tonne de transactions à gérer, et que tu veux un produit gratuit avec un SQL riche, il y a PostgreSQL.

    Donc pour résumer de façon simpliste :
    - Mass transactions : MySQL et forks (MariaDB etc) ou MongoDB.
    - Vrai SQL riche pas cher : PostgreSQL (ou Firebird).
    - Applications stand alone avec SGBD : SQL Lite, Firebird, SQL Server express.
  • kbadache
    Membre averti
    MongoDB a pas disparut aussi vite qu'il est arrivé ?
    A une époque tout le monde en parlait et voulait l'utiliser, aujourd'hui, j'en entend plus parler du tout.
  • thamn
    Membre averti
    Envoyé par kbadache
    MongoDB a pas disparut aussi vite qu'il est arrivé ?
    A une époque tout le monde en parlait et voulait l'utiliser, aujourd'hui, j'en entend plus parler du tout.
    Helas.. Au boulot des que tu parles de base de données c'est la solution qu'on te sors.
    Au final tu te retrouve a coder toi même dans ton application cliente ce que tu faisais faire a la base de données avec un peu de SQL.
    Meme apres usage, j'ai toujours pas vraiment compris l’intérêt de cette technologie.
    Juste ça a l'air de couter moins cher, mais bon ce que tu gagnes coté DB est perdu coté client non?
    Probablement pire vu que la DB est supposée pouvoir optimiser.
  • vanquish
    Membre chevronné
    Le vote est un peu difficile car la préférence va avec l'usage.
    On ne peut pas comparer PostgreSQL à SQLite.

    J'aime beaucoup MariaDB dont la licence du client est plus souple que celle de mySQL (LGPL au lieu de GPL).
    I est livré avec un outil de sauvegarde à chaud (sauvegarde binaires et incrémentales) qui n'est disponible qu'avec la version payante de mySQL.
    Relativement simple à administrer.

    Mon second choix va pour Firebird qui est réellement un produit gratuit issue d'une fondation et non un produit d'appel pour une version payante.
    La licence permet une vrai redistribution gratuite.
    Sur les volumes raisonnable permet une administration zéro.
    Outils de backup puissant livré avec.
    Pour les petits groupes d'utilisateurs avec des volumes de quelques Go c'est la solution idéale (même s'il existe des bases en To).
    De plus la DLL cliente peut fonctionner comme un serveur local, ce qui permet aussi de faire du monoposte ou embarqué sans serveur SQL installé (à l'image d'un SQLite) avec strictement le même code.
    Défauts : de multiple GUI gratuits, mais tous inachevés. La fonction count() très très très lente.

    Je préfère ces solutions à SQL Server Express qui est pourtant fonctionnellement plus abouti et dont la redistribution ne pose aucun soucis, car si jamais un site atteint une des limites de la gratuité, c'est l'explosion tarifaire et un méandre de modes de licences à maitriser.
  • CinePhil
    Modérateur
    Professionnellement, j'utilise MariaDB et Oracle (pas le gratuit). Nous avons aussi une application qui tourne avec PostgreSQL mais je n'ai pas encore eu à mettre les mains dans le cambouis. Il parait que vient d'arriver aussi un SQL Server pour gérer des équipements multimédia dans un bâtiment entièrement rénové mais, là encore, il est peu probable que j'aie l'occasion de jouer avec.

    Par contre, j'ai joué brièvement avec SQL Server Express il y a quelques années. C'est du clickodrome à la Microsoft donc ça m'a semblé relativement facile à utiliser mais je n'ai pas exploré à fond.

    Ce que je connais le mieux, c'est MariaDB (et donc MySQL, surtout dans des versions plus anciennes vu qu'on les a remplacées par MariaDB), professionnellement et personnellement ; et PostgreSQL aussi personnellement.
    Ma préférence entre ces deux là va à PostgreSQL en raison de sa meilleure conformité à la norme SQL et je trouve pgAdmin plutôt facile à utiliser et plus complet que phpMyAdmin ou même MySQL Workbench que j'utilisais surtout pour faire les diagrammes E/R.

    Donc mon classement est :
    1) PostgreSQL
    2) MariaDB
    3) Oracle

    Je préfère ne pas me prononcer sur SQL Server que je n'ai vraiment pas assez utilisé pour juger.

    PS : autre critère important pour moi : faut que ça tourne sous Linux et sans trop se prendre la tête. Je n'ai pas encore essayé d'installer SQL Server sous Linux mais ce que j'avais commencé à regarder m'avait un peu rebuté : réservé semble t-il à quelques distributions.
  • Pierre Louis Chevalier
    Expert éminent sénior
    Envoyé par weed
    Peut on dire que Microsoft avait imposé cette limite uniquement logiciellement dans ce cas ?
    Non il sont pris le code de sybase et l'ont porté sous Window, leur but étant à l'époque d'avoir leur SGBD sous windows, après c'est pas récent donc le fork a largement évolué depuis.

    Envoyé par weed
    Puis par la suite, MS est revenu sur sa décision et ont fait sauté cette limite pour le rendre installable sur Unix/Linux.
    Leur stratégie a changé puisque maintenant ils admettent que Linux c'est pertinent comme OS serveur à tel pour que la majorité des services Azure sont hébergés sous Linux.
  • ben51
    Membre régulier
    Envoyé par yahiko
    Il n'y a pas de débat. Rien ne peut rivaliser avec les performances, la souplesse d'administration et la puissance du moteur SQL du SGBD de Microsoft, SQL Server.
    Dans ce cas il n'y a pas débat Oracle est encore mieux XD.
  • escartefigue
    Modérateur
    Ma seule véritable expérience PostgreSQL en production est celle d'un client qui a une base de près de 30 To dont les performances sont catastrophiques malgré une équipe DBA qui y consacre beaucoup de temps, en vain.
    À volume comparable, ou supérieur, DB2 for Z/OS, qui est loin d'être gratuit, est très, mais alors très très supérieur en perfs.
    Je me garderai bien de généraliser, mais ça ne fait pas envie pour les grosses bases.

    J'élimine d'emblée SQLite qui n'est pas un véritable SGBDR, il est mono-utilisateur, n'a pas de catalogue relationnel, ses types de données sont pauvres...

    MySQL bien que largement amélioré depuis la V8 avec l'arrivée très tardive des CTE et des fonctions fenêtrées reste à la traîne sur bien des fonctionnalités.

    Du coup ma préférence va à SQL server.
  • JPLAROCHE
    Membre expérimenté
    Bonjour, je ne confonds pas les mégas to de données…

    PG est une excellente approche et très respectueux de la norme.
    DB2 non gratuit, mais pour des très grosses brassés de données, il est GÉNIAL

    et mon petit Sqlite pour des applications très pratique. ( je ne compare pas au gros SGBD) mais il fait son taf et bien, il a révolutionné la bd portable et surtout transportable
  • esperanto
    Membre émérite
    Je n'utilise pas toujours la même BD en fonction du projet, donc j'ai eu l'occasion d'utiliser la plupart des serveurs libres.
    J'ai eu parfois certains projets tournant en PostgreSQL et d'autres en MariaDB, simplement parce que chacun avait une librairie exclusive que je n'avais pas le temps de réécrire/remplacer juste pour changer de serveur. Mais on a toujours des fan boys qui envoient un commentaire juste pour demander pourquoi je ne supporte pas aussi le concurrent, même si je l'avais déjà expliqué sur le site!

    Autrefois j'aurais préféré MySQL mais depuis le rachat par Oracle, elle a perdu de sa superbe et même son fork mariaDB n'a pas repris les parts de marché dévolues à PostgreSQL.
    Reste que MySQL peut fonctionner en mode non-transactionnel, ça peut être source de meilleures performances dans certains cas (par exemple, pour héberger un blog qui est lu très souvent mais rédigé toujours par la même personne donc pas d'écritures concurrentes). Dommage que les autres ne le proposent pas, mais après tout c'est du libre, si on veut une fonction on n'a qu'à la faire soi-même!

    SQLite, c'est ce que j'utilise quand je veux faire de l'embarqué, mais je préfèrerais qu'il y ait quand même des types. Au passage je peux aussi citer quelques serveurs SQL qui ont été oubliés ici: Apache Derby, ou Hypersonic SQL. Chaque fois que je veux faire de l'embarqué en Java, je les préfère à SQLite parce qu'ils supportent vraiment des types. Mais c'est uniquement pour Java. Alors pour les projets non-java, je vais regarder ce que Firebird propose, puisqu'il est également adapté à l'embarqué.

    Envoyé par kbadache
    MongoDB a pas disparut aussi vite qu'il est arrivé ?
    A une époque tout le monde en parlait et voulait l'utiliser, aujourd'hui, j'en entend plus parler du tout.
    Apparemment MongoDB a un peu trop joué avec les changements de licence, ça a pu en décourager certains.
    Heureusement NoSQL ne se limite pas à MongoDB.

    Envoyé par Pierre Louis Chevalier
    Beaucoup pensent qu'en fait le NoSQL a été un buzz marketing commercial,
    Le NoSQL a surtout suscité une levée de boucliers de la part des DBA qui ne voulaient surtout pas avoir à faire autre chose que du SQL. Ils nous avaient déjà fait le coup avec ODMG: ils comparaient une base Oracle hyper-optimisée avec un équivalent qu'ils avaient écrit au lance-pierres avec le concurrent, et ensuite ils se servaient du benchmark biaisé pour dire que SQL était plus performant.

    Envoyé par Pierre Louis Chevalier
    mais que dans les faits en production ça se justifie très rarement. C'est bien plus simple de rester sur SQL,
    Plus simple, ça dépend pour qui. Si c'est pour intégrer des outils déjà écrits, certes.
    Mais en tant que développeur et non DBA, pour moi l'absence d'un vrai modèle objet dans SQL (sauf en partie dans PostgreSQL avec l'héritage de tables) est une catastrophe: ça a entraîné la création de plein d'ORM (des librairies qui tentent de simuler le modèle objet avec des tables SQL) ce qui paradoxalement nuit à SQL parce qu'avec un ORM tu n'écris plus toi-même tes requêtes, elles sont générées par un moteur générique qui sous prétexte de supporter des dizaines de serveurs SQL distincts, génère des requêtes tout sauf optimisées... et ensuite on se fait engueuler par le DBA.

    Envoyé par SQLpro
    Mais c'est pas du libre. J'ai néanmoins voté pour PstGreSQL car le sondage porte sur le libre.
    Pour une fois le sondage portait sur le gratuit, pas le libre. On insiste souvent sur la différence entre les deux, et pour une fois il n'y avait pas d'erreur, le sondage cite les principaux produits gratuits, sinon ils n'auraient pas cité SQL server ou Oracle XE. Donc tu aurais pu voter pour eux.

    Envoyé par SQLpro
    Mais je suis aussi le pire des détracteurs de PostGreSQL car j'ai vu de nombreuses fakes news pseudo technique expliquant que PostGreSQL était l'équivalent d'Oracle, ce qui est plus que totalement faux !
    ça dépend pour quoi. En tant que développeur, j'utilise très souvent une base PostgreSQL en développement tout en sachant que la version de prod, sur laquelle je n'aurai jamais à aller, sera en Oracle.
    Pourquoi pas directement en Oracle? Parce que même en version XE, Oracle reste plus compliqué à installer que Postgres, et moi je suis développeur pas DBA, donc la BD est un composant de mes développements, pas le point principal.
    Et pourquoi PostgreSQL plutôt qu'un autre produit libre? Pour en revenir à ta citation, de tous les serveurs libres ça reste celui dont la syntaxe SQL est la plus proche de celle d'Oracle, donc une partie raisonnable du code (mais pas la totalité on est d'accord) pourra fonctionner sur les deux serveurs, ce qui ne serait pas le cas avec MySQL/MariaDB ou Firebird.
    Bien sûr certains vont me parler de performances. Mais moi je vous parle d'un environnement de développement, donc une base qui va de toute façon contenir une très petite quantité de données. Du coup dans cet environnement aucun problème de performances. S'il y a des optimisations à faire, on les verra mieux dans un environnement de test.
    En termes de fonctionnalités, PostgreSQL reste le meilleur compromis quand on ne peut pas utiliser Oracle ou SQL Server, qu'on ne veut pas investir et qu'on n'a pas de souci de performances (en développement par exemple). Pour les performances en production c'est un autre débat dont je ne parle pas ici et maintenant.