En Open Source, je ne connais que mySQL. J'ai pas mal ouïe-dire à propos de PostGre SQL, et ayant travaillé pendant mes études sur Open Ingre, qui fait partie de ses ayeux, je peux déjà dire, de but en blanc qu'au point de vue des Open Source, mySQL est, d'un point de vue fonctionnel, très très loin derrière 90% des autres SGBD, qu'ils soient payants ou Open Source.
La raison du succès de mySQL remonte à l'époque des premiers serveurs mutialisés qui se sont mis à proposer du PHP.
mySQL était à l'époque extrêment rapide. Il ne savait pas faire grand chose, mais il était le seul à être capable de le faire aussi rapidement. A cette époque, où Linux n'était pas du tout fiable, et que seuls des serveurs Unix étaient capable de faire tourner convenablement des sites web, s'est donc imposé le produit le plus lite, puisque la différence de prix entre un serveur Alpha et un x86 est loin d'être négligeable.
C'est de cette époque que vient mySQL uniquement, tout comme la popularité de MS-DOS (puis Windows) ne vient que du fait qu'ils ont été les premiers OS / Environnement graphiques à fonctionner sur plateformes x86.
Ensuite, que ce soient Mirosoft ou la communauté mySQL, chacun à sû exploiter cet avantage afin de perdurer malgré leurs limitations.
Encore aujourd'hui, mySQL couvre un domaine fonctionnel très en deçà du premier SGBD de bureautique venu, tel qu'Access. Les dernières avancées de mySQL en ce qui concerne sa couverture fonctionnelle laissent promettre pas mal quant à l'avenir, mais aujourd'hui, il est très largement inadapté à la moitié des utilisations qu'on en fait dans les entreprises.
Un moteur de recherche tel que Google est un des seuls type d'application où mySQL a une réelle supériorité par rapport à ce qui existe sur le marché (en gratuit ou non). Pourquoi ?
Parceque d'un point de vue complexité des données, un moteur de recherche reste extrêment simplissime. Par contre, l'immense volume de données à traîter nécessite un SGBD particulièrement léger, et capable d'aller très vite. Un peu à la façon d'une formule 1 qui n'a pas d'essuie-glasse ni de climatisation, mySQL est êtrement rapide, car ne sâchant presque rien faire, il ne perd pas de temps avec les fonctions présentes sur les autres SGBD. Maintenant, aller à un séminaire avec une F1, ça risque de poser un problème, on risque de puer la sueur ou d'arriver mouillé parcequ'il pleuvait sur le chemin.
Tout dépends de l'utilisation qu'on veut en faire.
mySQL sera par exemple totalement inadapté à des applis critiques (et non pas des données critiques, ou très fortement solicités, ça n'a rien à voir). Dans le domaine de la banque par exemple, mySQL est TOTALEMENT absent. Pourquoi ? Parcequ'il ne dispose d'aucun mécanisme de vérification des contraintes complexes, de transaction et d'optimisations de traîtements lourds.
Pour une base simple, à seul but de consultation (forum, moteur de recherche, CMS, etc.), mySQL est très bon, car il est à la fois rapide, et capable de gérer d'énormes volumes de données sans fléchir.
Par contre, pour gérer un ERP, des informations bancaires, ou simplement un outils de vente, mySQL est à proscrire fermement, car il est incapable de garantir qu'un montant débité sur un compte est crédité dans un autre, qu'une ligne de commande traîtée a bien été ventillées dans des lignes de colis, ou que le client a bien été créé avec une adresse de livraison.
On peut évidement contourner ces limitations de mySQL via des développement lourds, complexes, immaintenables au niveau applicatif, mais au bout d'un moment on ne peux pas tout garantir.
Je suis partisant de déporter les contrôles au niveau de l'applicatif, mais jusqu'à un certain niveau. Tout ce qui peut être fait en PS au sein de transactions notamment DOIT être fait via ce système. Les raisons sont trop nombreuses pour que je perde mon temps à toutes les détailler ici. Chacun d'entre nous qui a fait quelques cours de SI sait de quoi je parle.
Bref. mySQL n'est pas à proscrire des entreprises, mais pas non plus à prescrire à tout bout de champ. Je dirais même mieu, il est à éviter par défaut, et si, après étude, on s'apperçoit qu'il fait l'affaire, quelque-soient les évolutions envisagées, alors oui, on peut l'utiliser.
Personnellement, je préconnise MSDE qui est gratuit, parceque tournant sur plateforme Windows, et étant du même éditeur qu'Access, il est simple à mettre en place, les migrations simplifiée, et surtout, on n'a pas besoin de nouvelles compétences ni de nouveau matériel : MSDE peut très bien fonctionner sur n'importe quelle machine qui fait habituellement tourner Access.
Second gros avantage de MSDE, c'est que le jour où l'application évolute tellement que MSDE ne suffit plus (un bi-pro n'est plus capable de suivre les traîtements de plus en plus complexes, le nombre de connections dépasse les 25 par défaut, etc.) on peut migrer (oui, ça a un coût) vers SQL Server. Seulement, la migration de MSDE vers SQL Server coûte 0 , même une secrétaire à qui on donne un post-it ratturé est capable de dupliquer une base MSDE sur un serveur SQL Server. Passer de mySQL à PostGre SQL par exemple, c'est une autre paire de manches. Même si ça ne demande pas de tout réécrire, une grande partie du code sera impactée, sans parler de la récupération des données, qui ne se fera pas en 3 clicks (nien trois lignes de commandes)
Deplus, la couverture fonctionnelle de MSDE est d'un niveau très proche d'Oracle, c'est à dire infiniement plus vaste que cette de mySQL. Pour cette raison, il y a 99% de chances qu'une appli évoluant, archtecturé autour de MSDE n'aie pas besoin de changer de SGBD, alors qu'une appli sur mySQL risque fortement de nécessiter un changement de SGBD très rapidement.
PS: ceci dit, il faut mieu utiliser mySQL qu'Access. Si ce n'est pas possible (pas de support des vues, fonctions, contraintes complexes, etc.) alors à ce moment, au lieu de rester cloîtrer avec Access, autant passer à MSDE, ou à un autre SGBD de couverture fonctionnelle proche de ce dernier (PostGre SQL pour ne pas le re-re-re-re-citer).