Qu’est ce qu' MongoDB? Introduction, Architecture, fonctionnalités et exemple
Qu’est ce qu' 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 MongoDB. Les collections contiennent des ensembles de documents et des fonctions qui sont 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és
- Chaque base de données contient des collections qui contiennent à leur tour des documents. Chaque document peut être différent avec un nombre de champs variable. La taille et le contenu de chaque document peuvent être différents les uns des autres.
- 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 MongoDB) n'a pas besoin d'avoir un schéma défini au préalable. Au lieu de cela, les champs peuvent être créés à la volée.
- Le modèle de données disponible dans MongoDB vous permet de représenter des relations hiérarchiques, de stocker des tableaux et d'autres structures plus complexes plus facilement.
- Évolutivité – Le MongoDB les environnements sont très évolutifs. Des entreprises du monde entier ont défini des clusters, certains d'entre eux exécutant plus de 100 nœuds avec environ 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.
- Ce que vous pouvez noter, c'est que les données de commande (OrderID, Product et Quantity ) qui dans le SGBDR seront normalement stockées dans une table séparée, tandis que dans MongoDB il est en fait stocké sous forme de document intégré dans la collection elle-même. C'est l'une des principales différences dans la façon dont les données sont modélisées dans 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. Ainsi, par exemple, si nous voyons l'exemple de la table client ci-dessus, Mongo DB ajoutera un identifiant unique à 24 chiffres à 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 – Il s’agit d’un regroupement de MongoDB documents. Une collection est l'équivalent d'une table créée dans tout autre RDMS tel que Oracle ou MS SQL. Une collection existe au sein d’une seule base de données. Comme le montre l’introduction, les collections n’appliquent aucune sorte de structure.
- 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 RDMS où il s’agit d’un conteneur pour les tables. Chaque base de données obtient son propre ensemble de fichiers sur le système de fichiers. UN MongoDB Le serveur peut stocker plusieurs bases de données.
- Documents – Un enregistrement dans un MongoDB la collection s’appelle essentiellement un document. Le document, à son tour, sera composé du nom du champ et des valeurs.
- Champ – Une paire nom-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 montre un exemple de champs avec des paires de valeurs clés. Ainsi, dans l'exemple ci-dessous, CustomerID et 11 sont 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-unes des raisons pour lesquelles il faut 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 à la situation et aux exigences réelles du monde des affaires.
- Requêtes ponctuelles – 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.
- Indexation – Des index peuvent être créés pour améliorer les performances des recherches au sein MongoDB. N'importe quel champ dans un MongoDB le document peut être indexé.
- Réplication – MongoDB peut fournir une haute disponibilité avec des jeux de réplicas. Un jeu de réplicas se compose de deux ou plusieurs instances de base de données mongo. Chaque membre du jeu de réplicas peut jouer le rôle de réplica principal ou secondaire à tout moment. La réplique principale 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 principal à l'aide de la réplication intégrée. Lorsqu'un réplica principal échoue, le jeu de réplicas passe automatiquement au secondaire, puis devient le serveur principal.
- 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 la section Introduction, les données de 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 de données dans Mongo, gardez les éléments suivants à l'esprit
- Quels sont les besoins de l'application – Examinez les besoins commerciaux de l'application et voyez quelles données et le type de données nécessaires pour l'application. Sur cette base, assurez-vous que la structure du document est décidée en conséquence.
- Que 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 pour améliorer l'efficacité des requêtes.
- Des insertions, mises à jour et suppressions sont-elles fréquentes 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 de données pour améliorer l'efficacité de votre stratégie globale. MongoDB environnement.
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 qui sont utilisées pour stocker les données alors que, dans MongoDB, cette même structure est connue sous le nom de collection. La collection contient des documents qui à leur tour contiennent des champs, qui sont à leur tour 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 connus sous le nom de champs. |
Joint | Documents intégrés | Dans le 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 formée entre les tables pour obtenir les données. Dans MongoDB, les données sont normalement stockées dans une seule collection, mais séparées à l'aide de documents intégrés. Il n'y a donc pas de concept de jointure MongoDB. |
Outre les différences de termes, quelques autres différences sont indiquées ci-dessous.
- 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 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înera ensuite davantage de jointures de tables, nécessitant ainsi davantage de clés et d'index. À mesure que les bases de données commencent à se développer, les performances peuvent commencer à devenir un problème. Encore une fois, ce n'est pas une exigence explicite dans MongoDB. MongoDB est flexible et ne nécessite pas de normalisation préalable des données.