Vous êtes sur la page 1sur 54

Restitution de l’information d’un

Entrepôt de données
Partie I

Mounir Ben Ayed


mounir.benayed@fss.usf.tn
Informatique de production
• Interrogations et modifications fréquentes des
données par de nombreux utilisateurs
• Nécessité de conserver la cohérence des données
• Les systèmes transactionnels (OLTP) garantissent la
cohérence des données
• L’informatique de production est optimisée pour les
tâches répétitives et planifiées
• Exemples:
– Factures, commandes…

2
Informatique décisionnelle

• Chargement périodique des données


• Pas de modifications des données
• Interrogations non régulières, planifiées, parfois
longues des systèmes d’information décisionnels
• Exemples de questions:
– Quelles sont les ventes du produit X pendant le
trimestre A de l'année B dans la région C ?
– Comment se comporte le produit X par rapport au
produit Y?
– Quel type de client peut acheter le produit X?
• Exemple: OLAP (Codd) 3
End User
Making
Decisions

Data Presentation Business


Analyst
Visualization Techniques
Data Mining Data
Information and knowledge Discovery Analyst

Data Exploration
Statistical Analysis, Querying and Reporting

Data Warehouses / Data Marts


OLAP DBA
Data Sources
Paper, Files, Information Providers, Database Systems, OLTP
4
The Data Warehouse in the line of decision
making

Le DWH est un SI dédié aux appl. décisionnelles.


 En aval : des bases de production
 En amont : des prises de décision 5
Introduction
• Le concept de DWH n’intègre l’aspect décisionnel qu’en bout de chaîne.

• Le DWH peut être le point d’entée visible pour certain utilisateurs

• Ne pas considérer l’outil de restitution comme le composant central du SD,


bien qu’il soit fondamental pour sa réussite.

• Le modèle de données doit être indépendant des outils qui l’exploitent.

• L’outil est la «partie visible» pour l’utilisateur (s’approche / s’éloigne)

6
Introduction

• Plusieurs méthodes pour parler de la


restitution des données ( Outils, Techniques,
Besoins)

7
Outils d’extraction de l’information
• Les requêteurs génèrent des requêtes SQL ad hoc .

• Les tableaux de bord prédéfinis, consultables à l’écran,


génèrent des états (histogrammes, camemberts, ...)

• Les outils de data mining permettent d’extraire des


informations implicites de la base. Ils utilisent des techniques de
classification, de segmentation, d’apprentissage symbolique et
numérique, des statistiques, … (Enterprise Miner, Intelligent
Miner, Knowledge Seeker, STATlab,...)

• Les analyseurs permettent de gérer les données


multidimensionnelles (Outils OLAP: Explorer, PowerPlay,
Metacube Explorer, ...)
8
Besoins
• Méthodes de restitution des données ( Outils, Techniques, Besoins)
• Les besoins peuvent être divisés en 3 types :
– Diffusion de l’information
– L’analyse
– Accès libre service

Diffusion de l’information -> partagée par une large


population d’utilisateurs. Information prè-structurée sous
forme de TB ou d’états prédéfinis (Reporting)

9
Besoins
– L’analyse : l’utilisateur travaille sur un périmètre fonctionnel
précis. Les enjeux ont été préalablement formalisés. Ils se
présentent sous forme d’indicateurs de performance.
L’utilisateur se sert du système pour découvrir l’ens des facteurs
susceptibles d’améliorer la performance.

– Accès libre service : L’utilisateur choisi les données adéquates


selon ses objectifs du moment. Il n’y a pas d’apriori sur les
objectifs. (V.A. pour l’utilisateur + que pour l’entreprise)

10
Accès libre service
• Se sont les applications ad-hoc, souvent des requêteurs.

• Un utilisateur peut suivre en détail les événements dont il a la


charge

11
Un utilisateur n’appartient pas forcément à l’une ou
l’autre de ces catégories

• Ex :

– Un responsable commercial aurait besoin de «reporting»


dans d’autre domaine / finance ou RH

– Il utilise des outils pour analyser l’inf. en profondeur dans le


domaine de la relation client

– Un client le force à voire l’information d’un autre angle

12
Le reporting : information pour tous

• Qualités requises :

– Puissance de calcul & ME forme. Il doit permettre diff


requêtes & opérateurs ensemblistes

– Mécanisme de sécurité et de confidentialité

– Fonctionnalité de distribution des rapports. Une fois


générés les rapports sont mis à la disposition des
utilisateurs. Ils sont générés à intervalles réguliers

13
Analyse des indicateurs de
performance (OLAP)
• OLAP est formalisé par CODD. Sa structure se définit par
rapport à un problème décisionnel.
Il faut définir des valeurs quantitative pour mesurer l’efficacité
de l’organisation. Ce sont des indicateurs clés tels que C.A,
Marge, Durée entre Date de com et date de récep., …

14
Analyse des indicateurs de
performance (OLAP)
• OLAP, fait réf à :
– Une méthodologie de structuration des D dans un contexte décisionnel
– Des tech utilisées par les SGBD
– Aux outils de restitution pour faciliter l’exploitation de ces structures.

• La structure d’un OLAP est nommée CUBE ou Hyper cube,


parfois on parle de pyramide

• C’est un tableau multi-dimensionel où les cellules contiennent


les valeurs des indicateurs

15
Questions posées :

• Quoi ? : quel produit ? Quel service ?

• Quand ? : Date ou période

• A qui ? : à quel client ?

• Qui ? : entité de l’entrep responsable

• Où ? : Localisation de la vente

Chacun de ces éléments constitue une dimension d’analyse

16
Un exemple de Data Cube

Total annuel des ventes


Date de TV
1Trim 2Trim 3Trim 4Trim sum
TV 100 200 300 100 700
Ord. Nord
DVD
sum

Régions
Centre

Sud

sum

17
Drill Up et Drill Down

18
Rotate

Slice

Scope

19
On-Line Analytical Processing (OLAP):
Représentation des données
Les systèmes relationnels : ROLAP
Les données multidim. sont stockées dans un SGBD R. Elles sont organisées
en schémas en forme d'étoiles ou de flocon. Accès en mode lecture.
Le langage de requête (SQL) est expressif, et son interprétation est optimisée
pour un temps de réponse minimal.
Av : pas de prob de volume – Aucune donnée n’est agrégée par défaut

opération
intégration

Interface OLAP
Sources de données Moteur OLAP
SGBD Relationnel

•Redbrick, Microstrategy, MetaCube (Informix)...


20
ROLAP

• L’implémentation R-OLAP ( "Relational OLAP" ou OLAP relationnelle) utilise une


BD R, pour le stockage des données et des agrégations destinées à l’analyse.

• Les fonctions nécessaires à l’utilisation d’OLAP sont gérées par un SGBD R.

• La BD R doit être structurée suivant un schéma spécifique afin de faciliter les


processus d’analyse par le SGBDR

21
On-Line Analytical Processing (OLAP):
Représentation des données
MOLAP (OLAP multidimensionnel)
Les D. multidim. sont stockées dans un SGBD optimisé pour le
stockage et le traitement des données.
Temps de rép rapide. Les éléments sont pré calculés ->
Résultat immédiat.
Le données augmentent avec le temps & de nouveaux axes
d’analyse -> de nouvelles dim.
MOLAP est bien si données < seuil

sources externes opération


intégration

systèmes
opérationnels

Interface OLAP 22
SGBD multidimensionnel
MOLAP

Les données sont stokées dans un CUBE qui est en fait une base de données
multidimensionnelles.
Le concept de relationnel disparaît.
Tous les croisements sont pré-calculés. => la restitution des données de façon
instantanée.
Les données étant stockées, le temps gagné pendant la restitution des données est
important.
Remarque: Les BD multidim. possèdent leur propre langage permettant de faire des
requêtes (MDX).

23
On-Line Analytical Processing (OLAP):
Représentation des données

Les systèmes hybrides : HOLAP


Les données multidim. sont stockées soit dans un SGBD R, soit dans un SGBD
multidim. HOLAP s’appuit indifféremment sur un modèle MOLAP ou ROLAP.

Ainsi
Les systèmes MOLAP ont de bons temps de réponse, et peuvent
effectuer des calculs complexes, mais ne peuvent pas traiter de
grandes quantités de données.
Les systèmes ROLAP peuvent stocker de grandes quantités de données,
mais ne peuvent effectuer des calculs complexes, ils sont plus lents.

24
Règles d'or de Codd
•1993 : E.F. Codd formule 12 règles d'or (à la demande de Arbor soft. !!)
•1995 : 18 règles en 4 groupes :

Basiques :
1. vue multidimensionnelle
Les données sont structurées en dimensions métiers
2. manipulation directe
L ’utilisateur doit pouvoir utiliser les logiciels habituels (tableurs, …)
sans percevoir la présence d ’un outil OLAP.
3. accessibilité
L ’outil doit se charger d ’accéder aux données stockées dans
n’importe quel type de bases de données (interne + externe) et le
faire simultanément.
25
Règles d'or de Codd
Basiques :
4. intégration d'approche dédiée et d'approche supportée /
performance continue.
A mesure que le Nb de dim ou la taille de la base augmente,
l’utilisateur ne doit pas sentir de baisse de performance
5. support de tous les modèles d'analyse des entreprises
(seuls les plus simples sont habituellement supportés)
6. Client/serveur
Tout produit OLAP doit fonctionner en mode C/S avec répartition
des traitements.
7. Transparence (ne pas avoir à savoir d'où viennent les
données, même si elles viennent de sources externes).
8. Multi-utilisateurs

26
Règles d'or de Codd

Caractéristiques spéciales
9. Traitement des données dénormalisées
10. Stockage des résultats à part (ne pas interférer avec les
mise à jour des transactions de production)
11. Représentation des valeurs manquantes / Gestion
dynamique des matrices creuses
12. Traitement des valeurs manquantes.

27
Règles d'or de Codd
Présentation des rapports:
13. Flexibilité (ajout de dimension...)
14. Performances non dégradées si nb. dim. ou taille BD
augmente.
15. Ajustement de la représentation physique

Contrôle des dimensions :


16. Généricité : traitement équivalent de chaque dimension.
17. Nombre et profondeur illimités
18. Calculs à travers n'importe quelles dimensions.

28
Requêtes OLAP
• Une requête OLAP consiste à extraire des données du cube en
appliquant des critères sur les tables de dimension et en choisissant
un ou plusieurs indicateurs contenus dans la table de faits.

• Deux approches

Extensions SQL:

Requêtes portant sur des données relationnelles stockées en schéma


en étoile ou en flocon.

Multidimensional Expressions (MDX):

S’applique directement sur un modèle multidimensionnel


29
SQL OLAP
(SQL 99 - SQL 3)

Optimiser l’agrégation dans le contexte décisionnel

La clause GROUP BY est enrichie par :


CUBE
ROLLUP
Fonctions de GROUPING
L’expression GROUPING SETS
Objectif : faciliter le requêtage et l’émission de rapports

30
SQL OLAP
(SQL 99 - SQL 3)

• En général, s’il y a k dimensions, un nombre 2^k de requêtes


SQL utilisant GROUP BY sera nécessaire afin d’obtenir un
résultat équivalent au pivotement.

• SQL 1999 étend la clause GROUP BY afin de supporter les


opérations de roll-up et de tabulation recoupée (pivotement):
– GROUP BY CUBE

– GROUP BY ROLLUP

31
Prod
P_ID
TF_Vente Categ
P_ID Type
L_ID
T_ID
Nb_vente Lieu
CD L_ID
Ville

TEMPS
T_ID
mois
trim
annee

32
Exemple

Somme uniquement par


SELECT annee, trimestre, mois, sum (CD)
mois, avec annee et
FROM Faits F, Temps T, Produit P
trimestre correspondant
WHERE P.PID = F.PID and T.TID = F.TID and P.type = ‘livres’
GROUP BY annee, trimestre, mois; Pas de total de ventes par
trimestre ou annee 33
Groupement multiple
Total du CA des livres par année, trimestre et mois

34
Groupement multiple

Extensions SQL supportant le groupement multiple en une seule requête :

• GROUPING SETS - Spécification explicite des combinaisons


d‘attributs de groupement

• ROLLUP - groupement hiérarchique et multidimensionnel

• CUBE - groupement multidimensionnel qui génère toutes les


combinaisons possibles des attributs spécifiés en paramètres

• Combinaisons de ces clauses avec les clauses SQL connues

(GROUP BY, HAVING, ...)

35
Groupement multiple : Grouping set
• Grouping Sets

GROUP BY GROUPING SETS ((<set1_a1>, ..., <set1_am>),


(<set2_a1>, ..., <set2_an>), ……)

• Spécification explicite du groupement spécifique


Chaque séquence d‘attributs(<seti_a1>, ... ) décrit un groupe spécifique
• Equivalent à multiples requêtes GROUP BY unifiées et dont les attributs
non-commun sont comblés avec des valeurs NULL.
• Il est possible d‘identifier les attributs en fonction desquels le groupement
d‘un tuple est effectué en utilisant la fonction GROUPING():
GROUPING(<attr>) = 0 si groupement par <attr>, sinon 1.

36
Exemple avec GROUPING SETS
- CD pour 2010 par
- Trimestre et type de produit
- Trimestre et lieu

37
Exemple avec GROUPING SETS
- CD pour 2010 par avec identification des attributs de groupe
- Trimestre et type de produit
- Trimestre et lieu

SELECT trimestre, type, lieu, SUM(CD) AS CD,


GROUPING(trimestre) AS GQ,
GROUPING(type) AS GT,
GROUPING(lieu) AS GL
FROM ...
WHERE ...
GROUP BY GROUPING SETS ((trimestre, type), (trimestre, lieu))

38
Groupement Multiple
Groupement multidimensionnel
Groupement multidimensionnel avec ROLLUP ()

GROUP BY ROLLUP (<a1>, ..., <an>)

• ROLLUP calcule une agrégation pour plusieurs niveaux d‘une

hiérarchie.

• Attributs <a1>, ..., <an> sont souvent issus d‘un même schéma

de dimension et sont spécifiés en ordre croissant de granularité.

39
Groupement Multiple
Groupement hiérarchique multidimensionnel

CD de livres par année, trimestre et mois. Rollup calcule des sous_totaux en


allant du plus détaillé vers le plus
général.
Rollup crée des sous-totaux sur n+1
niveaux pour n colonnes de groupage
- puis calcule un total général.

SELECT année, trimestre, mois,


SUM(CD)AS total_CD
FROM Faits F,
Temps T, Produit P
WHERE P.PID = F.PID
AND T.TID = F.TID
AND P.type = ‘livres’
GROUP BY ROLLUP (annee, trimestre, mois)

40
Exemple
SELECT annee, mois, prod, sum (CA) CA
FROM sales S, time T
WHERE S.date_achat=T.date
AND mois=’janv’ and year=‘2010’
GROUP BY ROLLUP (annee, mois,prod) Annee Mois Produit CA

2010 Janv A 200

2010 Janv B 400

2010 Janv 600

2010 600

600

41
Groupement Multiple
Groupement multidimensionnel

Groupement multidimensionnel avec CUBE()


GROUP BY CUBE (<a1>, ..., <an>)
Forme l‘ensemble des parties de l‘ensemble spécifié
CUBE(A, B, C) forme les groupes :
(A, B, C), (A, B), (A, C), (B, C), (A), (B), (C), ( ))
On obtient 2n groupes

42
GROUP BY ROLLUP(A1, A2, ..., An)

GROUP BY GROUPING SETS


( (A1, ..., An-1, An), (A1, ..., An-1), ..., (A1, A2), (A1), () )

GROUP BY ROLLUP(A1, ..., An), ROLLUP(B1, ..., Bm)


➔ groupes ( (A1, ..., An), ..., (A1, A2), (A1), ( ) )
x
( (B1, ..., Bm), ..., (B1, B2), (B1), ( ) )

43
Groupement Multiple
Groupement multidimensionnel
Groupement multidimensionnel avec CUBE()

La fonction CUBE permet de


calculer toutes les combinaisons
de sous totaux pour un groupe
de dimensions.

SELECT trimestre, type, lieu,


SUM(CD) AS total_CD
FROM Faits F,
Temps T, Produit P, Lieu L
WHERE P.PID = F.PID
AND T.TID = F.TID
AND L.LID = F.LID
AND T.annee = ‘2010’
GROUP BY CUBE (trimestre, type, lieu)
44
Exemple
SELECT annee, mois, prod, sum (CA) CA
FROM sales, time Annee Mois Produit CA
WHERE sales.date_achat=time.date
AND mois = ‘Janv’ AND year=‘2010’ 2010 Janv A 200

GROUP BY CUBE (annee, mois, prod) 2010 Janv B 400


2010 Janv 600
2010 A 200
2010 B 400
Janv A 200
Janv B 400
A 200
B 400
Janv 600
2010 600
600 45
Groupement Multiple
Groupement multidimensionnel
Groupement multidimensionnel avec CUBE()

• GROUP BY CUBE(A, B, C)

• GROUP BY GROUPING SETS


((A,B,C), (A,B), (A,C), (B,C), (A), (B), (C), ())

ET
• GROUP BY GROUPING SETS(CUBE(A, B), CUBE(B,C))

• GROUP BY GROUPING SETS


((A,B), (A), (B), (), (B,C), (B), (C), ())

46
Vue matérialisée
Caractéristiques des requêtes OLAP
• Les requêtes OLAP sont complexes et nécessitent des calculs
d’agrégats et beaucoup de jointures.
• Ex : On voudrait stoker le C.A. par magasin, par mois et par
produit pour l’année 2010 dans la région centre.
• Afin d’augmenter la performance de ces requêtes, une
technique consiste à stoker (ou matérialiser) tout ou une
partie du cube.
• Cela revient à pré-calculer chaque niveau d’agrégation en
combinaison avec les autres dimensions.
47
Vue matérialisée
• Une VM est un objet de la BD qui sert à stoker des données
résumées et des résultats pré-calculés dans une vue.

• L’optimiseur de requête s’appuie sur ces vues afin d’éviter des


opérations de jointure et d’agrégation coûteuses

48
Caractéristiques des VM
• Stockées dans la même BD que les TF et TD
• Transparentes pour l’utilisateur et l’application
• Mises à jour lorsque les tables sous-jacentes
sont modifiées
• 3 types de VM
– Sans agrégats
– Avec agrégats
– Imbriquées

49
Création de VM
• Ex : VM pour l’analyse des ventes par produit

CREATE MATERIALIZED VIEW prodct_sales_mv


BUILD Deffered/ Immediate
REFRESH Complete/Fast/Force
ON DEMAND / ON COMMIT
ENABLE QUERY REWRITE
AS SELECT p.prod_name, SUM (CA) AS CA
FROM sales S, products P
WHERE S.prod_id = P.prod_id
GROUP BY P.prod_name;
50
Pour une création simple il faut :
le droit CREATE MATERIALIZED VIEW
le droit CREATE TABLE (car une MV c’est une MV + une TABLE)
le GRANT SELECT sur les objets accédés par la vue
Rem :
on peut créer une vue matérialisée sur une vue
on peut créer une vue matérialisée sur une vue matérialisée

Par défaut le contenu de la VM est initialisé ; la VM est remplie, lors de sa


création.
Il est possible de créer une VM vide avec l’option BUILD DEFERRED
(par défaut : BUILD IMMEDIATE).
le CREATE crée aussi une table de même nom que la vue matérialisée et
une clé primaire
51
REFRESH Complete/Fast/Force

Méthodes de refresh

il existe 3 méthodes : FAST, COMPLETE ou FORCE

•FAST ( incrémental) c’est la méthode la + efficace, elle utilise des


journaux spécifiques traçant les modification de la table maître.

•COMPLETE effectue le refresh complet en exécutant le SELECT


de définition de la MV.

•FORCE effectue un FAST si possible, sinon un COMPLET.


C’est la méthode par défaut.

52
Modes de refresh

Synchrone (répercuté en temps réel) ou asynchrone (traité en différé)

•synchrone, sur commit : clause ON COMMIT


par définition ne nécessite pas de commande REFRESH c’est la mise à jour
COMMITée de la table maître qui déclenche automatiquement le REFERESH.

Toute mise à jour dans une des tables référencées dans la requête déclenchera un
rafraîchissement de la vue

•asynchrone, à la demande : clause ON DEMAND. C’est le mode par défaut.

•"Périodique" :
REFRESH FAST WITH START WITH sysdate NEXT sysdate+1

ENABLE QUERY REWRITE : la vue sera prise en compte par


l’optimiseur. 53
Exemple
CREATE MATERIALIZED VIEW cube
(….)
AS SELECT
pays, region, ville, produit, sous famille, famille, annee, mois,
date, sum (CA), sum (cout)
FROM sales S, Produit P, temps T, client C
WHERE S.idprod = p.idprod AND s.idcli=c.idcli and s.idtps=t.idtps
GROUP BY
Rollup (famille, sous_famille, produit)
Rollup (pays, region,ville)
Rollup (annee, mois, date)
54

Vous aimerez peut-être aussi