Architecture MongoDB : structure, terminologies, exigences et avantages
Publié: 2020-12-28Table des matières
Aperçu
Il ne fait aucun doute qu'Internet est l'épine dorsale de l'économie mondiale moderne. Aujourd'hui, près de 4,7 milliards de personnes dans le monde utilisent la plateforme virtuelle chaque jour, en utilisant des applications Internet pour les nouvelles, acheter des vêtements, commander de la nourriture, écouter de la musique, se rendre au bureau et en revenir, etc.
Avec un si grand nombre d'utilisateurs apportant des contributions numériques quotidiennement, il n'est pas étonnant que d'énormes quantités de données non structurées soient générées chaque jour dans le cyberespace. En savoir plus sur la portée future de MongoDB.
Cela a donné lieu à un besoin urgent d'un nouveau paradigme de base de données capable de stocker, de servir et de prendre en charge les applications « Big Data » (comme on les a connues) 24 heures sur 24, 7 jours sur 7, sans tomber en panne.
Entrez NoSQL.
L'essor des bases de données NoSQL
NoSQL, vaguement connu sous le nom de « Not Only SQL », est une alternative aux bases de données SQL contraintes par leurs schémas de table fixes. En étant très flexible, NoSQL surmonte cet inconvénient structurel des bases de données SQL et est équipé pour évoluer horizontalement. Les bases de données NoSQL ont été conçues pour augmenter la productivité des développeurs, en les dotant d'un modèle de données simple et élégant pour les opérations complexes de traitement et de gestion des données.
En gros, ces modèles de stockage de données sont de 4 types : document, clé-valeur, colonne large et graphique. Nous nous concentrerons sur les bases de données documentaires et l'architecture MongoDB dans ce blog (la principale base de données NoSQL)

La structure MongoDB
Source : documentation MongoDB
L'architecture MongoDB suit un modèle de données flexible. Contrairement à RDBMS, qui exige une déclaration de schéma avant d'insérer des données, MongoDB n'impose pas une structure de document fixe.
Terminologies
Des champs
Une paire clé-valeur dans un document, c'est le pendant d'une colonne dans les bases de données relationnelles
Document
C'est l'équivalent d'un enregistrement dans RDBMS
Collections
Un groupe de documents est appelé une collection. Ceci est analogue à une table RDBMS
Différences entre l'architecture RDBMS et MongoDB
Jointures
Dans RDBMS, les données peuvent être réparties entre plusieurs tables et réunies pour y accéder dans une seule vue. Une telle opération JOIN n'est pas possible dans MongoDB. Au lieu de cela, toutes les données sont stockées dans une seule collection mais peuvent être séparées via des documents imbriqués ou intégrés
Normalisation
RDBMS garantit la normalisation des données pour éviter les doublons et les enregistrements orphelins. La flexibilité de MongoDB élimine le besoin de normalisation
Structure
Le RDBS est principalement utilisé dans le secteur bancaire, où la structure exacte de la base de données est connue a priori. MongoDB prend en charge d'énormes volumes de données non structurées et est extensible sur les applications cloud, mobiles, Web et Big Data.
Le besoin et les avantages de l'architecture MongoDB
L'architecture MongoDB peut gérer les changements structurels à la volée, ce qui est le besoin de l'heure. C'est parfait pour les scénarios où vous n'avez pas de visibilité sur la structure de votre base de données au préalable.
Voici quelques-uns de ses principaux avantages
Basé sur des documents
Peut s'adapter dynamiquement aux changements de flux de données, en s'adaptant aux besoins changeants de l'entreprise en temps réel

Requêtes ad hoc – Langage de requête puissant pouvant renvoyer des champs spécifiés. Il permet également des capacités de recherche très granulaires. (par champ, par plage, expressions courantes, etc.)
Indexage
Vous pouvez indexer n'importe quel champ d'un document pour accélérer le processus de récupération des données.
Plongeons maintenant dans l' architecture MongoDB .
Mais avant cela, nous devons comprendre le théorème CAP.
Le théorème CAP
CAP représente le trifecta de la cohérence, de la disponibilité et de la tolérance de partition.
Voyons ce que signifie chaque terme dans ce contexte
Cohérence
Si vous écrivez des données dans une base de données distribuée, vous devriez pouvoir accéder aux mêmes données à partir de n'importe quel nœud du système à tout moment. Il s'agit de préserver l'intégrité des données écrites.
Disponibilité
Il s'agit de minimiser les temps d'arrêt d'un système. Les opérations de lecture/écriture doivent se produire sur n'importe quelle machine du cluster, sans faute.
Tolérance de partition ou tolérance aux pannes
indique la capacité d'un système à continuer à fonctionner correctement même dans le cas d'une partition réseau, c'est-à-dire que différentes parties du cluster doivent pouvoir communiquer entre elles et se synchroniser efficacement.
Le théorème CAP stipule qu'un système distribué DOIT être tolérant aux partitions. Aucune partition réseau ne peut faire planter tout le système.
En d'autres termes, vous ne pouvez garantir qu'un seul paramètre parmi la "cohérence" et la "disponibilité" dans un système distribué, l'autre étant la tolérance de partition.
Cela donne un triangle comme celui-ci :
Source : Data Science Pedia
MongoDB choisit toujours la cohérence plutôt que la disponibilité chaque fois qu'il y a une partition dans le système (CP). Il bloque toutes les opérations d'écriture jusqu'à ce qu'il puisse garantir l'exécution précise de ces écritures.
Architecture MongoDB
MongoDB utilise l'architecture à maître unique, ce qui signifie qu'une machine principale prend en charge toutes les opérations d'écriture côté client. Toutes les autres instances que vous ajoutez ultérieurement au cluster constituent les nœuds secondaires, qui gèrent généralement toutes les opérations de lecture.
Il s'agit essentiellement de copies de sauvegarde du serveur principal en tant que sécurité intégrée contre le plantage principal.
Tous ces serveurs sont regroupés dans des ensembles de répliques. Vous pouvez avoir plusieurs jeux de répliques, chacun ayant ses propres serveurs principal et secondaire.
Source : Documentation MongoDB
En cas de panne du nœud principal, le système choisit un nouveau nœud principal parmi tous les nœuds secondaires. Mais cela se produit arbitrairement, selon l'endroit où il obtient les réponses ping les plus rapides de tous les systèmes. Vous devez avoir un nombre impair de serveurs dans votre cluster (minimum 3) pour qu'un primaire puisse être élu à la majorité.
Si vous ne voulez pas dépenser d'argent sur trois serveurs, vous pouvez nommer un nœud "Arbiter" dont le seul travail est de voter pour élire le primaire.
Partage
Le sharding dans MongoDB vous permet de répartir votre Big Data sur plusieurs bases de données.

Source : Documentation MongoDB
Vous avez une application ayant des millions d'utilisateurs. Le partitionnement vous permet de partitionner ces utilisateurs (sur la base d'un index unique tel qu'un ID utilisateur) en différents jeux de réplicas. À l'aide d'un processus appelé mongoS, le serveur d'application communique avec les serveurs de configuration (précisément 3) pour comprendre quel «Shard» contient les données qu'il recherche. mongoS exécute un processus Load Balancer en arrière-plan pour répartir automatiquement la charge (dans ce cas, le nombre d'utilisateurs) de manière égale entre tous les fragments.
Conclusion
Si vous souhaitez en savoir plus sur MongoDB et les opérations de base de données, consultez les idées de projets MongoDB. Vous pouvez explorer le diplôme PG en science des données de upGrad. Un cours de 12 mois conçu pour les professionnels en activité, vous bénéficiez d'une orientation professionnelle complète et d'opportunités d'emploi, ainsi que du prestigieux statut IIIT Bangalore Alumni.
Nous espérons que cet article vous a aidé à comprendre le fonctionnement de l' architecture MongoDB et le fonctionnement du système. Pour en savoir plus, veuillez consulter nos autres blogs.
Apprenez des cours de développement de logiciels en ligne dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.
