Vous êtes sur la page 1sur 5

Université de Mostaganem

M2, IA4IOT, 2023-2024


Module Gestion des données massives
TP1
Partie 01 : NoSQL MongoDb

Exercice 1(collections) : effectuer les étapes suivantes sous MongoDB :


1. Dans la base de données test créer la collection « mycollection »
2. Afficher la liste des collections
3. Créer une collection indexé nommé « mycol » dont sa taille ne doit pas dépasser 6142800
byte et le nombre de documents maximum est 10000
4. Supprimer la collection « mycollection »
Solution :
>use test
1 >db.createCollection("mycollection")
2 > show collections
3 > db.createCollection("mycol", { capped : true, autoIndexID : true, size : 6142800,
4 > db.mycollection.drop()

Exercice 2 : Soit les exigences ci-dessous d’une conception d’une base de données d’un site Web.
− Chaque article (post) a un titre, une description et une URL uniques.
− Chaque post peut avoir un ou plusieurs tags.
− Chaque post a le nom de son éditeur et le nombre total de likes.
− Chaque post contient des commentaires donnés par les utilisateurs avec leur nom, leur
message, leur temps de données et leurs likes
− Sur chaque post, il peut y avoir zéro ou plusieurs commentaires.
1. Proposer le schéma RDBMS
2. Proposer le schéma MongoDB
Solution :
1. Schéma RDBMS

1. Schéma MongoDB
Le schéma MongoDB est constitué d’une seule collection comme suit :
{
_id: POST_ID
title: TITLE_OF_POST,
description: POST_DESCRIPTION,
by: POST_BY,
url: URL_OF_POST,
tags: [TAG1, TAG2, TAG3],
likes: TOTAL_LIKES,
comments: [
{
user:'COMMENT_BY',

1
message: TEXT,
dateCreated: DATE_TIME,
like: LIKES
},
{
user:'COMMENT_BY',
message: TEXT,
dateCreated: DATE_TIME,
like: LIKES
}
]
}
Exemple :
{
_id: ObjectId(7df78ad8902c)
title: 'MongoDB Overview',
description: 'MongoDB is no sql database',
by: 'tutorials point',
url: 'http://www.tutorialspoint.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100,
comments: [
{
user:'user1',
message: 'My first comment',
dateCreated: new Date(2011,1,20,2,15),
like: 0
},
{
user:'user2',
message: 'My second comments',
dateCreated: new Date(2011,1,25,7,45),
like: 5
}
]
}
Exercice 3:
Soit un employé nommé LARBI Mohamed né le 26/09/1995 travail dans une société qui lui attribut
l’identifiant «10025AE336 ». Les contacts de l’employé sont son
email « larbi_mohamed.123@gmail.com” et son numéro de téléphone « 9848022338 ». L’adresse de
l’employer est déterminée par cité 5 juillet Kherouba, Mostaganem.
1. Proposer le modèle de données embarqué (dénormalisé)
2. Proposer le modèle de données normalisé

Solution :
1. Modèle de données embarqué (dénormalisé)
{
_id: ,
Emp_ID: "10025AE336"
Personal_details:{
First_Name: "Mohamed" le
Last_Name: "Larbi",
Date_Of_Birth: "1995-09-26"
},
Contact: {
e-mail: " larbi_mohamed.123@gmail.com",

2
phone: "9848022338"
},
Address: {
city: " 5 juillet ",
Area: " Kherouba ",
Wilaya: " Mostaganem "
}
}
2. Modèle de données normalisé
Employee:
{
_id: <ObjectId101>,
Emp_ID: "10025AE336"
}
Personal_details:
{
_id: <ObjectId102>,
empDocID: " ObjectId101",
First_Name: "Mohamed" le
Last_Name: "Larbi",
Date_Of_Birth: "1995-09-26"
}
Contact:
{
_id: <ObjectId103>,
empDocID: " ObjectId101",
e-mail: " larbi_mohamed.123@gmail.com",
phone: "9848022338"
}
Address:
{
_id: <ObjectId104>,
empDocID: " ObjectId101",
city: " 5 juillet ",
Area: " Kherouba ",
Wilaya: " Mostaganem "
}
Exercice 4
Soit une base de données appelé AutoMobile.
1. créer une collection nommée voiture et insérer les données suivantes : nom = The Favourite,
nom: "Fiat 500",
Modèle: “500 Dolcevita Opening edition”,Moteur: 1.0 Hybrid 70ch, Energie: Hybride Essence,
Vitesse max :167km/h, Couleurs : “Bossanova white”, “Epic Blue”, “Rugiada Green”,
“Pasodoble Red”, “Crossover black”.
2.inser les données de 2 voitures (dans le même code). Les coordonnées de la première voiture
sont comme suit : nom: " SKODA FABIA FACELIFT", Modèle: “Fabia Facelift Ambition”, Moteur:
1.6 MPi 90 ch, Energie: Essence, Vitesse max : " 190km/h", Couleurs : “Rugiada Green”,
“Pasodoble Red”, “Crossover black”. Les coordonnées de la deuxième voiture sont comme
suit : nom: " HYUNDAI I20 ", Modèle: “Hyundai i20 facelift 1.4 ess 100ch BVA”, Moteur: 1.4 ess
100ch BVA, Energie: Essence, Vitesse max : " 170km/h", Couleurs : “Epic Blue”, “Pasodoble
Red”, “Crossover black”

3
Solution :
1)
use AutoMobile
db.voiture.insertOne(
{
nom: "Fiat 500",
Modèle: "500 Dolcevita Opening edition",
Moteur: "1.0 Hybrid 70ch",
Energie: "Hybride Essence",
Vitesse_max : "167km/h",
Couleurs : ["Bossanova white", "Epic Blue", "Rugiada Green", "Pasodoble
Red", "Crossover black"]
}
)
2)
db.voiture.insertMany([
{
nom: " SKODA FABIA FACELIFT",
Modèle: "Fabia Facelift Ambition",
Moteur: "1.6 MPi 90 ch",
Energie: "Essence",
Vitesse_max : " 190km/h",
Couleurs : [ "Rugiada Green", "Pasodoble Red", "Crossover black"]
},
{
nom: " HYUNDAI I20 ",
Modèle: "Hyundai i20 facelift 1.4 ess 100ch BVA",
Moteur: "1.4 ess 100ch BVA",
Energie: "Essence",
Vitesse_max : " 170km/h",
Couleurs : [ "Epic Blue", "Pasodoble Red", "Crossover black"]
}
])

Exercice 5
Proposer le contenu de l’objet constructeur d’une liste d'opérations d'écriture à effectuer en bloc du
schéma mongodb de l’exercice 2avec les exigences suivantes :
• Le tableau de documents qui contient des informations concernant toute erreur est vide.
• Le document qui décrit l'erreur liée au problème d'écriture est vide.
• Le nombre de documents insérés à l'aide de la méthode Bulk.insert()est 2.
• Le nombre de documents insérés via des opérations avec l'option Bulk.find.upsert() est
0.
• Le nombre de documents existants sélectionnés pour la mise à jour ou le remplacement est 0
• Le nombre de documents existants mis à jour ou remplacés est 0.
• Le nombre de documents supprimés est 0.
• Le nombre de documents insérés via des opérations avec l'option Bulk.find.upsert()est
vide.
Solution :
BulkWriteResult({
"writeErrors" : [ ],
"writeConcernErrors" : [ ],
"nInserted" : 2,
"nUpserted" : 0,

4
"nMatched" : 0,
"nModified" : 0,
"nRemoved" : 0,
"upserted" : [ ]
})
Exercice 5 : Que représente le script suivant :
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("5dd631f270fb13eec3963bed"),
ObjectId("5dd631f270fb13eec3963bee"),
ObjectId("5dd631f270fb13eec3963bef")
]
}
Solution : Création de 3 objets dans un document avec une opération s'est exécutée avec un problème
d'écriture.

Vous aimerez peut-être aussi