23 décembre 2013

MongoDB - Présentation

MongoDB est une base de données NoSQL orientée documents.

Dans cet article, nous installerons MongoDB. Ensuite nous créerons un premier projet Java avec une classe de test qui stocke et récupère un document JSON depuis MongoDB.

MongoDB

Contrairement aux bases relationnelles classiques, la structure des données n'est pas figée et peut être différente d'un document à l'autre. Ceci permet de stocker certaines informations selon les besoins et de faire évoluer son modèle de données sans avoir à modifier un schéma de base de données.

Ainsi c'est le module qui produit les données qui impose le format des données et non la base de données.

Comparaison avec une base relationnelle

Voici l'organisation de MongoDB :
  • MongoDB
    • Base de données
      • Collection de documents
        • Document Binary JSON
          • identifiant : "_id"
          • clé / valeur
Voici la correspondance de ces éléments avec ceux d'une base relationnelle :
  • Base relationnelle
    • Schéma
      • Table
        • Ligne
          • identifiant : clé primaire
          • colonne / valeur

Document

MongoDB génère automatiquement pour chaque document un identifiant qui est unique dans la collection du document. Cet identifiant ne peut être modifié durant une mise à jour du document.


Les documents sont stockés au format BSON (Binary JSON) qui est la version binaire d'un document JSON sérialisé, c'est à dire qu'il est transformé en un tableau de bytes.

Le format BSON est plus optimisé que le JSON et est utilisé par MongoDB pour les échanges sur le réseau, pour la lecture et pour le stockage sur disque.


Typage

Un document BSON peut contenir des valeurs de types qui ne sont pas dans le standard JSON :
  • Types en JSON :
    • null, boolean, numeric, string, array, object
  • Types en BSON et donc dans MongoDB : 
    • la valeur non définie: null, 
    • booléen, 
    • nombre : entier ou décimal (jusqu'à 64 bits)
    • chaînes de caractères
    • date : il s'agit de l'objet Date en Javascript
    • expression régulière
    • tableau
    • document JSON : le document est une valeur de la clé
    • identifiant d'objet : ObjectId : "_id"
    • données binaires (contenu de fichiers)
    • code Javascript

Ressources 

Aucun commentaire:

Enregistrer un commentaire