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