Académique Documents
Professionnel Documents
Culture Documents
1
Plan du cours
Mouvement NoSQL
Le NoSQL avec MongoDB :
Caractéristiques de MongoDB
Importation & Exportation – Sauvegarde &
Restauration
Commandes de base (Part1)
Commandes de base (Part2)
Agrégation
Jointure
Création d'index
Réplication et reprise sur panne
Sharding (Répartition des données)
Sécurisation des données
2
Mouvement NoSQL
Les objectifs
3
Pourquoi aller vers le NoSQL ?
E-commerce
Média sociaux
Collecte
News E-journal
4
Pourquoi aller vers le NoSQL ?
Avec l’explosion de la taille des données à gérer que connaissent certaines sociétés,
les bases de données traditionnelles n’arrivent pas à fournir un temps de réponse
satisfaisant.
Deux solutions sont envisageables :
5
Pourquoi aller vers le NoSQL ?
7
Pourquoi aller vers le NoSQL ?
Attention :
Au delà d’une certaine taille de données, il n y a que la deuxième solution qui
demeure plausible.
8
Pourquoi aller vers le NoSQL ?
Le Problème :
Le problème, c’est que dans une architecture qui évolue horizontalement par les
clusters, les points forts des bases de données relationnelles: telles que les
transactions, les jointures handicapent les temps de réponse.
Exemple :
Supposons qu'un client a besoin d'une conception de base de données pour son site de
blog. Le site Web a les exigences suivantes:
10
Pourquoi aller vers le NoSQL ?
C’est suite à ce constat que les bases de données NoSQL ont émergé au début
des années 2000.
Ces bases se caractérisant par l’abondant des jointures et des transactions
au profit d’un temps de réponse court.
11
Définition du NoSQL
Les bases de données NoSQL répondent aussi au théorème du CAP d’Eric Brewer qui
est plus adapté aux systèmes distribués. Ce théorème énonce que tout système distribué
ne peut répondre au plus que 2 contraintes parmi :
• Cohérence (Consistency): Tous les nœuds du système voient exactement les
mêmes données au même moment .
• Disponibilité (Availablity): En cas de panne, les données restent accessibles
et les requêtes reçoivent une réponse même si un ou plusieurs nœuds sont
défaillants.
• Résistance au partitionnement (Partition Tolerance): Le système peut être
partitionné. Aucune panne autre qu’une coupure réseau totale ne doit
empêcher le système de répondre. Le système doit être en mesure de
réconcilier les mises à jour une fois les nœuds à nouveau accessibles les uns
des autres 14
Caractéristiques du NoSQL: Théorème CAP
• Le théorème de CAP stipule qu’il est impossible d’obtenir ces trois propriétés
(Consistency, Availability, Partition tolerance ) en même temps dans un
système distribué et qu'il faut donc en choisir deux parmi les trois.
15
Caractéristiques du NoSQL
• Le format de la base NoSQL est basée essentiellement sur des pairs clé-
valeur beaucoup plus simple à mettre en œuvre;
• Bons temps de réponse malgré de très gros volumes de données;
• Il est très facile d’étendre une base de données NoSQL en rajoutant, tout
simplement des serveurs;
• Les données sont regroupées par unités logiques et non dans des tables,
ce qui facilite la manipulation;
• Par exemple, pour avoir les informations d’un client qui a passé une
commande donnée, on aura pas besoin de passer par des jointures entre
les tables client et commande.
17
Inconvénients du NoSQL
• Absence du concept de clé étrangère, ce qui veut dire qu’il n’y a pas de
mécanisme pour vérifier la cohérence des données ( il faut le faire au niveau
de la programmation);
• NoSQL n’est pas adaptable aux applications basées sur des transactions
sécurisées et fiables (Gestion bancaire par exemple),;
• Moins de propriétés garantissant un état cohérent de la base: Conformément
au théorème de Brewer (Théorème du CAP), seules deux des trois
propriétés suivantes peuvent êtres respectées par un SGBD NoSQL :
Cohérence, Disponibilité et Résistance au partitionnement . Les bases
NoSQL privilégient la disponibilité à la cohérence : AP (Avaibility +
Partition tolerance) plutôt que CP (Consistency + Partition tolerance).
18
Comparaison entre les bases de données traditionnelles et NoSQL
Les données sont représentées sous forme les données sont représentées sous forme de
de tables composées de n nombre de lignes collections de paires clé-valeur, de documents,
de données. de graphes, etc.
Elles respectent un schéma stricte et Elles ne possèdent pas de définitions de schéma
standard. standard.
L’augmentation de la charge est gérée par L’augmentation de la charge est gérée plutôt
l’augmentation du processeur, de la RAM, par l’ajout de serveurs supplémentaires :
du SSD, etc. sur un seul serveur: Scalabilité (mise à l’échelle) horizontale.
Scalabilité (mise à l’échelle) verticale.
19
Comparaison entre les bases de données traditionnelles et NoSQL
Assure l’intégrité des données en assurant Repose sur les propriétés BASE (Basically
la conformité ACID (Atomicité, Available, Soft state, Eventualy Consistent)
Cohérence, Isolation et Durabilité) (voir le (voir le slide suivant)
slide suivant)
Les informations sont stockées de manière Les informations sont stockées de manière
non redondantes. redondantes.
20
Comparaison entre les bases de données traditionnelles et NoSQL
21
Comparaison entre les bases de données traditionnelles et NoSQL
Les bases NoSQL reposent, par contre, sur les propriétés BASE:
• Basically Available : La base garantie la disponibilité des données quelle que
soit la charge de la base de données;
• Soft State : La base NoSQL n’a pas à être cohérente tout le temps, son état
peut changer lors des mises à jour ou lors d'ajout/suppression de serveurs
sans que cela influe sur sa performance:
• Eventually consistent :: Plus besoin d’avoir exactement les mêmes données
sur tous les nœuds (serveurs) de la base, mais on peut synchroniser quand on
peut .
22
Quand utiliser NoSQL?
23
Types de bases de données NoSQL
24
Types de bases de données NoSQL: orientée Documents
25
Types de bases de données NoSQL: orientée Documents
26
Types de bases de données NoSQL: Clé/Valeur
27
Types de bases de données NoSQL: Clé/Valeur
Stockage clé/valeur
28
Types de bases de données NoSQL: orientée Colonnes
• Évolution de la BD clef/valeur;
• Ressemble aux SGBDR, mais avec un nombre
de colonnes dynamique, différent d’un
enregistrement à un autre (pas de colonnes
portant les valeurs NULL).
29
Types de bases de données NoSQL: orientée Colonnes
30
Types de bases de données NoSQL: orientée Graphes
31
Types de bases de données NoSQL
32
Pourquoi choisir MongoDB ?
• La popularité de
MongoDB vient du fait
qu’elle est fortement
utilisée par les
développeurs partout
dans le monde;
• Elle est appréciée
également d’être
facilement intégrable
dans toute application
gérant des
documents/objets. https://db-engines.com/en/ranking_trend/document+store
33