Devoir Final dans No Sql Base de donnée avec corrigé
1. Daqch Rima
Base de Données : NoSQL sous MongoDB
Devoir Final
Partie 1: Questions Théoriques
Expliquez les caractéristiques clés des bases de données NoSQL et pourquoi elles sont
utilisées dans certaines situations par rapport aux bases de données relationnelles.
- La principale différence entre les bases de données relationnelles et non relationnelles
NoSQL réside dans la façon dont les données sont stockées et organisées. Les bases de
données non relationnelles ne stockent pas de données de manière tabulaire.
- NoSQL est une base de données distribuée. Cela signifie que les données peuvent être
stockées sur des serveurs différents en local ou en cloud. Cette caractéristique est un
avantage majeur aujourd'hui. Effectivement, le cloud permet de mettre à disposition
facilement et pour pas cher une grande quantité de serveurs.
2. Qu'est-ce que MongoDB ? Quels sont ses principaux avantages par rapport aux bases de
données relationnelles traditionnelles ?
-MongoDB est une base de données NoSQL open source. Puisqu'il s'agit d'une base de
données non relationnelle, elle peut traiter des données structurées, semi-structurées et
non structurées. Elle utilise un modèle de données non relationnel, orienté document, et un
langage de requête non structuré.
-MongoDB est très flexible et permet d'associer et de stocker plusieurs types de données.
Elle permet également de stocker et de gérer des volumes de données plus importants que
les bases de données relationnelles traditionnelles.
3. Qu'est-ce qu'un document dans MongoDB ? Comment les documents sont-ils organisés
dans des collections ?
Dans MongoDB, un document est une unité de données JSON stockée dans une collection.
Les documents sont des enregistrements individuels, similaires à des lignes dans une base de
données relationnelle, mais avec une structure flexible. Les collections regroupent des
documents similaires, et chaque document doit avoir un champ "_id" unique.
4. Quelle est la différence entre une base de données relationnelle et une base de données
NoSQL en ce qui concerne la flexibilité du schéma ?
Les bases de données relationnelles ont un schéma rigide et prédéfini, tandis que les
bases de données NoSQL offrent une flexibilité de schéma, permettant des structures
de données variables au sein d'une même collection.
2. 5. Quels sont les types d'indexation pris en charge par MongoDB et pourquoi l'indexation
est-elle importante ?
Les types d'indexation pris en charge par MongoDB incluent les index simples,
composés, géospatiaux, texte et de hachage. L'indexation est importante car elle
améliore les performances des requêtes en permettant à MongoDB de localiser
rapidement les documents qui correspondent à certains critères de recherche,
réduisant ainsi la charge du serveur et optimisant les opérations de tri.
Partie 2: Questions Pratiques
1. Créer une BD Gestion_Livre
2. Opérations CRUD
• Insérez un nouvel auteur dans la collection "auteurs".
• Supprimez un emprunteur de la collection "emprunteurs".
• Mettez à jour le nom d'un auteur spécifique dans la collection "auteurs".
3. 3. Création et Modification :
• Créez une nouvelle collection "commentaires" pour stocker les commentaires des
utilisateurs sur les livres. Chaque document doit contenir les champs suivants :
"ID_Livre", "ID_Utilisateur", "Contenu", "Date_Creation".
• Ajoutez un nouvel index à la collection "livres" pour le champ "année_de_publication"
pour améliorer les performances des requêtes basées sur
l'année de publication.
• Ajoutez une nouvelle colonne "année_de_publication" à la collection "livres" et mettez à
jour les documents existants avec l'année de publication appropriée.
4. 4. Agrégation (suite) :
• Calculez le nombre total de livres empruntés pour chaque mois de l'année.
• Trouvez l'auteur avec le plus grand nombre de livres empruntés.
5. 5. Sécurité (suite) :
• Créez un rôle personnalisé dans MongoDB avec des privilèges limités pour lire
uniquement la collection "livres".
• Créez un utilisateur avec ce rôle personnalisé et connectez-vous en utilisant ces
informations d'identification pour vérifier les restrictions d'accès.
Gestion des erreurs :
• Gérez une erreur lors de la tentative d'insertion d'un livre avec un ISBN déjà
existant dans la collection "livres".
• Gérez une erreur lors de la tentative de suppression d'un emprunteur qui a
encore des livres empruntés