Vous êtes sur la page 1sur 6

ESB Modélisation Multidimensionnelle Entrepôt de Données

2LBI (MMED)
Année universitaire: 2020-2021 M. A. Ben HajKacem

TD I: Modélisation Multidimensionnelle

Exercice 1
Une entreprise de fabrication de vaisselle jetable souhaite mettre en place un système d’information décisionnel
pour observer son activité de ventes aux niveaux des différents lieux de distributions de ses articles et cela dans
plusieurs villes. Ces lieux de distributions sont renseignés par leur enseigne, leur type, leur adresse, leur
département, leur région. Les ventes sont renseignées selon une période qui se décline en mois, en trimestre et
année. Les ventes sont observées par le nombre d’articles selon le type, et le chiffre d’affaire.

Q1.1 Quel est le fait à observer ?


Q1.2 Quels sont les axes d’analyse, et les mesures ?
Q1.3 Construire le modèle en étoile de ce DW.

1.

Fait : Vente

2.

Axes : Lieux, Article, Période.

Mesures : Chiffre d’affaire ; Nombre d’article.

3.

Lieux (id_Lieux, enseigne, type, adresse, département, région)

Période (id_Période, mois, trimestre, année)

Article (id_Article, Nom, Type)

Vente (#id_Lieux, #id_Période, #id_Article, Chiffre_Affaite, Nombre_Article)

Exercice 2
Une application décisionnelle permet d’analyser les ventes d’une entreprise de restauration rapide. Le principe
est de mesurer les ventes grâce aux quantités vendues et aux bénéfices, en fonction des ventes réalisées par
jour, dans un restaurant donné, pour un aliment donné. L’objectif est de pouvoir analyser les ventes par jour, par
semaine, par mois et par année. Les restaurants peuvent être regroupés en fonction de leur ville et de leur pays.

Q2.1 Construire le modèle en étoile de ce DW.


Q2.2 Modifier ce modèle en un modèle en flocon de neige pour modéliser explicitement les hiérarchies des
dimensions représentant le temps et la localisation géographique des restaurants.
Q2.3 On souhaite à présent mesurer le nombre de commandes qui est donné par jour et par restaurant. Etendre
le modèle précédent afin de prendre en compte cet aspect.

1.

Fait : Vente

Axes : Période, Aliment, Restaurant.

1
Mesures : Quantité vendue, Bénéfice.

Période (id_Période, jours, semaine, mois, année)

Aliment (id_Aliment, Nom, Catégorie)

Restaurant (id_Restaurant, Nom, Ville, Pays)

Vente (#id_Période, #id_Aliment, #id_Restaurant, Quantité_vendue, Bénéfice)

2.

Période (id_Période, jours, #id_semaine)

Semaine (id_semaine, semaine, #id_mois)

Mois (id_mois, mois, #id_année)

Année (id_année, année)

Aliment (id_Aliment, Nom, #id_Catégorie)

Catégorie (id_catégorie, catégorie)

Restaurant (id_Restaurant, Nom, #id_Ville)

Ville (id_Ville, ville, #id_pays)

Pays (id_pays, pays)

Vente (#id_Période, #id_Aliment, #id_Restaurant, Quantité_vendue, Bénéfice)

3.

Période (id_Période, jours, semaine, mois, année)

Aliment (id_Aliment, Nom, Catégorie)

Restaurant (id_Restaurant, Nom, Ville, Pays)

Vente (#id_Période, #id_Aliment, #id_Restaurant, Quantité_vendue, Bénéfice)

Commande (#id_Période, #id_Restaurant, Quantité)

Exercice 3
La gestion des enseignements de l’université est réalisée au travers une base de données dont la structure est la
suivante :
Etudiant (idEtu, nom, prenom, dateNaiss,adresse,bac)
Cours (idC, nom, formation)
Enseignant(idEns, nom, prenom, specialite)
TypeExam(idType, type)
Inscription(idEtu#,idC#,anneeUniv)
2
Composer(idEtu#,idC#,idType#,note,date)
Enseigner(idC#,idEns#,nbH,anneeUniv)
Responsable(idEns#,idC#,decharge,anneeUniv)

Un étudiant est caractérise par un identifiant idEtu, un nom, un prénom, une date de naissance (dateN) et une
adresse. On connait aussi son origine au travers de la spécialité´e du bac qu’il a obtenu. Un cours est caractérisé
par un identifiant idC, un nom et est associe à une et une seule formation. Un enseignant est caractérisé par un
identifiant idEns, un nom, un prénom et une spécialité. Un étudiant peut s’inscrire à un cours pour une année
universitaire anneeUniv et obtenir une note pour un examen d’un cours à une date donnée date. Deux types
d’examen (type) sont possibles : contrôle continu et examen terminal. On fera l’hypothèse que chaque cours
sera évalué par un seul contrôle continu et un seul examen terminal. Un enseignant donne un nombre de cours
nbh pour une matière et peut aussi être responsable d’un cours pour une année universitaire. Cette
responsabilité lui donne droit à une décharge (decharge) d’heures d’enseignement.
Cahier des charges : On souhaite analyser les enseignements donnes à l’université selon les indicateurs
suivants :
— Les notes moyennes des étudiants pour un cours à une date donnée.
— Le nombre d’heures enseignées pour un enseignant et un cours.
— le nombre d’heures de décharge pour un enseignant et un cours.

Q 3.1 Proposez un schéma conceptuel d’une base de données multidimensionnelle permettant de répondre au
cahier des charges.
Q 3.2 Traduisez le schéma conceptuel en schéma logique démoralisé et normalisé.
Q 3.3 Ecrire la (les) requête(s) SELECT (SQL) permettant de construire le(s) fait(s) du schéma conceptuel.

1.

Fait : Evaluation, Enseignement.

Axes : Période, Cours, Enseignant.

Mesures : Note, Nombre d’heures enseignés, Nombre d’heurs décharges.

2.

Modèle Dénormalisé

Période (id_Période, jours, mois, année)

Cours (id_Cours, nom, formation)

Enseignant (id_Enseignant, nom, spécialité)

Evaluation (#id_Période, #id_Cours, Note)

Enseignement (#id_Enseignant, #id_Cours, NbhE, NbhD)

Modèle Normalisé

Période (id_Période, jours, #id_mois)

Mois (id_mois, mois, #id_année)


3
Année (id_année, année)

Cours (id_Cours, nom, #id_formation)

Formation (id_formation, formation)

Enseignant (id_Enseignant, nom, #id_spécialité)

Spécialité (id_Spécialité, spécialité)

Evaluation (#id_Période, #id_Cours, Note)

Enseignement (#id_Enseignant, #id_Cours, NbhE, NbhD)

3.

SELECT date, idC, AVG(Note) FROM Composer GROUP BY date, idC ;

SELECT E.idEns, E.idC, SUM(nbhE), SUM(decharge) FROM Enseigner E, Responsable R WHERE E.idEns =
R.idEns AND E.idC = R.idC GROUP BY E.idEns, E.idC ;

Exercice 4
Une université cherche à étudier les facteurs influant sur la réussite de ses étudiants aux examens. Pour cela
elle décide de construire un entrepôt de données (datawarehouse). Elle souhaite pouvoir répondre aux questions
suivantes :
— Quel est le nombre de réussites aux examens par cours, pour l’année 2003 ?
— Quel est le nombre de réussites aux examens d’un cours obligatoire, pour l’année 2003 ?
— Quel est le nombre de réussites aux examens par sexe, pour l’année 2003 ?
— Combien d’étudiants ayant un âge de 22 ans ont réussi leurs examens de bases de données relationnelles ?
— Quel est le nombre de réussites aux examens pendant le semestre d’hiver 2002 ?
Pour cela elle dispose des données suivantes anonymes : Pour chaque examen passé, on connaît l’âge et le
sexe de l’étudiant, le nom du cours (les cours peuvent être regroupes en cours obligatoire et cours à option), la
date de l’examen, la note obtenue et si l’examen est réussi ou non.

Q 4.2 Ecrire le schéma logique démoralisé (en étoile).


Q 4.3 Ecrire le schéma logique normalisé (en flocon).

Sujet : Réussite

Axes : Période, Cours, Etudiant.

Mesure : Nombre de réussite

1.

Période (id_Période, mois,_semestre, saison, année)

Cours (id_Cours, Nom, Type, Parcours)

Etudiant (id_Etudiant, Nom, Age, Sexe)

4
Réussite (#id_Période, #id_Cours, #id_Etudiant, Nombre_Réussite)

2.

Période (id_Période, mois, #id_semestre, #id_saison)

Semstre (id_smestre, semestre, #id_année)

Année (id_année, année)

Saison (id_saison, saison)

Cours (id_Cours, Nom, #id_Type, #id_Parcours)

Type (id_Type, Type)

Parcours (id_Parcours, Parcours)

Etudiant (id_Etudiant, Nom, #id_Age, id_Sexe)

Age (id_Age, Age)

Sexe (id_Sexe, sexe)

Réussite (#id_Période, #id_Cours, #id_Etudiant, Nombre_Réussite)

Exercice 5
L’opérateur BreeFox propose à ses abonnés un boiter routeur ADSL qui groupe un accès à IP, le téléphone et
un bouquet de chaînes de télévision interactives. Nous ne nous intéresserons qu’à cette dernière fonction dans
notre entrepôt de données. Les chaînes de télévision proposées par BreeFox dans son bouquet sont des
chaînes nationales et des chaînes à péage. Seulement, les interruptions publicitaires (des chaînes nationales et
à péage) peuvent être personnalisées en fonction du profil du foyer (ou des adultes du foyer quand le contrôle
parental 2 est déverrouillé). Le téléspectateur peut réagir (interactivement) de plusieurs manières aux émissions
et aux publicités qu’il reçoit au moyen de sa télécommande.
L’ entrepôt de données est centré sur les actions du téléspectateur. L’ objectif de cet entrepôt est de profiler au
plus précis le foyer (ou plutôt le téléspectateur qui détient la télécommande) afin de maximiser la demande d’
information sur les produits présentés par les publicités. En effet, l’ opérateur perçoit plus d’ argent de la part de l’
annonceur quand le spectateur demande plus d’ information au moment au l’ annonce est passée !
Q 1.1 Quelle est la table de fait ? Quelles sont les dimensions de ce DW ? Justifiez votre réponse

Le schéma de l’entrepôt est constitué des tables suivantes (les clés primaires sont soulignées)
Date(CléDate, Année, Mois, JourDeMois, JourDeSemaine, TrancheHoraire, Heure, Minute, DrapeauVacances,
DrapeauManisfestation)
Foyer(CléFoyer, NomAbonné, AnnéeNaissanceAbonné, Région, Département, District, Ville, Quartier,
SituationFamille, RevenuFoyer, CatégorieSocioProfessionnel, SousCatégorieSocioProfessionnel,
DomaineActivité, NombreAdulte, NombreEnfant)
Emission (CléEmission, Chaîne, DateDébut, DuréeSeconde, TypeEmission, Catégorie,Annonceur)
Action (#CléDate, #CléFoyer, #CléEmission, TypeAction, DuréeAction, DuréeRestante,
DrapeauCtrlParentalDéverrouillé)

Q 1.2 Donnez la requête SQL qui donne le temps cumulé pour chaque type d’émission et pour chaque tranche
horaire.
5
Q 1.3 Donnez la requête SQL qui donne le top 10 des type d’émission les plus regardées en temps cumulé
Q 1.4 Donnez le rapport mensuel de ‘progression’ du nombre de demande d’information (ie TypeAction
=«DemandeInformation») et de la durée associée regardée.

2.
SELECT SUM(A.DuréeAction) FROM Action A, Date D, Emission WHERE A.CléDate = D.CléDate AND
A.CléEmission = E.CléEmission GROUP BY E.TypeEmission, D.TrancheHorarie ;

3.
SELECT E.TypeEmission, SUM(A.DuréeAction) FROM Action A, Emission E WHERE A.CléEmission =
E.CléEmission GROUP BY E.TypeEmission LIMIT 10 ;

Vous aimerez peut-être aussi