Comme je l'ai fait pour les principaux langages de programmation, j'ai souhaité faire un bilan sur l'utilisation des principaux SGBD. Le travail a été plus difficile car il existe très peu de classements "tout faits" sur le sujet. Par ailleurs, l'émergence des SGBD "NoSQL" complique la tâche. En effet, cela implique un certain nombre de biais :
- Un classement général
- Un classement pour les SGBD "SQL"
- Un classement pour les SGBD "NoSQL"
2. Les sources
Très peu de sites semblent avoir mené une recherche sur la popularité/l'utilisation des SGBD. J'en ai malgré tout trouvé 2 : Trendy Skills et surtout DB-Engines. Les autres classements sont donc des classements personnels tentant de prendre en compte un certain nombre de critères utilisés dans les classements existant sur les langages de programmation.
Critères utilisés
Les critères utilisés sont essentiellement les suivants :
- Les offres d'emploi
- Les profils sur les réseaux professionnels
- Les requêtes dans les moteurs de recherche
- Les messages dans les forums
- Les messages d'information sur certains sites professionnels
La liste
- Google trends
- Ce site permet d'évaluer les recherches faites sur Google. Les chiffres ne sont pas absolus, mais relatifs, ce qui rend difficile une évaluation de tous les SGBD, certains étant très négligeables par rapport à d'autres. Mais comme j'ai décidé de me focaliser sur les quelques SGBD dominants, cela marche quand même. Il s'agit d'une évaluation "manuelle" : je n'ai pas pris le temps de développer un logiciel faisant une évaluation automatique.
- Indeed
- Indeed est un site qui propose des offres d'emploi au niveau international. Je fais un classement en fonction du nombre d'offres trouvées par une recherche manuelle effectuée le 11/10/18. Comme on a aussi un classement par salaires pour les offres l'indiquant, je propose également un classement par niveau moyen de salaire.
- StackOverflow
- Nul besoin de présenter StackOverflow, le forum professionnel certainement le plus utilisé. J'ai recherché le nombre de messages sur ce forum le 11/10/18.
- Reddit
- Reddit est, selon Wikipedia, un "site web communautaire d'actualités sociales". J'ai là encore recherché le nombre de mentions de différents SGBD.
- Hacker News
- Un site d'informations générales sur l'informatique assez réputé. J'ai recherché les références dans les news du site aux différents SGBD.
- CareerBuilder
- Un autre site d'offres d'emploi. Le procédé pour obtenir un classement est le même que pour Indeed.
- Trendy Skills
- Un site recençant ce qui est demandé dans les offres d'emploi. J'ai utilisé le résultat proposé en choisissant comme catégories "RDMS" et "NoSQL".
- DB engines
- Un des rares sites proposant vraiment un classement des SGBDs reposant sur plusieurs critères.
- Salaires selon StackOverflow
- Stackoverflow propose une page pour estimer un salaire en fonction de différents critères. J'ai testé avec les différents SGBD en précisant Paris pour la localisation, bac+5 pour la formation, et 5 ans d'expérience. On peut avoir une estimation des salaires certainement plus précise avec Indeed, mais cela nécessite un long traitement, que je n'ai pas eu le courage d'effectuer.
3. Résumé brut (octobre 2018)
Les sources correspondant à des classements faits "dans les règles de l'art" étant relativement peu nombreuses, et les propotions d'utilisation des SGBD étant très disparates, j'ai également effectué un classement avec pondération. Les pondérations que j'ai appliquées sont les suivantes :
- DB engines : 30% (c'est un classement multi-critères pondéré relativement exhaustif) ;
- Trendy skills : 5% (très peu de SGBD sont classés) ;
- Salaires selon StackOverflow : 5% (calcul assez approximatif)
- Les autres critères : 10%
Comme je n'ai pas pris le temps de me mettre aux différentes API permettant d'exploiter automatiquement les informations des différents sites, les résultats que je présente sont souvent issus de requêtes effectuées manuellement.
3a. Tous SGBD confondus
Source | SGBD 1 | SGBD 2 | SGBD 3 | SGBD 4 | SGBD 5 |
DB engines | Oracle | MySql | SQL Server | Postgres | MongoDB |
Trendy Skills | Oracle | MySql | SQL server | 4D | MongoDB |
Indeed | Oracle | MySql | SQL server | Access | MongoDB |
Career Builder | Access | Oracle | SQL server | MySql | Azure SQL |
Hacker News | MySql | PostGres | Oracle | MongoDB | Redis |
Reddit | Oracle | Cassandra | MySql | DB2 | SQL server |
StackOverflow | MySql | SQL Server | MongoDB | Oracle | PostGres |
Google Trends | Oracle | MySql | SQL server | Hive | Cassandra |
Salaires | Cassandra, Hive | Redis, 4D, MemCached |
Classement général | Oracle | MySql | SQL server | PostGres | MongoDB |
| | | | | |
3b. SGBD relationnels seulement
Source | SGBD 1 | SGBD 2 | SGBD 3 | SGBD 4 | SGBD 5 |
DB engines | Oracle | MySql | SQL Server | Postgres | DB2 |
Trendy Skills | Oracle | MySql | SQL server | 4D | PostGres |
Indeed | Oracle | MySql | SQL server | Access | DB2 |
Career Builder | Access | Oracle | SQL server | MySql | Azure SQL |
Hacker News | MySql | PostGres | Oracle | SQL server | Sqlite |
Reddit | Oracle | MySql | DB2 | SQL server | Sqlite |
StackOverflow | MySql | SQL Server | Oracle | PostGres | sqlite |
Google Trends | Oracle | MySql | SQL server | Hive | PostGres |
Salaires | Hive | Azure SQL | Oracle, PostGres, Sqlite |
Classement général | Oracle | MySql | SQL server | PostGres | Access |
| | | | | |
3c. SGBD NoSQL seulement
Source | SGBD 1 | SGBD 2 | SGBD 3 | SGBD 4 | SGBD 5 |
DB engines | MongoDB | Redis | ElasticSearch | Cassandra | Splunk |
Trendy Skills | MongoDB | Universe | Redis | eXist | |
Indeed | MongoDB | eXist | ElasticSearch | Cassandra | Redis |
Career Builder | MongoDB | Splunk | Cassandra | ElasticSearch | Redis |
Hacker News | MongoDB | Splunk | Cassandra | ElasticSearch | Redis |
Reddit | Cassandra | MongoDB | Redis | DynamoDB | ElasticSearch |
StackOverflow | MongoDB | ElasticSearch | Solr | Neo4j | Cassandra |
Google Trends | Cassandra | MongoDB | ElasticSearch | Splunk | Redis |
Salaires | Cassandra | Redis, MemCached | ElasticSearch | MongoDB |
Classement général | MongoDB | Cassandra | Redis | ElasticSearch | eXist |
| | | | | |
4. Petite analyse des résultats
Visiblement, les SGBD relationnels classiques continuent de dominer largement le domaine des bases de données (73% du marché). Malgré tout, la part prise maintenant par les SGBD NoSql devient non négligeable et continue de grandir. Le seul SGbg NoSql qui réussit à intégrer le "Top 5" est MongoDB, et encore, il ne l'intègre qu'en 5ème position (avec 6% du marché).
Il faut dire que les SGBD NoSql sont non seulement encore peu enseignés, mais qu'ils sont là pour répondre à un certains besoins bien spécifiques, et que dans tous les autres cas, ils sont moins efficaces et offrent moins de contrôle de cohérence que les SGBD relationnels.
N.B. : quand je parle de "% du marché", il faut en fait entendre "% du total des notes obtenues". La même signification est à attribuer aux pourcentages donnés dans les parties suivantes.
4a. Analyse concernant les SGBD relationnels
4 SGBD relationnels sortent vraiment du lot :
- Oracle (18%), de par son ancienneté, sa fiabilité, ses possibilités, etc. reste toujours loin devant.
- Le bien plus récent MySql (16%) occupe maintenant solidement la deuxième place. Quelques raisons peuvent être émises : sa légèreté, son intégration aux architectures LAMP/WAMP... Le rachat de MySql par Oracle a peut-être aussi aidé un peu les choses.
- Sql Server (12%), soutenu par Microsoft bien sûr, réussit à atteindre la troisième place.
- PostGres (6%) se retrouve à la quatrième place. Cela montre qu'il reste un SGBD important sur le marché, mais qu'il ne réussit pas à s'imposer par rapport à des puissances commerciales fortes (Oracle, Sql Server) ou par rapport à l'aspect "SGBD pour les nuls" de MySql.
En embuscade, on trouve 3 autres SGBD :
- Access (3%), le "SGBD pour les nuls" de Microsoft, reste très utilisé par les entreprises ayant eu besoin de bases de données avant d'investir dans des systèmes "sérieux".
- Sqlite (2%) est un des rares à répondre au besoin de "SGBD léger embarqué". C'est donc un incontournable pour de nombreux cas.
- Enfin, DB2 (3%), le SGBD d'IBM, reste présent car beaucoup d'applications anciennes continuent de l'utiliser (problème de code legacy).
4b. SGBD NoSQL
Ils constituent la grande révolution arrivée depuis une dizaine d'année dans le domaine des Bases de données. Un premier problème les concernant vient de leur dénomination : en se définissant comme "no sql", ils disent ce qu'ils ne sont pas, mais pas ce qu'ils sont. Ainsi, on trouve dans cette catégorie des SGBD très différents, prévus pour répondre à des besoins tout aussi différents.
D'ailleurs, dans le "Top 5" établi ci-dessus, les 5 SGBD retenus sont tous de types différents :
- MongoDB (6%), leader incontesté du classement, est par exemple un SGBD orienté "stockage de document".
- Cassandra (4%) est orienté "larges colonnes" : les colonnes définissant un "tuple" sont extensibles.
- Redis (3%) fait quant à lui partie de la grande famille des SGBD NoSql orienté "clé-valeur", au même titre que MemCached par exemple.
- ElasticSearch (3%) est pour sa part le leader des SGBD NoSql de type "moteurs de recherche", dont font partie d'autres SGBD de ce classement (Splunk et Solr). L'indexation des documents repose sur la bibliothèque java Lucene.
- eXist (2%) est quant à lui le seul SGBD "XML" de ce classement.
Il existe d'autres types de SGBD NoSQL. C'est par exemple le cas de Neo4j, SGBD orienté graphe, qui ne ressort pas dans le classement final, car son utilisation reste marginale (< 1%).