Lego est une gamme de jouets de construction fabriqués par le

Transcription

Lego est une gamme de jouets de construction fabriqués par le
Master 1 MIAGE – Entrepôts de Données
Examen
Tout document autorisé, calculatrice autorisée, appareil mobile de communication interdit.
Le 11 décembre 2014 - Durée 2h
Lego est une gamme de jouets de construction fabriqués par le groupe danois The Lego Group. Elle se
compose de briques emboîtables, de figurines et diverses autres pièces. Les briques Lego peuvent être
assemblées et reliées afin de construire des objets tels que des véhicules, des bâtiments, des robots…
Les constructions peuvent être démontées pour créer de nouveaux montages avec les pièces.
Exercice 1 : Modélisation d’un entrepôt de données pour une bourse Lego
Les Lego sont vendus sous forme de boîtes. Pour une boîte nous connaissons le nom du SET, le
nombre de pièces dans le set, le nombre de mini-figurines présentes, le prix de vente conseillé par
LEGO à la sortie de la boite pour différents pays (USA, GBR, AUS, CAD, DEU, ITA, DNK, ESP,
FRA, NLD, NZL, POL), l’année de millésime du set (date de sortie), les dimensions (L*l*h), le poids,
la collection/thème du set, la tranche d’âge associée.
Brickpicker désire informer en temps réel sur la valeur de vos sets, les possibilités de revente et de
plus-values, les tendances du marché, les hausses et les baisses, les opportunités à saisir, etc...
Brickpicker.com fournit des outils de cotation des sets avec les volumes de ventes enregistrés ces
derniers mois, l'évolution du prix moyen de revente sur internet, le classement des meilleures ventes
sur eBay, etc... Les sets neufs ou usagés sont différenciés car la valeur est très différente si la boîte est
déjà ouverte (c’est un jouet mais c’est mieux si on ne joue pas avec).
La société va donc s’équiper d’un datawarehouse pour pouvoir informer en conséquence les
internautes et vous demande de le réaliser pour pouvoir éditer les tableaux de bords suivants :
Figure 1 : montant total des ventes par région des exemplaires d'un set donné, pour une journée donnée. Le CAGR est le taux de croissance annuel moyen. Figure 2 : nombre d'exemplaires vendus et cours d’un set donné (ici le set #10179-­‐1 “Ultimate Collector's Millenium Falcon”) Question 1 : Proposez un schéma en étoile pour ce datawarehouse. Vous justifierez vos choix et
préciserez les mesures.
Question 2 :
Brikpicker veut stocker ces informations sur 40 ans et voir les volumes mensuels. En moyenne chaque
année, Lego produit 500 sets différents, contenant en moyenne 300 briques et 2 mini-figurines, le
volume moyen de transactions d’un set sur une année est de 1000 (achat/vente en neuf et occasion).
On suit les ventes sur Amazon, Ebay, Walmart, Target. Il y a 120 thèmes, 6 tranches d’âges.
Estimez la taille du datawarehouse.
Exercice 2 : Requêtes OLAP
On considère la table T suivante:
Set_lego
Pompiers-S1
Pompiers-S1
Pompiers-S1
Veto
Veto
Mini-figurine-2
Mini-figurine-2
Policier-1
Policier-1
Thème
City
City
City
Friends
Friends
Star-Wars
Star-Wars
City
City
Pays
USA
FR
ESP
USA
GBR
FR
GBR
FR
USA
quantité
50
60
40
70
40
50
60
30
50
Donner le résultat de chacune des requêtes suivantes :
a) select thème, pays, sum(quantité) from T group by rollup (thème,pays) ;
b) select thème, pays, sum(quantité) from T group by cube (thème,pays) ;
Exercice 3 : ETL et OLAP
La branche logistique de l’entreprise LEGO a un système d’information opérationnel (SIO) pour
gérer ses stocks. Voici les tables relationnelles de ce SIO :
HANGAR_SIO(id_hangar, ad_numero, ad_rue, ad_ville, ad_codepostal, ad_pays)
PRODUIT_SIO(id_produit, nom, largeur_boite, hauteur_boite, longueur_boite,
poids, id_theme)
THEME_SIO(id_theme, nom)
TRANSFERT_SIO(id_produit, id_hangar, date_transfert, quantite)
TRANSFERT_SIO.quantite est positif si le transfert a augmenté le stock, négatif sinon.
TRANSFERT_SIO.date_transfert est une date Oracle, donc date et heure du transfert.
Voici maintenant les tables relationnelles pour le système d’information décisionnel (SID) de la
logistique LEGO :
THEME_SID(id_theme, nom);
PRODUIT_SID(id_produit, nom, largeur_boite, hauteur_boite, longueur_boite,
poids, id_theme) ;
PAYS_SID(id_pays, nom_pays);
REGION_SID(id_region, nom_region) ;
VILLE_SID(id_ville, nom_ville, id_region, id_pays) ;
HANGAR_SID(id_hangar,id_ville) ;
CALENDRIER_SID(date_cal, mois_annee, annee, mois, jour_lettres, num_jour) ;
INVENTAIRE_SID(date_inv, id_produit, id_hangar, qte_stock) ;
Question 1 : Dessinez le modèle en flocon du SID.
Question 2 : Donnez une requête SQL qui permet d’ajouter à la table INVENTAIRE_SID les lignes
correspondant aux informations calculées à la fermeture des hangars en fin de journée, sachant que :
Pour un hangar donné, un produit donné,
Qte_stock est le nombre de boîtes de ce produit en stock dans ce hangar au moment de la date
d’exécution de la requête (sysdate), i.e. la quantité en stock hier (sysdate-1), plus la quantité
entrée, moins la quantité sortie dans la journée.
Question 3 : Les deux requêtes ci-dessous représentent chacune une requête OLAP.
Requête 1 :
Select p.nom, cal.annee, i.id_hangar, sum(i.qte_stock)
From produit_sid p
Join inventaire_sid i on i.id_produit = p.id_produit
Join calendrier_sid cal on cal.date_cal = i.date_inv
Group by p.nom, cal.annee, i.id_hangar ;
Requête 2 :
Select t.nom, cal.mois, sum(i.qte_stock)
From produit_sid p
Join inventaire_sid i on i.id_produit = p.id_produit
Join theme_sid t on p.id_theme = t.id_theme
Join calendrier_sid cal in cal.date_cal = i.date_inv
Group by t.nom, cal.mois
1. Expliquez en français ce que calcule la requête 1. Pour quelle(s) dimension(s) ça a un sens
d’additionner les mesures qte_stock ?
2. Par quelles operations OLAP peut-on passer de la requête 1 à la requête 2