Introduction à MongoDB

pour commencer à travailler avec MongoDB, vous avez besoin de l’installer sur votre système. ou le tester en ligne via une interface web/js : http://try.mongodb.org/

vous aurez besoin de télécharger les binaires, ici : http://www.mongodb.or/downloads

l’installation est assez simple, je vous suggère ces tutoriels : http://docs.mongodb.org/manual/installation/

Terminologie MongoDB :

( certains NoSQL peuvent utiliser une terminologie différente en fonction de leur catégorie ( par exemple dans un NoSQL de type graph on parlera de Node quand dans MongoDB on parle de Document, c’est normal : dans un graph il y a des noeud, des CAST, des EDGES entre les NODES de etc… )

  • RDBMS (SGBDR) : NoSQL
  • database : database
  • Table : Collection
  • Row : Document   ( en SGBDR on utilise souvent le terme enregistrement )
  • Column : Field      ( on peut appeler les deux un champs )
  • Primary Key : _id

Les point forts de MongoDB :

  • schemas dynamique : les données ne sont pas obligées de respecter une structure. ( les documents dans une collection pourront avoir des champs en plus ou en moins par rapport aux autres documents  )
  • les documents sont le model de stockage utilisés
  • haute scalabilité et performance
  • des fonctionnalités évoluées ( GridFS, index géographiques, Map-Reduce, Agregation framework)

Des défaut à prendre en compte :

  • on doit gérer un minimum la cohérence au niveau de la base
    car on a tendance a dématérialiser
  • certaines limites du modèle de requêtes, bien que puissant (il faudra gérer certains aspects coté application)

un aperçu d’un document : ( en format json )

beaucoup de personnes imaginent un document mongo comme un pdf ou un document office quand ils entendent parler d’une DB orientée document.

Il suffit voir un document mongo comme un ensemble de clés/valeurs, les valeurs pouvant être des entier, réels, chaines de caractères, des objets (dates, binaires, liens vers un document,etc…), tableaux ou un autre document, c’est à dire, pouvant à sont tour contenir un autre ensemble de clés/valeurs qui penvent aussi contenir des documents (et ainsi de suite).

le document est concrètement stocké sous un format binaire que l’on appelle bson ( binary json ), et, selon le language ou l’interface de manipulation de la base de donnée, on peut utiliser un format équivalent. comme le terminal utilise un interpréter javascript, le format json est le format par défaut.

Ces documents sont stockés dans des collections, qui sont stockées dans des bases de données.

l’exemple précédent montre comment on peut modéliser une application sans effort. on s’est affranchi d’utiliser une collection pour les addresses, une pour les villes, et une pour les langues parlées. c’est ce qu’on appelle de la dématérialisation.

La dématérialisation a des inconvénient qu’il faut connaitre afin de savoir pour quel coût on va se permettre de l’utiliser. par exemple dans un blog où les utilisateurs commentent beaucoup les tickets postés, il est couteux de récupérer tous les commentaires pour chaque post, et de récupérer le username de chaque personne qui a commenté. il peut être simple de stocker les commentaires, ainsi que les usernames comme ceci, et ainsi les récupérer en un seul appel :

dans cet exemple, le fait qu’un utilisateur change son username ne sera pas visible dans ces commentaires. et ceci peut être un choix pour des raisons de performances car on ne change pas souvent son username. nous verons des use-cases où l’on évitera ce type de contraintes tous en restant très performants par rapport aux SGBDR et notre application scallable

Dans le prochain post nous commencerons à travailler avec MongoDB plus Concrètement

Did you like this? Share it:

Tags : ,

Comments are closed.

Open Close