Vous êtes sur la page 1sur 14

Département Informatique

Projet NoSQL :

Qu’est qu’une Base de données NoSQL Mongo DB ?

Réalisé par :

OBISSY-ELINGABATO Albert

Encadrante :

Wiem Mrabet

Année Universitaire 2022-2023


I – Présentation de Mongo DB :

Bienvenue dans cette présentation sur MongoDB, une base de données NoSQL
orientée document qui offre une grande flexibilité et évolutivité pour stocker et
traiter des données variées et volumineuses.

MongoDB a été créée en 2007 par la société 10gen, qui a changé son nom pour
MongoDB Inc. en 2013. Depuis, MongoDB est devenue l'une des bases de
données NoSQL les plus populaires, avec une communauté d'utilisateurs en
constante expansion.

Contrairement à une base de données relationnelle SQL traditionnelle,


MongoDB ne repose pas sur des tableaux et des colonnes. Les données sont
stockées sous forme de collections et de documents.

Les documents sont des paires de clés / valeurs servant d’unité de données de
base. Les collections quant à elles contiennent des ensembles de documents et
de fonctions. Elles sont l’équivalent des tableaux dans les bases de données
relationnelles classiques.

MongoDB est utilisé par de nombreuses entreprises de premier plan pour des
applications web, mobiles, Big Data et IoT. Sa popularité s'explique en partie par
sa capacité à offrir des performances élevées, une haute disponibilité et une
grande facilité d'utilisation, ainsi que par sa capacité à s'adapter facilement à
des modèles de données qui évoluent rapidement.

Au cours de cette présentation, nous allons explorer les caractéristiques clés de


MongoDB, les avantages de son utilisation et les cas d'utilisation courants. Nous
allons également voir comment installer MongoDB, créer une base de données,
insérer des données, effectuer des requêtes et gérer la sécurité.
II – Les Caractéristiques de Mongo DB :

Chaque base de données MongoDB contient des collections, contenant elles-


mêmes des documents. Chaque document est différent et peut comporter un
nombre de champs variable. La taille et le contenu de chaque document varient
également.

La structure d’un document correspond à la façon dont les développeurs


construisent leurs classes et objets dans le langage de programmation utilisé.
En général, les classes ne sont pas de lignes et des colonnes mais ont une
structure claire composée de paires de clés / valeurs.

Les documents n’ont pas de schéma prédéfini et des champs peuvent être
ajoutés à volonté. Le modèle de données disponible au sein de MongoDB
permet de représenter des relations hiérarchiques ou autre structure complexe
plus facilement.

Une autre caractéristique majeure de MongoDB est l’élasticité de ses


environnements. De nombreuses entreprises ont des clusters de plus de 100
nœuds pour des bases de données contenant des millions de documents.
2 .1 – Architecture de Mongo DB et ses composants :

L’architecture MongoDB repose sur plusieurs composants principaux. Tout


d’abord, » _id » est un champ requis pour chaque document. Il représente une
valeur unique, et peut être considéré comme la clé principale du document
permettant de l’identifier au sein de la collection.

Un document est l’équivalent d’un enregistrement dans une base de données


traditionnelle. Il est constitué de champs de nom et de valeurs. Chaque champ
est une association entre un nom et une valeur, et s’apparente à une colonne
dans une base de données relationnelle.

Une collection est un groupe de documents MongoDB, et correspond à un


tableau créé avec n’importe quel autre RDMS comme Oracle ou MS SQL sur
une base de données relationnelle. Elle n’a pas de structure prédéfinie.

Une base de données est un conteneur de collections, au même titre qu’un


RDMS est un conteneur de tableaux pour les bases de données relationnelles.
Chacune a son propre ensemble de fichiers sur le système fichier. Un serveur
MongoDB peut stocker de multiples bases de données.

Enfin, le JSON (JavaScript Object Notation) est un format en texte clair pour
exprimer les données structurées. Il est pris en charge par de nombreux
langages de programmation.
2 .2 - Pourquoi utiliser MongoDB ? Quels sont les avantages ? :

MongoDB présente plusieurs avantages majeurs. Tout d’abord, cette base de


données NoSQL orientée document se révèle très flexible et adaptée aux cas
d’usage concrets d’une entreprise.

Les requêtes » Ad hoc « permettent par ailleurs de retrouver des champs


spécifiques au sein des documents. Notons aussi la possibilité de créer des
index pour améliorer la performance des recherches. N’importe quel champ
peut être indexé.

Un autre avantage est la possibilité de créer des » réplica sets « constitués de


deux instances MongoDB ou plus. Chaque membre peut jouer le rôle de
réplique secondaire ou primaire à tout moment.

La réplique primaire est le serveur principal, qui interagit avec le client et


effectue toutes les opérations de lecture et d’écriture. Les répliques secondaires
quant à elles conservent une copie des données. Ainsi, en cas de panne de la
réplique primaire, le basculement vers la secondaire se fait automatiquement.
Ce système garantit une haute disponibilité.

Enfin, le concept du sharding permet le scaling horizontal en répartissant les


données entre de multiples instances MongoDB. La base de données peut être
exécutée sur de multiples serveurs, et ceci permet d’équilibrer la charge ou de
dupliquer les données pour garder le système fonctionnel en cas de panne
matérielle.

De par ces nombreux avantages, MongoDB est aujourd’hui un outil très utilisé
dans le domaine de l’ingénierie des données. Il s’agit d’une solution à maîtriser
impérativement pour les Data Engineers.
2.3 - MongoDB vs RDBMS : quelles sont les différences ?

Il existe plusieurs différences majeures entre MongoDB et les SDGBR (système


de gestion de bases de données relationnelles. Comme évoqué auparavant, les
données ne sont pas stockées dans des tableaux mais dans des collections de
documents. Ces documents remplacent les lignes des SGBDR. Ils contiennent
des champs de paires de clés / valeurs, remplaçant eux-mêmes les colonnes.

En outre, l’intégrité des données n’est pas une contrainte sur MongoDB. Les
données n’ont pas non plus besoin d’être » normalisées « avant usage comme
sur un SGBDR. C’est un véritable avantage, car la contrainte de normalisation
peut atténuer les performances à mesure que la base de données prend de
l’ampleur.

2.4 - La Modélisation de données sur Mongo DB :

Contrairement aux bases de données SQL, MongoDB n’implique aucune


contrainte en termes de structure des documents. Les données n’ont pas de
schéma préconçu, et c’est cette flexibilité qui rend MongoDB si puissant et
performant.

La modélisation des données et la structure des documents doivent


uniquement répondre aux besoins de l’utilisateur. Il convient de prendre en
compte les besoins de l’application, et donc quels seront les données et les
types de données nécessaires.

Si de nombreuses requêtes sont à prévoir, il est pertinent d’utiliser des index


dans le modèle de données pour améliorer l’efficacité des requêtes. Enfin, en
cas d’ajouts, de mises à jour et de suppressions de données fréquentes, on
utilisera là encore des index et le système de sharding pour améliorer l’efficacité
générale de l’environnement.
III – Exemple détaillé d’une base de données Mongo DB :

Voici un exemple détaillé d'une base de données MongoDB.

Supposons que nous sommes une entreprise de vente en ligne, et que nous
avons besoin d'une base de données pour stocker des informations sur nos
produits, nos clients et les commandes passées. Nous allons créer une base de
données MongoDB pour cela.

Tout d'abord, nous allons installer MongoDB et lancer le serveur. Ensuite, nous
allons créer une nouvelle base de données en utilisant la commande "use" dans
l'interface de ligne de commande de MongoDB :

Maintenant que nous avons créé notre base de données, nous allons créer des
collections pour stocker nos données. Dans MongoDB, une collection est
l'équivalent d'une table dans une base de données relationnelle. Nous allons
créer trois collections pour stocker les informations sur les produits, les clients
et les commandes :

Maintenant que nous avons créé nos collections, nous pouvons insérer des
données. Commençons par insérer des informations sur un produit dans la
collection "products". Nous allons utiliser la méthode "insertOne()" pour cela :
Nous avons maintenant inséré un document (ou enregistrement) dans la
collection "products" qui contient des informations sur notre t-shirt. Notez que
le document est un objet JSON avec des champs pour le nom, la description, le
prix, les tailles disponibles et les couleurs disponibles.
Ensuite, nous allons insérer des informations sur un client dans la collection
"customers" :

Nous avons maintenant inséré un document dans la collection "customers" qui


contient des informations sur notre client, y compris son nom, son adresse e-
mail et son adresse.
Enfin, nous allons insérer des informations sur une commande dans la
collection "orders" :

Nous avons maintenant inséré un document dans la collection "orders" qui


contient des informations sur une commande passée par notre client. Notez
que nous avons utilisé les identifiants ObjectId pour référencer les documents
dans les collections "customers" et "products".

Ceci conclut notre exemple détaillé d'une base de données MongoDB. Nous
avons créé une base de données pour stocker des informations sur les produits,
les clients et les commandes, et nous avons inséré des données dans ces
collections en utilisant des documents JSON.
3.1 -Quel est l'utilité de MongoDB dans une entreprise de vente en
ligne ? :

MongoDB peut être très utile dans une entreprise de vente en ligne pour
plusieurs raisons :

-Stockage de données : MongoDB permet de stocker et de gérer facilement des


volumes de données importants, ce qui est particulièrement important pour
une entreprise de vente en ligne qui traite de nombreuses transactions chaque
jour.

-Flexibilité : La structure de données flexible de MongoDB permet de stocker


des données de manière non structurée, semi-structurée ou structurée, ce qui
peut être très utile pour une entreprise de vente en ligne qui peut avoir des
besoins de stockage de données différents en fonction des informations qu'elle
souhaite stocker.

-Scalabilité : MongoDB est conçu pour être facilement scalable, ce qui signifie
qu'il peut s'adapter à des volumes de données croissants sans nécessiter
beaucoup de ressources supplémentaires.

-Performances : MongoDB offre des performances élevées pour les opérations


de lecture et d'écriture, ce qui peut être particulièrement important pour une
entreprise de vente en ligne qui nécessite une base de données rapide et
réactive pour assurer une expérience utilisateur fluide et satisfaisante.

-Facilité d'utilisation : MongoDB est relativement facile à utiliser et à


administrer, ce qui peut être très utile pour une entreprise de vente en ligne qui
souhaite gérer sa base de données sans avoir à embaucher un personnel
technique supplémentaire.
En somme, MongoDB peut offrir une solution de stockage de données flexible,
performante et scalable pour une entreprise de vente en ligne, ce qui peut
aider à optimiser les processus commerciaux, améliorer l'expérience utilisateur
et augmenter les revenus de l'entreprise.
Conclusion

En conclusion, MongoDB est une base de données NoSQL populaire et flexible


qui offre de nombreux avantages par rapport aux bases de données
relationnelles traditionnelles. Sa structure de données flexible et sa capacité à
gérer des données non structurées en font une solution idéale pour les
entreprises qui ont besoin de stocker et d'analyser des données non
structurées, comme des données de réseaux sociaux ou des données de
capteurs IoT.

MongoDB offre également une excellente évolutivité horizontale, ce qui permet


aux entreprises de facilement ajouter des nœuds à leur grappe de serveurs
pour améliorer les performances et la disponibilité des données. En outre,
MongoDB est très performant en termes de vitesse de lecture et d'écriture de
données, ce qui est essentiel pour les applications qui ont besoin d'une réponse
rapide.

En utilisant MongoDB, les entreprises peuvent profiter de la flexibilité et de la


scalabilité de cette base de données pour améliorer leur efficacité
opérationnelle et offrir des expériences clients plus personnalisées. Avec une
large communauté de développeurs et de contributeurs actifs, MongoDB
continuera probablement à évoluer pour répondre aux besoins changeants des
entreprises et des développeurs.

Vous aimerez peut-être aussi