Académique Documents
Professionnel Documents
Culture Documents
Prnom :
Page 1
Master d'informatique
BDMD
EXAMEN - 26 MARS 2007
Version CORRIGEE
Documents autoriss
Lorsquun cadre suggre des rponses, entourer la (les) bonne(s) rponse(s). La qualit de la rdaction sera prise
en compte. Ecrire lencre bleue ou noire.
3 pts
Question 1. On veut transformer le schma TPCH en un schma toile de telle sorte quon ne perdre
aucune information contenue dans la base.
a) Les attributs availqty et supplycost de PartSupp appartiendront-ils la table des faits ou une
dimension ? Justifier brivement
Entourer:
fait
dimension
Justif. :
b) Dfinir la table des faits sous la forme dune requte SQL (i.e., dont le rsultat est lensemble des faits)
Nom :
Prnom :
Page 2
Nom :
Prnom :
Page 3
C1 = Customer
Dplacer lattribut mktsegment vers C3
Ajouter lattribut secteur qui fait rfrence C3.secteur
C2 = CustomerNation = jointure Nation,Rgion
C3 = CustomerSegment(secteur , mktsegment, revenu)
Nom :
Prnom :
Page 4
4 pts
Le journal des accs un site web est stock dans une BD. Son schma est :
A (u, m, s , d, url, taille)
u est lidentifiant de lutilisateur qui navigue sur le site web
m est ladresse IP du client
s est le nom de domaine du client (ex : aol.com, jussieu.fr, ...) :
d est la date de laccs
la date est compose de 5 attributs numriques dj : jour dans [0, 31], dm : mois dans [1, 12], da :
anne dans [1980, 2008], dh : heure dans [0, 23] dmn : minutes dans [0, 59]
select distinct d, count(*) over (order by d range between interval '10' minute
preceding and current row) as acces
from A
order by d desc;
Question 2 : Donner le classement des 10 utilisateurs qui ont tlcharg le plus gros volume de donnes.
Afficher leur rang. Le schma du rsultat est (u, volume, rang).
Voir TP AP
Nom :
Prnom :
Page 5
Question 3 : Pour chaque page web, donner le classement des domaines (attribut s) ayant fait le plus
daccs cette page. Le schma du rsultat est (url, s, accs, rang)
Question 4 : On considre que la session dun utilisateur se termine lorsque lutilisateur ne consulte plus
le site pendant 3 minutes ou plus. Afficher le nombre de sessions pour chaque utilisateur. Le schma du
rsultat est (u, nb_session).
Nom :
Prnom :
Page 6
Puis
6 pts
On considre un entrept de donnes permettant dobserver les ventes de produits dune entreprise. Le
schma des tables est le suivant :
CUSTOMER (cust_id, city, state, region, country)
PRODUCT (prod_id, prod_name, category, cost_price, sell_price, supplier)
TIME (time_key, month, month_name, quarter, year)
PURCHASES(prod_id, time_key, cust_id, ship_date, purchase_price, shipping_charge)
Question 1. Indiquez quelles sont les tables de faits et les tables de dimension du schma en toile de cet
entrept.
Table de fait : purchases
Tables de dimensions : customer, product, time.
Question 3. Ecrire la requte SQL permettant dafficher la moyenne des ventes (purchase_price) par
catgorie (category) et par anne (year).
SELECT p.category, t.year AVG(purchase_price) average_sales
FROM product p, time t, purchases f
Where p.prod_id = f.prod_id
And t.time_key = f.time_key
GROUP BY p.category, t.year ;
Question 4. Calculer le cube permettant dobtenir la somme des ventes par categorie, par anne et par
rgion en utilisant la clause GROUP BY CUBE.
Select p.category, t.year, c.region, sum(f.purchase_price) total_sales
From product p, time t, purchases f, customer c
Where p.prod_id = f.prod_id
And t.time_key = f.time_key
AND c.cust_id = f.cust_id
GROUP BY CUBE (p.category, t.year, c.region);
Nom :
Prnom :
Page 7
Question 5. On considre la mme requte, mais en remplaant la clause GROUP BY CUBE par la
clause GROUPE BY ROLLUP. Quelles diffrences ce changement implique-t-il ? Vous pouvez expliquer
les diffrences laide dun exemple.
Dans le premier cas (CUBE) on a des agrgations sur tous les niveaux de regroupement
(category, year, region), tandis que dans le deuxime, on se limite aux regroupements
(category, year, region), (category, year ) et (category). On na que des rsultats
partiels du cube.
Question 6. On souhaite maintenant observer les ventes de 2006 par rgion, et tudier particulirement
les ventes qui ont lieu pendant les vacances. On veut obtenir une relation de schma (region,
month_name, sales), qui contient, pour chaque rgion, la somme des ventes par mois ainsi que la somme
des ventes qui ont eu lieu pendant les vacances (somme des ventes des mois de juillet et aot). Dans ce
dernier cas, lattribut month_name prendra la valeur vacances.
Ecrire la requte permettant dobtenir ce rsultat.
Select region, month_name, sales
From (select t.month_name, c.region, sum(f.pourchase_price) sales from purchases f, time t, customer c
Where f.time_key = t.time_key and t.year = 2006 and c.cust_id = f.cust_id
Group by c.region, t.month_name)
Model
Partition by (region)
Dimension by (month_name)
Measures (sales)
Rules (sales[vacances] = sales[juillet] + sales[aot])