Entrepôts de Données 2CS-Cours05
Entrepôts de Données 2CS-Cours05
Entrepôts de Données 2CS-Cours05
Cours 5 : Éléments
avancés pour la
modélisation des data
warehouses
Riadh ZAAFRANI
Avril 2021
Objectifs du cours
1
Plan
◼ Faits
◼ Dimensions
◼ Attributs des Dimensions
◼ Projet Fantastic : Rappel
◼ Exercice : Modélisation avancée du
data warehouse
3
SELECT sum(v.quantite)
FROM ventes v JOIN date d
ON fk_date=pk_date
GROUP BY d.week 4
2
Table de faits avec faits et table de
faits sans fait
Tables de faits sans fait (factless fact table)
Dans certains cas, on mesure directement dans la table
des faits des événements unitaires. Un fait est donc
juste un enregistrement dans la table des faits.
Dans ce cas la table des faits ne contient que des clés
étrangères, et aucun fait en tant que tel (c'est
l'enregistrement qui est le fait).
Analyse en count
Pour analyser une table de faits sans fait, on ne peut
pas utiliser sum (il n'y a rien à sommer), on utilise
count (on analyse le nombre de faits enregistrés). 5
3
Clés artificielles
Clés artificielles
nulles (date...)
8
4
Clés artificielles
OID Méthode
Sous un système relationnel-objet les OID peuvent
être utilisés.
La mise en place de clés artificielles complique l'ETL
et implique la maintenance d'une table de
correspondance par exemple.
10
10
5
Exemples de modèles dimensionnels
11
11
12
6
Exemples de modèles dimensionnels
13
7
Gestion des valeurs nulles
15
16
8
Faits semi-additifs
Semiaddictive facts
Un fait est semi-additif s'il est additif sur une partie
seulement des dimensions du modèle.
“All measures that record a static level (inventory
levels, financial account balances, ans measures of
intensity such as room temperature) are inherently
nonadditive across date dimension and possibly
other dimensions. In these cases, the measure may
be aggregated usefully across time, for example, by
averaging over number of time periods.” (Kimball,
Ross, 2008, p72) 17
17
Faits semi-additifs
18
9
Plan
◼ Faits
◼ Dimensions
◼ Attributs des Dimensions
◼ Projet Fantastic : Rappel
◼ Exercice : Modélisation avancée du
data warehouse
19
19
10
Dimension dégénérée
21
21
Modélisation en flocon
Modélisation en flocon
Un modèle en flocon est un modèle pour lequel chaque
dimension est représentée avec plusieurs tables. Il est donc
plus normalisé (moins redondant) qu'un modèle en étoile.
22
11
Modélisation en flocon
23
Modélisation en flocon
24
12
Slow Changing Dimension (SCD)
La gestion des changements dans les dimensions est un
enjeu de l'historisation dans le data warehouse.
Ces changements sont généralement lents, on parle de SCD.
Il y a 5 grands types de solutions (Kimball, Ross, 2008, p.95) :
• Type 1 : Remplacer la valeur (pas de gestion d'historique)
• Type 2 : Ajouter une nouvelle dimension (multiplication du
nombre de lignes)
• Type 3 : Ajouter un attribut (gestion d'un seul niveau
d'historique)
• Type 3b : Ajouter plusieurs attributs (changements
prévisibles)
• Type 6 (1+2+3) : Combiner les type 1, 2 et 3 25
25
26
13
Slow Changing Dimension (SCD)
SCD type 3+
(Kimball, Ross,
2008, p.103)
27
27
28
14
Plan
◼ Faits
◼ Dimensions
◼ Attributs des Dimensions
◼ Projet Fantastic : Rappel
◼ Exercice : Modélisation avancée du
data warehouse
29
29
Attributs d'analyse
Attributs d'analyse
La majorité des attributs d'une dimension qui
servent à l'analyse (ils sont mobilisés dans les
GROUP BY).
Synonyme : Attribut de regroupement
Syntaxe Par défaut un attribut mentionné dans le
modèle dimensionnel est un attribut d'analyse. Ces
attributs sont notés tels quels, sans annotation ni
style particulier.
30
30
15
Attributs de description
Attributs de description
Certains attributs ne sont pas utiles à l'analyse, mais peuvent
être conservés dans le modèle, afin d'améliorer la qualité des
états, souvent parce qu'ils sont plus explicites pour identifier
un enregistrement d'une dimension.
Synonyme : Attribut de documentation
Exemple Numéro et nom de département
Si l'on dispose d'un numéro de département pour l'analyse, le
nom peut néanmoins être conservé à des fins d'amélioration
des rapports.
Syntaxe Les attributs de description sont notés en italique
dans le modèle dimensionnel et/ou annotés de la mention (d). 31
31
Attributs de segmentation
32
16
Attributs de segmentation
Méthode
33
33
34
17
La dimension date
Plan
◼ Faits
◼ Dimensions
◼ Attributs des Dimensions
◼ Projet Fantastic : Rappel
◼ Etude de cas : Problème posé
◼ Etude de cas : Données disponibles
◼ Exercice : Modélisation avancée du 36
data warehouse
36
18
Projet Fantastique : Problème posé
37
38
38
19
Projet Fantastique : Problème posé
39
Plan
◼ Faits
◼ Dimensions
◼ Attributs des Dimensions
◼ Projet Fantastic : Rappel
◼ Etude de cas : Problème posé
◼ Etude de cas : Données disponibles
◼ Exercice : Modélisation avancée du 40
data warehouse
40
20
Projet Fantastique : Données disponibles
41
FantasticCatalogue.sql
CREATE TABLE catalogue (
ref INTEGER PRIMARY KEY,
isbn VARCHAR(13) UNIQUE NOT NULL,
title VARCHAR(255) NOT NULL,
authors VARCHAR(255) NOT NULL,
language VARCHAR(3),
pubdate VARCHAR(25),
publisher VARCHAR(255),
tags VARCHAR(255),
genre VARCHAR(255) CHECK (genre IN ('SF', 'Fantastic',
'Crime', 'History', 'Adventure'))
);
GRANT SELECT ON catalogue TO PUBLIC; 42
42
21
Projet Fantastique : Données disponibles
Importation des données dans la table Catalogue à partir du fichier
"FantasticCatalogue.csv":
◼Avec SQL Developer, vous avez la possibilité d'importer
les données à partir d'un fichier csv :
➢ Il suffit d'ouvrir la vue de la table, puis:
➢ importer des données
43
43
44
44
22
Projet Fantastique : Données disponibles
Importation des données dans la table Catalogue :
45
45
46
23
Projet Fantastique : Données disponibles
47
48
24
Projet Fantastique : Données disponibles
49
49
50
25
Projet Fantastique : Données disponibles
51
52
52
26
Plan
◼ Faits
◼ Dimensions
◼ Attributs des Dimensions
◼ Projet Fantastic : Rappel
◼ Exercice : Modélisation avancée du
data warehouse
53
53
54
54
27
Projet Fantastique : Modélisation
avancée du data warehouse
Données supplémentaires
Les données supplémentaires suivantes sont
apportés au projet :
◼ fichier Prices2015.csv
◼ fichier Sales2015.csv
55
55
ISBN ForSales
Fichier Sales2015.csv 393
191
0
0
667 1
La structure du fichier est : ISBN, ForSales : 553 1
319 1
◼ Liste des articles soldés en 2013 552
282
0
0
◼ ISBN 739
156
0
0
707 1
◼ ForSales 708
56
0
…. …
56
28
Projet Fantastique : Modélisation
avancée du data warehouse : Question 1
Améliorer le modèle dimensionnel afin d'ajouter :
• le numéro de ticket (rappeler pourquoi c'est
une dimension dégénérée) ;
• le fait quantité (que l'on fixe toujours à 1, ou
bien que l'on calcule on regroupant les lignes
strictement identiques)
• le fait chiffre d'affaire de la vente que l'on
récupère du fichier des prix (on fera
l'hypothèse que le prix de vente est toujours le
prix enregistré dans ce fichier, on pensera à
multiplier le prix par la quantité) 57
57
58
29
Projet Fantastique : Modélisation
avancée du data warehouse : Question 1
Améliorer le modèle dimensionnel afin d'ajouter :
• le numéro de ticket (rappeler pourquoi c'est
une dimension dégénérée) ;
Les numéros de contrôle opérationnel tels que les
numéros de commande, les numéros de facture et
les numéros de ticket donnent généralement lieu à
des dimensions vides et sont représentés comme
des dimensions dégénérées (c'est-à-dire des clés
de dimension sans tables de dimensions
correspondantes)
59
59
60
30
Projet Fantastique : Modélisation
avancée du data warehouse : Question 1
Améliorer le modèle dimensionnel afin d'ajouter :
• le fait chiffre d'affaire de la vente que l'on
récupère du fichier des prix (on fera
l'hypothèse que le prix de vente est toujours le
prix enregistré dans ce fichier, on pensera à
multiplier le prix par la quantité)
Ici, on ajoute simplement un fait ca dans la table des
faits, correspondant au prix de vente enregistré
dans le fichier des prix.
61
61
62
31
Projet Fantastique : Modélisation
avancée du data warehouse : Question 1
Améliorer le modèle dimensionnel afin d'ajouter :
• des attributs de documentation (nom du
département, genre...)
NomDpt : Si l'on dispose d'un numéro de département pour
l'analyse, le nom permet d'améliorer les rapports.
Population : population dans chaque département qui figure
dans le fichier departementsInsee2003.txt et qui pourrait
être affichée.
Genre : genre du livre, qui figure dans la table catalogue
genre VARCHAR(255) CHECK (genre IN ('SF', 'Fantastic',
'Crime', 'History', 'Adventure’))
63
63
64
64
32
Projet Fantastique : Modélisation
avancée du data warehouse : Question 1
Améliorer le modèle dimensionnel afin d'ajouter :
• un attribut d'agrégation pour savoir si un livre
est un best-seller ou non
BestSeller : Certaines analyses requièrent de regrouper les
faits en fonctions de valeurs elles-mêmes issues des faits.
BestSeller est un attribut d'agrégation des faits qui sont pré-
calculés au sein de la dimension produit, afin d’avoir les
quantités vendues de chaque livre et qui permettra
d’attribuer une valeur booléenne à chaque livre (1 : si le livre
dépasse une certaine quantité, 0 : sinon).
65
65
66
66
33
Projet Fantastique : Modélisation
avancée du data warehouse : Question 2
Implémenter le modèle dimensionnel et
modifier l'ETL en conséquence.
67
67
68
68
34