fermer
DéveloppementLangages programmation

SQL vs NoSQL : perspective des langages de programmation

iPhone 17 "le plus ambitieux" selon son nouveau responsable : Apple prépare une révolution ?

Le débat SQL versus NoSQL est en train de devenir un rite de passage pour les administrateurs de bases de données, mais également pour tous les geeks. Jeff Cogswell, auteur chez O’Reilly, a récemment contribué à mettre de l’huile sur le feu sur Slashdot.
Bien que les commentaires de l’article mettre portés sur les points résumés du débat SQL vs NoSQL par Cogswell, l’article en lui-même tente de se concentrer sur la façon dont la programmation implémente les deux langages dédiés aux bases de données, SQL et NoSQL, jusqu’à les comparer, et apporter des exemples concrets.
Malheureusement, la tentative de Cogswell de voir un débat intéressant sur les bibliothèques des langages et des paradigmes de programmation était semble t-il trop demandé…

Les langages de programmation sont des outils. Les programmes prennent les données, les manipulent, et ce afin d’en créer de nouvelles plus précieuses. Ainsi, les bases de données sont essentielles à la réussite d’un programme, puisqu’il s’agit de la persistance de celui-ci ; elles peuvent donc être vues comme le cœur de la programmation.

Ainsi, en replaçant le débat SQL et NoSQL aux langages de programmation est comme débattre sur choisir un couteau ou une cuillère au moment de savoir comment tartiner votre brioche ! Il n’est pas pertinent de savoir quel couvert est le meilleur pour notre sandwich, en supposant que les deux couverts puissent faire le même travail. Les vraies questions tournent autour du beurre d’arachide, de la confiture, et du pain à utiliser !

Jeff a vraiment fait un excellent travail afin de démontrer que le langage de programmation n’est pas vraiment important. Tous les langages de programmation matures ont eu amplement le temps de développer une variété de bibliothèques SQL excellentes. En fait, les langages de programmation infantiles seraient voués à l’échec sans s’ils ne disposent d’une bibliothèque SQL adéquate. Donc, l’avantage va hériter de SQL, même si cet avantage est minime. Comme la base de données NoSQL gagne en popularité, nous devrions disposer de bibliothèques efficaces très prochainement.

Cogswell a choisi le pire exemple NoSQL pour son argumentation ! MongoDB est l’une des meilleures bases de données NoSQL, et ainsi les bibliothèques pour la base de données désormais « populaire » se sont multipliées, avec une fréquence de plus en plus rapide, puisqu’il continue à gagner en popularité.
L’argument aurait été plus adapté et convaincant si Cogswell avait regardé des bases de données NoSQL moins populaires, telles que neo4j, qui ne disposent que de librairies officielles pour Ruby et de Java.
Les exemples de programmation fournis par Cogswell sont du développement Node.js et C#. Ainsi, il aurait eu à utiliser les librairies non officiels et/ou l’API REST de neo4j…

Le débat SQL versus NoSQL sera toujours alimenté dès lors qu’il s’agit d’un projet indépendant. En effet, selon le théorème CAP ou CDP, aussi connu sous le nom de théorème de Brewer, il est impossible sur un système informatique de calcul distribué de garantir en même temps les trois contraintes, cohérence, disponibilité et résistance au morcellement, une base de données NoSQL ou SQL ne sera jamais la bonne solution…

La popularité croissante des bases de données NoSQL est le résultat de nouvelles problématiques et des nouveaux modèles de données, dont les bases de données relationnelles traditionnelles ne permettent pas de correctement représenter.
Même si les bases de données relationnelles auront toujours une place dans la majorité des applications, en tant que développeurs vous devez être conscients sur ce que permettre le NoSQL, ainsi que les options disponibles pour ce dernier, et là où chacune de ces bases de données doivent mettre en exergue votre modèle de données, la combinaison appropriée de SQL et NoSQL fera surface.

Avez-vous déjà opté pour le NoSQL ? Trouvez-vous ce SGBD assez mûr ? Venez partager votre expérience…

Tags : MongoDBneo4jNoSQLSGBDSlashdotSQL
Yohann Poiron

The author Yohann Poiron

J’ai fondé le BlogNT en 2010. Autodidacte en matière de développement de sites en PHP, j’ai toujours poussé ma curiosité sur les sujets et les actualités du Web. Je suis actuellement engagé en tant qu’architecte interopérabilité.