dimanche 19 octobre 2014

L'indispensable MongoDB


Bonjour à tous , je suis Mougang Gasmyr et je vais vous parler aujourd'hui de MongoDB.



je vais commencé par présenter le plan que va suivre ce petit tutoriel.


  1. Une introduction très courte au NoSQL.
  2. Une description de MongoDB avec ses avantages par rapport à MySQL par exemple.
  3. Nous allons ensuite voir l'architecture de MongoDB.
  4. l'Installation de MongoDB 2.6.1 sur Ubuntu 12.04.
  5. Les commandes de bases telles que:  
  • db
  •  show dbs
  •  exit 
  • mongo
  • help.


1- Introduction au NoSQL

NoSQL: Not only SQL, il s'agit d'une cathégorie de SGBD(Système de gestion de Base de Données) s' affranchissant du modèle des SGBD relationnels. Parmi les avantages des SGBD NoSQL nous avons:

  1. Schéma ouvert par opposition au SGBD relationnel.
  2. Leur licence sont en grande partir moins coûteux.
  3. Les performances sur les gros volume de données sont accrues.
Il est fait pour  la gestion des grosses quantités données, la montée en charge, une structuration faible et extensible du modèle.


Il existe quatre type de NoSQL à savoir:






  • Les NoSQL clé / valeur(Redis)
  • Les NoSQL orienté colonne(cassamdra)
  • Les NoSQL orienté graphe(Neo4j)
  • Les NoSQL orienté document(MongoDB)


  • 2-MongoDB

    MongoDB est un système de gestion de bases de données NoSQL orienté Big Data. L'objectif principal de MongoDB est de gérer les données de masses ainsi que de faciliter la scalabilité de vos déploiements en fonctions de vos besoins. Donc MongoDb est l'outil idéal pour réaliser les applications ultra-rapides en lecture et qui manipulent les données de l'odre du Péta(on parle de Big data).

    Il est un SGBD de type NoSQL orienté document. Par comparaison à un SGBDR les données sont stockées dans une collection, une collection contient des documents. Le nom mongodb vient du mot anglais "humogous" qui signifie en français "faramineux". Et c'est juste car MongoDB traite de grande quantité de données.

    MongoDB est totalement gratuit(opensource), il est multi-plateformes (Mac, Windows, Linux) et multi-architectures(32bits et 64bits). La grande majorité des SGBDR sont vulnérables aux injections SQL, ce n'est pas le cas pour mongodb. Avec mongodb ne vous casser plus la tête à implementer les mécanismes pour éviter ces failles. Aussi doit-on rappeller qui est écrit en C++ et je ne connait pas de programmeur qui puisse nier les performances de ce langage.

    Beaucoup se posent des questions: comment faire communiquer mongodb et mon application?
    Et bien, les concepteurs ont tout prévu. Quel en soit le langage que vous utilisé pour écrire votre application, il existe une liste de drivers(en français ça s'appelle pilote) pour les langages de programmation les plus utilisés. Nous en avons par exemple pour le Php, le c, le c++, le python, le .Net.
    vous trouverez la liste de ces drivers ici: Liste des drivers.

    Les principales caractéristiques de MongoDB:

    * orienté Big Data: si vous avez une grosse quantité d'informations à manipuler dans vos applications, mongodb est pour vous.
    *schéma dynamique: avec mongodb, deux documents d'une collection n'ont pas forcement les même champs.
    * les données sont gérées sous forme de documents JSON/BSON: ceci facilite l'encodage et le décodage des données.
    * haute performance: performance accrue(indexation), ce qui permet de faire du "sharding" avec les cluters.