Comment une base de données MongoDB peut mieux organiser vos données

MongoDB (from humongous) est une base de données orientée document multi-plateforme utilisée comme alternative à MySQL. Mais qu'est ce que ça veut dire?

MongoDB (from humongous) est une base de données orientée document multi-plateforme utilisée comme alternative à MySQL.  Mais qu'est ce que ça veut dire?
Publicité

Quiconque a déjà travaillé avec des bases de données qui organisent des données dans des tables, également appelées bases de données relationnelles, peut probablement parler longuement de ses failles. Aussi génial qu'un système de stockage de données, il peut être, il n'est pas sans ses problèmes et n'est pas conçu pour l'interprétation par les gens, ce qui rend l'organisation compliquée, redondante, et avec une courbe d'apprentissage abrupte.

D'où le mouvement NoSQL. SQL est l'abréviation de Structured Query Language, et est utilisé pour communiquer avec des bases de données. Mais ce n'est pas génial à plus grande échelle. Lorsque, par exemple, les applications deviennent virales, un support est nécessaire pour que les utilisateurs puissent utiliser l'application sans rencontrer de problèmes. Mais le SQL devient compliqué à cette échelle, d'autant plus que beaucoup de développeurs peuvent gérer.

NoSQL facilite le stockage et l'organisation des données, car les tenants de l'école de pensée NoSQL s'efforçaient de créer une base de données fonctionnant avec de grands ensembles de données, mise à l'échelle et organisée comme les gens le pensent, et facilement lisibles par les humains. MongoDB est l'une de ces bases de données, et cela change la façon dont les développeurs construisent des sites Web.

Qu'est-ce que MongoDB?

Connection_to_the_MongoDB_Shell

MongoDB (de "humongous") est une base de données orientée document multi-plateforme utilisée comme alternative à MySQL. Mais qu'est ce que ça veut dire? Eh bien, une base de données est un ensemble structuré de données Alors qu'est-ce qu'une base de données, de toute façon? [MakeUseOf explique] Alors, qu'est-ce qu'une base de données? [MakeUseOf explique] Pour un programmeur ou un passionné de technologie, le concept d'une base de données est quelque chose qui peut vraiment être pris pour acquis. Cependant, pour de nombreuses personnes, le concept de base de données elle-même est un peu étranger .... Lire la suite, cependant, MongoDB diffère en ce sens qu'il tend à être moins strict sur la façon dont ces données sont structurées. Les informations sont regroupées, plutôt que décomposées en documents et tables connexes tels que MySQL, un SGBDR populaire ou un système de gestion de base de données relationnelle, qui utilise SQL.

De nombreuses bases de données qui utilisent SQL stockent des données dans des tableaux sur des pages. Pensez à quelque chose comme une feuille de calcul Excel avec des morceaux de code. Ces pages sont les plus petites données sur un serveur et chaque page est consacrée à une table. Cela devient compliqué à grande échelle, alors qu'avec MongoDB, le développeur peut décider comment structurer l'information pour tout ce qui convient à ses besoins.

MongoDB utilise BSON pour stocker des informations. BSON (une combinaison de "binaire" et "JSON", ou JavaScript Object Notation) peut être considéré comme une représentation binaire ou numérique de documents JSON. JSON Qu'est-ce que JSON? Présentation d'un profane Qu'est-ce que JSON? Si vous envisagez d'être un développeur Web ou non, c'est une bonne idée de savoir au moins ce qu'est JSON, pourquoi c'est important et pourquoi il est utilisé sur le Web. Read More est un format standard ouvert (comme open-source) pour l'organisation des données.

Il ajoute également la prise en charge de certains types de données qui ne sont pas pris en charge dans JSON, comme le type de données 'date', qui ne serait normalement pas pris en charge et ne pourrait donc pas être utilisé par le développeur. Le développeur, dans ce cas, ne serait pas en mesure d'inclure une sorte de date en tant que donnée.

Typiquement, ces données sont organisées en documents. JSON transmet des données en utilisant des documents qui peuvent être facilement lus par les humains, mais ce n'est pas le cas avec BSON. JSON est également couramment utilisé pour transmettre des données entre un serveur et une application, ainsi qu'un support de stockage de données général.

Les documents n'ont pas besoin d'être structurés de manière spécifique en fonction de la collection, ou d'un groupe d'objets liés dans lesquels ils sont organisés, ce qui permet à un développeur de se familiariser très facilement avec MongoDB. Cela a conduit à être l'une des bases de données NoSQL les plus populaires.

Qu'est-ce qui le rend différent de MySQL?

Mysql-capture d'écran

MySQL étant peut-être le SGBDR le plus largement utilisé, même s'il est imparfait, il est tout à fait naturel que des alternatives apparaissent. Avec NoSQL étant une alternative à SQL, MongoDB est considéré comme une alternative à MySQL. MySQL utilise des tables pour organiser ses données et est basé sur le modèle de données relationnel classique du vingtième siècle, bien que, comme MongoDB, il peut être modifié pour améliorer les fonctionnalités.

Cependant, les deux diffèrent grandement. Ils sont destinés à des fins différentes, pour un. MongoDB est plus destiné à la plus grande (très grande) échelle alors que MySQL ne peut pas en gérer autant. Comme mentionné précédemment, MySQL utilise des tables pour organiser les données qui peuvent se révéler très compliquées. Cependant, ils sont tous les deux de très bons systèmes, et en fait, des hybrides sont implémentés sur certains sites du web. Craigslist est connu pour être l'un des sites les plus réussis mettant en œuvre un hybride MongoDB / MySQL.

Comment ça marche?

document mongodb

MongoDB fonctionne en stockant des données dans des documents similaires à JSON. Ces documents ont un ou plusieurs champs (objets ou valeurs contenus dans une classe ou une structure) qui incluent des tableaux (une série d'objets de même taille et type) et des sous-documents (un document qui fait partie d'un document plus volumineux). Ces champs peuvent être définis comme le développeur le souhaite, en fonction de ses besoins.

Bien que l'organisation de cette tâche soit compliquée, BSON facilite le regroupement des documents en fonction du type et de la taille plutôt que de les décomposer en de très petites données comme SQL et en organisant les données en fonction d'autres informations. Grâce à cette flexibilité, les développeurs peuvent faire évoluer la collecte de données, également appelée modèle de données, en fonction de leurs besoins.

Les développeurs peuvent accéder aux documents via des pilotes qu'ils peuvent lire et comprendre, et les documents sont disponibles dans les langages de programmation les plus courants et les plus modernes. Avec MongoDB, les documents sont mappés naturellement aux objets. Il n'y a donc pas besoin d'une couche ORM (mapping objet-relationnel) qui mappe manuellement les documents sur leurs objets respectifs. Autrement dit, les documents sont naturellement connectés aux objets, il n'est donc pas nécessaire d'avoir une commande ou un programme distinct pour les connecter.

MongoDB utilise un shell basé sur JavaScript et prend en charge les développeurs qui écrivent du code personnalisé en utilisant des fonctions JavaScript, et il deviendra probablement plus répandu alors que JavaScript continue de croître. Qu'est-ce que JavaScript, et Internet peut-il exister? Qu'est-ce que JavaScript, et Internet peut-il exister sans? JavaScript est l'une de ces choses que beaucoup considèrent comme allant de soi. Tout le monde l'utilise. Lire la suite en popularité.

Qui l'utilise?

Bien qu'il soit encore relativement jeune, MongoDB est utilisé dans un certain nombre de sites Web populaires. Ceux-ci incluent le journal d'affaires Forbes, ainsi que gif-tastic Buzzfeed.

Forbes a profité de MongoDB pour développer rapidement un nouveau portefeuille Web et mobile. La rapidité et la puissance de MongoDB leur ont permis de mettre en place un site internet en deux mois et une application mobile en un mois. Cela a eu un effet considérable sur l'engagement et le trafic des lecteurs. Selon les développeurs de MongoDB:

Du jour au lendemain, le trafic mobile a bondi de 5% à 15% du trafic total de Forbes.com et a rapidement atteint 50%.

Buzzfeed souffre des défis auxquels sont confrontés les grands médias. Leur équipe de rédaction distribuée publie une quantité prodigieuse de contenu 5 sites Web pour vérifier Dernières Buzz et vidéos virales 5 sites Web pour vérifier Dernières Buzz et vidéos virales Lire la suite, à un public énorme. MongoDB permet à Buzzfeed d'évoluer rapidement en fonction du trafic reçu, ainsi que de déterminer les types de contenu qui résonnent avec leurs lecteurs.

Comment l'utilisez-vous?

MongoDB est un excellent outil pour les développeurs web, jeux et logiciels. Nous savons que c'est rapide et évolutif. Et nous savons que c'est facile à lire et à apprendre. Mais comment l'utilisez-vous réellement?

mongodb shell dans le navigateur

Le site officiel MongoDB offre aux utilisateurs la possibilité d'essayer un shell MongoDB dans leurs navigateurs. TutorialsPoint offre plusieurs tutoriels très détaillés pour l'utilisation de MongoDB, allant de débutant à avancé. Il y a aussi des projets sur GitHub pas seulement pour les codeurs: 9 manières d'utiliser GitHub pour le travail créatif Pas seulement pour les codeurs: 9 façons d'utiliser GitHub pour le travail créatif GitHub est connu pour les fonctionnalités qu'il peut offrir aux programmeurs, mais pas seulement pour eux . Il y a beaucoup d'autres utilisations créatives pour GitHub. Voici neuf que vous pouvez explorer. Lire plus liés à MongoDB, y compris le livre Little MongoDB par Karl Seguin, pour à peu près tout ce que vous devez savoir sur MongoDB.

Si vous voulez juste apprendre à installer MongoDB, assurez-vous de consulter ce tutoriel sur le site officiel de MongoDB.

Devriez-vous l'utiliser?

Cela dépend de votre situation individuelle.

Autant que MongoDB l'est, ce n'est pas sans défauts. Ce n'est pas conforme ACID. ACID, acronyme de Atomicity, Consistency, Isolation, and Durability, est un ensemble de propriétés qui garantit que les transactions de base de données ou le travail effectué dans une base de données sont traités et complétés correctement. Les bases de données NoSQL ne sont parfois pas compatibles ACID, ce qui limite leur productivité et leur fiabilité.

MongoDB utilise également toute la mémoire disponible comme cache système. Par conséquent, il existe des problèmes de performances sur les ordinateurs fonctionnant sur des systèmes 32 bits, qui peuvent uniquement traiter un maximum de 4 Go de mémoire. Pour en savoir plus sur l'utilisation de la RAM sur votre ordinateur, assurez-vous de consulter cet article par Brad Jones Combien de RAM avez-vous vraiment besoin? Combien de RAM avez-vous vraiment besoin? La RAM est comme la mémoire à court terme. Plus vous multitâchez, plus vous avez besoin. Découvrez combien votre ordinateur possède, comment en tirer le meilleur parti, ou comment en obtenir plus. Lire la suite .

Parce qu'il n'y a pas besoin de tables avec cette base de données, il y a un risque élevé de développeurs paresseux et d'écriture de code bâclé, mais ce risque s'applique à presque tout. Vous vous retrouvez avec des données en double, car il n'y a aucune possibilité de jointure dans le système.

Néanmoins, MongoDB est un système extrêmement rapide et efficace qui peut absolument aider à augmenter la productivité des développeurs

MongoDB est également convivial car il ne nécessite pas de structure de données unifiée pour tous les objets, bien qu'il soit recommandé d'en créer un pour plus de facilité d'utilisation. La structure des données ne doit pas nécessairement être la même dans tout le système, de sorte qu'une voix unique n'est pas absolument nécessaire.

Enfin, selon l'écrivain MakeUseOf Matthew Hughes votre démarrage devrait avoir un blog. Voici pourquoi votre démarrage devrait avoir un blog. Voici pourquoi Voici quelques raisons plus convaincantes pourquoi votre démarrage ne peut pas vivre sans un blog. En savoir plus, l'équipe de MongoDB gère un excellent blog, avec un contenu technique de haute qualité, bien écrit, destiné à un public technique.

Conclusion

Si vous n'avez pas un système avec une bonne quantité de RAM qui ne peut pas supporter une grande base de données, ou si vous ne cherchez pas vraiment à avoir une base de données volumineuse, MongoDB n'est pas pour vous. Il tend à ne se vendre qu'à grande échelle. Pour les petits projets, l'utilisation du SGBDR est probablement plus facile. Si, toutefois, vous avez besoin de rapidité et de facilité et que vous pouvez soutenir le système, peut-être que cela vaut la peine d'être examiné.

Avez-vous une expérience avec MongoDB? Curieux de l'essayer? Laissez un commentaire ci-dessous et nous parlerons!

Crédits image: "Connexion au shell MongoDB" par Ularugeanina via Wikimedia Commons, "Mysql-screenshot" par Stephantom via Wikimedia Commons

In this article