Académique Documents
Professionnel Documents
Culture Documents
Test TP SID
Exercice.
Nous voulons stocker une structure multidimensionnelle contenant les informations sur les ventes :
volume à vendre, bénéfice et nom_client, sur les dimensions suivantes : Temps (jour, semaine, mois,
semestre, année) ; Produit (type, catégorie, groupe) ; Local (cité, région, pays, continent).
9. Définissez un schéma en étoile pour représenter la structure multidimensionnelle.
Quels sont les atouts de ce modèle ?
L’avantage principal de ce modèle est qu’il facilite les requêtes en évitant les jointures lourdes
Schéma en étoile :
Vente(key_vente, keyTime, keyProduct, keyLocation, volume_à_vendre, bénéfice,
nom_client)
Temps(keyTime, jour, semaine, mois, semestre, année)
Produit(keyProduct, type, catégorie, groupe)
Local(keyLocation, cité, région, pays, continent)
10. Ecrivez une requête SQL sur le schéma en étoile, qui renvoie les noms des clients qui
ont acheté un produit de la catégorie "électronique" en 2020 en Algérie
SELECT nom_client
FROM Vente, Produit, Temps, Local
WHERE Vente.keyTime=Temps.keyTime AND Vente.keyProduct=Produit.keyProduct AND
Vente.keyLocal=Local.keyLocation AND Temps. année ="2020" AND Produit.category="
électronique" AND Local. pays ="Algérie"
11. Écrivez la requête SQL sur le schéma de flocon de neige qui renvoie les noms des
clients qui ont acheté un produit de la catégorie «électronique» en 2020 en Italie.
SELECT nom_client
FROM Vente, Produit, Temps, Local, Categorie, Region, pays
WHERE Vente.keyTime=Temps.keyTime AND vente.keyProduct=Produit.keyProduct AND
vente.keyLocation=Local.keyLocation AND Temps.année="2020" AND
Produit.keyCategory=Categorie.keyCategory AND Categorie.category="électronique" AND
Local.keyRegion=Region.keyRegion AND Region.keyCountry=pays.keyCountry AND
pays.nom_pays="Algérie"
Ou bien
Select [produits]. [type]. &[véhicule] On columns
From CubeVente
Where ( [measures].[ volume_à_vendre],
{[Local]. [continent] - [Local]. [continent]. &[Europe]}
)
NB. L’écriture de [measures].[ volume_à_vendre] est facultatif puisqu’elle est la 1ère mesure.
elle est prise par défaut.
14. Ecrire la requête MDX qui affiche le bénéfice sur les ventes pour les produits « food »
et « drink » en colonnes ; et pour les années (2019 et 2020) en lignes.
select
{([Measures].[ bénéfice], [produit]. [type].&[food]), ([Measures].[
bénéfice], [produit].[ type].&[drink])} on columns,
{([Temps].[annee].&[2019]),([Temps].[annee].&[2020])} on Rows
from [cube_vente]
15. Ecrire la requête MDX qui affiche les bénéfices et volume à vendre pour les années
2020 et 2021 dans toutes les villes
select
{([Measures].[bénéfice],[Local].[cité].members),([Measures].[v
olume_à_vendre],[Local].[cité].members)}on rows,
{([Temps].[annee].&[2020],[Temps].[annee].&[2021])}on columns
from [cube_vente]
16. Appliquer l’opérateur slice (en MDX) sur l’hypercube obtenu dans la requête
précédente pour afficher les produits de type « véhicule ».