Académique Documents
Professionnel Documents
Culture Documents
Sommaire
Introduction............................................................................................................................................. 2
Cration des tables de faits et de dimension .......................................................................................... 2
Cration dune table de faits ............................................................................................................... 5
Cration des tables de type dimension ............................................................................................... 7
La dimension Temps ............................................................................................................................ 9
Cration du cube ................................................................................................................................... 36
Cration du diagramme..................................................................................................................... 36
Peaufiner le cube............................................................................................................................... 51
Dans une entreprise commerciale, la mise en uvre de lanalyse des factures est
gnralement un bon choix, pour deux raisons :
- Laxe produit.
- Laxe client.
- Laxe site.
- Laxe temps.
Pour crer la base de donne nous allons utiliser SSMS en respectant les
conditions suivantes :
- Le premier bloc dtaille les liaisons avec les tables de dimension avec les
quatre axes danalyse DateFacturation_FK, Site_FK, Produit_FK et
Client_FK. La granularit de la table de faits FactFacture correspond une
ligne : par jour (date de facturation), par site de facturation, par produit et
par client. Cela signifie que, potentiellement, nous pourrons regrouper et
sommer en une seule ligne, les lignes de facture ayant ces mmes
critres. Ce regroupement est appel agrgat.
La table FactFacture.
- DimProduit.
- DimSite.
- DimClient.
La dimension Temps
La table Temps est unique et sa prsence est obligatoire dans toute table de
faits, quelle quelle soit. La prsence de la dimension Temps dans une table de
Dans la suite nous allons crer notre propre table de dimension Temps avec le
SQL Serveur Data Tools.
Maintenant que la source de donnes est cre, nous allons crer une dimension
Temps dans le projet Analysis Services.
Cette codification au format aaaammjj devra tre gnralise tous les niveaux
de notre axe temps : anne, semestre, trimestre, mois, semaine
Chaque niveau (anne, semestre, trimestre, mois, semaine, jour) soit compos
de trois attributs distincts :
- Code
- Date
- Nom
Script
USE [DistrisysDW]
-- Suppression de la cl primaire
ALTER TABLE [dbo].[Time] DROP CONSTRAINT [PKTime]
GO
-- Remplir Temps_PK
UPDATE [dbo].[Time]
SET [Time_PK] =
(
CAST(YEAR([Date]) AS varchar(50))
+
(
CASE WHEN MONTH([Date])<10
THEN '0' + CAST(MONTH([Date]) AS varchar(50))
ELSE CAST(MONTH([Date]) AS varchar(50))
END
)
+
CASE WHEN DAY([Date])<10
THEN '0' + CAST(DAY([Date]) AS varchar(50))
ELSE CAST(DAY([Date]) AS varchar(50))
END
)
-- Remplir AnneeCode
UPDATE [dbo].[Time]
SET [AnneeCode] =
(
CAST(YEAR([AnneeDate]) AS varchar(50))
+
(
CASE WHEN MONTH([AnneeDate])<10
THEN '0' + CAST(MONTH([AnneeDate]) AS varchar(50))
ELSE CAST(MONTH([AnneeDate]) AS varchar(50))
END
)
+
CASE WHEN DAY([AnneeDate])<10
-- Remplir SemestreCode
UPDATE [dbo].[Time]
SET [SemestreCode] =
(
CAST(YEAR([SemestreDate]) AS varchar(50))
+
(
CASE WHEN MONTH([SemestreDate])<10
THEN '0' + CAST(MONTH([SemestreDate]) AS varchar(50))
ELSE CAST(MONTH([SemestreDate]) AS varchar(50))
END
)
+
CASE WHEN DAY([SemestreDate])<10
THEN '0' + CAST(DAY([SemestreDate]) AS varchar(50))
ELSE CAST(DAY([SemestreDate]) AS varchar(50))
END
)
-- Remplir TrimestreCode
UPDATE [dbo].[Time]
SET [TrimestreCode] =
(
CAST(YEAR([TrimestreDate]) AS varchar(50))
+
(
CASE WHEN MONTH([TrimestreDate])<10
THEN '0' + CAST(MONTH([TrimestreDate]) AS varchar(50))
ELSE CAST(MONTH([TrimestreDate]) AS varchar(50))
END
)
+
CASE WHEN DAY([TrimestreDate])<10
THEN '0' + CAST(DAY([TrimestreDate]) AS varchar(50))
ELSE CAST(DAY([TrimestreDate]) AS varchar(50))
END
)
-- Remplir MoisCode
UPDATE [dbo].[Time]
SET [MoisCode] =
(
CAST(YEAR([MoisDate]) AS varchar(50))
+
(
CASE WHEN MONTH([MoisDate])<10
THEN '0' + CAST(MONTH([MoisDate]) AS varchar(50))
ELSE CAST(MONTH([MoisDate]) AS varchar(50))
END
)
+
CASE WHEN DAY([MoisDate])<10
THEN '0' + CAST(DAY([MoisDate]) AS varchar(50))
-- Remplir SemaineCode
UPDATE [dbo].[Time]
SET [SemaineCode] =
(
CAST(YEAR([SemaineDate]) AS varchar(50))
+
(
CASE WHEN MONTH([SemaineDate])<10
THEN '0' + CAST(MONTH([SemaineDate]) AS varchar(50))
ELSE CAST(MONTH([SemaineDate]) AS varchar(50))
END
)
+
CASE WHEN DAY([SemaineDate])<10
THEN '0' + CAST(DAY([SemaineDate]) AS varchar(50))
ELSE CAST(DAY([SemaineDate]) AS varchar(50))
END
)
Cration du cube
Cration du diagramme
Nous allons dans le SSMS pour prparer notre digramme qui nous facilitera la cration de notre cube.
3. Cration de la source de view avec le diagramme, clic droit sur data source view et nouveau
Peaufiner le cube