Académique Documents
Professionnel Documents
Culture Documents
Un accident est analysé par rapport au lieu ainsi que la date où s’est produit l’accident exemple : le 14 Avril 2017
sur la route nationale 5. L’accident est aussi analysé par rapport à l’usager du véhicule. Un exemple de la table
Usager peut être (1, 1,'Indemne', 'passager', 'masculin', 'domicile_travail', 'avec_casque').
1. Quel est le type de schéma de cet entrepôt ? (0,5 pt)
2. Indiquez la table des faits, Quel est sa granularité et la nature des mesures (1 pts)
3. La table des faits ne contient que les clés des différentes dimensions. Que représente, dans ce cas, le champ
accident_id ? Expliquer (1 pts)
4. Identifiez un groupe d’attributs formant une hiérarchie dimensionnelle (1pt)
5. On souhaite agrandir l’entrepôt en créant un autre datamart qui servira à analyser le fait d’assurance et le
remboursement après accident. Ce datamart partagera les dimensions temps et usager. Comment appelle-t-
on ces deux dimensions. (1pts)
Page 1
Nom et Prénom : Master :
Questions : : Temps estimé (15 à 20 mn). Barème de points (8 pts) : 1 à 9 (0,5 pt)
1. Le serveur Mondrian est un serveur de type : MOLAP
ROLAP 5. Le traitement des données des entrepôts est
MOLAP effectué sur les bases de données de production
OLTP Vrai Faux
2. La phase qui prend le plus de temps dans la mise 6. Un schéma en flocon de neige détaille l’analyse
en place d’un entrepôt de donnée est : des faits d’un schéma en étoile
L’élaboration du modèle décisionnel Vrai Faux
L’intégration et la consolidation des données 7. Le modèle en flocon de neige est plus
performant que le modèle en étoile
Le choix des outils
Vrai Faux
3. Les vues permettent : 8. Pour interroger des données dans un cube, on
une écriture simplifiée de requêtes complexes utilise
d'affiner la gestion de la confidentialité des SQL Etendu
données NDX
d'offrir aux utilisateurs une vision des données SQL 3
dépendantes de la façon dont elles sont MDX
structurées dans la base 9. Quel est le format supporté par MongoDB ?
4. Une base de production est de type SQL
OLAP XML
OLTP BSON
10. Compléter le tableau comparatif suivant par les valeurs : Horizontal, Vertical, Définit au départ, ACID, très grand,
BASE, Schémaless, Faible (1 pt)
Paramètres Relationnel NoSQL
Schéma
Transactions
Scalabilité
volume de données
… … …
ELSE
RAISE_APPLICATION_ERROR(-20006, 'le nombre max de roles par film est de 3');
End if;
END;
Collection : cinéma Collection : Agenda_Cinéma
/* 1 */ /* 1 */
{ { "_id" : ObjectId("5af8a730f952dd77ff60f743"),
"_id" : ObjectId("5af2ed8c7afa5a2e7cb6997e"), "salle_cinéma" : { nom : "Salle Ibn Khaldoun",
"nom" : "Salle Ibn Khaldoun", "adresse" : {
"adresse" : { "rue" : "12, Rue Docteur Saâdane",
"rue" : "12, Rue Docteur Saâdane", "ville" : "Alger"
"ville" : "Alger" },
}, "téléphone" : "021 40 30 22",
"téléphone" : "021 40 30 22", "capacité salle" : 240
"capacité salle" : 240
} }
/* 2 */ "film" : "TAXI 5",
{ "année_sortie" : 2018,
"_id" : ObjectId("5af2f1497afa5a2e7cb69980"), "mois_sortie" : "avril",
"nom" : "Le Mouggar", "durée" : "1h 40mn",
"adresse" : { "genre" : [ "Action", "Policier" ],
"rue" : "Rue Asselah Hocine", "tarif" : 600,
"ville" : "Alger" "synopsys" : "Sylvain Marot, super flic parisien et pilote
}, d’exception, est muté ….",
"téléphone" : "021 40 87 06", "programme" : [
"capacité salle" : 160 { "date" : "05 avril 2018",
} "séances" : [ "10h00", "17h00" ] },
{ "date" : "07 avril 2018",
"séances" : [ "20h00", "21h45" ] },
{ "date" : "17 mai 2018",
"séances" : [ "10h00", "20h00" ] }
]
}
/* 2 */
{ "_id" : ObjectId("3ef978a4c755e06f72118e19"),
"salle_cinéma" : "Salle El Mouggar",
"film" : "TAXI 5",
"année_sortie" : 2018,
"mois_sortie" : "avril",
"durée" : "1h 40mn",
"genre" : [ "Action", "Policier" ],
"tarif" : 700,
"synopsys" : "Sylvain Marot, super flic parisien et pilote
d’exception, est muté ...",
"programme" : [
{ "date" : " 08 mai 2018",
"séances" : [ "13h45", "20h00" ] },
{ "date" : "17 mai 2018",
"séances" : [ "20h00", "21h45" ] }
]
}
/* 3 */
{
"_id" : ObjectId("5af8a792f952dd77ff60f78d"),
"salle_cinéma" : "Salle Ibn Khaldoun",
"film" : "Tomb Raider",
"année_sortie_salle" : 2018,
- Page 2 - " ll " " "
Corrigé examen +Barème
1. Sachant que l'objectif de l'application à construire est de visualiser une liste des salles de cinémas ; avec
pour chacune d’entre elles la liste des films avec leurs programmes de diffusion, cette solution est-elle
adaptée. Justifier. (0.5 pt)
- Non cette solution n’est pas optimale 0.25pt car on a une répétition des salles pour chaque film.
Exemple la salle ibnkheldoun se repète deux fois pour les deux film taxi5 et Tomb Raider. Le champ
film ne peut contenir qu’une seule valeur, il aurait fallu qu’il soit sous forme de tableau d’objets
pour contenir la liste des films avec leurs programmes. La collection Agenda_Cinema est orienté
film et non cinéma. 0.25
2. Expliquer les requêtes suivantes et donner le résultat obtenu sur la base : (1pt x 3)
a- db.Agenda_Cinema.update({"film":"TAXI 5"}, {$addToSet: {"programme.0.séances":"17h00"}})
- la requête permet de rajouter une séance de 17h (si cette séance n’existe pas : addToSSet) 0.25 pt
à la première date de diffusion (programme.0) . la séance sera rajouté au premier film 0.25 Taxi5
de la base (il n’y a pas $multi) 0.25pt
- au niveau du document rien à ajouter car la séance existe déjà 0.25 pt
b- db.Agenda_Cinema.find({"salle_cinéma":"Salle Ibn Khaldoun"}).forEach(function(doc)
{db.Agenda_Cinema.update({_id: doc._id},{$set:{"tarif": doc.tarif + 100 }});})
- Rajouter 100 da au tarif des film diffusés à la salle ibn khaldoun 0.5 pt
- Le premier document de la collection (‘’tarif’’ : 700).0.25 pt, le deuxième document ibn khaldoun
rajouter le champ ‘’tarif’’ : NAV (sans valeur) 0.25 pt. Attention il faudra tester l’existence du champ
tarif sinon le champ va être rajouté (sans valeur) au deuxième document de la salle ibn kheldoun.
c- db. Agenda_Cinema.aggregate([{ $group : { _id : "$film", Liste_cinema:{$push:"$salle_cinéma"}}},
{$out:"Films"}]);
- crée et retourne la collection film 0.25 pt, cette dernière affiche pour chaque film la liste des
cinémas où ils sont diffusés 0.25 pt.
- Résultat de la collection
{
"_id" : "Tomb Raider",
"Liste_cinema" : [ "Salle Ibn Khaldoun" ]
}
{
"_id" : "TAXI 5",
"Liste_cinema" : [ "Salle Ibn Khaldoun", "Salle El Mouggar" ]
}
db.Cinema.find({}).forEach(function(doc)
{var salle_cinéma = doc.nom;
db.Agenda_Cinema.update({salle_cinéma},{$set:{"info":doc}});})
Un accident est analysé par rapport au lieu ainsi que la date où s’est produit l’accident exemple : le 14 Avril
2017 sur la route nationale 5. L’accident est aussi analysé par rapport à l’usager du véhicule. Un exemple de la
table Usager peut être (1, 1,'Indemne', 'passager', 'masculin', 'domicile_travail', 'avec_casque').
1- Quel est le type de schéma de cet entrepôt ? (0,5 pt)
Shéma en etoile
2- Indiquez la table des faits, Quel est sa granularité et la nature des mesures (1 pts)
La table Accident. Deux mesures : nbAccidents : additif, taux dégat : non additif
3- La table des faits ne contient que les clés des différentes dimensions. Que représente, dans ce cas, le champ
accident_id ? Expliquer (2pts)
c’est la clé d’une dimension dégénérée , la table de la dimension n’existe pas dans la base de d’entrepôt
4- Identifiez un groupe d’attributs formant une hiérarchie dimensionnelle (0,5pt)
Jour -> année-> mois. Année-> jours fériés . ville->pays
(0,5pts) 5-On souhaite agrandir l’entrepôt en créant un autre datamart qui servira à analyser le fait
d’assurance et le remboursement après accident. Ce datamart partagera les dimensions temps et
usager. Comment appelle-t-on ces deux dimensions.
Dimensions conformes