‫Instructeur : Tout comme dans
‫les sections précédentes, avant de plonger dans une
‫nouvelle technologie, apprenons en fait de quoi il s'agit.
‫Donc, dans ce cas, apprenons ce qu'est réellement MongoDB, comment
‫il fonctionne et un aperçu rapide de
‫la façon dont il se compare aux bases de données plus traditionnelles.
‫Et commençons par un simple aperçu.
‫Donc, MongoDB est évidemment une base de données, et
‫c'est une base de données dite NoSQL.
‫Maintenant, certaines personnes disent aussi Non S Q L,
‫mais je vais continuer à dire "pas de suite", d'accord ?
‫Maintenant, l'autre type de base de
‫données, un peu plus traditionnel, est la base de
‫données relationnelle, à laquelle NoSQL est souvent comparé.
‫Quoi qu'il en soit, dans Mongo, ce qu'on peut dire aussi à la place
‫de MongoDB, chaque base de données peut contenir une ou plusieurs collections.
‫Donc, si vous venez de l'un
‫de ces systèmes de bases de données relationnelles plus
‫traditionnels, vous pouvez considérer une collection comme une table de données.
‫Ensuite, chaque collection peut contenir une ou
‫plusieurs structures de données appelées documents, et encore une
‫fois, dans une base de données
‫relationnelle, un document serait une ligne dans une table.
‫Ainsi, chaque document contient les données
‫sur une seule entité, par exemple, un article
‫de blog ou un utilisateur ou une critique, ou quoi que
‫ce soit d'autre, vraiment.
‫Vous comprenez le problème, n'est-ce pas?
‫Maintenant, la collection est comme la structure parente
‫qui contient toutes ces entités.
‫Par exemple, une collection de blogs pour tous
‫les articles, une collection d'utilisateurs ou une collection d'avis.
‫Et vous pouvez également voir ici que
‫le document a un format de données qui ressemble beaucoup à
‫JSON, ce qui facilitera grandement
‫notre travail lorsque nous commencerons à traiter ces documents.
‫Et bien sûr, nous en parlerons beaucoup
‫plus tard, mais pour l'instant, découvrons les principales fonctionnalités de Mongo.
‫Ainsi, selon le site Web de MongoDB,
‫MongoDB est une base de données de documents avec l'évolutivité
‫et la flexibilité que vous
‫souhaitez, ainsi que les requêtes et l'indexation dont vous avez besoin.
‫Maintenant, cela semble un peu exagéré, alors
‫essayons de comprendre ce que cela signifie réellement.
‫Ainsi, comme nous l'avons vu précédemment, MongoDB est une base de données basée sur des documents,
‫elle stocke donc les données dans des documents
‫qui sont des structures de données appariées à valeur de champ comme JSON.
‫Encore une fois, il stocke des données dans ces documents au
‫lieu de lignes dans une
‫table comme dans les bases de données relationnelles traditionnelles.
‫Il s'agit donc d'une base de
‫données NoSQL et non relationnelle.
‫De plus, MongoDB a une évolutivité intégrée, ce qui facilite
‫la distribution des données sur plusieurs machines
‫à mesure que vos applications attirent de
‫plus en plus
‫d'utilisateurs et commencent à générer une tonne de données.
‫Ainsi, quoi que vous fassiez, MongoDB vous facilitera
‫grandement la croissance.
‫Ensuite, une autre grande caractéristique de MongoDB
‫est sa grande flexibilité.
‫Il n'est donc pas nécessaire de définir un schéma de données de document
‫avant de le remplir de données,
‫ce qui signifie que chaque document peut avoir un nombre et
‫un type de champs différents.
‫Et nous pouvons également modifier ces champs tout le temps.
‫Et tout cela correspond vraiment
‫à certaines situations commerciales du monde réel
‫et peut donc devenir très utile.
‫MongoDB est également un système de base de données très performant.
‫Grâce à des fonctionnalités telles que les modèles
‫de données intégrés, l'indexation, le sharding, les
‫documents flexibles dont nous avons déjà parlé, la duplication native
‫et bien plus encore.
‫Et vous n'avez pas besoin de tout savoir, bien
‫sûr, mais il est bien sûr agréable de savoir que MongoDB est très performant
‫si nous en avons besoin.
‫Enfin, je voulais juste ajouter que MongoDB
‫est une base de données
‫gratuite et open source, publiée sous licence SSPL.
‫Donc, en résumé, nous pouvons dire que MongoDB est
‫un excellent système de
‫base de données pour créer de nombreux types
‫d'applications Web modernes, évolutives et flexibles.
‫Et en fait, Mongo est probablement la base de données la plus
‫utilisée sans JS, et c'est donc une solution idéale
‫pour nous à utiliser dans ce cours.
‫Bon, maintenant parlons un peu
‫plus de ces documents, et en revenant à
‫notre exemple d'articles de blog depuis le
‫début, cela pourrait être une représentation très
‫simple d'un seul document d'article, n'est-ce pas ?
‫Et maintenant, juste à titre de comparaison, voici
‫à quoi pourraient ressembler ces mêmes données
‫sous forme de ligne dans une base de données relationnelle
‫comme MySQL, ou même dans une feuille de calcul Excel, si
‫vous y êtes plus habitué.
‫Ainsi, comme je l'ai mentionné
‫un peu plus tôt, MongoDB utilise un format de données similaire
‫à JSON pour le stockage de données appelé BSON.
‫Il ressemble fondamentalement à JSON, mais il
‫est typé, ce qui signifie que
‫toutes les valeurs auront un type de données tel que
‫chaîne, booléen, date et enseignant, objet double ou plus.
‫Nous apprendrons tout cela plus tard dans la pratique.
‫Cela signifie donc que tous les documents
‫MongoDB seront effectivement
‫tapés, ce qui est différent de JSON, d'accord ?
‫Maintenant, tout comme JSON, ces documents BSON auront également
‫des champs et les données sont stockées
‫dans des paires clé-valeur.
‫Par contre, dans une base de
‫données relationnelle, chaque champ est appelé une colonne.
‫Ici encore, vous pouvez
‫voir comment ces bases de données organisent les données dans des
‫structures de table tandis que nos données JSON sont beaucoup plus flexibles.
‫Prenons par exemple le champ
‫de balises, où nous avons en
‫fait un tableau, nous avons donc essentiellement plusieurs valeurs pour un champ, n'est-ce pas ?
‫Donc MongoDB, space et DV dans ce cas.
‫Mais dans les bases de données relationnelles, ce n'est pas vraiment autorisé.
‫Nous ne pouvons pas avoir plusieurs valeurs dans un même
‫champ, et nous devrons donc trouver des solutions de contournement pour
‫cela, ce qui pourrait alors impliquer
‫plus de travail et plus de complications globales.
‫Maintenant, une autre caractéristique extrêmement importante de MongoDB est
‫le concept de documents intégrés, qui est,
‫encore une fois, quelque chose qui n'est pas présent
‫dans les bases de données relationnelles.
‫Donc, dans notre champ de
‫commentaires ici, nous avons un tableau qui contient trois objets.
‫Un pour chaque document,
‫et chacun d'eux pourrait en
‫fait être son propre document, n'est-ce pas ?
‫Imaginez donc que nous ayons une collection
‫de commentaires contenant un tas de documents de commentaires.
‫Chacun d'eux pourrait en fait ressembler exactement à ceci, donc
‫avec un auteur et avec le texte du commentaire,
‫mais au lieu de
‫le faire, nous incluons ces commentaires directement dans le document du
‫billet de blog, donc en d'autres termes, nous intégrons les documents de
‫commentaire directement dans le poster le document.
‫Ainsi, ce processus d'intégration, ou de dénormalisation,
‫comme nous pouvons également l'appeler, consiste essentiellement à inclure,
‫donc, à intégrer certaines données connexes
‫dans un seul document.
‫Dans cet exemple, les commentaires sont liés à la publication
‫et sont donc inclus dans le même document.
‫Et cela rend une base de données plus performante
‫dans certaines situations, car de cette façon, il
‫peut être plus facile de
‫lire toutes les données dont nous avons besoin en même temps.
‫Et c'est quelque chose dont nous allons beaucoup parler lors de
‫l'apprentissage de la modélisation des données,
‫mais pour l'instant, j'espère que cela a toujours du sens pour vous.
‫Maintenant, le contraire de l'intégration ou de la dénormalisation, c'est
‫la normalisation, et c'est ainsi que les données sont toujours modélisées dans
‫les bases de données relationnelles.
‫Donc, dans ce cas, il n'est pas possible d'incorporer des données,
‫et la solution est
‫donc de créer une toute nouvelle table pour
‫les commentaires, puis de joindre les tables en faisant
‫référence au champ ID de la table des commentaires.
‫Maintenant, nous n'allons pas utiliser de bases de
‫données relationnelles dans ce cours, mais je pense qu'il est
‫toujours important de connaître les différences
‫si vous voulez devenir un bon développeur back-end.
‫Quoi qu'il en soit, et maintenant juste
‫pour finir, encore deux choses sur les documents BSON.
‫Premièrement, la taille maximale de chaque
‫document est actuellement de 16 Mo, mais cela pourrait augmenter à l'avenir.
‫Et deuxièmement, chaque document contient un identifiant unique, qui
‫agit comme une clé primaire de ce document.
‫Il est automatiquement généré avec le type de données ID d'objet à chaque
‫fois qu'il y a un nouveau document,
‫et nous n'avons donc pas à nous en préoccuper.
‫Très bien, et cela devrait être un aperçu assez bref pour
‫nous permettre de
‫démarrer et d'utiliser réellement MongoDB à partir de la prochaine conférence.
‫Alors, passons maintenant.