MongoDB : présentation et comparaison avec MySQL

Dans le domaine de la gestion de données électroniques, les bases de données relationnelles ont été une solution controversée pendant des décennies. Ce n’est pas sans raison que le système de gestion de base de données MySQL est utilisé pour de nombreux projets Web depuis 1995. Les applications Web nécessitent un nombre grandissant et plus varié de données, c’est pourquoi les bases de données non relationnelles sont devenues des concurrents de taille pour le modèle traditionnel. Ces systèmes d’enregistrement de données répartis comme MongoDB, mis sur le marché en 2009, sont désignés en tant que bases de données NoSQL. MongoDB fonctionne sans SQL (Structured Query Language), le langage de requête classique des bases de données relationnelles. Cela implique que davantage de charges reposent sur la couche application mais cela permet de distribuer le stockage des données et le processus de travail sur plusieurs serveurs. Ainsi, ces bases de données sont modulables de manière quasiment illimitée.

Qu’est-ce-que MongoDB ?

C’est l’entreprise 10gen qui est à l’origine du développement de MongoDB (de l’anglais humongous = « gigantesque, énorme ») en 2007. C’est une base de données open source, centrée sur les documents. MongoDB a été mis sur le marché en l’espace de deux ans seulement et il aura fallu peu de temps pour que celui-ci devienne une des bases de données NoSQL les plus populaires. La société 10gen a depuis changé son nom en MongoDB Inc. et est responsable du développement logiciel tout comme de la distribution de solutions informatiques pour les entreprises.

MongoDB a été codé en langage de programmation C++ et enregistre les données en format BSON (Binary JSON), basé sur le format de JSON (JavaScript Object Notation). Ainsi, différents types de données JavaScript sont supportés et c’est pourquoi MongoDB est le choix optimal pour les plateformes Node.js. Les bases de données MongoDB contient un ou plusieurs ensembles de données qui gèrent différents documents avec de nombreux champs de données divers et variés.

La connexion au serveur de la base de données de MongoDB peut être effectuée de différentes manières. Le client Mongo Shell est disponible dans la plupart des versions et permet un accès en ligne de commande. De plus, l’espace administrateur basé sur HTTP peut être activé et ouvert sur le navigateur. Les utilisateurs disposent également de différents espaces utilisateur tels que MongoChef, Robomongo ou encore Mongoclient. Ces derniers peuvent visualiser les données et les retravailler. MongoDB est compatible avec presque tous les systèmes d’exploitation de Linux, Windows et Mac.

MongoDB vs. MySQL : comparaison des deux modèles

MongoDB est une base de données orientée documents, à l’inverse de MySQL. Ce système de gestion fonctionne différemment en matière de mémorisation des données, bien que la structure de base présente quelques similitudes :

  • Les données sont mémorisées dans des classeurs (collections) et non dans des tableaux.

  • Les documents en format BSON remplacent les lignes et les champs définis dans ces documents et les colonnes de requêtes SQL.

  • Un champ est toujours composé d’une valeur et d’un nom de champ. Cette valeur peut indiquer des listes de mots ou de chiffres, un texte ou un dossier complet.

  • Un document MongoDB est donc un ensemble de paires valeur/clés, tout comme avec MySQL.

La différence principale repose sur le mode de fonctionnement des documents, qui suivent un schéma précis, tandis que les lignes d’un tableau MySQL ont toutes une composition identique. Elles comptent la même quantité de valeurs et comportent toujours le même type de données. Les documents MongoDB ont, en revanche, leur propre structure, individuelle et unique. De cette manière, de nouveaux champs peuvent être ajoutés en tout temps, comportant une valeur définie au choix. Une base de données relationnelle comme MySQL requiert une restructuration complète. La clé doit être unique dans chaque document mais peut se retrouver dans d’autres documents. Ce processus est impossible avec les bases de données MySQL. Des relations (joins) doivent être réglées entre les différents tableaux.

Une autre différence de taille en évoquant le thème MongoDB vs MySQL : l’extraction de données. En tant que base de données NoSQL, MongoDB n’utilise évidemment pas SQL en tant que langage de requête et traite des données dans son propre langage. Cela permet la communication entre MongoDB et le client désigné. Pour cela, la base de données utilise les méthodes spécifiques du langage de programmation du client en question, à l’aide de ce que l’on appelle des libraries, c’est-à-dire des drivers qui peuvent être téléchargés séparément sur la page officielle.

Pour les requêtes les plus complexes, il est possible d’avoir recours au MapReduce, comme avec toutes les bases de données orientées documents.

Les scénarios d’application de MongoDB

MongoDB est un excellent choix pour la mise en place de projets Web qui se basent sur une importante masse de données déstructurées. Le travail orienté documents est prédestiné à de nombreux types de documents, notamment s’il ne suit pas de schéma prédéfini. Ces documents variés doivent être stockés et exploités avec rapidité. Le système de bases de données permet, de plus, un échelonnage horizontal, presque illimité, qui peut être réparti sur plusieurs serveurs sans compromettre le fonctionnement. Pour assurer la sécurité et la disponibilité des données sur le long terme, des copies peuvent être effectuées facilement avec MongoDB, et mises à disposition sur plusieurs serveurs. L’ensemble des données, qu’elles proviennent d’une ou de plusieurs sources, présente de nombreux avantages :

  • Échelonnage : si votre projet Web prend de l’ampleur, les exigences vont de pair avec la base de données.

  • Disponibilité : votre application est toujours disponible, même en cas de panne de serveur.

  • Flexibilité : votre projet doit toujours pouvoir être adapté de manière dynamique.

La distribution des données sur plusieurs serveurs est également différente entre MongoDB et les bases de données relationnelles. En enregistrant des données avec MongoDB, il existe un court laps de temps pendant lequel la lecture des documents n’est possible que pour la version non actualisée. On appelle cela « Eventual Consistency » (littéralement : « cohérence éventuelle»). Ce modèle est avant tout utilisé pour MariaDB de MySQL et présente plusieurs avantages : les serveurs de base de données (qui est séparé du cluster de bases de données le plus conséquent) sont compatibles avec d’autres applications et il est également possible d’en modifier le contenu. 

Vous ignorez quel est le modèle de base de données adapté à votre projet Web ? Vous n’avez pas à vous décider pour autant, car une combinaison de différents types est possible et peut représenter la solution parfaite pour les différentes exigences de votre projet.


Attendez ! Nous avons quelque chose pour vous !
Votre messagerie professionnelle

Créez une adresse personnalisée
Affichez votre sérieux sur Internet
Nom de domaine inclus
À partir d' 1 € TTC/mois
Conseiller personnel inclus !