Qu'est-ce que le MongoDB? Architecture, fonctionnalités et exemple
⚡ Résumé intelligent
MongoDB SQL Server est une base de données NoSQL orientée documents, utilisée pour le stockage de données volumineuses, et qui utilise des collections et des documents plutôt que des tables et des lignes. Cette ressource explique… MongoDB caractéristiques, un exemple de document, les principaux composants d'architecture, les raisons de son utilisation, la modélisation des données et en quoi elle diffère d'une base de données relationnelle.

Qu'est-ce que le MongoDB?
MongoDB est une base de données NoSQL orientée document utilisée pour le stockage de données de gros volumes. Au lieu d'utiliser des tables et des lignes comme dans les bases de données relationnelles traditionnelles, MongoDB utilise des collections et des documents. Les documents sont constitués de paires clé-valeur qui constituent l'unité de données de base dans MongoDBLes collections contiennent des ensembles de documents et de fonctions, ce qui est l'équivalent des tables de bases de données relationnelles. MongoDB est une base de données apparue vers le milieu des années 2000.
MongoDB Fonctionnalité
- Chaque base de données contient des collections qui, à leur tour, contiennent des documents. Chaque document peut être différent, avec un nombre variable de champs. La taille et le contenu de chaque document peuvent également varier.
- La structure du document correspond davantage à la manière dont les développeurs construisent leurs classes et objets dans leurs langages de programmation respectifs. Les développeurs diront souvent que leurs classes ne sont pas des lignes et des colonnes mais ont une structure claire avec des paires clé-valeur.
- Les lignes (ou les documents appelés dans MongoDBIl n'est pas nécessaire de définir un schéma au préalable. Les champs peuvent être créés dynamiquement.
- Le modèle de données disponible dans MongoDB permet de représenter des relations hiérarchiques, de stocker des tableaux et d'autres structures plus complexes plus facilement.
- Évolutivité - Les MongoDB Les environnements sont très évolutifs. Des entreprises du monde entier ont défini des clusters, certains d'entre eux exploitant plus de 100 nœuds avec des millions de documents dans la base de données.
MongoDB Exemple
L'exemple ci-dessous montre comment un document peut être modélisé dans MongoDB.
- Le champ _id est ajouté par MongoDB pour identifier de manière unique le document dans la collection.
- Vous pouvez constater que les données de commande (ID de commande, produit et quantité), qui dans un SGBDR seraient normalement stockées dans une table séparée, sont en réalité stockées comme un document intégré dans la collection elle-même. MongoDBC’est l’une des principales différences dans la manière dont les données sont modélisées. MongoDB.
Composants clés de MongoDB Architecture
Vous trouverez ci-dessous quelques-uns des termes courants utilisés dans MongoDB:
- _id – Il s’agit d’un champ obligatoire dans chaque MongoDB document. Le champ _id représente une valeur unique dans le MongoDB document. Le champ _id est comme la clé primaire du document. Si vous créez un nouveau document sans champ _id, MongoDB créera automatiquement le champ. Par exemple, si l'on reprend l'exemple du tableau client ci-dessus, MongoDB Un identifiant unique à 24 chiffres sera ajouté à chaque document de la collection.
| _Identifiant | N ° de client | Nom du client | Numéro de commande |
|---|---|---|---|
| 563479cc8a8a4246bd27d784 | 11 | Guru99 | 111 |
| 563479cc7a8a4246bd47d784 | 22 | Trevor Smith | 222 |
| 563479cc9a8a4246bd57d784 | 33 | Nicole | 333 |
- Collection – Ceci est un groupeping of MongoDB documents. Une collection est l'équivalent d'une table créée dans tout autre SGBDR tel que Oracle ou MS SQL. Une collection existe au sein d'une seule base de données. Comme indiqué dans l'introduction, les collections n'imposent aucune structure particulière.
- Curseur – Il s’agit d’un pointeur vers le jeu de résultats d’une requête. Les clients peuvent parcourir un curseur pour récupérer les résultats.
- Base de données – Il s'agit d'un conteneur pour les collections, comme dans un SGBDR où il s'agit d'un conteneur pour les tables. Chaque base de données possède son propre ensemble de fichiers sur le système de fichiers. MongoDB Le serveur peut stocker plusieurs bases de données.
- Documents – Un enregistrement dans un MongoDB Une collection est appelée document. Ce document est composé de noms de champs et de valeurs.
- Champ Une paire clé-valeur dans un document. Un document comporte zéro ou plusieurs champs. Les champs sont analogues aux colonnes des bases de données relationnelles. Le diagramme suivant illustre un exemple de champs avec des paires clé-valeur. Dans l'exemple ci-dessous, CustomerID et 11 constituent l'une des paires clé-valeur définies dans le document.
- JSON – C’est ce qu’on appelle Javascénario Notation d'objet. Il s'agit d'un format de texte brut, lisible par l'homme, permettant d'exprimer des données structurées. JSON est actuellement pris en charge dans de nombreux langages de programmation.
Juste une note rapide sur la principale différence entre le champ _id et un champ de collection normal. Le champ _id est utilisé pour identifier de manière unique les documents d'une collection et est automatiquement ajouté par MongoDB lorsque la collection est créée.
Pourquoi utiliser MongoDB?
Voici quelques raisons pour lesquelles il est conseillé de commencer à utiliser MongoDB:
- Orienté document - Depuis MongoDB est une NoSQL type de base de données, au lieu d'avoir des données dans un format de type relationnel, il stocke les données dans des documents. Cela fait MongoDB très flexible et adaptable aux situations et exigences réelles du monde des affaires.
- Requêtes ad hoc - MongoDB prend en charge la recherche par champ, les requêtes de plage et les recherches d'expressions régulières. Les requêtes peuvent être effectuées pour renvoyer des champs spécifiques dans les documents.
- Indexage – Des index peuvent être créés pour améliorer les performances des recherches au sein de MongoDB. N'importe quel champ dans un MongoDB le document peut être indexé.
- réplication - MongoDB peuvent assurer une haute disponibilité grâce aux ensembles de répliques. Un ensemble de répliques est composé de deux ou plusieurs éléments. MongoDB Chaque membre d'un ensemble de réplicas peut jouer le rôle de réplica primaire ou secondaire à tout moment. Le réplica primaire est le serveur principal qui interagit avec le client et effectue toutes les opérations de lecture/écriture. Les réplicas secondaires conservent une copie des données du réplica primaire grâce à la réplication intégrée. En cas de défaillance du réplica primaire, l'ensemble de réplicas bascule automatiquement vers le réplica secondaire, qui devient alors le serveur primaire.
- L'équilibrage de charge - MongoDB utilise le concept de partitionnement pour évoluer horizontalement en divisant les données sur plusieurs MongoDB les instances. MongoDB peut fonctionner sur plusieurs serveurs, équilibrant la charge et/ou dupliquant les données pour maintenir le système opérationnel en cas de panne matérielle.
Modélisation des données dans MongoDB
Comme nous l'avons vu dans l'introduction, les données dans MongoDB a un schéma flexible. Contrairement à SQL les bases de données, où vous devez déclarer le schéma d'une table avant d'insérer des données, MongoDBLes collections de n'appliquent pas la structure du document. Ce type de flexibilité est ce qui fait MongoDB si puissant.
Lors de la modélisation des données dans MongoDBGardez les points suivants à l'esprit :
- Quels sont les besoins de l'application ? Analysez les besoins métier de l'application et déterminez les données et leur type. En fonction de cela, assurez-vous que la structure du document soit adaptée.
- Quels sont les modèles de récupération de données – Si vous prévoyez une utilisation intensive des requêtes, envisagez l'utilisation d'index dans votre modèle de données afin d'améliorer l'efficacité des requêtes.
- Des insertions, des mises à jour et des suppressions fréquentes ont-elles lieu dans la base de données ? Reconsidérez l'utilisation des index ou intégrez le partitionnement si nécessaire dans la conception de votre modélisation des données afin d'améliorer l'efficacité globale de votre système. MongoDB sûr et sécurisé.
Différence entre MongoDB & SGBDR
Vous trouverez ci-dessous quelques-unes des principales différences entre les termes MongoDB et SGBDR :
| RDBMS | MongoDB | La différence |
|---|---|---|
| lampe de table | Collection | In RDBMS, le tableau contient les colonnes et les lignes utilisées pour stocker les données, tandis que dans MongoDB Cette même structure est appelée collection. La collection contient des documents qui contiennent eux-mêmes des champs, lesquels sont des paires clé-valeur. |
| Rangée | Documents | Dans le SGBDR, la ligne représente un élément de données unique et implicitement structuré dans une table. Dans MongoDB, les données sont stockées dans des documents. |
| Colonne | Champ | Dans le SGBDR, la colonne désigne un ensemble de valeurs de données. Ceux-ci dans MongoDB sont appelés champs. |
| Joint | Documents intégrés | Dans les SGBDR, les données sont parfois réparties sur plusieurs tables, et afin d'afficher une vue complète de toutes les données, une jointure est parfois effectuée entre les tables pour obtenir les données. MongoDBLes données sont généralement stockées dans une seule collection, mais séparées par des documents imbriqués. Il n'y a donc pas de notion de jointure. MongoDB. |
Outre les différences de terminologie, voici quelques autres différences :
- Les bases de données relationnelles sont connues pour garantir l’intégrité des données. Il ne s'agit pas d'une exigence explicite dans MongoDB.
- Le SGBDR exige que les données soient normalisée Tout d'abord, afin d'éviter les enregistrements orphelins et les doublons. La normalisation des données nécessite ensuite davantage de tables, ce qui entraîne une augmentation des jointures et, par conséquent, un besoin accru de clés et d'index. À mesure que les bases de données grossissent, les performances peuvent devenir problématiques. Il convient de noter que cela ne constitue pas une exigence explicite. MongoDB. MongoDB est flexible et ne nécessite pas de normalisation préalable des données.


