Bases de MongoDB
• Introduction aux bases de données Mongo
• Format des données
• Outils de MongoDB
MongoDB
MongoDB est l'un des systèmes « NoSQL » les plus populaires:
Il fait partie des NoSQL dits « documentaires » (avec CouchDB);
Il s'appuie sur un modèle de données semi-structure (encodage JSON) ;
Il n’a pas de schéma (flexibilité complète);
C’est un langage d'interrogation original (et spécifique) ;
Il n’a pas (ou très peu) de support transactionnel.
Construit dès l'origine comme un système scalable et distribué:
distribution par partitionnement (sharding) ;
technique adoptée: découpage par intervalles (type BigTable, Google) ;
tolérance aux pannes par réplication.
Base de données Mongo
Base de données NoSQL Documents JSON Stockés dans des collections
Structure d’une BDD Mongo
Une base de données est un ensemble de collections
Chaque collection regroupe un ensemble de documents;
La base de données et ses collections définissent un « namespace »;
Le schéma est le modèle de données des documents dans une collection.
Qu’est-ce qu’un document?
Exemple:
{
Une façon d’organiser et de <clé>:<valeur>,
stocker les données sous forme de
paires clés-valeurs au lieu de la <clé>:<valeur>,
forme tabulaire. " name " : "Lakshmi ",
Clé: identifiant unique pour "title ": "Team Lead ",
certaines données;
Valeur: valeur donnée à un "age ":26
identifiant (clé). }
Qu’est-ce qu’un document?
JSON: Java Script Object Notation.
JSON est un format fréquemment utilisé pour représenter les documents.
JSON
Avantages:
Convivial
Compréhensible
Format familier à l’utilisateur
Inconvénients:
Basé sur le texte: le temps du traitement de texte est assez conséquent
Consommateur d’espace
Types de données limités
BSON
Un document est la représentation d'une donnée en BSON.
BSON = Binary JSON: Extension du JSON.
Les documents ne sont pas directement stockés dans la base de données en JSON mais dans un format
binaire appelé BSON.
Le format BSON optimise le temps, espace et flexibilité de stockage et interrogation des données.
BSON est une extension de JSON qui fournit des types de données supplémentaires (tel que les dates)
et des champs ordonnés. C'est un format efficace pour le codage et décodage dans des langages
différents.
Les fichiers BSON sont dans un format binaire, donc illisible par les utilisateurs.
Exemple
JSON vs. BSON
JSON BSON
Encodage des données: UTF-8 Encodage des données: Binaire
Types de données: String, Types de données: String, Boolean,
Boolean, Number, Array Number, Array, Date, Raw Binary
Lisibilité: Personne, Machine Lisibilité: Machine
JSON, BSON
BSON JSON Optimisation des performances
Stockage des données Affichage des données
MongoDB stocke les Facilite la manipulation des BSON enrichie les types de données,
données en BSON en local données par l’utilisateur optimise le temps de traitement des
et sur réseaux données et l’espace de stockage
Documents JSON
Un document JSON est composé d'un ensemble de champs délimité par des
accolades: { champ }
Un champ est un couple clé:valeur;
Toutes les chaînes de caractères sont entourées de guillemets " "
Les clés et les valeurs sont séparés par 2 points :
Les différents champs sont séparés par une virgule ,
Types de données JSON
Les documents JSON peuvent contenir différents types de valeurs:
String: chaîne des caractères entourés de double quotes. L'espace est considéré
comme caractère;
Double: Réel a virgule flottante;
Int32: Entier sur 32 bits;
Boolean: true/false;
Null;
Object/Document: sous-documents. Les documents peuvent être imbriques sur
plusieurs niveaux;
Array: tableau délimité par des crochets. Les tableaux contiennent des valeurs
ordonnées séparées par des virgules.
Exemple
{"nom": "Phoenix", "prenom" : "Joaquim", =>Des chaînes de caractères
"couleurs préférées" : ["vert", "marron"]}=> Un tableau
Sachant que la valeur d'une paire clé/valeur peut être un objet (document) et que le tableau peut contenir
des objets (des documents), on peut ordonner les informations sur plusieurs niveaux.
Exemple:
{"acteur": {
"nom": "Phoenix", "prenom" : "Joaquim" },
"roles" : [
{"personnage" : "Theodore", "Film" : "her" },
{"personnage" : "Leonard Kraditor", " Film" : "Two Lovers"}
]
}
Outils MongoDB
MongoDB Atlas: Serveur de données MongoDB assurant le stockage des
données en cloud;
MongoDB Compass: Interface graphique pour MongoDB permettant:
exploration visuelle des données;
interaction avec les données avec la fonctionnalité CRUD complète;
exécution des requêtes ad-hoc en quelques secondes;
afficher et optimiser les performances des requêtes;
Shell Mongo: Interface JavaScript interactive pour MongoDB permettant une
interrogation et mettre à jour des données, ainsi que les opérations
d'administration.
MongoDB Atlas
Base de données Stockage et
sur le cloud récupération des
données
DBaaS
Database as a service
MongoDB Atlas
Permet de déployer des clusters: des groupes de serveurs
pour stocker les données.
Ces serveurs de données forme un "replicat set " : un
ensemble d’instances MongoDB connecté qui
stockent les mêmes données.
Une instance: une machine locale ou dans le cloud sur
laquelle est stockée une copie des données.
MongoDB Atlas
• En cas de panne d’un des serveurs du replicat set, les
données restent tout de même disponibles sur les autres
serveurs.
• Toute modification des données (d’un document ou d’une
collection) est enregistrée sur tous les serveurs du replicat
set.
• Lien: [Link]