Vous êtes sur la page 1sur 33

Faculté des Sciences El Jadida

Cours de bases de données NoSQL


Sous MongoDB

Pr. Souad EL HOUSSAINI 2023-2024

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

Comprendre le pourquoi de l'émergence du mouvement NoSQL


Définir le concept de bases de données NoSQL
Comparer les bases de données traditionnelles vs NoSQL
Recenser les caractéristiques de NoSQL
Les différentes types de bases de données NoSQL

3
Pourquoi aller vers le NoSQL ?

E-commerce

Média sociaux
Collecte

News E-journal

Comment stocker et manipuler ces données


de plusieurs Zettabytes (1 ZB = 1 milliards
de terabytes) ?
Satellite GPS

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 ?

Augmenter les ressources de la machine (la puissance du processeur, la mémoire, etc.) :


c’est ce qu’on appelle une scalabilité verticale.
Cette solution a cependant ses limites en effet :
• On ne peut pas augmenter les capacités du ressources à l’infini;
• Le prix des composantes;
• De plus, les fournisseurs basés sur le cloud ont des plafonds (seuils) basés sur les
configurations matérielles disponibles.
6
Pourquoi aller vers le NoSQL ?

• Utiliser un cluster de machines ce qui, en théorie, permet une augmentation


illimitée des capacités avec un coût de revient moindre, car il suffit d’ajouter
d’autres machines au cluster : c’est ce qu’on appelle une scalabilité horizontale.
• La mise à l'échelle horizontale consiste à diviser (partitionner) les données et à les
charger sur plusieurs serveurs, en ajoutant des serveurs supplémentaires pour
augmenter la capacité selon les besoins.

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:

•Chaque post a un titre unique, une description et un URL.


•Chaque post peut avoir une ou plusieurs Tags.
•Chaque post a le nom de son éditeur et le nombre total de personnes qui l’aiment.
•Chaque post a des commentaires donnés par les utilisateurs ainsi que leur nom,
message, temps de données et nombre de likes.
•Sur chaque post il peut y avoir zéro ou plusieurs commentaires.
9
Pourquoi aller vers le NoSQL ?

Solution SGBDR Conception de schéma :

Comment répartir le stockage de cette base entre cluster si la quantité


devient énorme ?

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

Le NoSQL (Not Only SQL) c’est quoi ?


• SGBD non relationnel issue du monde Web et largement distribué;
• Le mouvement NoSQL a initialement piloté les besoins Big Data des
principaux acteurs du web GAFAM ( Google, Amazone, Facebook,
Apple et Microsoft);
• Le NoSQL propose une nouvelle manière de gérer les données, sans
respecter forcement le paradigme relationnel;
• L’unité de stockage n’est plus la table;
• Il s'agit d'une nouvelle approche du stockage de données;
• Les données ne sont plus manipulées avec le SQL.
12
Définition du NoSQL

Le NoSQL (Not Only SQL) c’est quoi ?


• Le NoSQL ne remplace pas les bases SQL, il les complète en apportant
des avantages en terme de stockage réparti par exemple;
• Le NoSQL supporte de nouveaux types de données (xml, collections
d’objets, triplets,… );
• Contrairement à ce qu'on pourrait croire au premier abord, une base de
données NoSQL ne veut pas dire qu'on n’effectue plus de requêtes;
• Les principaux axes sont la haute disponibilité et le partitionnement
des données;
• Permet de gérer de très grosses volumétries de données (Big Data).
13
Caractéristiques du NoSQL: Théorème CAP

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

D’autres caractéristiques communes aux différentes bases de données NoSQL


peuvent être citées tel que :
• la réplication des données;
• le partitionnement horizontal sur plusieurs nœuds (Sharding): Les bases
NoSQL sont conçues pour distribuer les données et traitements associés sur
de multiple nœuds(serveurs) ;
• les schémas dynamiques ou l’absence de schéma (Schema Free): Les bases
de données NoSQL s’appuient sur des données dénormalisées, non
modélisées par des relations, mais plutôt par des enregistrements (ou
documents) intégrés.
16
Avantages 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

Base de données SQL Base de données 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.

L’augmentation de la charge n’est pas pris L’augmentation de la charge est automatique, si


en compte nativement, elle risque de un serveur tombe en panne, il se remplace
compromettre l’intégrité transactionnelle automatiquement par un autre serveur sans
de la BD. interruption du service.

19
Comparaison entre les bases de données traditionnelles et NoSQL

Base de données SQL Base de données 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)

Recommandée par de nombreuses Recommandée pour les données semi


entreprises en raison de sa structure et de structurées ou même non structurées.
ses schémas prédéfinis. Mais, ne convient Hautement préférée pour les ensembles de
pas au stockage de données volumineux et données volumineux et hiérarchiques.
hiérarchiques.

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

Les bases de données relationnelles respectent le modèle ACID :


• Atomicité: Tout ou rien (tout changement effectué doit être accompli
jusqu’au bout);
• Cohérence: Les transactions qui modifient l’état de la base font en sorte que
les contraintes d’intégrité référentielle sont respectées;
• Isolation: Une transaction ne peut pas accéder aux données mise à jour par
une autre transaction avant qu’elle ne soit validée par son propriétaire;
• Durabilité: Toute transaction validée (commitée) est assurée d’être prise en
compte quelque soit la panne.

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?

• Si l’évolutivité est une préoccupation ;


• Si l’absence de schéma est une préoccupation ;
• Si la distribution est une préoccupation ;
• NoSQL est particulièrement utile lorsqu'une entreprise doit accéder, à des fins
d'analyse, à de grandes quantités de données non structurées ou de données
stockées à distance sur plusieurs serveurs virtuels du Cloud.

23
Types de bases de données NoSQL

On peut classer les bases de données NoSQL en quatre catégories :


• Les bases de données orientées documents
• Les bases clé/valeur
• Les bases en colonnes
• Les bases orientées graphes.
Elles ont toutes un point commun : le support de modèles plus flexibles et dynamiques
que ceux réalisés avec les bases de données relationnelles traditionnelles.
Mais, chaque type de base NoSQL correspond à des usages spécifiques.

24
Types de bases de données NoSQL: orientée Documents

• Étendent le paradigme clef/valeur, avec des « documents »


plus complexes à la place des données simples, et une clef
unique pour chacun d’eux;
• La valeur ici est un document dont la structure reste libre;
• Les documents sont stockés sous forme de fichiers JSON;
• Chaque document est un objet, contient un ou plusieurs
champs, et chaque champs contient une valeur typée
(string, date, binary ou array);
• Permettent de stocker, extraire et gérer les informations
orientées documents (données semi-structurées) .

25
Types de bases de données NoSQL: orientée Documents

Stockage orienté Document


• L’avantage est de pouvoir récupérer, via une seule clé, un ensemble d’informations
structurées de manière hiérarchique.
Exemple des solutions NoSQL Orientée Document: MongoDB, CouchDB
Server, MarkLogic

26
Types de bases de données NoSQL: Clé/Valeur

• Le type le plus simple sorte de Hashmap (table de hashage)


distribuée ;
• Les données sont représentées par des couples (clé/valeur);
• Une valeur peut être une valeur de type simple, un objet
sérialisé,….
• Vu sa simplicité , ce type de bases NoSQL est capable de
prendre en charge efficacement un grand nombre de
requêtes.;
• IL est très commode pour stocker les profils des
utilisateurs.

27
Types de bases de données NoSQL: Clé/Valeur

Stockage clé/valeur

• Conçues pour sauvegarder les données sans définir de schéma;


• La donnée est opaque au système: il n’est pas possible d’y accéder sans
passer par la clef.
Exemple des solutions NoSQL orientée Clé/Valeur : Aerospike, Redis, Riak

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

Stockage orienté Colonnes

Exemple des solutions NoSQL Orientée Colonnes: Accumulo, Cassandra, Hbase,


BigTable

30
Types de bases de données NoSQL: orientée Graphes

• Ce modèle de représentation des données se


base sur la théorie des graphes;
• S’appuie sur les notions de nœuds, de
relations et des propriétés qui leur sont
rattachées;
• Ce type est conçu principalement pour les
données fortement interconnectées (comme
les données des réseaux sociaux) avec un
nombre indéterminé de relations entre elles.
Exemples des solutions NoSQL orienté
Graphes : InfiniteGraph, Neo4j

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

Vous aimerez peut-être aussi