Vous êtes sur la page 1sur 5

Cours : BDD Décisionnelles

TP : N°3 Prof : A. Benmakhlouf Site Web : http://coursbenmakhlouf.me.ma/

Oracle : Bases de données Décisionnelles


Implémentation des Data Warehouse et génération des Hypercubes
dans ORACLE

Objectif :
- Implémentation d’un Dataware house dans Oracle
- Génération et manipulation des hypercubes de données OLAP
- Utilisation de l’option OLAP de l’SQL-Developer pour créer les dimensions et les hypercubes.
Enoncé :
Une entreprise dispose de la base de données de la figure-1. Nous souhaitons mettre en place un système
d’information décisionnel sous la forme d’un data-mart (un mini entrepôt de données) pour observer son
activité de ventes au niveau
- Des différents pays. Chaque pays est renseigné par les régions, chaque région par les villes et chaque
ville par les clients qui ont réalisé des achats.
- Des différentes années. Chaque année est divisée en quatre saison, chaque saison est composée en un
ensemble de mois, chaque mois en un ensemble de jour et chaque jour est identifié par une date
- Des différents fournisseurs. Chaque fournisseur fourni un ensemble de produit
- Des différentes catégories chaque catégorie est composée par un certain nombre de produit.

Figure-1 : Modèle de la base de données

p. 1
Cours : BDD Décisionnelles
TP : N°3 Prof : A. Benmakhlouf Site Web : http://coursbenmakhlouf.me.ma/

1- Créer un user ‘bddvente’ puis implémenter la base de données de la figure-1


2- Créer un autre user ‘DW’ où on va implémenter le datawarehouse.
3- Créer une fonction stockée qui prend en paramètre une date et envoi la saison correspondante :
Saison(d date) Return Varchar2
Les saisons en fonction des mois sont données par :

Hiver : 12 → 2
Printemps : 3 → 6
Eté : 7 → 9
Automne : 10 → 11

create or replace function Saison(Mo integer) return varchar2 as


Sa VARCHAR2(20);
begin
if Mo<=2 then
SA:='Hiver';
elsif Mo<=6 then
SA:='Printemps';
elsif Mo<=9 then
SA:='Eté';
elsif Mo<=11 then
SA:='Automne';
else
SA:='Hiver';
end if;
return SA;
end;

4- Implémenter dans Oracle le datawarehouse donné par le modèle en étoile de la figure-2.


create materialized view Table_DIM_clients as
select distinct pays, region||'_'||pays as idregion, region,
ville||'_'||region||'_'||pays as idville,
ville, idclient, societe
from basevente.clients;

create materialized view Table_DIM_Dates as


select distinct extract(year from datecommande) as year,
saison(extract(month from datecommande))||'_'||
extract(year from datecommande) as idsaison,
saison(extract(month from datecommande)) as saison,
extract(month from datecommande)||'_'||extract(year from datecommande) as
idmonth,
extract(month from datecommande) as month,
extract(day from datecommande)||'_'||
p. 2
Cours : BDD Décisionnelles
TP : N°3 Prof : A. Benmakhlouf Site Web : http://coursbenmakhlouf.me.ma/

extract(month from datecommande)||'_'||


extract(year from datecommande) as idday,
extract(day from datecommande) as day,
datecommande
from basevente.commandes;

create materialized view Table_DIM_Prod as


select distinct fournisseurs.idfour, societefour, Categories.idcateg,
nomdecategorie,
produits.idproduit, designation
from basevente.categories, basevente.fournisseurs, basevente.produits
where categories.idcateg=produits.idcateg
and fournisseurs.idfour=produits.idfour;

create materialized view Table_Fait as


select idclient, produits.idproduit, datecommande,
sum(prixunitaire*quantite*(1-remise/100)) as CA
from basevente.commandes, basevente.lignecommandes, basevente.produits
where commandes.idcommande=lignecommandes.idcommande
AND lignecommandes.idproduit=produits.idproduit
group by idclient, produits.idproduit, datecommande

execute dbms_mview.refresh('table_dim_clients');
execute dbms_mview.refresh('table_dim_Date');
execute dbms_mview.refresh('table_dim_Prod');
execute dbms_mview.refresh('table_Fait);

5- Nous voulons implémenter le modèle multidimensionnel de la figure-3 à partir des données du DW :


p. 3
Cours : BDD Décisionnelles
TP : N°3 Prof : A. Benmakhlouf Site Web : http://coursbenmakhlouf.me.ma/

Figure-3 : Modèle multidimensionnel du DW de la figure-2

a. Créer les trois dimensions : Dimclient, DimDate et DimProduit avec les hiérarchies présentées dans la
figure3

b. Créer les trois hypercubes suivant :


i. Cube1 : permettant d’analyser les ventes suivant les trois dimensions « Dimclient », « DimDate » et
« DimProduit ». Générer ensuite les synthèses précisées dans le tableau ci-dessous.
DIM_Client DIM_Date DIM_Produit
Pays Région Ville Client Année Saison Mois Jour Date Produit Catégorie Fournisseur
x x x
x x x x
x x x x
x x x x x x
x x x x
x x x

ii. Cube2 : permettant d’analyser les ventes suivant les deux dimensions « Dimclient », « DimDate ».
Générer ensuite les synthèses précisées dans le tableau ci-dessous.:

p. 4
Cours : BDD Décisionnelles
TP : N°3 Prof : A. Benmakhlouf Site Web : http://coursbenmakhlouf.me.ma/

DIM_Client DIM_Date
Pays Région Ville Client Année Saison Mois Jour Date
x x
x x x
x x x
x x x x x
x x x
x x

iii. Cube3 : permettant d’analyser les ventes suivant la dimension « DimDate ». Générer ensuite les
synthèses précisées dans le tableau ci-dessous.
DIM_Date
Année Saison Mois Jour Date
x
x x
x x
x x x x
x x
x
x x

6- Nous voulons savoir


a. Pour chaque année la saison où on a réalisé le plus grand chiffre d’affaires
b. Pour chaque saison la catégorie des produits qui a réalisé le plus grand chiffre d’affaires
c. Pour chaque année et pour chaque saison la catégorie des produits qui a réalisé le plus grand
chiffre d’affaires

p. 5

Vous aimerez peut-être aussi