II.2.3.
Caractéristiques
MongoDB est l'un des rares systèmes de gestion de
données NoSQL codés avec un langage qui offre de grandes
performances : le C++. Les autres moteurs NoSQL populaires sont souvent
codés en Java ou dans des langages particuliers comme Erlang.
MongoDB Inc. le définit comme un SGBD orienté
documents. Le terme « documents » ne signifie pas des documents
binaires (image ou fichier son, par exemple), mais une représentation
structurée, compréhensible par MongoDB, d'une donnée
complexe. Plus simplement, on stocke la représentation des
données comprise par MongoDB.
II.2.4. Structure des
données
Un document BSON représente donc l'unité
stockée par MongoDB, qui équivaut à une ligne dans une
table relationnelle. Il est composé d'une hiérarchie de paires
clé-valeur, sans contrainte de présence ou de quantité.
Les documents sont contenus dans des collections, qui
correspondent plus ou moins aux tables des SGBDR. Même s'il n'y a aucune
obligation pour les membres d'une collection de partager une structure
identique, il est tout de même plus logique et plus efficace, parce que
cela permettra l'indexation de s'assurer de cette cohérence.
MongoDB n'a pas de concept de contraintes comme dans le
modèle relationnel. Il n'y a pas de vérification de
cohérence effectuée par le serveur, toute la
responsabilité est endossée à ce niveau par le code
client.
MongoDB stocke les documents tels qu'il les reçoit.
De plus, il est inutile de créer explicitement une collection avant d'y
insérer des documents, car MongoDB en crée une dès que le
code client la mentionne.
II.2.5. Stockage des objets
larges
MongoDB peutégalement stocker des documents binaires ou
des objets larges, soit directement dans sa structure BSON, soit à
l'aide de GridFS, spécification destinée à optimiser la
manipulation et la sérialisation de fichiers de taille importante. En
interne, MongoDB découpe les fichiers en plus petits segments qui seront
autant de documents contenus dans une collection nommée chunks. Les
métadonnées des fichiers sont conservées dans une autre
collection, nommée nies. Vous pouvez ajouter des attributs aux documents
de nies pour qualifier vos fichiers.
Lacollection chunks contiendra des documents qui auront un
files_id identifiant le document de la collection nies, unattribut n quiest le
numéro du segment, et un attribut data quicorrespond ausegment, de type
binaire. C'est une façon optimale de conserver des fichiers par rapport
à unstockage sur un système de fichiers avec des URL. Un outil en
ligne de commande, mongoles, permet d'importer ou d'extraire des documents.
Figure 2.12:Présentation
de Stockage en GridFS.
|