La personnalisation dans les entrepôts de données.

publicité
République Algérienne Démocratique et Populaire
‫وزارة ا ـــ ــ ــــــ ا ــــ ـــــ و ا ـــ ـــــ ا ــ ــ ــــــــ‬
Ministère de l'Enseignement Supérieur et de la Recherche Scientifique
UNIVERSITE DES SCIENCES ET DE LA TECHNOLOGIE d'ORAN Mohamed Boudiaf
Faculté des Sciences
Département d'Informatique
Spécialité : Informatique
Option: Système, Réseaux et bases de données
MEMOIRE
Présenté par
Mr. KHALLADI Rachid.
Pour l'obtention du diplôme de Magister en Informatique
Thème
La personnalisation dans les entrepôts de données.
Devant la commission d'examen composée de :
Qualité
Président
Rapporteur
Examinateur
Examinateur
Noms et Prénoms
Mme. BELBACHIR Hafida
Mme. ZAOUI Lynda
Mr. RAHAL Sid Ahmed
Mme. NAIT-BAHLOUL Safia
Grade
Professeur
M.conf.A
M.conf.A
M.conf.A
Etb d'origine
USTO
USTO
USTO
ES-SENIA
Année universitaire : 2014-2015
Résumé
Les entrepôts de données sont devenus aujourd’hui incontournable dans le
domaine de l’aide à la prise de décision. Couplés avec les possibilités des
techniques OLAP, ils permettent une étude analytique poussée des données,
procurant une efficace aide à la décision dans tous les domaines.
Aujourd’hui l’information joue un rôle capital dans le processus d’aide à la
décision (connaitre la bonne information au bon moment), et comme la volumétrie
des données connues pour être importante dans les entrepôts de données, le role
central que joue l’utilisateur dans le processus décisionnel, au niveau de l’analyse
en ligne et les limitées montrées par les systèmes OLAP quant la prise en compte
de ses preferences sont les éléments qui justifient pleinement le recours à la
personnalisation afin de lui offrir des informations pertinentes répondant a ses
besoins attendus.
Notant que ces dernières années, on assiste à une forte inflation de volume
d’informations en raison de l’accroissement des capacités de calcul et de stockage,
dans ce contexte de surcharge d’informations, il y a lieu de développer des outils
informatiques pour faciliter la recherche et l’extraction rapide de l’information
pertinente. Un de ces outils et la personnalisation qui consiste à répondre au mieux
aux attentes de chaque utilisateur.
Le but principal, fixé au début du mémoire, était de concevoir et de réaliser
un système d’interrogation personnalisé d’un entrepôt de données. La modélisation
et la gestion des préférences utilisateur, l’exploitation du profil utilisateur dans la
transformation de ses requêtes, dans la manière avec laquelle sont présentés ces
résultats et enfin la réutilisation de ses requêtes posées précédemment sont les
contributions principales apportées dans ce mémoire.
Afin de parvenir cet objectif, nous avons, au cours de notre etude
bibliographique, passé en revue quelques notions théoriques entourant le sujet.
Nous avons donc présenté les entrepôts de données et illustré, à l’aide d’exemples,
les différentes possibilités qu’ils offrent. Ensuite, nous avons décrit les systèmes
OLAP (ROLAP, HOLAP et DOLAP) dont ils sont issus et les opérations
effectuées sur les cubes de données afin de mieux exploiter les données de ces
derniers.
Par la suite, l’étude sur les langages et outils disponibles qui permettent
l’interrogation des entrepôts de données nous a conduits à opter pour la
personnalisation des requêtes écrites en langage MDX. Du fait que ce langage est
le plus utilisé actuellement dans l’interrogation des entrepôts de données.
Sur la personnalisation de l’information, nous avons présenté les notions de
profil utilisateur, préférence utilisateurs et le processus de personnalisation.
Afin de concrétiser la notion de personnalisation dans les entrepôts de
données, on a réalisé un prototype appelé Personnalisation. A travers celui-ci,
nous avans essayé de synthétiser les principales fonctionnalités d’un système de
personnalisation. Les algorithmes employés dans ce prototype sont l’algorithme de
personnalisation de contenu [Bellatreche et al, 2006] et notre algorithme
STRUCTURATION pour la génération des structures possibles pour un ensemble
des références.
Le principal objectif de l’ensemble des exemples pratiques réalisés avec
notre prototype était la démonstration de l’efficacité des algorithmes employés
dans l’implémentation de ce prototype, ainsi que pour démontrer les avantages des
différentes propositions.
Les qualités des différents résultats obtenus démontrent l’utilité de la
personnalisation dans les systèmes d’information, et le confort offert aux
utilisateurs dés qu’ils obtiennent ce qu’ils veulent sans qu’ils soient surchargés par
des informations qui ne les intéresse plus.
Introduction générale
Chapitre I :
Les entrepôts de données.
1. Introduction
09
2. Vocation des entrepôts de données
09
2.1 Intégration des sources de données
09
2.2 Au cœur de l’architecture décisionnelle
11
3. Stratégie de conception et de modélisation des entrepôts de données
12
3.1 Stratégie de conception
13
3.2 Conception de base et de modélisation des entrepôts de données
14
4. Exploitation de l’entrepôt et analyse OLAP
15
4.1 Types d’OLAP
15
4.2 Analyse d’OLAP
16
17
7. Conclusion
Chapitre II :
Les langages d'interrogation des entrepôts de données.
1. Introduction
19
2. Les langages de données
19
2.1 Types de langage de données
3. L’extension du SQL
19
19
4. Les langages graphique de manipulation de données
20
4.1. GHRAPHIC OLAP-SQL
21
4.2 GOGNOS PowerPlay 7.3
21
4.3 CRYSTAL Analysis 10
21
4.4 RATINAL Rose XDE
22
4.5 Limitations des langages graphiques.
22
5. Le langage script de manipulation de données MDX
22
5.1 Définition
22
5.2 Caractéristiques de MDX
22
5.3 Forme d’une requête OLAP sous MDX
22
5.4 Structure du résultat d’une requête MDX
23
5.5 Les avantages et inconvénients du MDX
24
24
6. Conclusion
Chapitre III :
La personnalisation des données.
1. La personnalisation de l’information
26
1.1 Architecture du system personnalisé
26
2.1. Les domaines d’utilisation de la personnalisation de l’information
27
2. Le profil d’utilisateur
28
2.1. Définition
28
2.2. Contenu du profil utilisateur
28
3. Les préférences utilisateur
29
3.1. Des préférences sur le contenu de la réponse a la requête
29
3.2 Des préférences sur la présentation de la réponse
29
3.3 Des conditions d’exploitations
30
4. Le langage des préférences
30
4.1. Les types d’approches de modélisation
31
4.2. Caractéristiques d’un langage de préférence
31
31
5. La personnalisation et OLAP
5.1. Le processus de personnalisation
31
5.2. Types de personnalisation
32
5.3. Types des requêtes
33
6. Travaux de personnalisation dans les entrepôts de données
33
6.1 La personnalisation inspiré de la recherche d’information
33
6.2 La personnalisation dans l’évolution des schémas
40
6.3 La personnalisation dans la réutilisation des requêtes
44
6.4 La personnalisation contextuelle
47
49
7. Conclusion
Chapitre IV :
Conception et implémentation.
1. Introduction
2. L’Algorithme FINDStruct
52
53
3. L’Algorithme STRUCTURATION
54
4. Discrimination entre plusieurs ensembles de références
60
5. Simplification du choix de l’utilisateur pour une structure parmi un ensemble
60
6. Implémentation
62
6.1 Le prototype ‘ Personnalisation ‘
62
6.2. Technologies employées
63
6.3. Principe de base de l’application
63
6.4 Présentation de l’application
64
6.5 Quelques fenêtres du prototype
68
6.6 Exemples et discussion
70
7. Conclusion
Conclusion générale
75
FIG.1
FIG.2
FIG.3
FIG.4
FIG.5
FIG.6
FIG.7
FIG.8
FIG.9
FIG.10
FIG.11
FIG.12
FIG.13
FIG.14
FIG.15
FIG.16
FIG.17
FIG.18
FIG.19
FIG.20
FIG.21
FIG.22
FIG.23
FIG.24
FIG.25
FIG.26
FIG.27
FIG.28
FIG.29
FIG.30
Architecture Décisionnelle
Cube « Ventes »
Architecture d’un système de personnalisation
La personnalisation avant l’accès aux données de cube
La personnalisation après l’accès aux données de cube
Ordre sur les visualisations
Exemple de grille d’analyse
Architecture générale d’un entrepôt de donnée évolutif
Principe du modele R-DW
Définition des liens d’agrégations
Schéma multidimensionnelle pour observer le NBI
Schéma de la dimension AGENCE
Schéma multidimensionnelle pour observer le NBI selon le type
agence
Schéma d’une base de contexte
Exemple de recommandation
Exemple de hiérarchie des attribues du contexte
L’algorithme FindStruct
Architecteur de système « Personnalisation »
Requête personnalisée
Requête personnalisée
Résultat de requête
Résultat de requête
Liste des structures possibles
Liste des structures possibles
Résultat de requête
Résultat de requête
Résultat de requête
Résultat de requête
Résultat de requête
Résultat de requête
11
23
26
32
32
38
39
41
41
42
43
43
44
45
46
48
53
62
72
72
72
72
73
74
74
74
74
74
74
74
Un entrepôt de données peut être vu comme une grosse base de données modélisée pour
accueillir, après nettoyage et homogénéisation, les informations en provenance des différents
systèmes de production de l’entreprise.
Il est vrai que la création de l’entrepôt n’est pas un objectif final. L’important, c’est son
exploitation. La vocation de l’entrepôt de données est de supporter l’analyse des données. Ainsi,
l’entrepôt de données constitue un support pour les outils d’analyse en ligne issus de la
technologie OLAP (On-Line Analytical Processing). Ce sont ces outils qui permettent
d’accompagner les décideurs d’une entreprise en leur fournissant une possibilité de naviguer
facilement dans les données.
Ainsi l’entrepôt de données permet d’offrir des contextes d’analyses aux utilisateurs pour
les aider dans leur prise de décision. Il s’avère alors que les utilisateurs peuvent avoir besoin de
contextes d’analyses spécifiques, répondant à des besoins particuliers voir individuels d’où la
personnalisation.
La personnalisation a pour objectif de faciliter l’expression des besoins de l’utilisateur
afin de ne retenir que les informations qualifiées pertinentes pour un sujet donné en écartant
celles non pertinentes. Cependant, cette pertinence est définit par un ensemble de critères et de
préférences personnalisables et spécifiques à chaque utilisateur ou communauté d’utilisateurs et
stocké dans une structure appelée Profil Utilisateur. Dans ce contexte, plusieurs approches ont vu
le jour, et chacune d’elles aborde la notion de personnalisation selon ses idées mais l’objectif
commun est d’acheminer des solutions efficaces vers la gamme des problématiques relatives à
cet axe de recherche.
Le but de notre travail est de découvrir comment ce champ de recherche prend sa place
dans les bases de données relationnelles en parcourant les progrès atteints dans ce domaine et les
difficultés rencontrées. Ainsi, et comme les exigences d’analyses décisionnelles face à
l’éclatement du volume de données manipulées donne lieu à la mise en place des nouveaux
concepts tels que entrepôt de données et OLAP (On Line Analytical Processing) qui sont rangés
dans une nouvelle classe de bases de données dites multidimensionnelles et qui n’a pas
bénéficier parfaitement de la personnalisation en raison de sa fraîcheur et surtout sa particularité,
on a consacré dans ce travail une partie pour étudier les progrès achevés dans ce champ de
recherche ainsi que les obstacles rencontrée et les perspectives proposées.
Après avoir exploré la personnalisation dans les bases de données multidimensionnelles
(entrepôts des données) et les travaux contribuant à l’avancement des recherches dans cet axe,
nous proposerons comme contribution un algorithme pour la génération de l’ensemble de toutes
les formes d’affichage possibles que peut prendre le résultat d’exécution d’une requête MDX.
7
Chapitre 1
Les entrepôts de données
1. Introduction :
Dans ce 1er chapitre, nous présenterons les concepts généraux qui caractérisent les
entrepôts de données, leur objectif, leur modélisation...etc. Et ensuite nous présenterons les
systèmes OLAP (On Line Analytical Process), qui permettent l’interrogation efficace des
entrepôts de données selon une vue multidimensionnelle de celle-ci.
2. Vocation des entrepôts de données :
L’entrepôt de données permet avant tout d’intégrer des sources de données. Mais son
objectif final n’est autre que de supporter un processus d’analyse en ligne. Par rapport aux
aspects d’intégration et d’analyse, l’entrepôt se trouve finalement être au cœur de l’architecture
décisionnelle dont l’objectif est de construire de l’information utile à l’aide à la décision.
2.1. Intégration de sources de données
Un système d’intégration a pour objectif d’assurer à un utilisateur un accès à des sources
multiples, réparties et hétérogènes, à travers une interface unique. En effet, l’avantage d’un tel
système est que l’utilisateur se préoccupe davantage de ce qu’il veut obtenir plutôt que comment
l’obtenir, l’objectif étant l’obtention d’informations. Ainsi, cela le dispense de tâches telles que
chercher et trouver les sources de données adéquates, interroger chacune des sources de données
en utilisant sa propre interface et combiner les différents résultats obtenus pour finalement
disposer des informations recherchées. Différentes solutions ont été proposées face au problème
de l’hétérogénéité des sources réparties de données.
En effet, pour faire des recherches sur l’ensemble de ces sources, une intégration de
celles-ci est nécessaire. Deux approches sont alors envisageables : migrer les requêtes vers les
sources de données ou migrer les données pour les centraliser dans une source cible. Ceci
consiste à suivre respectivement une approche "non matérialialisée", appelée aussi approche
virtuelle ou une approche "matérialisée", appelée aussi approche d’entreposage [Boussaid et
al,2003].
Ainsi, on parle généralement de système OLAP, sous-entendant ainsi un système
d’informations répondant aux Règles évoquées par Codd ou aux critères FASMI. L’aspect
analyse y est crucial. C’est d’ailleurs cet aspect qui est mis en avant lorsque l’on oppose le terme
OLAP à celui d’OLTP « On Line Transaction Processing ». Dans ce cas, ce sont les
caractéristiques des applications qui sont comparées. Les applications OLTP ont une architecture
permettant de gérer des transactions en temps réel. Elles peuvent être vues comme des
applications de production permettant d’effectuer des traitements factuels tels que l’ajout, la
suppression et la modification de clients par exemple. Les applications OLAP sont, quant à elles,
des applications d’aide à la décision permettant d’effectuer des traitements ensemblistes qui ont
pour objectif de résumer l’information en réduisant une population à une valeur, un
comportement. Dans ce cas, l’aspect « en ligne » s’applique à l’analyse, c’est le temps de
9
Chapitre 1
Les entrepôts de données
réponse qui doit être quasi instantané. Les deux types d’applications peuvent alors être comparés
selon différents aspects. Nous présentons le tableau comparatif suivant inspire de [Teste, 2000],
qui dresse les comparaisons d’un point de vue données et d’un point de vue utilisateurs.
Bases de production
Entrepôts de données
Exhaustives, détaillées
Résumées, agrégées
Courantes
Statiques
Mises à jour
Recalculées
Dynamiques
Statiques
Orientées applications
Orientées sujets d’analyse
De l’ordre des giga-octets
De l’ordre des téraoctets
Agents opérationnels
Décideurs
Nombreux
Peu
Concurrents
Non concurrents
Concurrents
Interrogations
Requêtes Prédéfinies
Requêtes imprévisibles
Réponses immédiates
Réponses moins rapides
Accès à peu d’informations
Accès à de nombreuses
informations
Données
Utilisateurs
Le focus sur l’analyse peut également être envisagé dans le contexte du terme analyse
OLAP, i.e. analyse en ligne. Dans ce cas, il s’agit d’un type d’analyse qui se distingue des
analyses statistiques ou de la fouille de données par exemple, qui sont présentes en fin de
l’architecture décisionnelle. Nous reviendrons par la suite sur ce concept d’analyse en ligne.
2.2. Au cœur de l’architecture décisionnelle
L’entrepôt de données est le support nécessaire à la réalisation d’une architecture
qualifiée de décisionnelle, qui va permettre, comme l’indique son nom, l’aide à la décision grâce
au processus d’analyse qu’elle offre.
Cette architecture décisionnelle, peut être représentée classiquement selon le schéma de la fig 1.
On peut y distinguer la partie sources, la partie gestion des données et enfin la partie analyse. On
parle généralement d’architecture n-tiers en raison des différentes couches possibles pour gérer
les données (entrepôt, magasin, etc.) et réaliser des analyses.
10
Chapitre 1
Les entrepôts de données
Cette architecture met en avant deux phases caractéristiques que sont l’intégration des
données et l’analyse. Ces phases sont basées sur cinq éléments essentiels qui composent le
système décisionnel :
• sources de données : ce sont les bases de production (relevant d’un système OLTP), les
fichiers . . . qui correspondent à des sources internes ; mais elles peuvent également être
d’origine externe (Internet, bases de partenaires, etc.) ;
• entrepôt de données : c’est le lieu de stockage massif où sont centralisées les
informations utiles pour les décideurs ; il est associé a un ensemble de métadonnées
(informations sur les données) qui forme en quelque sorte un référentiel de données
contenant différentes informations telles que les Règles de transformation et de nettoyage
des données permettant d’assurer différentes taches telles que la maintenance de
l’entrepôt.
• magasins de données : ce sont des extraits de l’entrepôt orientés métiers, activités (on
parle de données verticalisées), contenant un volume moindre de données, permettant
alors des analyses plus rapides ;
• cubes de données : ce sont des contextes d’analyse multidimensionnels ;
1
[FAVRE, 2007]
• outils d’analyse : ils permettent de manipuler les données et de les analyser.
Les processus d’analyse peuvent s’opérer aussi bien sur l’entrepôt de données, que sur les
magasins de données, ou encore sur les cubes de données.
11
Chapitre 1
Les entrepôts de données
3. Stratégie de conception et modélisation des entrepôts de données :
En 1996, Bill Inmon [Inmon, 1996] définit un entrepôt de données comme étant une
« collection de données orientées sujet, intégrées, non volatiles et historisées, organisées pour le
support du processus d’aide à la décision ». Les données sont « orientées sujet » dans la mesure
où elles sont organisées par thème, l’entrepôt de données est organisé autour des sujets majeurs
et des métiers de l’entreprise.
Il permet une vision transversale des différentes activités de l’entreprise. Le fait que les
données soient « intégrées » exprime leur provenance de sources différentes. Cette intégration
nécessite une bonne connaissance des sources de données, des Règles de gestion, de la
sémantique des données, etc. En outre, les données sont « historisées » afin de rendre possible la
réalisation d’analyses au cours du temps, nécessitant un recours à un référentiel temporel associe
aux données. De plus, les données sont dites « non volatiles ».
Cela signifie que les données stockées au sein de l’entrepôt de données ne peuvent pas
être supprimées. Une requête émise sur les mêmes données à différents intervalles de temps doit
donner le même résultat. Cela doit permettre de conserver la traçabilité des informations et des
décisions prises. Enfin, les données sont « organisées pour le support du processus d’aide à la
décision » ; il s’agit en l’occurrence d’une organisation multidimensionnelle. Cette organisation
est en effet propice à l’analyse et, en particulier, à l’agrégation, comme nous le montrerons par la
suite [FAVRE, 2007].
3.1. Stratégie de conception
L’un des points clés de l’entreposage réside dans la conception du schéma. En effet, les
possibilités d’analyse sont conditionnées par ce dernier. C’est pourquoi différents travaux ont
propose des méthodes pour déterminer le schéma de l’entrepôt [Kimball et al, 2000], [Golfarelli
et al, 1998[, [Moody et al, 2000], [Trujillo et al, 2001]. La construction du schéma de
l’entrepôt n’étant pas une tâche facile, plusieurs travaux ont propose l’automatisation partielle
[Soussi et al, 2005], ou complète de cette tâche [Kim et al, 2003], [Peralta et al, 2003], [Phipps
et al, 2002].
Par exemple, dans [Peralta et al, 2003], des Règles symbolisent la connaissance que l’on
a sur la construction d’un entrepôt de données. Les Règles définies sont par exemple, la
combinaison de deux tables pour en fournir une troisième, la suppression de données ne vérifiant
pas une condition, ... Chacune des Règles est spécifiée grâce à une description, des structures
cibles, un état de départ, des conditions d’application et un état final. C’est un algorithme qui
gère l’ordre d’exécution des différentes Règles pour la génération du schéma final. Cette
génération consiste en une succession de transformations sur le schéma source, chaque Règle
déterminant quelle transformation doit être appliquée en tenant compte des différentes conditions
de conception fournies par le schéma transforme, de la base de données source et des relations
entre les deux.
Un autre exemple d’automatisation de la construction du schéma est proposé dans [Kim
et al, 2003]. Dans le contexte de la CRM (Customer Relationship Management), des Règles de
type « si-alors » permettent de représenter les campagnes marketing à analyser.
12
Chapitre 1
Les entrepôts de données
La clause « si » présente les caractéristiques déterminant la population cible de la
campagne marketing (exemple : clients âgés entre 20 et 30 ans et dont les achats pour les deux
derniers mois sont supérieurs à 100 euros), et la clause « alors » comprend les caractéristiques de
la campagne marketing elle-même (par exemple, support de la campagne : envoi d’un e-mail,
indicateurs à suivre : nombre d’e-mails lus).
L’approche orientée données ignore les besoins d’analyse à priori. Elle concerne en
particulier les travaux sur l’automatisation de la conception de schéma. En effet, cette approche
consiste à construire le schéma de l’entrepôt à partir de ceux des sources de données et suppose
que le schéma qui sera construit pourra répondre à tous les besoins d’analyse.
Par exemple, dans [Golfarelli et al, 1998], les auteurs proposent une méthodologie semiautomatique pour construire un schéma d’entrepôt de données à partir des schémas entitérelation qui représentent les bases de données sources. Dans [Peralta et al, 2003], les auteurs
représentent les connaissances sur la construction de l’entrepôt de données sous forme de Règles.
Un algorithme gère alors l’ordre d’exécution des Règles qui permettent une succession de
transformations sur le schéma source pour obtenir le schéma logique final de l’entrepôt.
Les approches orientées besoins d’analyse, quant à elles, proposent de définir le schéma
de l’entrepôt en fonction des besoins d’analyse et supposent que les données disponibles
permettront la mise en œuvre d’un tel schéma. Parmi les approches orientées besoins d’analyse,
certains auteurs proposent une distinction entre les approches guidées par les buts et les
approches guidées par les utilisateurs [List et al, 2002].
L’approche orientée buts suppose que le schéma de l’entrepôt est défini selon les
objectifs d’analyse de l’entreprise [Ulbrich et al, 2000]. Ainsi, on suppose que tous les employés
de l’entreprise ont des besoins d’analyses similaires vis-à-vis de l’exploitation de l’entrepôt de
données. Autrement dit, tous les employés ont la même vision analytique de l’entrepôt de
données.
Dans l’approche orientée utilisateurs, ces derniers sont interroges afin de collecter
l’ensemble de leurs besoins d’analyse avant de construire l’entrepôt de données, ce qui permet de
garantir l’acceptation du système par les utilisateurs. Cependant la durée de vie de ce schéma
peut être courte, étant donne que le schéma dépend beaucoup des besoins des personnes
impliquées dans le processus de développement de l’entrepôt. Pour y remédier, dans [Poe, 1996],
l’auteur propose une méthodologie pour conduire les entretiens avec les utilisateurs pour la
collecte des besoins. Il est alors recommande d’interroger différents groupes d’utilisateurs pour
avoir la vision la plus complété possible des besoins des utilisateurs.
Dans ces deux approches, nous considérons tout simplement qu’il s’agit de besoins
d’analyse qui sont exprimés, certains sont plus globaux, au sens où l’ensemble des utilisateurs
partage ce besoin, d’autres plus spécifiques, sans pour autant que l’aspect personnalisation ne
soit aborde d’ailleurs.
Enfin, l’approche mixte considère à la fois les besoins d’analyse et les données pour la
construction du schéma. Cette approche est celle qui fait l’objet de plus d’investigations
aujourd’hui. L’idée générale est de construire des schémas candidats a partir des données
(démarche ascendante) et de les confronter aux schémas définis selon les besoins (démarche
descendante) [Bonifati et al, 2001], [Phipps et al, 2002], [Soussi et al, 2005]. Ainsi, le schéma
construit constitue une réponse aux besoins réels d’analyse et il est également possible de le
mettre en œuvre avec les sources de données.
13
Chapitre 1
Les entrepôts de données
3.2. Concepts de base et modélisation des entrepôts de données
La modélisation des entrepôts de données se base sur deux concepts fondamentaux : le
concept de fait et le concept de dimension. Un fait représente un sujet d’analyse, caractérisé par
une ou plusieurs mesures, qui ne sont autres que des indicateurs décrivant le sujet d’analyse. Ce
fait est analysé selon des axes d’observations constituant également ses descripteurs.
Un entrepôt de données présente alors une modélisation dite « multidimensionnelle » puisqu’elle
répond à l’objectif d’analyser des faits en fonction de dimensions qui constituent les différents
axes d’observation des mesures. Ces dimensions peuvent présenter des hiérarchies qui offrent la
possibilité de réaliser des analyses à différents niveaux de granularité (niveaux de détail).
Ces concepts de base ont permis de définir trois schémas classiques reconnus comme
relevant d’un niveau logique de conception, en raison du recours à la notion de table (table de
faits, table de dimension).
Le premier schéma est le schéma en étoile. Il se compose d’une table de faits centrale et
d’un ensemble de tables de dimension. Le deuxième schéma est le schéma en flocon de neige. Il
correspond à un schéma en étoile dans lequel les dimensions ont été normalisées, faisant ainsi
apparaitre des hiérarchies de dimension de façon explicite. La normalisation permet un gain
d’espace de stockage en évitant la redondance de données, mais engendre une dégradation des
performances, dans la mesure où elle multiplie le nombre de jointures à effectuer pour l’analyse.
Le troisième et dernier schéma est le schéma en constellation, aussi appelé flocon de faits. Ce
schéma fait coexister plusieurs tables de faits qui partagent ou pas des dimensions communes
(hiérarchisées ou non).
Au-delà de ces schémas logiques qui sont à la base des représentations
multidimensionnelles, un travail a été réalisé afin de revenir sur une modélisation conceptuelle. Il
n’existe à ce jour aucun consensus sur la méthodologie de conception de l’entrepôt, comme cela
peut être le cas avec la méthode MERISE pour la conception des bases de données relationnelles
[Tardieu, 1983]. Il n’existe pas non plus de consensus au niveau de la modélisation de
l’entrepôt. Différentes pistes ont été proposées ; elles se basent sur l’utilisation de paradigmes
variés tels que le paradigme entité association comme dans [Tryfona et al, 1999], [Franconi,
1999] par exemple, le paradigme objet grâce à la modélisation UML (Unified Modeling
Language) comme dans [Lujan-Mora, 2006], [Abello, 2006], ou des paradigmes plus
spécifiques dédies tels que ceux présentés dans [Golfarelli, 1998]. Une bonne description et
comparaison de ces modèles est donnée dans [Annoni, 2007].
4. Exploitation de l’entrepôt et Analyse OLAP
L’objectif final d’un entrepôt est l’analyse des données en vue de la prise de décision.
Différents types d’analyse peuvent être réalisés vue l’analyse en ligne OLAP. Il s’agit en
l’occurrence d’une navigation dans les données. Cette analyse peut être qualifiée d’exploratoire.
Le principe général est d’arriver au cours de la navigation à détecter des points intéressants
qu’on essaye de décrire, d’expliquer en naviguant, par exemple en allant chercher davantage de
détails, pour cela il existe plusieurs types d’OLAP.
14
Chapitre 1
Les entrepôts de données
4.1 Type d’OLAP [FAVRE, 2007] :
4.1.1 ROLAP :
(Relational On-Line Analytical Process), il permet le stockage infini des données dans un
SGBD relationnel. Le langage SQL (Structured Query Language) est utilisé pour effectuer les
différents traitements sur les données, en utilisant des requêtes en générale très complexes et très
exigeantes en termes de ressources et de temps d’exécution. Les systèmes relationnels sont plus
performants pour de gros volumes de données et proposent des mécanismes de sécurité plus
poussés (poser un filtre sur les requêtes, réduisant l’accès à certaines données à un groupe
d’utilisateurs).
4.1.2 MOLAP :
(Multidimensional On-Line Analytical Process) c’est une approche multidimensionnelle
« pure », les données sont stockées dans une base de données multidimensionnelle (cube) le plus
souvent propriétaire. Il ya la limitation quand à la quantité des données traitées. Serveur de
traitement OLAP est l’approche la plus adaptée aux traitements. Un serveur, conjointement avec
la base de données, est dédié à effectuer les différents traitements de données. Dans ce cas les
performances en termes de rapidité sont généralement très bonnes.
4.1.3 HOLAP :
(Hybrid On-Line Analytical Process), c’est une approche qui permet de combiner les
avantages de ROLAP et de MOLAP. Il s’agit d’exploiter une technologie multidimensionnelle
pour les données agrégées (agrégats) et une approche relationnelle pour les données détaillées.
4.1.4 DOLAP :
(Desktop On-Line Analytical Process), apparue assez récemment, c’est une petite
quantité de données (mini-base multidimensionnelle ou extraction de cube) dans un fichier sur le
poste client de l'utilisateur. Un nombre limité de traitements OLAP se font sur le poste client de
l’utilisateur et sont assurés par un client de traitement OLAP. Il s’agit d’une alternative
«bureau».
Aujourd’hui plusieurs termes sont apparus comme JOLAP [WEB6] (JAVA OLAP) qui est une
API (Application Programming Interface) JAVA (Langage de programmation orienté objet)
permettant de se connecter à des applications et des serveurs OLAP, tentant de normaliser
l’accès aux bases de données multidimensionnelles et également comme OOLAP (Object
OLAP), faisant référence à l’utilisation du modèle objet, mais cette technologie n’apparait pas
dans les solutions commerciales et elle fait l’objet de travaux de recherche [JUNG et AL, 2004].
4.2 Analyse d’OLAP
L’analyse OLAP est l’un des modes d’analyse les plus courants dans le décisionnel. Elle
permet de mettre en évidence une analyse particulière des données qui est l'objet d'un
questionnement particulier.
15
Chapitre 1
Les entrepôts de données
4.2.1 Opérations OLAP liées à la structure :
Ce sont les opérations qui agissent sur la structure multidimensionnelle, qui visent à
changer le point de vue des données.
Opérations
Extraction d’un
données (Dice)
Pivot (Rotate)
Description
bloc de elle extrait un “sous-cube’’ du cube principal. Donc elle
travaille que sous un sous-cube
consiste à faire effectuer à un cube une rotation autour d’un
de ces axes passant par le centre de deux faces opposées, de
manière à présenter un ensemble différent.
Permutation (Switch)
consiste à inter-changer la position des membres d’une
dimension.
Extraction d’une Tranche du consiste à sélectionner une dimension, il s’agit de couper une
cube (Slice)
tranche du cube afin d’observer les données de la dimension.
Division (Split)
consiste à présenter chaque tranche du cube et passer d’une
présentation tridimensionnelle d’un cube à sa présentation
sous forme d’un ensemble de tables. Sa généralisation permet
de découper un hypercube de dimension 4 en cubes
Emboitement (Nest)
permet d’imbriquer des membres à partir du cube.
L’intérêt de cette opération est qu’elle permet de grouper sur
une même représentation bidimensionnelle toutes les
informations (mesures et membres) d’un cube, quel que soit le
nombre de ses dimensions.
Enfoncement (Push)
permet de combiner les membres d’une dimension aux
mesures du cube, i.e. de faire passer des membres comme
contenu de cellules.
4.2.2 Les opérations OLAP liées à la granularité :
Les opérations agissant sur la granularité d’observation des données, caractérisent la
hiérarchie de navigation entre les différents niveaux. Elles correspondent aux opérations
suivantes :
Opérations
Description
Forage vers le haut (Drill-up ou Consiste à représenter les données du cube à niveau de
Roll-up ou Scale-up)
granularité supérieur conformément à la hiérarchie définie sur
la dimension. Une fonction d’agrégation est utilisée (somme,
moyenne, etc.) en paramètre à l’opération, indique comment
sont calculés les valeurs du niveau supérieur à partit de celles
du niveau inférieur
Forage vers le bas (Drill-down Elle fait l’inverse de la précédente (Roll-up), elle consiste à
ou Roll-down ou Scale-down)
représenter les données du cube à niveau de granularité de
niveau inférieur, donc sous une forme plus détaillée
(descendre dans la hiérarchie d’une dimension).
16
Chapitre 1
Les entrepôts de données
5. Conclusion
Dans ce chapitre, nous avons évoqué les principaux concepts lies a la conception et a
l’exploitation des entrepôts de données. Cette présentation nous a permis de positionner le
contexte général des travaux qui seront présentées. La réussite du processus d’entreposage
repose entre autres sur une bonne conception du schéma, puisque c’est ce dernier qui va
déterminer les possibilités d’analyse de l’entrepôt.
Ainsi, de nombreux travaux de recherche ont été menés sur la conception de schéma des
entrepôts de données. Ces travaux témoignent aujourd’hui de la nécessite de prendre en compte à
la fois les sources de données et les besoins d’analyse [Nabli et al, 2005], plutôt que d’avoir
recours, par exemple, à une approche uniquement guidée par les données telle que celle proposée
par [Golfarelli et al, 1998]. Mais, une fois l’entrepôt de données construit, ces sources de
données et ces besoins d’analyse peuvent subir des changements.
17
Chapitre 2
Les langages d'interrogation des entrepôts de données
1. Introduction :
Ce chapitre est consacré aux langages d’interrogation des entrepôts de données. Nous
citerons les différents types de langages de données, quelques langages de manipulation des
entrepôts de données et nous présenterons la forme des requêtes OLAP (On Line Analytical
Process) sous MDX (MultiDimensional eXpressions).
2. Les langages de données :
La représentation multidimensionnelle des données a donner naissance aux nouveaux
langages de données permettant de définir, et de manipuler les schémas des entrepôts de données
d’une manière assimilable par la machine. Ces langages de données sont constitués d’un
ensemble d’opérations qui peuvent être classées selon le type de langage de données.
2.1 Types de langages de données :
Les langages de données dédiés aux entrepôts de données sont classés en trois types et
qui se présentent comme suit [RAVAT et AL, 2002] et [CROZAT, 2002]:
2.1.1
Le langage de définition de données (LDD) :
Ce langage permet de définir les opérateurs nécessaires à la définition d’un schéma
multidimensionnel comme la création des cubes (définition des faits), dimensions et hiérarchies
ainsi que la mise à jour (la modification et / ou la suppression) de ses éléments.
2.1.2 Le langage de contrôle des données (LCD) :
Ce langage permet de gérer la sécurité de l’entrepôt de données, il définit les opérateurs
nécessaires à l’affectation et à la suppression des droits des utilisateurs (les permissions) sur les
éléments du schéma multidimensionnel.
2.1.3 Langage de manipulation des données (LMD) :
Ce langage adresse des requêtes à l’entrepôt de données et définit les opérateurs
nécessaires à la consultation des données.
3. L’extension de SQL (Structured Query Language) :
La majorité des outils du marché proposent une modélisation ROLAP. Dans ces systèmes
chaque dimension est implantée sous forme d’une table. Chaque fait est défini par une table et
son identifiant est une clé primaire composée des clés étrangères correspondantes aux
dimensions liées.
Néanmoins, le langage d’assertion standard des bases de données relationnelles (SQL
(Structured Query Language), iso 1992) sur lequel reposent ces outils n’est pas adapté et manque
d’expressivité pour la définition d’une base multidimensionnelle (limitation dans l’analyse de
données). De même les requêtes de comparaison utilisées dans le décisionnel sont difficiles à
formuler, certaines ne sont pas formulables ; c’est le cas du classement.
19
Chapitre 2
Les langages d'interrogation des entrepôts de données
C’est pour cela que les SGBD (Systèmes de gestion des bases de données) relationnels
(ORACLE) proposent une extension pour le langage d’interrogation SQL (Structured Query
Language). ORACLE étend l’opérateur GROUP BY en intégrant les commandes CUBE et
ROLL UP qui permettent l’expression de calculs de sous totaux.
Microsoft dans SQL SERVEUR propose un langage pour l’interrogation des bases de
données multidimensionnelles en étendant la clause SELECT pour permettre l’affichage et la
navigation des données en ligne et en colonnes [WEB7].
Cependant, les SGBD relationnels (Systèmes de gestion des bases de données) essaient
d’intégrer certains concepts de l’approche OLAP mais ils restent incomplets et ne profitent pas
de la puissance des concepts multidimensionnels.
Par exemple, dans [RAVAT et AL, 2002], un langage dédié aux bases multidimensionnelles
implantées est proposé sous une forme relationnelle OLAP (OLAPSQL), ce langage intègre les
commandes de définition, de contrôle et de manipulation d’une base de données
multidimensionnelle organisée en constellation. Ce langage repose sur l’exécution du standard
SQL (Structured Query Language). Le langage de définition (OLAP-LDD) permet de spécifier
simplement les composants (faits et dimensions et hiérarchie) du schéma multidimensionnel avec
une abstraction complète des tables relationnelles. Le langage de contrôle (OLAP-LCD) permet
de définir de manière uniforme des droits sur tout ou partie du schéma. Enfin le langage de
manipulation (OLAP-LMD) offre un mécanisme unique de consultation reposant sur l’extension
de la commande SELECT.
4. Les langages graphiques
[HAFYANE,2008 ] :
de
manipulation
de
données
On va présenter quelques travaux de recherche, ainsi que des outils commerciaux, qui ont
proposé des interfaces graphiques dédiées aux multidimensionnelles. Les magasins de données
sont généralement destinés aux décideurs de l’entreprise souvent non spécialistes de
l’informatique. Il doit, donc, être muni d’interfaces graphiques adaptées à des utilisateurs non
informaticiens.
Cependant, les travaux sur les langages de manipulation graphique, sont beaucoup plus rares que
ceux sur les langages de définition graphique.
Dans [CABIBBO ,1998], l’auteur a proposé en plus d’une algèbre, un langage de
manipulation graphique simple. Dans [BOHNLEIN et AL, 2002], les auteurs ont proposé un
requêteur graphique basé sur une interface utilisateur simple et conviviale.
Mais ces travaux ne s’appuient pas sur une algèbre multidimensionnelle et le formalisme
du modèle employé, le SDWM (Semantic Data Warehouse Model), est trop chargé pour des
représentations de schémas en constellation.
Au sein de l’équipe SIG (Systèmes d’informations de gestion), dans [TOURNIER,
2004], un langage graphique de manipulation et d’interrogation de données est proposé basé sur
une algèbre multidimensionnelle de [RAVAT et AL, 2002].
Ces propositions ont été validées par l’implantation de prototype GRAPHIC OLAP-SQL.
4.1 GRAPHIC OLAP-SQL :
Est un outil graphique qui repose sur un ensemble d’interfaces utilisateurs permettant de
définir, de manipuler, de visualiser et consulter des bases de données multidimensionnelles
structurées en constellation. Il intègre essentiellement deux modes de fonctionnement : textuel au
20
Chapitre 2
Les langages d'interrogation des entrepôts de données
travers du langage OLAP-SQL, et graphique au travers d’un graphe de visualisation de la
constellation. Quant aux outils commerciaux, ils s’améliorent d’année en année.
4.2 COGNOS PowerPlay7.3 :
Numéro un mondial du “Business Intelligence’’, ce logiciel, outil d’analyse OLAP se
présente sous la forme d’un tableur muni de fonctions très évoluées. Il permet l’analyse d’un
cube de données (un schéma en étoile). La présentation conceptuelle du cube se fait sous la
forme d’arborescence. Les requêtes se font par glisser, déplacer des éléments (mesures,
dimensions, hiérarchies, paramètres et attributs faibles) vers la fenêtre de présentation des
résultats (un tableur), en les positionnant en lignes ou en colonnes.
4.3 CRYSTAL Analysis 10 :
‘Crystal decisions’, acquisition du géant ‘Business Objects’, développe ‘Crystal
Analysis’, un outil de visualisation de résultants et une extension pour Excel. Il propose pour la
visualisation des données conceptuelles la même arborescence utilisée par tous les concurrents et
se limite à la visualisation d’un seul fait. Des fonctionnalités avancées de sélection sont mises en
avant mais elles requièrent toutes de maitriser un langage de requête textuel (SQL en général).
4.4 RATIONAL Rose XDE :
Rose XDE, un éditeur de schémas UML (Unified Modeling Language) très connu est
édité par Rational Software, racheté par IBM. Mais comme UML est une méthode sur le
paradigme objet, la modélisation multidimensionnelle via XDE n’est pas indépendante de
l’architecture sous-jacente et impose le support du paradigme objet.
4.5 Limitations des langages graphiques :
Selon [TOURNIER, 2004], ces logiciels bien que puissants et faciles d’utilisation,
souffrent de l’absence de visualisation globale du schéma multidimensionnel car ils se limitent à
la présentation d’un unique schéma en étoile.
De plus, le système de visualisation par arborescence est absolument inutilisable en cas
de schéma large, imposant un parcours lent et fastidieux. Il existe aussi des outils issus de
l’industrie, qui se concentrent essentiellement sur les aspects de l’interrogation.
Plusieurs requêteur (Business Object, Tempo, Discover 2000) et outils OLAP
(PowerPlay, Discover, Essbase, Express, Mercury) sont proposés. Les requêteurs facilitent la
construction de requêtes SQL (jointures masquées, alias de noms d’attributs,...). Les outils
OLAP (On Line Analytical Process) se concentrent sur l’analyse multidimensionnelle en
proposant des objets graphiques (tableaux croisés,...). Ces outils manipulent les données de
l’entrepôt ou des magasins.
Cependant, même si les requêteurs graphiques sont simples et facilitent l’accès aux
informations, ils restent limités pour un processus d’analyse complexe. Les outils spécifiques à
OLAP offrent de nombreuses possibilités de manipulation multidimensionnelle, mais ils sont
difficiles d’accès pour les non informaticiens [RAVAT et AL, 2002].
21
Chapitre 2
Les langages d'interrogation des entrepôts de données
5. Le langage de script de manipulation des données MDX:
5.1 Définition [WEB8], [WEB9] :
MDX, acronyme de MultiDimensional eXpressions, est un langage de requêtes qui sont
exprimées sous forme d’un script à base d’instruction. Le MDX comprend une syntaxe qui prend
en charge la définition le contrôle et la manipulation de données et d’objets multidimensionnels
(bases de données multidimensionnelles) crée par Microsoft, de la même manière que SQL est
utilisé pour les bases de données relationnelles(Le langage MDX est aux cubes ce que SQL est
aux tables) [PEGUIRON, 2006].
5.2 Caractéristiques de MDX :
Le MDX offre une syntaxe assez similaire à celle de SQL, mais il ne s’agit pas d’une
extension du langage SQL, en fait, certaines des fonctionnalités prises en charge par MDX
peuvent être fournies, avec certes moins d’efficacité ou de facilité, par SQL.
A l’instar d’une requête SQL, chaque requête MDX nécessite une demande de données
(la clause SELECT), un point de départ (la clause FROM) et un filtre (la clause WHERE). Ces
mots clés, ainsi que d’autres, fournissent les outils nécessaires à l’extraction de portions de
données spécifiques d’un cube en vue d’une analyse. Le MDX fournit également un jeu robuste
de fonctions pour la manipulation des données extraites, ainsi que la possibilité d’enrichir MDX
avec des fonctions définies par l’utilisateur.
MDX, comme, SQL fournit un langage de définition de données, DDL ( Data Definition
Language), pour la gestion des structures de données. Certaines commandes de MDX permettent
de créer et de supprimer des cubes, des dimensions, des mesures, ainsi que les objets qui leur
sont subordonnés.
5.3 Forme d’une requête OLAP sous MDX :
Le cube est l’élément (structure) clé dans les bases de données multidimensionnelles. Un
cube peut avoir plusieurs dimensions et la dimension Mesure est la seule que chaque cube doit
contenir. Chaque dimension des membres provenant d’attributs et chaque membre représente un
élément unique au sein d’une dimension. Les mesures sont les membres de la dimension
Mesures et ces mesures représentent les données organisées par les autres dimensions du cube.
Les concepts de cube, dimension, membre et mesure sont importants pour mieux se rendre
compte de la syntaxe MDX (voir exemple).
Une requête MDX permet de rechercher des mesures à des niveaux différents de
granularité, en formulant une expression unique et peut construire une visualisation pour
l’ensemble des résultats.
Pour cela, une syntaxe a été proposée pour rédiger une requête OLAP sous MDX dans
[SPOFFORD, 2001], [ISRAEL, 2001] et [GRAUA, 2004] et qui se présente ainsi :
SELECT les colonnes, les lignes et autres axes (sélectionner les axes d’analyse)
FROM le cube (le cube sur lequel porte l’analyse)
WHERE les dimensions tranchées (conditions de sélection d’axes d’analyse)
22
Chapitre 2
Les langages d'interrogation des entrepôts de données
Exemple: si nous avons le cube ‘Ventes’ présenté dans cette figure
FIG. 2 - Cube « Ventes »
Ce cube est composé de trois dimensions qui sont Temps, Produit, Magasin et la
dimension
Mesures.
La dimension Temps contient deux membres T1etT2
La dimension Produit contient deux membres P1et P2
La dimension Magasin contient deux membres V1etV2
La dimension Mesures contient deux mesures (membres) quantité(q) et prix(p).
La requête MDX qui permet de voir les quantités vendues des produits P1 et P2 et qui
correspondent aux temps T1 et T2 est la suivantes :
SELECT {Produit.[P1],Produit.[P2]} ON COLUMNS,
{Temps.[T1],Temps.[T2]} ON ROWS
FROM Ventes
WHERE Mesures.quantite
5.4 Structure du résultat d’une requête MDX :
Le résultat d’une telle requête est un tableau multidimensionnel, dont les cellules ne
contiennent qu’une valeur (contrairement aux cubes) et dans lequel on peut naviguer avec les
opérations décrites dans le chapitre précédent.
Une requête MDX permet de rechercher des mesures à des niveaux différents de
granularité en formulant une expression unique et de spécifier comment afficher la réponse sous
forme de table croisée. De plus la syntaxe MDX distingue l’identification des axes d’affichage
par ’COLUMNS’ et ’ROWS’. Ainsi, l’emplacement des informations de la requête sur ces axes
est précisé.
Exemple: si nous avons le cube ‘Ventes’ présenté ci après;
Le résultat de la requête de l’exemple précédent est une table croisée de deux lignes et deux
colonnes et qui se présente ainsi :
23
Chapitre 2
Les langages d'interrogation des entrepôts de données
5.5 Les avantages et inconvénients du langage MDX [WEB10] :
Le langage MDX possède une syntaxe un peu ardue. Néanmoins le temps que nous
passons à son assimilation est largement compensé par celui que nous gagnons lors de l’écriture
des requêtes du langage SQL [PEGUIRON, 2006]. De plus, les fondements et les formalisations
théoriques de ce langage sont mal connus, et il présente l’inconvénient de ne pas être clos.
Si l’utilisation interactive des cubes est intéressante, leur structure multidimensionnelle
associée à la puissance de ce langage en fait des outils de prédilection pour le reporting
opérationnel d’entreprise ou d’administration. Au-delà de cet aspect, le MDX permet d’explorer
les données de cubes et crée la vraie valeur autour des données et c’est ici que se trouve la plus
value. Il n’en reste pas moins que MDX reste un langage, qui n’est pas forcément simple à
appréhender. Des éditeurs commencent à proposer des outils multidimensionnels.
6. Conclusion :
L’interrogation des entrepôts de données est une tache cruciale, qui permet de naviguer
dans le cube de données afin d’exploiter les résultats obtenus. Il s’agit de manipuler des données
à l’aide des outils qu’on appelle langages d’interrogation.
Dans ce chapitre nous avons présenté quelques langages d’interrogation des entrepôts de
données permettant de manipuler les données du cube, alors que nous sommes intéressés par les
outils de manipulation des données et parmi les quels le langage MDX qui est le plus répandu
pour l’interrogation des entrepôts de données. Nous avons également présenté l’expression d’une
requête OLAP sous MDX que nous allons utiliser dans la suite de notre travail. Mais lors de
l’exploitation des données de l’entrepôt par les différents langages, l’utilisateur s’embrouille
dans cet important volume d’informations disponibles et le filtrage des informations pertinentes
de celles non pertinentes rendent son analyse difficile. Pour cela des approches de
personnalisation sont proposées afin de faciliter l’extraction des informations, qui l’objet du
chapitre suivant.
24
Chapitre 3
La personnalisation des données
1. La personnalisation de l’information :
La personnalisation de l’information constitue un enjeu majeur pour l’industrie
informatique. Que ce soit dans le contexte des systèmes d’information d’entreprise, du
commerce électronique, de l’accès au savoir et aux connaissances ou même des loisirs. La
pertinence de l’information délivrée, son intelligibilité et son adaptation aux usages et
préférences des clients constituent des facteurs clés du succès ou du rejet de ces systèmes.
1.1 Architecture du système personnalisé [MOULOUDI, 2007] :
Dans cette architecture illustrée à la Fig.3 : Architecture d’un système de
personnalisation, l’auteure montre la possibilité de personnalisation en utilisant l’un des deux
types de la personnalisation suivants :
1.1.1 Personnalisation de la requête :
Qui consiste à l’intégration des informations du profil à la requête entrante afin de
sélectionner le contenu.
1.1.2 Personnalisation du résultat :
Qui consiste à l’intégration des informations du profil au résultat après avoir sélectionner
le contenu.
Etant donnée, une requête « q » est transformée à l’aide de profil utilisateur pour obtenir
une requête « q’ ». Le moteur de requête exécute cette dernière « q’ » sur la source de données
« I » afin d’extraire une partie de données « I’= I (q’) ». A la fin de l’opération
le moteur de la personnalisation transforme le résultat « I’ » pour obtenir le résultat « I’’ = q’’
(I’) » présentés à l’utilisateur (La FIG.3 illustre mieux ce contexte).
• Si I’’= q’(I) alors la personnalisation est faite uniquement par transformation (réécriture)
de la requête,
• Si q’= q alors la personnalisation est faite uniquement par transformation (tri, agrégation,
etc.) de la réponse de la requête.
FIG.3 - Architecture d’un système de personnalisation
26
Chapitre 3
La personnalisation des données
1.2 Les domaines d’utilisation de la personnalisation de l’information :
Nous avons évoqués au début de ce chapitre une définition de la personnalisation de
l’information, ainsi que l’architecture d’un système personnalisé. Mais , dans quels domaines est
utilisée la personnalisation ?!
1.2.1 Dans le domaine de l’interaction homme-machine (IHM) :
Le profil va contenir des informations qui vont permettre au système d’adapter
l’affichage des résultats selon les préférences de l’utilisateur. Exemple : c’est le cas de
l’environnement de Yahoo ! Qui recueille dans le profil un certain nombre d’informations
personnelles et adapte la page d’accueil en fonction des centres d’intérêt de l’internaute.
1.2.2 Dans le domaine de la recherche d’information (RI) :
Le profil utilisateur peut être représenté de différentes manières dont nous évoquons ici
quelques exemples. Dans certain cas, le profil utilisateur peut être confondu avec la requête ellemême de l’utilisateur. Dans ce cas, le profil utilisateur est alors défini par un vecteur de motsclés, avec éventuellement un poids associé à chaque mot-clé [PRETSCHNER et GAUCH,
1999]. Un profil utilisateur peut également contenir les statistiques d’actions avec le système
(nombre de clics, temps de lecture, etc.) [BRADLEY et AL, 2000], ceci permet par la suite
d’inférer sur les préférences en cernant davantage sont comportement.
Une autre alternative consiste à stocker dans le profil utilisateur des fonctions d’utilités
sur un domaine d’intérêt, qui permettent d’exprimer l’importance relative des sujets de ce
domaine, les uns par rapport aux autres [CHERNIACK et AL, 2003].
1.2.3 Dans le domaine des bases de données (BD) :
Le profil utilisateur peut contenir par exemple les habitudes d’interrogation de celui-ci,
en l’occurrence les prédicats souvent utilisés dans ces requêtes ou des ordres dans ces prédicats
[KOUTRIKA et IOANNIDIS, 2004].
1.2.4 La personnalisation dans les entrepôts de données :
Si la personnalisation n’est pas une idée nouvelle dans les domaines précédemment
évoqués, elle constitue un axe de recherche émergent dans le domaine des entrepôts de données.
L’intérêt de cet axe de recherche peut être motivé à la fois vis-à-vis de la volumétrie des données
connue pour être importante dans les entrepôts de données et du rôle central que joue l’utilisateur
dans le processus décisionnel. En effet, il est en interaction directe avec le système au niveau de
l’analyse des données, en particulier dans le contexte de la navigation. Différentes pistes ont
d’ores et déjà été initiées.
La première proposition s’inspire largement du domaine de la recherche d’informations
(en RI ou en BD). En effet, il s’agit d’affiner la requête de l’utilisateur pour mieux répondre à ses
besoins [BELLATRECCHE et AL, 2005], [BELLATRECCHE et AL, 2006] et
[MOULOUDI, 2007]. Dans ce cas, le concept de profil est utilisé. Il s’agit d’exprimer des
préférences et de satisfaire des contraintes de visualisation. Ce travail trouve un intérêt
particulier dans la mesure où l’aspect visualisation est primordial dans le contexte de l’analyse
en ligne.
27
Chapitre 3
La personnalisation des données
La seconde voie se focalise davantage sur l’utilisation du système et se rapproche
davantage de ce qui se fait en IHM (Interaction Homme-Machine). En effet, dans [RAVAT et
AL, 2006], la personnalisation s’effectue au niveau de la navigation. Il s’agit de représenter les
habitudes d’analyse de l’utilisateur, sous forme de coefficients de préférences pour faciliter sa
navigation.
Un autre type de travail est abordé dans [CHOONG et AL, 2007]. Il s’agit de considérer
une analyse en ligne comme une session interactive durant laquelle l’utilisateur lance des
requêtes. Ainsi, il est intéressant que chaque utilisateur dispose de son propre espace de travail.
L’objectif étant d’organiser les requêtes, de faciliter leur réutilisation voir de partager ces
requêtes avec d’autres utilisateurs.
2. Le profil utilisateur :
2.1 Définition :
La notion de profil utilisateur apparait comme étant à la base de la personnalisation, mais
elle est loin d’être définie de façon standard malgré les Plusieurs approches développées.
Comme WebMate [CHEN et AL, 1998] et WebNant [ZACHARIS et
PANAYIOTOPOULOS, 2001] (Les approches adaptatives) et [PRETSCHNER et GAUCH
1999], [GAUCH et AL 2003] (Les approches sémantiques). Ainsi dans [BOUZEGHOUB et
KOSTADINOV, 2005], les auteurs tentent de classifier les différents types d’information
pouvant être contenues dans un profil utilisateur et de définir un modèle de profil générique et
flexible pouvant s’adapter à différents scénarios de la personnalisation. Dans [MOULOUDI,
2007], le profil utilisateur est défini comme étant :
“Une collection d’information sur l’utilisateur cette collection peut être vue comme un ensemble
de caractéristiques avec des valeurs associées contenant par exemple les préférences
d’utilisateurs’’ , ces préférences que nous évoquerons dans la troisième section.
2.2 Contenu du profil utilisateur :
Comme indiqué précédemment, un profil utilisateur peut être représenté simplement par un
ensemble de caractéristiques permettant au système d’identifier et de modéliser l’utilisateur tout
en respectant sa vie privée [FAVRE, 2007]. Cependant, même si cette vision fait consensus, la
structure et le contenu des différents profils pouvant être identifiés dans la littérature sont très
hétérogènes d’une application à l’autre. En effet, même si plusieurs applications visent à remplir
la même tâche, on peu souligner le fait qu’il existe presque autant de types de profils utilisateurs
qu’il y a d’applications. Un profil utilisateur ne se limite pas aux préférences sur le contenu des
données mais contient également [KOSTADINOV, 2008] :
- des informations personnelles, que l’on appelle aussi démographiques, telles que le nom,
le prénom, l’âge, etc.
- des préférences sur le contenu de la réponse à la requête, des préférences sur la
présentation de la réponse, et / ou des conditions d’exploitation.
Ces informations peuvent être complétées pour adapter encore mieux le processus de la
personnalisation de l’information.
28
Chapitre 3
La personnalisation des données
3. Les préférences utilisateur :
Des préférences utilisateur correspondent à un ensemble de critères permettant pour un
utilisateur spécifique :
- de mesurer la pertinence d’une information, et
- d’évaluer si une information est plus pertinente qu’une autre information.
3.1 Des préférences sur le contenu de la réponse à la requête :
Pour déterminer le contenu personnalisé, le profil doit porter sur les tuples de la réponse à
la requête. Un tel profil est défini et utilisé dans [AGRAWAL et WIMMERS, 2000]
[CHOMICKI, 2003], [KIEßLING, 2002] et [TORLONE et CIACCIA, 2002].
Par exemple [AGRAWAL et WIMMERS, 2000] offre un moyen d’exprimer les préférences du
profil utilisateur à l’aide de fonctions affectant des scores aux tuples de la réponse et permettant
de les ordonner selon leur importance et ainsi de déterminer quels sont les tuples les plus
intéressants. Notons qu’en SQL, l’ordonnancement des tuples peut être fait par l’intermédiaire de
la clause “order by’’ qui permet de classer et de trier les résultats SQL, mais “order by’’ ne
correspond pas à la prise en compte des préférences utilisateur.
3.2 Des préférences sur la présentation de la réponse :
Afin de faciliter la tâche d’analyse de la masse de données, la personnalisation de la
présentation permet de construire une façon adaptée pour afficher le contenu personnalisé. On
fait intervenir ici des informations du profil sur la présentation telle que la disposition des
informations à l’affichage. Ainsi, l’information affichée, même si c’est une réponse à une même
requête, n’est pas identique pour tous les utilisateurs qui ont souvent des besoins différents.
Ce type de personnalisation n’a pas été beaucoup traité dans les BDs. [DAS et AL, 2006]
ont introduit la sélection et l’ordonnancement d’attributs comme nouveau modèle d’extraction
d’informations de BD qui complète le modèle de ré-ordonnancement (ou de classification) de
tuples de résultat d’une requête [AGRAWAL et AL, 2003] [CHAUDHURI et AL, 2004].
L’approche est basée sur l’importance de l’attribut.
L’avantage de la méthode est de constituer une autre manière de présenter moins
d’attributs et de faciliter l’exploration des tuples de la réponse selon leur importance :
- la sélection permet de déterminer les attributs utiles à afficher, et
- l’ordonnancement permet d’ordonner les attributs sélectionnés par ordre décroissant de
leur utilité à l’affichage.
Les auteurs définissent plusieurs variantes pour la notion d’utilité d’attribut (le score, l’ordre,
l’ordre relatif, etc.). Ensuite, ils proposent une approche qui retourne et affiche les Top attributs
de chacune de ces variantes côte à côte.
3.3 Des conditions d’exploitation :
3.3.1 Contrainte :
Une contrainte est une fonction booléenne sur un ensemble de requêtes, elle est utilisée
pour exprimer des critères que les préférences de cellules d’un ensemble de réponses doivent
satisfaire. On trouve les conditions liées au matériel utilisé par l’utilisateur et/ou les contraintes
liées à l’utilisateur lui-même que nous allons distinguer en deux types :
29
Chapitre 3
La personnalisation des données
3.3.1.1 Contraintes techniques :
Ce sont les caractéristiques techniques des dispositifs utilisés. La taille d’affichage, la
capacité de la mémoire, la vitesse du réseau, etc., varient ainsi en fonction du matériel : PC,
ordinateur portable, téléphone WAP12, PDA13, etc.
La description des caractéristiques matérielles est utilisée dans le but d’afficher la
réponse à la requête dans un format cohérent avec les capacités du dispositif de sortie. Ces
caractéristiques sont vues comme des contraintes d’ordre matériel, que l’on doit satisfaire et
respecter lors de l’exécution de la requête et la présentation du résultat. Par exemple dans les
bases de données [KOUTRIKA et IOANNIDIS, 2005], propose de prendre en compte les
contraintes suivantes :
- cost : le coût d’exécution d’une requête doit être réduit au minimum ou satisfaire une
certaine limite supérieure.
- size : par définition, la personnalisation de requête vise d’une part à avoir de plus petites
réponses. D’autre part, les réponses vides sont toujours indésirables. Par conséquent, la
taille de la réponse doit être comprise dans un intervalle donné.
3.3.1.2 Contraintes utilisateur
Elles peuvent être liées à l’utilisateur lui même .Ce sont des règles qui vont déterminer
par exemple le type de la présentation du résultat souhaité par un utilisateur suivant sa fonction :
préférer une présentation sous forme d’un graphe à une présentation sous forme d’un arbre.
3.3.2 Le contexte de requête :
Dans [MOULOUDI, 2007], le contexte de requête peut être défini comme toutes les
contraintes qui forment un ensemble de paramètres intervenant dans l’exécution de la requête et
/ou la présentation de sa réponse.
- les différents paramètres intervenant dans l’exécution de la requête tels que le dispositif
d’accès à l’information, la connexion réseau, l’emplacement, etc.
- les paramètres intervenant dans la présentation de la réponse tels que les choix
disponibles pour l’affichage, l’organisation des résultats, etc.
Ces paramètres sont utilisés sous forme de contraintes dans le processus de personnalisation.
4. Le langage de préférence :
Le langage de préférence permet de décrire des préférences utilisateur et une méthode de
personnalisation, autrement dit un algorithme exploitant les préférences utilisateur qui sont
souvent représentées et stockées dans un profil propre à utilisateur et permet également le calcul
de la réponse personnalisée. On distingue deux types de langages de préférences par rapport à
l’approche de modélisation adoptée que nous évoquons dans ce qui suit, et qui sont :
- Le langage de préférence quantitatif,
- Le langage de préférence qualitatif.
30
Chapitre 3
La personnalisation des données
4.1 Les types d’approches de modélisations :
4.1.1 Approche quantitative :
Dans ce premier type d’approche, les préférences utilisateur sont exprimées (calculées) à
l’aide de fonctions qui attribuent une valeur à chaque élément et la pertinence d’un élément
dépend de la valeur attribuée.
4.1.2 Approche qualitative:
Dans ce second type d’approche, les préférences utilisateur sont exprimées par des
relations binaires de préférences.
4.2 Caractéristique d’un langage de préférence :
Un langage de préférence est caractérisé par :
-Les éléments sur lesquels portent les préférences utilisateur :
Les éléments pertinents pour l’utilisateur sont traités, il s’agit de déterminer les éléments sur
lesquels l’utilisateur porte son intérêt, comme ceux manipulés dans les bases de données
relationnelles (tuple, domaine d’attribut, etc.). Par exemple des préférences exprimées sur des
tuples vont permettre de spécifier comment comparer ces tuples.
-Le type de relation de préférence :
Précise la relation de préférence définie entre des éléments de base de données permettant de les
comparer. Cette relation de préférence peut être une relation binaire ou, plus spécifiquement une
relation d’ordre.
-Les compositions possibles des préférences :
Indique si on peut combiner les relations de préférence et quel type de composition est possible.
Cette composition est un aspect crucial au niveau de la modélisation de préférence car elle
permet d’exprimer de nouvelles relations tout en préservant les propriétés importantes des
relations d’ordre.
-L’utilisation des préférences conditionnelles :
Indique si un langage de préférence permet de modéliser une préférence qui dépend d’une
condition donnée.
5. La personnalisation et OLAP :
5.1 Le processus de personnalisation :
Le processus de la personnalisation a pour vocation de répondre aux trois questions cidessous : pourquoi, quoi et comment personnaliser pour faciliter l’accès à une ressource
importante d’informations ?
pourquoi ?
Fournir une réponse rapide, réduite, utilisable et adaptée à l’utilisateur en fonction de son profil
(défini par cet utilisateur ou appris) et du contexte.
quoi ?
L’adaptation prend en compte le contenu et la mise en forme de la réponse
comment ?
Il est possible de personnaliser, à l’aide de l’un ou l’autre des deux moyens suivants :
transformation de la requête et transformation de la réponse à la requête.
31
Chapitre 3
La personnalisation des données
5.2 Les types de personnalisation :
5.2.1 La personnalisation de la requête :
Consiste à transformer la requête de l’utilisateur, en effet, la requête de l’utilisateur est
enrichie avec le profil utilisateur, ensuite elle est exécutée par le système afin de fournir la
réponse personnalisée.
FIG.4 - La personnalisation avant l’accès aux données de cube
5.2.2 La personnalisation de la réponse :
Consiste à transformer la réponse, la requête de l’utilisateur est exécutée par le système,
ensuite la réponse est filtrée ou réordonnée afin d’aboutir à la réponse personnalisée.
FIG.5 - La personnalisation après l’accès aux données de cube
32
Chapitre 3
La personnalisation des données
5.3 Types de requêtes :
Dans [MOULOUDI, 2007], deux types de requêtes ont été distinguées qui sont :
5.3.1 Requêtes de comparaison :
Ce type de requêtes permet de déterminer si un élément est préféré à un autre, en effet, il
vérifie si des éléments sont comparables et indique l’élément préféré à l’autre. Et dans ce type on
trouve :
-Les requêtes de dominance, et
-Les requêtes d’ordre.
5.3.2 Requêtes d’optimisation :
Ce type de requêtes permet de déterminer l’ensemble des éléments préférés d’un
ensemble et on distingue :
-Les requêtes d’optimisation sans contraintes, et
-Les requêtes d’optimisation avec contraintes.
6. Travaux de personnalisation dans les entrepôts de données :
Comme nous l’avons déjà dit, le processus de personnalisation dans les entrepôts de
données est un axe émergent, donc il n’a pas été beaucoup traité dans les bases de données
multidimensionnelles. Dans [FAVRE, 2007], ces travaux peuvent être classés comme suit :
6.1 La personnalisation inspirée de la recherche d’information :
Avant de présenter ces travaux nous allons définir quelques concepts essentiels pour
mieux se rendre compte.
6.1.1 Concepts et définition :
6.1.1.1 Référence d’une cellule :
Une cellule ou fait de c est un tuple de l’instance de la table des faits f, et sa référence est
un tuple et elle est définie à partir de la table des faits.
Exemple :
Soit le cube de vente suivant : C= {D1, D2, D3, D4, F} tel que,
La dimension temps est D1= {Temps1, Temps 2, Temps 3, Temps 4, Temps 5, Temps 6},
La dimension produit est D2= {produit 1, produit 2, produit 3, produit 4},
La dimension ville est D3= {ville 1, ville 2, ville 3, ville 4},
La dimension mesure est D4= {quantite, prix},
Une cellule du cube de données vente présenté précédemment qui correspond au tuple
(Temps1, produit 1, ville 1, quantite, quantite 1). La référence de cette cellule est le tuple
(Temps1, produit 1, ville 1, quantite) appartenant respectivement aux dimensions temps, produit
et ville.
33
Chapitre 3
La personnalisation des données
6.1.1.2 Structure :
Définit le placement des dimensions sur les différents axes et l’ordre d’apparition des
membres de chaque dimension sur un axe donné. Et décrit avec précision la table croisée utilisée
pour afficher une instance donnée d’un cube. En MDX la structure est définie dans la requête.
Une structure d’affichage spécifie le moyen d’organiser un ensemble de références dans un
tableau croisé, notamment en précisant comment placer les dimensions du cube analysé sur les
axes d’analyse. Étant donné qu’un utilisateur peut préférer voir un même ensemble de références
en utilisant une structure donnée plutôt qu’une autre.
Exemple :
La dimension temps est placée en colonnes et la dimension produit est imbriquée dans la
dimension ville et sont placées en lignes.
6.1.1.3 Grille d’analyse :
Une grille d’analyse est le résultat (ou visualisation) de l’exécution d’une requête MDX
sous la forme d’une grille de cellules. Elle (grille d’analyse) constituée seulement d’un ensemble
de références de structures. Veut dire qu’elle ne contient pas de faits. Et pour chaque grille
possède une structure et un ensemble de références propre à elle. Dans la pratique, on constate
que les grille d’analyses considérées sont généralement des grilles régulières, dans le sens où leur
ensemble de références est un produit cartésien de sous ensembles de membres des différentes
dimensions d’analyse.
Exemple :
Le langage de requêtes MDX permet uniquement de définir des grilles d’analyse régulières.
6.1.1.4 Visualisation :
Une visualisation permet de présenter les données d’un cube à un utilisateur sous forme
d’une table croisée. Elle contient les données du cube et est caractérisée par unestructure qui
permet de préciser la forme de présentation des données du cube à l’affichage.
6.1.1.5 La contrainte de visualisation :
Indique si un cube avec sa structure peut être visualisé.
Exemple :
34
Chapitre 3
La personnalisation des données
6.1.2 Travaux de BELLATRECHE et AL 2005 :
Dans [BELLATRECHE et AL, 2005], les auteurs ont proposé une méthode pour la
personnalisation des requêtes OLAP en exploitant le profil utilisateur pour apporter une
meilleure visualisation à ce dernier (l’utilisateur). Dans cette approche, la personnalisation
consiste à transformer la requête utilisateur avant l’accès au cube de données.
Dans cette méthode, l’utilisateur est interrogé afin de donner ses préférences et une contrainte de
visualisation. Ces préférences utilisateurs qui classent les membres, les dimensions et la
contrainte de visualisation qui contrôlent les résultats sont stockées dans le profil utilisateur. Et
une définition du profil utilisateur dans le contexte OLAP est proposée.
Les préférences utilisateur définissent une relation de pré ordre total pour l’ensemble des
membres de toutes les dimensions. Cette relation de préordre total sur les membres utilisée pour
définir une relation monotone de préordre total sur les cubes. Par Exemple, pour les membres m1
est plus intéressant que m2 veut dire que m1
m2. Pour les cubes si le cube C1 est le sous cube
de C2 (C1 C2), alors C1 moins intéressant que C2 et C1 C2.
Les auteurs introduisent les contraintes de visualisation ou d’ordre machine dans ce contexte.
Ces contraintes précisent la taille de l’écran d’affichage du dispositif (machine), ou plus
précisément le nombre maximal de graduations qui peuvent être affichées sur les différents axes
d’analyse
Exemple :
Soit un cube de vente C composé de trois dimensions location, produit et temps et une
mesure quantité.
La dimension localisation contient quatre membres qui sont : L1, L2, L3, L4
La dimension temps contient six membres qui sont les années : A1, A2, A3, A4, A5, A6
La dimension produit contient quatre produits qui sont : P1, P2, P3, P4
Soient C1et C2 deux sous cubes de cube initial C tel que :
L’ensemble des membres de C1est l’ensemble M1= {L1, P1, P2, P3, P4, A3, A4, A5, A6},
L’ensemble des membres de C2 est l’ensemble M2 = {L1, L2, L3, L4, P1, P2, A5, A6},
Soit la relation de préordre total
définie sur les dimensions location, temps et
produit comme suit : (P1, P2) >p A6>p A5>p (L1, L2, L3, L4) >p (A1, A2, A3, A4) >p (P3, P4)
Donc nous avons : M1\ M2= {P3, P4, A3, A4} et M2\ M1= {L2, L3, L4}
Les membres les plus intéressants définis par
et qui distinguent C1 de C2 sont L1, L2 et
L3. Ces membres appartiennent à C2 et n’appartiennent pas à C1, donc C2 est préféré à C1
(C1 C2).
Soit la contrainte de visualisation VT, G définie comme suit : G= (4,4), veut dire que la grille
d’affichage est composée de quatre lignes et de quatre colonnes. Pour le cube C1, il ne peut pas
être affiché, mais le cube C2 peut être affiché (location en lignes, produit et temps en colonnes).
35
Chapitre 3
La personnalisation des données
6.1.3 Travaux de BELLATRECHE et AL 2006 :
L’approche de personnalisation des requêtes OLAP proposée dans [BELLATRECHE et
AL, 2006], qui se base sur les travaux réalisés dans [BELLATRECHE et AL, 2005] sur le
problème de la personnalisation des requêtes OLAP. Dans cette méthode, il s’agit de combiner la
requête originale de l’utilisateur (q) avec le profil utilisateur (Γ) qui contient ses préférences et
vérifiant les contraintes de visualisation pour avoir une requête (q*) personnalisée et prête à être
exécutée sur le cube de données.
Dans cette méthode, les auteurs ont proposé un modèle de préférence basé sur la relation
d’ordre partiel qui est plus flexible et plus pratique que celui proposé dans [BELLATRECHE et
AL, 2005], qui se présente ainsi : les préférences utilisateur définissent des relations d’ordre
partiel sur les membres de chaque dimension notée (<di) et sur toutes les dimensions notée (<d).
Par exemple pour les dimensions, D1 et D2 deux dimensions d’un cube, on dit que la dimension
D1 est plus intéressante que D2 si D2<d D1.
Et pour les membres d’une dimension, on dit que le membre m1 est plus intéressant que m2 si
m2<di m1 tel que m1 et m2 appartiennent à la même dimension. Ces relations d’ordre vues
précédemment sont combinées pour définir un ordre lexicographique sur les références de
cellules qui définissent à leur tour une relation d’ordre partiel sur les requêtes qui sont exprimées
en langage MDX. Par exemple si on prend deux requêtes q1 et q2, on dit que q2 est préférée à q1
pour un utilisateur, si son profil prétend que les références des cellules de la réponse de q2 sont
préférées à celles de q1.
Les auteurs introduisent les contraintes de visualisation ou d’ordre machine dans ce
contexte. Ces contraintes précisent la taille de l’écran d’affichage du dispositif (machine), ou
plus précisément le nombre maximal de graduations qui peuvent être affichées sur les différents
axes d’analyse.
Exemple :
Soit la requête MDX suivante :
SELECT {[Location].L1,[Location]. L2},
{[temps]. A3,[ temps]. A4,[ temps]. A5,[ temps].A6},
{[ produit].P3,[ produit].P4,[produit]. P1,[ produit]. P2}
FROM C
WHERE [Measures].quantite
Tel que C est le cube défini dans l’exemple précédent et les relations d’ordre définies sur les
dimensions (<d) et les membres de chaque dimension (<di) comme suit :
Temps <d location et produit <d location
A1<temps A2<temps A3<temps A4<temps A5<temps A6
P1 <produit P2 <produit P3<produit P4
L1, L2, L3, L4<location L1, L4<location L2, L3<location L1 et L3<location L2
La requête MDX personnalisée obtenue est :
SELECT {[temps]. A3,[ temps]. A4,[ temps]. A5,[ temps].A6} ON COLUMNS,
CROSSJOIN ({[Location].L1,[Location]. L2},
{[produit].P3,[ produit].P4}) ON ROWS
FROM C
WHERE [Measures].quantite
36
Chapitre 3
La personnalisation des données
Si nous avons une contrainte de visualisation qui permet d’afficher une table croisée de
quatre lignes et quatre colonnes, alors le résultat de cette requête peut être affiché.
6.1.4 Travaux de MOULOUDI 2007:
L’approche de personnalisation des requêtes OLAP proposée par Mouloudi dans
[MOULOUDI, 2007], peut être effectuée à l’aide de méthodes différentes et qui se présentent
ainsi :
-dans la première, il s’agit de personnaliser la requête de l’utilisateur qui veut dire transformer la
requête de l’utilisateur avant l’accès aux cubes de données,
- et l’autre consiste à personnaliser la réponse de la requête utilisateur qui veut dire transformer
le résultat de la requête utilisateur après l’accès au cube de données.
L’auteur a montré que sous certaines conditions (la relation d’ordre définie sur les grilles
d’analyse est monotone à l’inclusion des références et la contrainte définie sur les grilles
d’analyse est invariante par projection) que les deux types de personnalisation aboutissent aux
mêmes résultats. Mais lors de l’implémentation, l’auteur s’est limité à la première seulement.
Dans cette approche, la personnalisation de la visualisation d’une requête OLAP exprimée en
langage MDX passe par la personnalisation d’une grille d’analyse associée à cette visualisation.
Les préférences utilisateur dites de contenu définissent un ordre lexicographique sur les
références de cellules du cube de donné considéré, cet ordre sur les références désigné par ordre
utilisateur sur les références noté <R, est défini à partir de deux types d’ordre : un ordre partiel
sur les dimensions et sur les ensembles de membres de chaque dimension comme dans
[BELLATRECHE, 2006]. Et les préférences utilisateur de placement dites de présentation
définissent un ordre total strict sur les dimensions et sur tous les membres des de chaque
dimension. Ces préférences sont utilisées pour définir un ordre (n’est pas total) sur les structures
noté (<s). Par exemple une structure S1 est préférée à S2 si S2 <s S1 (voir annexe B).
L’ordre défini sur l’ensemble des références est combiné avec celui défini sur les
structures pour avoir un ordre strict sur les grilles d’analyses noté (<G). On dit que la grille G1 est
préférée à G2 (G2<G G1) si l’ensemble de références de G1 est préféré à celui de G2 ou les deux
ensemble de références sont équivalents et la structure de la grille G1 est préférée à celle de G2
telle que : une grille G= (R, S) (est un couple composé d’un ensemble de références R et une
structure S). Cette définition nous montre que les préférences utilisateur de placement ne sont
prises en compte pour comparer deux grilles que si les préférences utilisateur de contenu ne
permettent pas de les comparer, donc elle privilégie le contenu sur la présentation.
Elle a introduit les contraintes utilisateur et de dispositif, les premières sont liées à un
utilisateur ; elles précisent comment un utilisateur veut visualiser ses données et les secondes
sont liées à un dispositif d’affichage particulier (PDA, téléphone mobile, etc.). Elles précisent par
exemple quelle est la taille de l’écran d’affichage du dispositif, ou plus précisément le nombre
maximal de graduations qui peuvent être affichées sur les différents axes d’analyse.
37
Chapitre 3
La personnalisation des données
FIG.6 - Ordre sur les visualisations
Les préférences utilisateur sur les visualisations définissent une relation d’ordre partiel,
-La relation d’ordre utilisée pour comparer les visualisations est obtenue par composition des
d’ordres des ensembles de références et d’ordre sur des structures,
-La combinaison des ordres est une composition multidimensionnelle lexicographique,
-Dans cette solution ils proposé des requêtes prédéfinies pour l’utilisateur.
-Exemple :
Soit l’ensemble de référence suivant : R= {L1, L2, L3} × {P1, P2, P3, P4} × {A3, A4, A5,
A6}
Temps <D Location et Produit <D Location, notons que Temps, Produit et mesures ne sont pas
comparables.
Pour la dimension produit P1 <produit P2 <produit P3<produit P4
Pour la dimension location L4<location L1, L4<location L2, L3<location L1 et L3<location L2
L1 et L2 ne sont pas comparables.
Pour La dimension temps A1<temps A2<temps A3<temps A4<temps A5<temps A6
Soient les trois sous ensembles de références suivant :
R1 = {L3} × {A5, A6}, R2= {L1} × {A5, A6} et R3 = {L2} × {A5, A6},
Nous avons pour tout tuple t = (L3, A5, A6) de la Grille1 et t’ de Grille2 = (L2, A5, A6)
Les membres qui rendent Grille1 et Grille2 différentes appartiennent à la dimension
Location, d’après l’ordre défini sur les membres de cette dimension L3<location L1, la
Grille2 est préférée à Grille1.
Les membres qui rendent Grille1 et Grille3 différentes appartiennent à la dimension
Location, d’après l’ordre défini sur les membres de cette dimension L3<location L2, la
38
Chapitre 3
La personnalisation des données
Grille3 est préférée à Grille1.
Les membres qui rendent Grille2 et Grille3 différentes appartiennent à la dimension Location,
d’après l’ordre défini sur les membres de cette dimension, L1 et L2 ne sont pas comparables.
Donc la Grille2 et la Grille3 ne sont pas comparable.
FIG. 7
-
6.1.5 Conclusion :
Le tableau ci-dessous récapitule l’essentiel des travaux de personnalisation dans les
entrepôts de données étudiés. Même si l’objectif est le même et qui est celui d’adapter la réponse
à la requête utilisateur en faisant intervenir ses préférences. Les méthodes proposées pour cela (la
personnalisation) n’abordent pas nécessairement ce problème de la même manière (ou abordent
ce problème presque de la même manière, et elles différent au niveau de la modélisation des
préférences).
Dans chaque méthode de personnalisation, on cherche à personnaliser les requêtes utilisateur
selon son profil. Ce dernier (profil) contient des préférences qui définissent des relations d’ordre
dans [BELLATRECHE, 2006] et [MOULOUDI, 2007] ou de préordre dans
[BELLATRECHE, 2005]. Par l’ajout de contraintes qui ne sont pas nécessairement prises en comptes
par toutes les méthodes [BELLATRECHE, 2005] vise d’abord à produire des résultats intéressants
pour un utilisateur, ensuite présenter les résultats sous la forme souhaitée par l’utilisateur et en fin avoir
pour une requête personnalisée de plus petites réponses.
Selon le type de personnalisation, les méthodes visant à personnaliser le contenu de l’information
utilisent les préférences utilisateur sur des requêtes sans avoir l’accès au cube de données, l’inconvénient
est le risque d’avoir les réponses vides et de ne fournir aucune information à l’utilisateur. Ce n’est pas
nécessairement le cas pour les méthodes personnalisant après l’accès au cube de données. En effet le
traitement peut se faire après l’exécution de la requête utilisateur, c'est-à-dire sans la prise en compte de la
personnalisation dans le calcul des résultats, ensuite, trouver parmi ces résultats ceux jugés intéressant du
point de vu utilisateur.
39
Chapitre 3
La personnalisation des données
6.2 La personnalisation dans l’évolution de schémas :
6.2.1 Travaux de FAVRE 2007 :
L’approche de personnalisation proposée dans [Favre, 2007], est une solution basée sur
une évolution du schéma de l’entrepôt guidée par les utilisateurs. Il s’agit en effet de recueillir
les connaissances de l’utilisateur et de les intégrer dans l’entrepôt de données afin de créer de
nouveaux axes d’analyse.
Cette solution s’appuie sur la définition d’un modèle formel d’entrepôt de données évolutif, basé
sur des règles «si-alors», appelées aussi règles d’agrégation, qui permettent de représenter les
connaissances des utilisateurs. Le modèle d’entrepôt évolutif est soutenu par une architecture qui
place l’utilisateur au cœur du processus d’évolution du schéma de l’entrepôt.
Cette approche se base donc sur une architecture qui permet de gérer tout le processus
décisionnel : acquisition des connaissances utilisateurs sous forme de règles, intégration de ces
règles dans l’entrepôt, évolution du schéma de l’entrepôt et enfin l’analyse en ligne.
L’évolution de schéma consiste plus précisément en l’ajout de nouveaux niveaux de granularité
dans les hiérarchies de dimensions existantes. Afin de soutenir cette architecture, l’auteur à
proposé un modèle d’entrepôt de données évolutif à base de règles d’agrégation qui permettent
l’expression des connaissances utilisateurs, ainsi que la mise à jour des hiérarchies de dimension.
Ce modèle, nommé modèle R-DW (Rule-based DataWarehouse), permet de modéliser un
entrepôt de données évolutif flexible, pour la prise en compte de nouveaux besoins d’analyse.
L’architecture globale de l’entrepôt de données évolutif guidé par les utilisateurs est présentée
dans la Fig8. Architecture générale d’entrepôt de données évolutif guidé par les utilisateurs. Elle
se décompose en quatre modules, le premier module est l’acquisition des connaissances
utilisateurs [ESPIL et AL, 2002].
40
Chapitre 3
La personnalisation des données
FIG . 8
Le modèle R-DW à base de règles est composé d’une partie fixe et d’une partie évolutive
Fig.9 : Principe du modèle R-DW. La partie fixe comprend la table des faits et les dimensions
qui lui sont directement reliées. La partie évolutive comprend l’ensemble des hiérarchies qui sont
définies lors de la conception du schéma initial ou lors de la personnalisation des analyses.
FIG ; 9
Le modèle R-DW ne permet pas l’ajout d’un niveau directement relié à la table des faits,
qui constituerait ainsi une nouvelle dimension. Ce choix est motivé par deux aspects.
Premièrement, il assure une cohérence des données stockées dans l’entrepôt. Si l’on envisage la
création de dimension par les utilisateurs, cela engendrerait une évolution dans le processus
d’alimentation de l’entrepôt. En effet, une telle évolution nécessite une modification du
processus ETL qui ne peut être réalisée par l’utilisateur. Deuxièmement, la partie fixe du modèle
41
Chapitre 3
La personnalisation des données
R-DW constitue une réponse à de besoins d’analyse initiaux, pouvant être communs aux
différents utilisateurs, défini lors de la conception de l’entrepôt.
La modélisation initiale fournit ainsi un schéma de l’entrepôt pouvant servir à l’ensemble des
utilisateurs pour l’analyse.
Comme son nom l’indique, le modèle R-DW est basé sur des règles. Celles-ci vont
permettre la création de nouvelles hiérarchies par ajout de niveau de granularité au-dessus d’une
table de dimension ou l’extension des hiérarchies existantes par ajout d’un niveau de granularité
en fin de hiérarchie ou au sein de celle-ci.
Les règles utilisées dans le modèle R-DW sont de type «si-alors», tel que :
-La clause «si» permet d’exprimer les conditions sur les attributs caractérisant le niveau de
granularité inférieur, c’est-à-dire le niveau à partir duquel sera généré le nouveau niveau.
-Dans la clause «alors» figure la définition du niveau de granularité à créer, c’est-à-dire la
définition des valeurs des attributs caractérisant ce nouveau niveau de granularité.
Ces règles qualifiées de règles d’agrégation puisqu’elles établissent un lien d’agrégation entre
deux niveaux de granularité dans une hiérarchie de dimension. Les règles d’agrégation « si-alors
» exprimées par les utilisateurs doivent satisfaire deux contraintes pour que la création du niveau
se réalise Fig.10
La première contrainte est que les clauses «si» des règles d’agrégation définissent une
partition des instances du niveau inférieur. La deuxième contrainte est liée au lien d’agrégation
défini entre le niveau inférieur et le niveau créé. Chaque sous-ensemble d’instances de cette
partition est associé à une et une seule instance du niveau créé.
FIG . 10
Exemple :
Soit l’entrepôt de données suivant qui nous permet d’étudier le NBI (Net Banking
Income), ce qui correspond à ce que rapporte un client à l’établissement bancaire. Le schéma
multidimensionnel considéré est fourni dans la figure d’au-dessous. Il permet d’analyser la
mesure NBI selon les dimensions CLIENT, AGENCE et ANNEE. La dimension AGENCE
présente une hiérarchie.
42
Chapitre 3
La personnalisation des données
FIG . 11
Il est ainsi possible d’agréger les données selon le niveau UNITE_COMMERCIALE qui
est un regroupement d’agences par rapport à leur localisation géographique, tel que le montre le
schéma de la dimension AGENCE de la Fig.12
FIG . 12
Supposons qu’un utilisateur veut analyser le NBI selon le type d’agence ; il sait qu’il en
existe trois : type «étudiant» pour les agences ne comportant que des étudiants, type «non
résident» lorsque les agences ne gèrent que des clients ne résidant pas en France et le type
«classique» pour les agences ne présentant pas de particularité. Ces informations n’étant pas
présentes dans l’entrepôt, il est impossible pour lui d’obtenir cette analyse.
Nous proposons alors à l’utilisateur d’intégrer sa propre connaissance sur les types d’agence afin
de créer un niveau TYPE_AGENCE. Cela passe par la mise à jour (création) de la hiérarchie de
la dimension agence en ajoutant le niveau TYPE_AGENCE au-dessus du niveau AGENCE
selon le schéma de la Fig.13
L’utilisateur pourra ainsi réaliser une analyse du NBI en fonction du TYPE_AGENCE.
43
Chapitre 3
La personnalisation des données
FIG . 13
Exemple de règles d’agrégation :
Les règles suivantes déterminent les valeurs des attributs Age_Class et Age_Class_Description
qui caractérisent le niveau de granularité AGE construit au- dessus de la dimension CLIENT :
Règle1 :
Si Age < 18
Alors Description_ Class_ Age= ‘ mineur ’ ET Classe_ Age = ‘moins de 18 ans’
Règle2 :
Si Age 18
Alors Description_ Class_ Age= ‘ majeur’ ET Classe_ Age = ‘plus de 18 ans’
6.3 La personnalisation dans la réutilisation des requêtes :
6.3.1 Travaux de CHOONG et AL 2007 :
L’auteur et ses collaborateurs ont proposé dans [CHOONG et AL, 2007], un modèle de
personnalisation des requêtes d’analyse en ligne de données multidimensionnelles, qui permette
de lancer, de naviguer dans des requêtes, d’organiser, de réutiliser, de partager une analyse, de
découvrir des requêtes fréquemment posées et de Proposer des recommandations à l’utilisateur et
son implantation est en cours qui fait partie de leur perspective.
Ce modèle est divisé en deux niveaux, données et système. Le niveau données permet de décrire
les données manipulées, c’est-à-dire ce qui compose une analyse, à savoir les objets et les liens
entre eux. Le niveau système, spécifie comment il est possible de naviguer dans les données ou
comment éditer ces données.
Pour le premier niveau, les auteurs ont considéré 3 relations : Objects qui est une relation
ternaire. Un fait object(Oid,A,V) indique que l’objet identifié par Oid a un descripteur qui a pour
attribut A et valeur V. Contexts qui est une relation binaire. Un fait contexts(Cid, Oid) indique
que l’objet identifié par Oid appartient au contexte identifié par Cid. references est une relation
quaternaire.
44
Chapitre 3
La personnalisation des données
Un fait références (Oid1,Oid2, A, V) indique qu’il existe un lien de l’objet Oid1(requête
OLAP) vers l’objet Oid2(requête OLAP) et que ce lien est décrit par un attribut A et sa valeur V.
Les instances de ces 3 relations constituent une instance de la Base de contexte. On remarque
que cela forme un graphe qui va être questionné par la suite.
Le système est une paire <Base, Etat> où Base est une instance de base de contextes et Etat est
un triplet <P, Onav, Oed> qui représente ce qui est montré à l’utilisateur. P est une requête,
écrite sous forme de programme à l’aide du langage défini précédemment. Onav est l’identifiant
de l’objet (requête OLAP) posé par autre utilisateur, appelé l’objet navigué. Oed est l’identifiant
de l’objet (requête OLAP) créé par l’utilisateur et appelé l’objet édité.
La base de contextes qui contient les objets, les contextes et les références et qu’une
instance de base de contextes est un ensemble fini de faits tel que chaque objet appartient à un et
un seul contexte. On remarquera donc que l’ensemble des contextes est une partition de
l’ensemble des objets.
Une base de contextes peut être décrite comme un graphe, plus une partition de l’ensemble des
noeuds du graphe (les contextes) dont les noeuds sont les objets, les arcs sont les références entre
les objets et les ensembles d’objets (les contextes) voir Fig.14
Cette visualisation est similaire au modèle utilisé pour décrire le Web où les pages sont les
noeuds, les liens entre les pages sont les arcs et les ensembles de pages des sites.
FIG . 14
Dans cette approche, les notions de hubs et autorités sont définies. Une autorité est un
contexte qui est référencé par tous les autres contextes et un hub est un contexte qui permet
d’accéder à tous les autres contextes. Il y a deux(2) types de descripteurs : les descripteurs
associés aux objets (requête OLAP) et les descripteurs associés aux références.
Les descripteurs associés aux objets. La plupart du temps, ces descripteurs sont ajoutés par
l’utilisateur pour caractériser un objet (requête OLAP). De tels descripteurs peuvent être : topic
dont la valeur donne une description textuelle de l’objet (requête OLAP) ou code dont la valeur
est le code (SQL, MDX) de la requête. Cependant, dans certains cas, ces descripteurs associés
aux objets sont ajoutés ou mis à jour par le système afin de collecter les informations relatives à
la navigation de l’utilisateur. De tels descripteurs peuvent être : launched dont la valeur est un
compteur qui indique combien de fois l’objet a été évalué, browsed dont la valeur est un
compteur qui indique combien de fois l’objet a été visualisé ou result dont la valeur est le résultat
de la requête qui est usuellement affiché sous la forme d’un tableau croisé (table
multidimensionnelle).
45
Chapitre 3
La personnalisation des données
Le second type, à savoir, les descripteurs associés aux références qui indiquent comment
les objets (requêtes OLAP) sont organisés soit à l’intérieur d’un contexte (on parle de références
intra contexte) soit entre les contextes (on parle de références inter contextes). Des références
intra contexte peuvent être, par exemple : order of importance : dont la valeur exprime une
relation d’ordre sur les objets d’un contexte. Ceci peut être interprété comme un ordre
d’importance intéréssant pour l’utilisateur, query containment dans ce cas, la référence relie 2
requêtes de sorte que l’une filtre l’autre (c’est le sens usuel du query containment), qyey logs :
dont la valeur exprime dans quel ordre les requêtes ont été définies. En ce qui concerne les
références inter contextes, les descripteurs peuvent être : comes-from : qui indique que l’objet
source est une copie d’un autre objet et qu’il a donc été pris dans un autre contexte, copied-to qui
est le descripteur inverse de comes-from.
Cette approche s’intéresse à celle de recommandation. Le terme recommandation est issu
du E-commerce et consiste à indiquer à l’utilisateur que s’il est intéressé par un objet donné, il
risque d’être aussi intéressé par d’autres objets pour telle ou telle raison.
Pour ce faire, les auteurs exploitent un type particulier de références nommées comes-from qui
sont créées lorsqu’un utilisateur réutilise une requête d’un autre utilisateur.
Une recommandation peut être définie de différentes manières.
Par exemple un utilisateur est en train de visualiser l’objet (requête OLAP) O1, une
recommandation à O1 sont tous les objets référencés par les réutilisation de O1. Ici, l’objet
(requête OLAP) O2 est une réutilisation de O1, l’objet (requête OLAP) O3a, l’objet (requête
OLAP) O3b sont référencés par l’objet (requête OLAP) O2, donc Tous les objets dans la zone
violette peuvent être des recommandations pour un utilisateur visualisant O1 (exemple
recommandantion-figure suivante)
FIG.15 - Exemple de recommandation
Exemple :
Cet exemple illustre une analyse simple exécutée dans un environnement multiutilisateur
en montrant les actions de l’utilisateur pour organiser, réutiliser, évaluer ou partager des requêtes
OLAP. Il y a 2 utilisateurs : user1 et user2 et 2 cubes de données : ‘Tourisme’ & ‘Agriculture’.
Ainsi qu’une base de sessions d’analyses qui ont déjà été faites par user1 et user2.
Voici un exemple d’environnement de travail, celui user2.
46
Chapitre 3
La personnalisation des données
User2 peut poser de nouvelles requêtes sur l’ensemble des données existantes (les deux de cubes
de données) et de visualiser les résultats.
User2 peut naviguer dans ‘Tourisme en Malaisie’ ou sont stockés les objets de user1 (ses
requêtes OLAP ou les résultats d ses requêtes) lors d’une précédente analyse (partage et
réutilisation). Cet espace de travail ou session d’analyse est appelé un contexte (C’est un
ensemble d’objets (requêtes OLAP)).
6.4 La personnalisation contextuelle :
6.4.1 Travaux de PITOURA et STEFANIDIS 2002:
Dans [PITOURA et STEFANIDIS, 2002], les auteurs ont proposé une approche de
personnalisation basée sur l’utilisation des préférences contenues dans le profil utilisateur et qui
porte sur le contenu. Ces préférences dites préférences quantitatives contextuelles sont
représentée par le modèle de fonction de score.
Le contexte est défini comme un terme utilisé pour exprimer la situation de l’utilisateur
au moment de la soumission de sa requête, incluant l’environnement entouré (temps et/ou
l’endroit). Dans cette approche, les auteurs ont utilisé le contexte pour montrer (indiquer) qu’un
attribut ne fait pas partie du schéma de la base de données. Pour avoir plus de flexibilité dans le
contexte décrit, les attributs contextuels prennent des valeurs dans les domaines d’hiérarchies.
Cette approche est valable pour les deux cas de modèles quantitatif et qualitatif. Ces attributs de
contexte appartiennent à une hiérarchie associée des niveaux d’agrégation de données (peuvent
être visualisée aux niveaux de granularité différents).
Une hiérarchie d’attributs est le couple (L, <), tel que : L= {L1, L2,... Lm-1, All} de m
niveaux et “<’’est un ordre partiel entre les niveaux de L (L1<L2<... Lm-1< All), All est le niveau
le plus haut (le plus agrégé) et L1est le niveau le plus bas.
Une préférence contextuelle quantitative « P » sur un schéma d’une base de données R (A1, A2,
A3, ..., Ad) est le triplet (EC, prédicat, score) tel que :
-EC est l’état de contexte, qui est un n-tuple de la forme (c1 , c2,……. Cn), où ci appartient au
domaine de l’attribut Ci
-prédicat de la forme
qui spécifie la condition en fonction de aij appartenant au domaine Aij (1< ij <d),
-et score est un nombre réel compris entre 0 et 1 (voir exemple).
Environnement de contexte est un ensemble de paramètres de contexte et on distingue
deux types de paramètres de contexte simples qui sont des attributs qui prennent des valeurs dans
leurs domaines et composés qui sont des ensembles de paramètres de contexte simples.
Le score d’un tuple est déterminé de la façon suivante :
-Si aucune des préférences spécifiée pour l’état de contexte (EC) n’est applicable au tuple, c'està-dire, les prédicats correspondant dans les préférences définies pour EC ne sont pas prise part,
alors le score par défaut “0’’ est attribué au tuple t.
-Si plusieurs préférences sont applicables au tuple t, alors le score attribué à ce dernier est celui
de la préférence qui a le plus grand score.
Le prédicat d’un tuple t noté préd1(t) englobe un autre prédicat du même tuple t noté préd2 si
quelque soit le tuple t appartient à l’instance de la base de données, préd1(t)
47
Chapitre 3
La personnalisation des données
-préd2(t), qui veut dire que préd1 est plus spécifique que préd2 et dans ce cas le score du tuple est
celui du prédicat le plus spécifique (l’utilisateur spécifie ou affine).
Cette méthode consiste en premier lieu à définir les préférences qui vérifient les
différentes circonstances et les regrouper en accordant l’une à l’autre :- Leur partie du contexte, ainsi en créant les groupes de préférences applicables pour les états
de contextes semblables.
-Leur partie du non-contexte (i.e. la partie prédicat et score), ainsi en créant les groupes de
préférences qui produisent des scores similaires.
En second, les préférences de chaque groupe sont utilisées pour calculer le score
intéressant de chaque tuple d’un groupe donné. Et en dernier, pour chaque requête soumise par
l’utilisateur, on cherche le contexte similaire dans les groupes de requete et en utilisant les scores
de tuples des groupes retournés afin d’obtenir rapidement des résultats classifiés basés sur les
scores calculés.
FIG . 16
Exemple :
Soit le schéma de la base de données suivant :
Film (titre, année, réalisateur, genre, langue, durée)
Les paramètres simples de contexte (attributs de contexte) sont : compagnie, période et humeur
Utilisateur (id_user, âge, sexe)
Environnement de contexte est le quadruplet (utilisateur, compagnie, période, humeur)
Une instance de la base de données présentée au-dessous
48
Chapitre 3
La personnalisation des données
Soit le profil suivant qui contient ces préférences :
P1= ((amis), genre = horreur, 0.8), P2= ((amis), réalisateur = Hitchcock, 0.7)
P3= ((seul), genre = Drama, 0.9), P4= ((seul), (genre = Drama ˄ réalisateur = Spielberg),0.5)
Dans le contexte amis, les deux préférences P1 et P2 sont applicables au tuple t2.
Dans le contexte seul, les deux préférences P3 et P4 sont applicables au tuple t3.
Dans le premier cas, aucun des deux prédicats de P1 et P2 n’englobe l’autre donc le score
de t2 est le maximum des deux prédicats qui est 0.8. Dans l’autre cas le prédicat de P4 englobe le
prédicat de P3 le score de t3 est 0.5 parce que l’utilisateur a attribué le score 0.9 pour film de
Drama et le score 0.5 pour film de Drama et réalisateur Spielberg.
7. Conclusion :
Au cours de ce chapitre, nous avons vu que le processus de personnalisation n’a pas été
beaucoup traité dans les bases de données multidimensionnelles (les entrepôts de données). Au
cours de notre étude bibliographique, nous avons pu trouver quelques travaux traitant la
personnalisation de requêtes dans le domaine des entrepôts de données sur lesquels nous avons
présentés une synthèse sur :
Des langages de préférences à travers les critères, tels que la relation de préférence
utilisée pour représenter des préférences utilisateur, quels sont les éléments d’un cube de
données sur lesquels un utilisateur peut exprimer ses préférences, quelles sont les combinaisons
possibles de préférences, etc.
Des méthodes de personnalisation à travers des critères, tels que comme le type de la
personnalisation, sur quoi porte la personnalisation (objet de la personnalisation), etc.
Dans les bases de données multidimensionnelles, les méthodes proposées personnalisent le
contenu de l’information retournée à l’utilisateur et se sont intéressées peut à la présentation. Ces
méthodes se sont concentrées sur un objectif principal et qui est celui de fournir rapidement
l’information pertinente qui intéresse l’utilisateur en tenant compte de sont profil.
La personnalisation de requêtes et leurs réutilisations dans les bases de données
multidimensionnelles nécessitent la prise en compte de ses particularités comme la difficulté
d’explorer la masse d’information en raison de la structure complexe des données
multidimensionnelles (hiérarchie, niveaux, etc.).
Notons que les travaux étudiés proposent de personnaliser le contenu de l’information en
satisfaisant les contraintes de présentation. Leur objectif est de permettre à l’utilisateur de
trouver l’information pertinente et lui faciliter son exploration. Ces approches nous ont permis
d’opter pour une approche hybride basée sur leur combinaison, telle que celles proposées dans
[BELLETRECHE et AL, 2005], [BELLETRECHE et AL, 2006], [MOULOUDI et AL,
2005] et [PITOURA et STEFANIDIS, 2002] pour la personnalisation des requêtes OLAP qui
porte sur le contenu et la présentation et [CHOONG et AL 2007] pour leurs réutilisations.
49
Chapitre 3
La personnalisation des données
Il faut signaler que ce domaine (la personnalisation dans les entrepôts de données) est
encore au stade de recherche. De ce fait, il résulte un manque de démarches de conception
complètes qui traitent de toutes les étapes de conception.
50
Chapitre 4
Conception et implémentation
1. Introduction
Les systèmes OLAP permettent aux utilisateurs de naviguer dans l’entrepôt de données,
dans le but d’extraire des informations utiles qui vont les aider dans la prise de décisions lors de
leurs analyses. Ces systèmes ont connus un développement important grâce à leurs capacités à
permettre un accès direct et dynamique aux données analysées. Cependant ils sont élaborés pour
un groupe de décideurs ou un sujet d’analyse pour lesquels sont présumés des besoins
parfaitement identiques.
Mais, ces systèmes sont limités et ils ne peuvent pas prendre en compte les centres
d’intérêt, les préférences et le contexte des requêtes de chaque utilisateur, ce qui rend les
analyses difficile et lentes.
L’extraction des informations pertinentes dans un important volume de données pose un
quelques problèmes tels que :
•
•
•
•
•
La taille des réponses est souvent volumineuse ce qui embrouille les utilisateurs lors de
l’exploration.
La qualité de l’information délivrée n’est pas prise en compte, ce qui laisse l’utilisateur
souvent embarrassé quant à son utilité et rend difficile la prise de décision à base de cette
information.
La présentation des résultats n’est pas prise en compte, ce qui ne répond pas aux attentes
de l’utilisateur (présentation unique pour tous les utilisateurs). L’utilisateur doit naviguer
dans la présentation espérant de trouver l’information pertinentes.
La pertinence des résultats se réduit parfois dans la mesure où ils ne sont pas adaptés ni
aux contextes ni aux préférences utilisateurs. Autrement, les résultats fournis ne sont pas
adéquats avec le matériel utilisé (le dispositif de l’interaction, PDA, …).
L’organisation et le partages des analyses ne sont pas pris en compte, et entrain de poser
plusieurs requêtes pour trouver ce qui l’intéresse.
Pour cela, et afin d’apporter des réponses satisfaisantes à ces problèmes ont se vois
obliger d’utiliser des outils de personnalisation de l’information peut. Et cela, en fournissant un
ensemble réduit de réponses intéressantes répondent aux besoins attendus de l’utilisateur.
L’objectif de La personnalisation est de faciliter l’expression des besoins de l’utilisateur
afin de ne lui retenir que les informations qualifiées pertinentes pour un sujet donné en écartant
ceux non pertinentes.
Cependant, cette pertinence est définit par un ensemble de critères et de préférences
personnalisables et spécifiques à chaque utilisateur ou communauté d’utilisateurs et stockés dans
une structure appelée Profil Utilisateur.
Les exigences d’analyses décisionnelles face à l’éclatement du volume de données
manipulées donne lieu à la mise en place des nouveaux concepts tels que Data Warhouses et
OLAP qui sont rangés dans une nouvelle classe de bases de données dites multidimensionnelles
et qui n’a pas bénéficier parfaitement de la personnalisation en raison de sa fraîcheur et surtout
sa particularité, on a étudier dans les chapitres précédents, les progrès brillants achevés dans ce
champ de recherche.
52
Chapitre 4
Conception et implémentation
Après avoir exploré la personnalisation dans les entrepôts des données et les travaux
brillants contribuant à l’avancement des recherches dans cet axe, on va proposer comme
contribution un algorithme pour la génération de l’ensemble de toutes les formes d’affichage
possibles que peut prendre le résultat d’exécution d’une requête MDX.
Nous présenterons dans ce chapitre notre algorithme « STRUCTURATION » qui génère
les différentes structures possibles pour un ensemble des références d’une requête MDX et
respectent le contraint de visualisation VT,G., Cet algorithme est basé sur les travaux de
[Bellatrech et al,2006] qui donne la possibilité de supporté la discrimination entre plusieurs
ensembles de références en simplifiant le choix de l’utilisateur pour une structure parmi un
ensemble proposé.
Tous d’abord, on va présenter l’algorithme de [Bellatrech et al.2005] concernant la
détermination pour un ensemble de références s’il existe une structure pour sa visualisation ou
non.
2. L’algorithme FindStruct [Bellatrech et al.2005]
Concernant la structure S*, [Bellatrech et al.2005] utilise un algorithme appelé
FindStruct dont le rôle est de calculer une structure S* pour le cube C* si elle existe. Cet
algorithme est montré dans la fig.17.
Étant donné un cube C et une contrainte de visualisation v, cet algorithme examine si v peut être
satisfaite, c.-à-d. s’il existe une structure S tels que v(C,S)=true. Ce problème est considéré par
[Bellatreche et al, 2005] comme un problème NP-complet.
FIG .17 - l’algorithme FindStruct [Bellatreche et al, 2005]
53
Chapitre 4
Conception et implémentation
Etant donner VT,G une contrainte de visualisation dans V* avec T = {T1, T2} et
G ={G1,G2}. Cet algorithme teste si l’existe une structure S de C tels que VT,G(C, S)=true (basé
sur la programmation dynamique). Au départ, l’algorithme calcule l'ensemble D’={Di1,..,DiM}
des dimensions qui doivent être placées sur les axes visibles. Puis, il est clair que la cellule
t’[k][j] de tableau t’ est différent de null ( à la mième itération (1≤m≤M) de la boucle principale
« voir les étapes 6 à 16 »)s’il existe une partition de Em= {Di1,..,Dim}⊆D’ dans deux ensembles
S1 et S2 tels que pour p=1,2 , on a Tp⊆Sp et ПDj∈Sp|Dj| ≤G. D'ailleurs, si t’[k][j] ≠ null, la
fonction FindStruct utilise t’[k][j] pour représenter l’un de la partition {S1,S2} de D’ satisfait la
contrainte, c.à.d. S1=t’[k][j] et S2=Em\S1.
Exemple :
Dans le contexte de l’exemple précédent, supposons qu’on a un cube
C={D*1,D*2,D*3,f*} avec
D*1={north, south, east, west},
D*2={drink, food},
D*3={2004, 2005}. On fait appel a la fonction FindStruct pour tester s’il existe une structure S*
telque VT,G(C*,S*)= true quand T=<∅,∅> et G=<4,4>. Au départ, on a K1=4 et K2=K3=2.
D'ailleurs, puisque T1=T2=∅, nous avons
G’1=G’2=1 et t[1][1]=∅. Les autres cellules de t sont initialisées à null.
Finalement, nous avons D’={D*1,D*2,D*3}.
A la première itération de la boucle principale, supposons Di=D*1.
Dés que t[1][1]= ∅, et 1*K1= 4≤4, on obtient t’[4][1]={D*1} et t’[1][4] = ∅.
A la deuxième itération, Di=D*2. Dés que t[4][1]={D*1} et 1*K=2≤4, on obtient
t’[4][2]={D*1}.Dés que t[1][4] = ∅, et 1*K=2≤4, on obtient également t’[2][4]={D*2}.
A la troisième et dernière itération, Di=D*3. Quand t[4][2] = {D*1} et 2*K=3≤4, on
obtient t’[4][4] = {D*1}. Dés t[2][4] = {D*2} et 2*K=3≤4, on obtient également t’[4][4]
={D*2,D*3}.
A la fin, supposons que t[4][4] = {D*2, D*3} (cette solution est la dernière stockée).
Dans ce cas, FindStuct renvoi la structure <{D*2, D*3}, {D*1}>, qui signifie que la contrainte
de visualisation VT,G peut être satisfaite.
3. L’algorithme STRUCTURATION
Le principe de l’algorithme STRUCTURATION est de construire au départ l’ensemble de
toutes les structures possibles de l’ensemble des dimensions sélectionnées pour une requête
MDX en respectant la contrainte de visualisation VT,G et sans prendre en considération
l’ensemble ou le sous ensemble des références à examiné. Lorsque cet ensemble des structures
est généré, l’ensemble ou le sous ensemble de références est utilisé pour éliminer de cet
ensemble des structure celles qui ne respecte pas la contrainte de visualisation VT,G .
L’algorithme STUCTURATION consiste en une fonction qui utilise d’autres fonctions tel
que : PUT_DIMS_ON_AXIS, Next_Set_Comb, To_One_Set et Duplicate_Set.
54
Chapitre 4
Conception et implémentation
La définition de ces fonctions est comme suit :
Function Next_Set_Comb( SET )
Input :
SET, A set of subsets of two subesuets.
subsets SET = {S / S={x1,x2} and x1∩x2 = Φ }
Output :
Next_Set, for every subset S1 = {x1,x2} of the input set SET, this set contain all combinations
of its first subset x1 with the elements of the second subset x2.
1. Let Next_Set ={}
2. For every S={x1,x2} of SET do
3. For every e ∈ x2 do
4. Let S2 = {x3,x4} such that x3 = x1U e
5. x4 = x2
6. Remove e from x4
7. If For every S’ of Next_Set S’ != S2 then Insert S2 in Next_Set
8. Return Next_Set
Function PUT_DIMS_ON_AXIS (Dims_Set, Axis_One, Axis_Two)
Input :
Dims_Set, A set of selected dimensions (from the user query);
Axis_One, A set of the dimensions must appear on the first axis (from the user profil);
Axis_Two, A set of the dimensions must appear on the second axis (from the user profil);
Output :
Axis_Set, set of all possible two subsets from Dims_Set sash that :
for every subset1 ∈ Axis_Set/ subset1 = {S1,S2} and S1∩S2 = Φ and
Axis_One ⊆ S1 and Axis_Two ⊆ S2
1. Let Str1 = {}
2. Let Str2 = {}
3. For every dim ∈ Dims_Set do
4. If dim ∈ Axis_One then Str1 = Str1U dim
5. Remove dim from Dims_Set
6. else If dim ∈ Axis_Two then Str2 = Str2 U dim
7. Remove dim from Dims_Set
8. Let k is the number of all possible two subsets {x1,x2}of the elements of Dims_Set such that:
k = Dims_Set.size() Div 2 and x1∩x2 = Φ.
9. Let AXI is set of a set of two subsets such that:
AXI[0] = {{S1,S2}}: S1={} and S2 = Dims_Set
10. Let i = 1
11. While i < k+1 do
12. AXI[i] = Next_Set_Comb(AXI[i-1])
55
Chapitre 4
Conception et implémentation
13. i = i +1
14. end while
15. Let Axis_Set = To_One_Set(AXI)
16. Axis_Set = Duplicate_Set(Axis_Set)
17. For every S = {S1,S2} Axis_Set do
18. S1 = S1 U Axis_One
19. S2 = S2 U Axis_Two
20. Return Axis_Set
Function To_One_Set(SET)
Input :
SET, a set of subsets of two subesuets
subsets such that :
SET = {S / S = {S1 /S1={x1,x2} and x1∩x2 = Φ }}
Output :
One_SET, A set of subsets of two subesuets
subsets such that :
One_Set = {S / S={x1,x2} and x1∩x2 = Φ }
1. Let One_Set = {}
2. For every S of SET do
3. For every S1={x1,x2} of S do
4. Insert S1 in One_Set
5. Return One_Set
Function Duplicate_Set(SET)
Input :
SET, A set of subsets of two subesuets
subsets such that :
SET = {S / S={x1,x2} and x1∩x2 = Φ }
Output :
Duplicated_SET, A set of subsets of two subesuets
subsets such that :
Duplicated_Set = {S / S={x1,x2} and x1∩x2 = Φ }
1. Let Duplicated_SET = {}
2. For every S={x1,x2} of SET do
3. Insert S in Duplicated_Set
4. If {x2,x1} not in Duplicated_Set then Insert {x2,x1} in Duplicated_Set
5. Return Duplicated_Set
56
Chapitre 4
Conception et implémentation
Function STRUCTURATION (Selected_Dims_Set, Ref_Set)
Input :
Selected_Dims_Set, A set of the selected dimensions (from the user query).
Grad_1, the maximal number of graduations for the first axis (from the user profil)
Grad_2, the maximal number of graduations for the second axis (from the user profil).
Ref_Set, a set of references
Output :
Structures_Set, a set of structures from Dims_On_Axis which satisfy the following condition:
for every structure S1 = {ax1,ax2} of Structures_Set we have :
grad(ax1) <= Grad_1 and grad(ax2) <= Grad_2, such that : grad(x)
returns the number of graduation on this axis.
1. Let Dims_On_Axis = Put_Dims_On_Axis(Selected_Dims_Set)
2. Let Structures_Set = {}
3. For every S={ax1,ax2} of Dims_On_Axis do
4. Let gr1 = grad(ax1) // grad(ax1) is calculated for the references set Ref_Set
5. Let gr2 = grad(ax2) // grad(ax1) is calculated for the references set Ref_Set
6. If gr1<=Grad_1 and gr2<=Grad_2 then
7. Insert S in Structures_Set
8. Return Structures.
Exemple descriptif
Soit Sel_Dims l’ensemble des dimensions sélectionnées par l’utilisateur, et Axis_1 et
Axi_2 deux ensembles des dimensions que l’utilisateur souhaite voir sur le premier axe et le
second respectivement, et G la contrainte de visualisation tel que :
Sel_Dims = {Product,Time,Location,Measures }
Axi_1 = {Product}
Axi_2 = {Time}
G = <4,4>
Soit REF l’ensemble de références suivant :
REF = {( Food,1998, Orléans,Unite Sales);
(Drink,1997,Tours,Unite Sales);
(Drink,1997,Orléans,Unite Sales);
(Cloth,1997,Orléans,Unite Sales);
(Cloth,1998,Tours,Unite Sales);
(Drink,1998,Orléans,Unite Sales);
(Food,1997,Orléans,Unite Sales);
(Food,1997,Tours,Unite Sales) };
La première étape de fonction STRUCTURATION consiste à trouver les différentes
affectations possibles pour les dimensions sélectionnées en utilisant la fonction
Put_Axis_On_Dims().
57
Chapitre 4
Conception et implémentation
Cette dernière fonctionne comme suit :
En entrée : Sel_Dims , Axi_1 et Axi_2.
Str1 = {}
Str2 = {}
En exécutant les instructions des étapes 3 à 7 de la fonction
Put_Dims_On_Axis, on obtient :
Str1 = {Product} ; Str2 = {Time} et Sel_Dims = {Location,Measures}
A l’étape 8 de la fonction Put_Dims_On_Axis, k = 2 Div 2 = 1
A l’étape 9 de la fonction Put_Dims_On_Axis, AXI = {{S1,S2}} tel que :
S1={} et S2 = {Location,Measures}
A l’étape 10 de la fonction Put_Dims_On_Axis, i = 1
A l’étape 11 de la fonction Put_Dims_On_Axis de la fonction
Put_Dims_On_Axis, i = 1 et k+1 = 2 et la boucle WHILE commence et, dans l’étape 12 de la
fonction Put_Dims_On_Axis on :
AXI[1] = Next_Set_Comb(AXI[0])
Le déroulement de la fonction Next_Set_Comb(AXI[0]) sera comme suit :
Au départ Next_Set = {}
A la deuxième étape de cette fonction et lorsque AXI[0] comporte qu’une seule sous
ensemble de deux ensemble, alors la boucle for sera exécutée un seule fois tel que :
S = {{}{ Location,Measures }}
A l’étape 3, et pour e = Location on a :
à l’étape 4 : S2 = {x3,x4} tel que x3 = {}U {Location}
à l’étape 5 : x4 = {Location,Measures}
à l’étape 6 : x4 = {Measures}
A l’étape 7 et puisque dans Next_Set n’existe pas un sous ensemble équivalent a
S2 alors S2 va être inséré dans Next_Set.
A l’étape 3, et pour e = Measures on a :
à l’étape 4 : S2 = {x3,x4} tel que x3 = {}U Measures
à l’étape 5 : x4 = {Location,Measures}
à l’étape 6 : x4 = {Location}
A l’étape 7 et puisque dans Next_Set = {{{{Location},{Measures}}}} n’existe
pas un sous ensemble equivalent a S2 = {{Measures},{Location}} alors S2 va être inséré dans
Next_Set.
A la dernière étape de la fonction Next_Comb l’ensemble retourné par cette fonction est
Next_Set tel que :
Next_Set = {{{{Location},{Measures}},
{{Measures},{Location}}}} et la fin de la fonction Next_Comb.
A l’étape 13 de la fonction Put_Dims_On_Axis on a :
i = 1+1 = 2, et puisque k+1 = 2 = i alors la boucle WHILE s’arrête.
A l’étape 15 de la fonction Put_Dims_On_Axis, on a Axis_set retourne le résultat d’exécution de
To_One_Set({{{{Location},{Measures}},{{Measures},{Location}}}})
Le déroulement de To_One_Set sera comme suit :
A son premier étape, One_Set = {}
Au second :
pour S = {{{},{Location,Measures}}} de
SET={{{{},{Location,Measures}}},
{{{Location},{Measures}},{{Measures},{Location}}}}
Au troisième, pour S1 = {{},{Location,Measures}} de S on a :
Au quatrième, One_Set = {{{},{Location,Measures}}}
58
Chapitre 4
Conception et implémentation
pour S = {{{Location},{Measures}},{{Measures},{Location}}} de
SET={{{{},{Location, Measures}}},
{{{Location},{Measures}},{{Measures},{Location}}}} on a :
Au troisième, pour S1 = {{Location},{Measures}} de S on a :
Au quatrième, One_Set = {{{},{Location,Measures}},
{{Location},{Measures}}}} et pour S1 = {{Measures},{Location}} de S on a :
Au quatrième,
One_Set = {{{},{Location,Measures}},
{{Location},{Measures}},
{{Measures},{Location}}}
Au cinquième, la fonction To_One_Set retourne l’ensemble One_Set.
A l’étape 16 de la fonction Put_Dims_On_Axis, on a
Axis_Set = Duplicate_Set(Axis_Set)
Le déroulement de la fonction Duplicate_Set est très simple et donne le résultat suivant :
Axis_Set = { {{},{Location,Measures}},
{{Location},{Measures}},
{{Measures},{Location}},
{{Location,Measures},{}}}
De l’étape 17 à 19 de la fonction Put_Dims_On_Axis, pour chaque sous
ensemble S = {S1,S2} de Axis_Set ajouter les éléments de Str1 à S1 et ceux de
Str2 à S2. à la fin de la boucle Axis_Set devient :
Axis_Set = { {{Product},{Time,Location,Measures}},
{{Product, Location},{Time, Measures}},
{{Product, Measures},{Time, Location}},
{{Product, Location, Measures},{Time}}}
Et à l’étape finale, la fonction Put_Dims_On_Axis retourne Axis_Set qui contient les
différentes structures possibles pour la requête de l’utilisateur.
A la seconde étape de la fonction STRUCTURATION on a
Structures_Set = {}
De l’étape 3 à 7, la fonction STRUCTURATION et d’après l’ensemble des références
Ref_Set va calculer pour chaque ensemble S = {ax1, ax2} de Dims_On_Axis grad(ax1) le
nombre de graduation pour l’ensemble ax1 et grad(ax2) le nombre de graduation pour
l’ensemble ax2 et les comparer avec respectivement Grad_1 et Grad_2 les graduations fixées par
l’utilisateur dans ses contraintes de visualisation. Si grad(ax1) et grad(ax2) ne dépassent pas
respectivement Grad_1 et Grad_2 alors S va être ajouté a Structures_Set :
Grad_1 = 4 et Grad_2 = 4.
S = {{Product},{Time,Location,Measures}}
grad({Product}) = 3 < Grad_1
grad({Time,Location,Measures}) = 2x2x1 = 4 = Grad_2
S ={{Product, Location},{Time, Measures}}
grad({Product, Location}) = 3x2 = 6 > Grad_1
grad({Time, Measures}) = 2x1 = 2 < Grad_2
S = {{Product, Measures},{Time, Location}}
grad({Product, Measures}) = 3x1 = 3 < Grad_1
grad({Time, Location}) = 2x2 = 44 = Grad_2
59
Chapitre 4
Conception et implémentation
S = {{Product, Location, Measures},{Time}}
grad({Product, Location, Measures}) = 3x2x1 = 6 > Grad_1
grad({Time}) = 2 < Grad_2
À la fin de fonction STRUCTURATION, l’ensemble des structures retournées est :
Structures_Set = {{{Product},{Time,Location,Measures}},
{{Product, Measures},{Time, Location}}}
4. Discrimination entre plusieurs ensembles de références
Le résultat obtenu par l’utilisation de l’algorithme de personnalisation PersoVisu de
[Bellatrech,2006] est atteint sans accès au cube de données et peut comporte plus d’un sous
ensemble des références personnalisés d’après le profil de l’utilisateur. Mais ce dernier a
l’ambition de choisir parmi cet ensemble que les sous ensembles qui mènent à des résultats
complets ou au moins à des résultats qui ne correspondent pas à des données éparses (lorsqu’un
grand nombre de cellules d’un cube de données sont vides, on parle alors de données éparses).
Basant sur ce problème de données éparses qui peuvent figurer dans le cube de données choisi, le
nombre des sous ensembles des références peut être diminué si on sélectionne parmi cet
ensemble que les sous ensembles des références qui renvoi un pourcentage minime pour le
nombre des cellules vides par rapport au nombre total des cellules dans le cube de données
choisi.
Il est clair que cette optimisation nécessite des accès aux données du cube pour retourner pour
chaque sous ensemble de références le nombre des cellules non vides (utilisant l’opérateur
COUNT).
L’efficacité d’une telle optimisation est assurée lorsqu’il existe parmi les sous ensembles de
références des sous ensembles comportant des cellules vides ou représentant des données
éparses.
Cette optimisation est supportée par notre prototype à travers l’option «discrimination »
qui va offrir à l’utilisateur la possibilité de filtrer l’ensemble des sous ensembles des références
pour qu’on garde que ceux qui répondent au critère défini par cette optimisation.
5. Simplification de choix de l’utilisateur pour une structure parmi
un ensemble
D’après notre algorithme STUCTURATION conçu pour la génération de l’ensemble de
toutes les structures possibles pour un ensemble des références, il existe des structures où la
totalité ou la plupart des dimensions sélectionnées sont placées sur un seul axe, ou bien des
structures où la différence entre le nombre de graduations sur les deux axes est considérable.
Ainsi, la majorité des assistants personnels PDA, SmartPhone (téléphone intelligent : un
téléphone mobile couplé à un PDA) ou les téléphones mobiles disposent des écrans d’une forme
carrée. Cette caractéristique peut nous conduit à introduire une nouvelle définition concernant la
visualisation des résultats d’exécution des requêtes OLAP sur ces appareils. Cette définition
qualifier une visualisation d’être la meilleure si elle est réalisée par une structure où la différence
entre le nombre de graduations sur ses deux axes est minime. Il est possible d’utiliser un seuil
afin contrôler cette différence entre le nombre des graduations sur les deux axes d’une structure.
Le seuil peut aider l’utilisateur à justifier ses visualisations.
60
Chapitre 4
Conception et implémentation
L’utilisateur de notre prototype Personnalisation peut bénéficier de cette optimisation
pour éliminer toutes les structures qui ne représentent pas des meilleures visualisations pour leurs
cubes sélectionnés.
Exemple :
Soit Dims un ensemble de dimensions d’une requête tel que :
Dims = {Product, Time, Location, Measures}
Et : nbr_Mem(Product) = 3, nbr_Mem(Time) = 2, nbr_Mem(Location) = 3,
nbr_Mem(Measures) = 1 sont les nombres des membres pour chaque dimensions.
Soit quelques structures parmi celles proposées à l’utilisateur selon leur ensemble des
dimensions Dims :
S1 = {{Product, Time, Location, Measures},{}}
S2 = {{},{Product, Time, Location, Measures}}
S3 = {{Product, Time, Location},{Measures }}
S4 = {{Measures },{Product, Time, Location}}
S5 = {{Product, Time},{ Location, Measures }}
S6 = {{ Product},{Time, Location, Measures }}
S7 = {{Time, Location, Measures },{ Product}}
S8 = {{Time},{ Product, Location, Measures }}
S9 = {{ Product, Location, Measures },{Time}}
S10 = {{Time, Location},{Product, Measures }}
S11 = {{Product, Location},{Time, Measures }}
S12 = {{Time, Measures},{Product, Location}}
Si en désigne par DiffDim la difference de nombre des dimensions entre deux axes d’une
structure, et Diffgrad sa différence sur le nombre de graduation on obtient :
DiffDim(S1) = │4 – 0│ = 4
DiffDim(S2) = │0 – 4│ = 4
DiffDim(S3) = │3 – 1│= 2
DiffDim(S4) = │1 – 3│= 2
DiffDim(S5) = │2 – 2│= 0
DiffDim(S6) = │1 – 3│= 2
DiffDim(S7) = │3 – 1│= 2
DiffDim(S8) = │1 – 3│= 2
DiffDim(S9) = │3 – 1│= 2
DiffDim(S10) = │2 – 2│= 0
DiffDim(S11) = │2 – 2│= 0
DiffDim(S12) = │2 – 2│ = 0
Diffgrad(S1) = │(3×2×2×1)– 0│ = 12
Diffgrad(S2) = │0 - (3×2×2×1)│= 12
Diffgrad(S3) = │(3×2×2) – 1│= 11
Diffgrad(S4) = │1 - (3×2×2)│= 11
Diffgrad(S5) = │(3×2) – (2×1)│= 4
Diffgrad(S6) = │3 – (2×2×1)│= 1
Diffgrad(S7) = │(2×2×1)– 3│= 1
Diffgrad(S8) = │2 - (3×2×1)│= 4
Diffgrad(S9) = │(3×2×1) – 2│= 4
Diffgrad(S10) = │(2×2) – (3×1)│ = 1
Diffgrad(S11) = │(3×2) – (2×1)│= 4
Diffgrad(S12) = │(2×1) – (3×1)│= 1
D’après notre définition pour la meilleure visualisation, les structures qui seront
sélectionnées sont :
61
Chapitre 4
Conception et implémentation
Sans utilisation de seuil :
Basant sur DiffDim :
S5, S10, S11 et S12
Basant sur Diffgrad:
S6, S7, S10 et S12
Avec utilisation de seuil : si en choisit comme un seuil pour DiffDim e1 = 2, et pour Diffgrad
e2 = 4 les structures qui seront sélectionnées sont :
Basant sur DiffDim :
S3, S4, S5, S6, S7, S8, S9, S10, S11 et S12
Basant sur Diffgrad:
S5, S6, S7, S8 S9 , S10 , S11 et S12
6. Implementation
6.1 Prototype ’Personnalisation’
Nous avons présentés précédemment des algorithmes de personnalisation des requêtes
OLAP, dans ce chapitre, on a pour objectif de montrer et discuter une application développé
Peronnalisation qui implémente ces algorithmes de personnalisation. Cette application consiste
en une simulation java s’exécutant sur un terminal pervasif d’un utilisateur.
Le schéma suivant décrit le principe de base pour le fonctionnement de notre système de
personnalisation :
1 : Pseudo + mot de passe
2 : Profil d’utilisateur + Requêtes MDX
(personnalisées et non personnalisées).
3 : Exécution d’une requête MDX
(personnalisée ou non personnalisée) .
4 : Résultat du l’opération 3.
FIG.18 : Architecteur de système « Personnalisation »
62
Chapitre 4
Conception et implémentation
6.2 Technologies employées
Le schéma montre plusieurs technologies participées dans la réalisation de ce système tel
que :
Oracle :
- Serveur OLAP : Il fait partie de la catégorie des serveurs R-OLAP, c'est-à-dire qu'il
accède à des données contenues dans une base relationnelle, dont on peut exécuter des
requêtes utilisant le langage MDX, également utilisé dans
-
SQL Server : Ce langage permet de créer des requêtes dont l’équivalent en langue SQL
nécessiterait un grand nombre de requêtes et des temps d’exécution beaucoup plus longs.
Ce serveur est le plus souvent utilisé conjointement avec JPivot ou JRubik, outils qui
proposent une interface graphique de consultation et manipulation des données.
Tomcat : Issu du projet Jakarta, Tomcat est désormais un projet principal de la fondation
Apache. Tomcat implémente les spécifications des servlets et des JSP de Sun Microsystems. Il
inclut des outils pour la configuration et la gestion, mais peut également être configuré en éditant
des fichiers de configuration XML. Comme Tomcat inclut un serveur HTTP interne, il est aussi
considéré comme un serveur HTTP.
Tomcat a été écrit en langage Java, il peut donc s'exécuter via la JVM (machine
virtuelle java) sur n'importe quel système d'exploitation la supportant.
Easyphp : fut le premier package WAMP à voir le jour (1999). Il s'agit d'une plateforme de
développement Web, permettant de faire fonctionner localement (sans se connecter à un serveur
externe) des scripts PHP. EasyPHP n'est pas en soi un logiciel, mais un environnement
comprenant deux serveurs (un serveur web Apache et un serveur de bases de données MySQL),
un interpréteur de script (PHP), ainsi qu'une administration SQL phpMyAdmin. Il dispose d'une
interface d'administration permettant de gérer les alias (dossiers virtuels disponibles sous
Apache), et le démarrage/arrêt des serveurs. Il permet donc d'installer en une seule fois tout le
nécessaire au développement local du PHP. Par défaut, le serveur Apache crée un nom de
domaine virtuel (en local) 127.0.0.1 ou localhost. Ainsi, quand on choisit « Web local »
dans le menu d'EasyPHP, le navigateur s'ouvre sur cette URL et affiche la page index.php de ce
site qui correspond en fait au contenu du dossier www d'EasyPHP.
Java : Apparu en 1991, le langage JAVA a commencé à être intéressant à partir de 1995 avec sa
prise en charge par le navigateur phare de l'époque, Netscape. Ce langage ne cesse de se
développer. Il s'agit d'un langage orienté objet dont la syntaxe est très proche de celle du C++.
C'est également un langage portable, c'est à dire qu'il s'adapte à une foule de plate-formes
différentes. C'est là l'une des qualités de JAVA.
6.3 Principe de base de l’application « personnalisation »
Le système est composé de l’application Personnalisation et les différents serveurs.
L’application est composée à son tour de deux parties, l’interface utilisateur qui lui permet
d’interagir avec le système et le noyau qui effectue les diverses opérations concernant le
processus de personnalisation.
63
Chapitre 4
Conception et implémentation
Les serveurs employés dans ce système sont :
• Serveur de base de données utilisant le SGBD MySql d’EasyPHP pour stocker la
base de données des profils utilisateur.
• Serveur de base de données utilisant le SGBD MySql pour stocker les données de
l’entrepôt de données.
• Serveur OLAP d’oracle : Ce serveur est chargé d’exécuter des requêtes de type MDX
sur l’entrepôt de données.
Pour naviguer sur notre système « personnalisation », un utilisateur doit avoir un compte sur ce
système. Le compte utilisateur représente son profile.
Pour ouvrir une session sur ce système, l’utilisateur introduit son nom d’utilisateur et son mot de
passe. Si l’authentification à réussite, l’utilisateur reçoit depuis le serveur de base de données
contenant la base de données des profils utilisateur ses préférences, ses contraintes de
visualisations et ses requêtes MDX personnalisées et non personnalisées.
L’interface graphique de l’utilisateur lui a permet de construire de nouvelles requêtes ou
d’utiliser celles déjà crées. L’utilisateur a la possibilité de faire une discrimination entre
l’ensemble des requêtes personnalisées pour diminuer leur nombre. Cette opération nécessite
l’utilisation pour chacune d’elles une requêtes MDX qui renvoi leurs nombres des cellules non
vides. Pour exécuter ces requêtes, une connexion est établit vers le serveur OLAP. Ce dernier
exécute les requêtes et récupère les résultats en interrogeant l’entrepôt de données sur le serveur
de base de données utilisant le SGBD MySql et envoi ces résultats a l’utilisateur. Après la
sélection d’une requête et une structure pour cette dernière, l’utilisateur peut procéder a
l’exécution de cette requête personnalisée. Cette requête est envoyée sur le serveur OLAP. Ce
dernier interroge l’entrepôt de données à nouveau pour obtenir le résultat de l’exécution puis il
formate le résultat en table croisée avec des cellules et leurs coordonnés avant de l’acheminer
vers l’utilisateur.
6.4 Présentation de l’application
La base de données des profils utilisateur (Foodmart)
Stockée sur le serveur de base de données qui emploi le SGBD MySql d’EasyPHP. Cette base
de données stocke les informations concernant chaque utilisateur et elle comporte 21 tables qui
sont:
Tables
Axisone
Axistwo
Cube
Dimbetter
Dimensions
Dimless
Graduation
Levbetter
Description
stocke pour chaque utilisateur les dimensions qu’il souhaite voir sur
l’axe numéro un.
stocke pour chaque utilisateur les dimensions qu’il souhaite voir sur
l’axe numéro deux.
stocke les différents cubes.
stocke pour une dimension, les dimensions qui sont plus préférées par
un utilisateur que cette dimension.
stocke les dimensions de l’entrepôt de données.
stocke pour une dimension, les dimensions qui sont moins préférées
par un utilisateur que cette dimension.
stocke pour chaque utilisateur la graduation choisit.
stocke pour un niveau d’une dimension, les niveaux qui sont plus
préférées par un utilisateur que ce niveau.
64
Chapitre 4
Levels
Levless
Members
Pers_query
Pers_query_from
Pers_query_select
Pers_query_where
Prefmembers
Query
Query_from
Query_select
Query_where
Users
Conception et implémentation
stocke pour un niveau d’une dimension, les niveaux qui sont plus
préférées par un utilisateur que ce niveau.
stocke pour un niveau d’une dimension, les niveaux qui sont moins
préférées par un utilisateur que ce niveau.
stocke les membres de chaque niveau de chaque dimension de
l’entrepôt.
stocke les noms des requêtes personnalisées.
stocke les cubes utilisés par chaque requête personnalisée.
stocke les dimensions, les niveaux et les membres constituants la
clause «SELECT» d’une requête personnalisée.
stocke les dimensions, les niveaux et les membres constituants la
clause «WHERE» d’une requête personnalisée.
stocke pour un niveau d’une dimension les membres préférés par
l’utilisateur. Ces membres sont ordonnés.
stocke les noms des requêtes non personnalisées.
stocke les cubes utilisés par chaque requête non personnalisée.
stocke les dimensions, les niveaux et les membres constituants la
clause «SELECT» d’une requête non personnalisée
stocke les dimensions, les niveaux et les membres constituants la
clause «WHERE» d’une requête non personnalisée.
stocke pour chaque utilisateur son nom et son mot de passe.
L’entrepôt de données
Les données de cet entrepôt (base de données de teste FoodMart) sont stockés sur le serveur de
base de données utilisant le SGBD MySql, avec l’ensemble des tables de dimensions suivant :
Tables
Customers
Education Level
Gender
Marital Statuss
Product
Promotion media
Promotions
Store
Time
Yearly Income
Measures
Description
stocke les informations concernant les clients.
stocke le niveau d’éducation pour chaque client.
le sexe de client, male ou female.
stocke la situation marital pour chaque client «S» : célibataire ou «M» :
marié.
stocke les produits a vendre dans FoodMart.
stocke les medias utilisées pour une promotion, tel que : les journaux,
la tv ou le radio.
identifier la promotion qui a déclenchée le vente.
stocke la localisation de différentes stockes (dépôts) dans la chaîne
(pays, état, cité).
stocke pour chaque vente, la période quand le vente était déclenché.
stocke les revenues de chaque client.
cette table contient plusieurs mesures tel que :
• Unit Sales : nombre d'unités vendues.
• Store Cost : coût de marchandises vendues.
• Store Sales : valeur des transactions de ventes.
• Sales Count : nombre des transactions de ventes.
Les données de l’entrepôt sont interrogées indirectement par le système. Par le baie d’un serveur
OLAP destinée a l’exécution des requêtes MDX sur les données d’un entrepôt de données et le
formatage des résultats sous forme d’une table croisée.
65
Chapitre 4
Conception et implémentation
L’interface utilisateur:
Elle comporte l’ensemble des différentes fenêtres qui permet à un utilisateur de :
- L’authentifier : Chaque utilisateur a son propre nom d’utilisateur et mot de passe pour
naviguer sur ce système.
- Définition et modification des préférences : Ces préférences représentent
l’ordonnancement choisi par l’utilisateur sur l’ensemble des dimensions de cube de
données, ainsi que sur les niveaux des dimensions et bien sur, un autre ordonnancement
concerne les membres des niveaux. Cet ordonnancement est partiel, autrement dis que
l’utilisateur n’est pas obligé de classifier toutes les dimensions, les niveaux de chaque
dimension et les membres de chaque niveau dans chaque dimension.
En plus de ces ordonnancements, l’utilisateur peut spécifier quelques contraintes concernant la
forme que doit prendre un résultat sur l’écran de son mobile. Ces contraintes permettent à
l’utilisateur de désigner un ensemble de dimensions qu’il souhaite voir toujours sur le premier
axe et un autre ensemble sur le second. Ainsi, l’utilisateur peut indiquer le nombre maximal des
membres que doit comporter chaque axe, on parle de nombre de graduation pour chaque axe.
- Parcours des requêtes prédéfinies : Ces requêtes sont soient personnalisées ou non, et
sont stockées sur son profil. L’utilisateur peut effectuer les différentes opérations offertes
sur ses requêtes tel que :
• l’édition d’une requête non personnalisée afin de la modifier,
• le changement du nom d’une requête,
• la suppression d’une requête,
• la personnalisation d’une requête non personnalisée,
• l’exécution d’une requête personnalisée.
- Construction d’une nouvelle requête: C’est l’interface qui aide l’utilisateur à
construire une nouvelle requête en passant par les étapes suivantes :
• Sélection de cube.
• Sélection de l’ensemble des dimensions pour la clause «SELECT».
• Sélection pour chaque dimension sélectionnée dans l’étape précédente, un ensemble des
niveaux.
• Sélection pour chaque niveau sélectionné dans l’étape précédente, un ensemble des
membres.
• Sélection de l’ensemble des dimensions pour la clause «WHERE». Cet ensemble doit
être différent de celle de la clause «SELECT».
• Sélection pour chaque dimension sélectionnée dans l’étape précédente, un niveau et un
membre. (cette étape aura lieu si l’utilisateur a choisi dans l’étape précédente au moins
une dimension).
• La sauvegarde de la requête générée sur le profile de l’utilisateur sous un nom bien
défini.
- personnalisation d’une requête non personnalisée ou l’exécution d’une autre
personnalisée: Ces requêtes sont soient des requêtes générées nouvellement ou des
requêtes de l’ensemble stockées sur le profil utilisateur.
Le résultat de la personnalisation d’une requête non personnalisée peut contenir plus
d’une requête personnalisée due à l’utilisation de l’ordre partiel. Dans ce cas, l’utilisateur
peut utiliser la discrimination entre les requêtes résultantes afin de réduire leur nombre si
66
Chapitre 4
Conception et implémentation
possible. Pour une requête personnalisée sélectionnée, l’utilisateur doit choisir une
structure parmi les différentes structures proposées. Ainsi, l’utilisateur a aussi la
possibilité de faire une réduction de nombre des structures proposées pour la requête
personnalisée sélectionnée (si possible bien sur).
Et après le choix de la structure, l’utilisateur peut faire :
• La sauvegarde de la requête personnalisée sur le profil de l’utilisateur sous un nom bien
défini.
• L’exécution de la requête personnalisée afin d’afficher le résultat.
Noyau :
Cette partie se cache derrière l’interface de l’application, ce qui rend son fonctionnement
transparent à l’utilisateur. On distingue deux rôles pour cette partie, le premier concerne tout ce
qui est lié à l’utilisateur et la gestion de son profil, tandis que le second garantit la meilleure
gestion de trafic avec le serveur des requêtes MDX Oracle.
C’est grâce noyau que le système gère toutes les interactions de l’utilisateur avec son interface
graphique pour :
• l’interrogation du serveur MySql d’EasyPhp pour la récupération des données
concernant l’utilisateur depuis son profil, ou leur mettre à jour, ou même pour l’insertion
d’autres (par exemple lorsque l’utilisateur ajoute des nouvelles préférences à son profil
ou sauvegarde des nouvelles requêtes personnalisées ou non personnalisées).
• Personnalisation d’une requête en utilisant l’algorithme choisi pour cette opération
selon les étapes suivantes :
- L’extraction de l’ensemble des dimensions utilisées dans la requête.
- L’extraction de l’ensemble des références de la requête.
- La construction de l’ensemble de différentes structures possibles pour l’ensemble des
dimensions extraites sans prendre en compte l’ensemble de références extraites.
- L’application de l’algorithme de personnalisation décrit précédemment (utilisant les
préférences utilisateur et ses contraintes de visualisations).
- Due à la nature partielle de l’ordre employé par l’algorithme de personnalisation, le
résultat peut admettre plus d’une requête personnalisée (le résultat consiste à un ensemble
des sous ensembles des références). C’est là où on peut voir l’impact de notre
contribution qui consiste à réduire le nombre de ces requêtes par le principe de
discrimination. Dans ce cas, le système est obligé d’interroger la base de données
FoodMart qui se trouve sur le second serveur de base de données MySql avec
l’intermédiaire de Serveur OLAP).
- Pour un sous ensemble sélectionné des références, le système construit l’ensemble des
structures appropriées pour ces références en utilisant dans cette opération l’ensemble de
toutes les structures possibles pour l’ensemble des dimensions de la requête généré dans
l’étape 3, et les contraintes de visualisations depuis le profil utilisateur.
- Parmi les structures de l’ensemble généré dans l’étape 6, en peut distinguer des
structures où la totalité ou la plupart des dimensions sont affectées sur un seul axe.
Et d’après notre proposition, le système peut donner une suggestion pour éliminer ces
structures et ne garder que les structures qui ont la moindre différence entre le nombre
des dimensions affectées sur chaque un des ses deux axes.
- Pour un sous ensemble des références sélectionné et une structure parmi l’ensemble
proposé, le système génère la requête MDX personnalisée.
• Interroger l’entrepôt de données pour exécuter une requête MDX et récupérer le résultat
afin de l’afficher.
67
Chapitre 4
Conception et implémentation
6.5 Quelques fenêtres de prototype
Menu principal
Choix de l’ensemble
des
membres préférés
pour un niveau d’une
dimension.
L’ordonnancement
entre les membres
préférés d’un niveau
d’une dimension.
Menu de contraintes
de
visualisation.
L’ordonnancement
entre
les niveaux d’une
dimension.
Menu des requêtes
non
personnalisées
stockées sur le profil
utilisateur.
Renommer ou
Sélection de cube
exécuter une requête
utilisé pour la requête.
personnalisée
prédéfinie (enregistrée
sur le profil).
68
Chapitre 4
Conception et implémentation
Sélection des
dimensions que
l’utilisateur souhaite
voir sur le premier
axe.
Sélection des
dimensions que
l’utilisateur souhaite
voir sur le second axe.
Le nombre de
graduations
maximales pour
chaque axe
Menu des requêtes
non
personnalisées
stockées sur le profil
utilisateur.
Renommer ou
personnaliser une
requête non
personnalisée
prédéfinie
(enregistrée sur le
profil).
Une requête
personnalisée peut
admettre plusieurs
structures
d’affichages.
La requête
personnalisée de la
requête générée.
La requête
personnalisée
générée (selon la
structure choisie).
69
Chapitre 4
Conception et implémentation
Sélection de
l’ensemble des
dimensions pour la
clause «SELECT».
Sélection de
l’ensemble des
niveaux pour chaque
dimension
sélectionnée pour la
clause «SELECT».
Sélection de
l’ensemble des
membres pour chaque
niveau sélectionné de
chaque dimension
sélectionnée pour la
clause «SELECT».
Sélection de
l’ensemble des
dimensions pour la
clause «WHERE».
Sélectionner pour
chaque
dimension choisit
pour la
clause «WHERE», un
niveau
et un membre pour ce
niveau.
La requête générée.
Sauvegarde de la
requête
générée (non
personnalisée)
sur le profil
utilisateur.
L’ensemble de toutes
les
requêtes
personnalisées
possible (due à
l’utilisation
de l’ordre partiel).
6.6 Exemples et discussions
A travers l’exemple pratique suivant, on va essayer d’aborder l’objectif principal de notre
système « personnalisation » . Cet objectif consiste à ne présenter à l’utilisateur que les résultats
respectant ses préférences figurées dans son profil.
70
Chapitre 4
Conception et implémentation
Il sera aussi l’occasion d’évaluer l’efficacité de notre algorithme STRUCTURATION pour la
générations de l’ensemble de toutes les structures possibles pour un ensemble de références en
tenant compte les contraintes de visualisation de l’utilisateur.
L’évaluation de la proposition concernant la discrimination entre plusieurs sous-ensembles de
références ainsi que la suggestion pour une structure parmi un ensemble de plusieurs structures
proposées par le système font partie de l’objectif principal de cet exemple pratique.
6.6.1 Exemple : Discriminations et suggestions
6.6.1.1 Discrimination entre les sous-ensembles de références
Pour cet exemple, et pour certaines raisons d’analyse, l’utilisateur 1 formate la requête suivante :
SELECT [Product].[Product Family].[Food],
[Product].[Product Family].[Drink],
[Product].[Product Family].[Non-Consumable],
[Promotion Media].[Media Type].[Bulk Mail],
[Promotion Media].[Media Type].[Radio],
[Store]. [Store Country].[Canada],
[Store].[Store Country].[Mexico],
[Store].[Store Country].[USA],
[Store].[Store Name].[Store 19],
FROM Sales
WHERE [Measures].[Measures Level].[Sales Count]
Lors de l’exécution de la requête, le système renvoie deux sous-ensembles de références
(Figure 1) due au soutient de l’ordre partiel (l’utilisateur n’a pas de préférences entre quelques
dimensions parmi celles utilisées dans la requête). Les deux sous ensembles de références sont :
(Avec comme niveaux (Levels): ”Product Family”, “Media Type”, “Store Country” pour
respectivement les dimensions Product, Promotion Media et Store)
R0
Food, Bulk Mail, USA
Drink, Bulk Mail, USA
Food, Bulk Mail, Canada
Food, Radio, USA
Drink, Bulk Mail, Canada
Food, Bulk Mail, Mexico
Drink, Radio, USA
Food, Radio, Canada
Drink, Bulk Mail, Mexico
Drink, Radio, Canada
Food, Radio, Mexico
Drink, Radio, Mexico
R1
Food, Bulk Mail, USA
Drink, Bulk Mail, USA
Food, Bulk Mail, Canada
Food, Radio, USA
Drink, Bulk Mail, Canada
Non-Consumable, Bulk Mail, USA
Drink, Radio, USA
Food, Radio, Canada
Drink, Radio, Canada
Non-Consumable, Bulk Mail, Canada
Non-Consumable, Radio, USA
Non-Consumable, Radio, Canada
L’utilisateur 1 ne sait pas lequel parmi ces deux sous-ensembles de références qui est
pertinent en terme de nombre des cellules vides que contient chacun. Pour ne pas tomber dans le
mauvais choix, il préfère passer cette responsabilité au système qui va calculer le nombre des
cellules vides pour chacun des deux sous-ensembles de références afin de ne garder pour
l’utilisateur que celui qui réalise le plus petit nombre (Fig.19).
71
Chapitre 4
Conception et implémentation
Après les calculs, le système trouve que R0 est mieux que R1 en terme de nombre
d’occurrences de la cellule vide (Fig.20). Pour que le résultat soit confiant à l’utilisateur 1, ce
dernier exécute les deux sous-ensembles de références afin de comparer le nombre des cellules
vides qu’ils contiennent. Dans les deux cas, le système propose à l’utilisateur une seule structure
selon la contrainte de visualisation choisie :
FIG.19
FIG.20
Pour l’ensemble R0 :
Structure : {Store} AND {Product, Promotion Media}
Requête :
SELECT { [Store].[Store Country].[USA], [Store].[Store Country].[Canada],
[Store].[Store Country].[Mexico]} ON COLUMNS,
CROSSJOIN( {[Product].[Product Family].[Food],
[Product].[Product Family].[Drink]},
{[Promotion Media].[Media Type].[Bulk Mail],
[Promotion Media].[Media Type].[Radio]}) ON ROWS
FROM Sales
WHERE [Measures].[Measures Level].[Sales Count]
Résultat : montré sur la Fig.21.
Pour l’ensemble R1 :
Structure : { Product } AND { Promotion Media, Store }
Requête :
FIG.21
SELECT { [Product].[Product Family].[Food],
[Product].[Product Family].[Drink],
[Product].[Product Family].[Non-Consumable] } ON COLUMNS,
CROSSJOIN( { [Promotion Media].[Media Type].[Bulk Mail],
[Promotion Media].[Media Type].[Radio] },
{ [Store].[Store Country].[USA],
[Store]. [Store Country].[Canada] } ) ON ROWS
FROM Sales
WHERE [Measures].[Measures Level].[Sales Count]
Résultat : montré sur la Fig.22.
FIG.22
72
Chapitre 4
Conception et implémentation
• Discussion des résultats
D’après les résultats obtenus on a :
- Le nombre total pour chacun des deux résultats égale à 12.
- Le nombre des cellules vides dans R0 égale à 2.
- Le nombre des cellules vides dans R1 égale à 8.
Si en désigne par Pr_Null le pourcentage d’apparition des cellules vides dans
chacun des deux résultats, ce pourcentage est donné par :
Pr_Null =nombre total des cellules / nombre des cellules vides
Pour R0 : Pr_Null = 2/12 =1/6
et pour R1 : Pr_Null =8/12 =2/3
Ce résultat justifie le choix de système pour le sous ensemble R0 puisque il montre que le
pourcentage d’apparition des cellules vides dans R0 égale à 1/6 et il est moins que 2/3, le
pourcentage d’apparition des cellules vides apparaissant dans R1.
6.6.2 Suggestions pour un ensemble des structures proposées
Considérons que l’utilisateur 1 à changé la contrainte de visualisation par la suivante : G<4,6> et
qu’il n’a pas précisé des dimensions à mettre sur chacune des deux axes.
Dans cet exemple, l’utilisateur 1 veut savoir si la situation maritale (S ou M) d’une personne
influe sur leur consommation des produits laitiers (Dairy) et les boissons (Drinks) pendant
l’année 1997 ?
Pour obtenir une réponse à cette problématique, l’utilisateur 1 va construit la requête suivantes :
SELECT [Measures].[Measures Level].Unit Sales,
[Marital Status].[ Marital Status].M,
[Marital Status].[ Marital Status].S,
[Product].[Product Category].Drinks,
[Product].[Product Category].Dairy,
FROM Sales
WHERE [Time].[Year].1997
La personnalisation d’une telle requête par le système personnalisation donne à l’utilisateur le
sous-ensemble de références suivant :
{ MeasuresLevel Marital Status Product Category | Unit Sales, M, Dairy,
MeasuresLevel Marital Status Product Category | Unit Sales, S, Dairy,
MeasuresLevel Marital Status Product Category | Unit Sales, M, Drinks,
MeasuresLevel Marital Status Product Category | Unit Sales, S, Drinks}
Basant sur l’algorithme STRUCTURATION, le système propose à
l’utilisateur l’ensemble des structures suivantes (Fig.23) :
1. { Measures } et { Marital Status × Product }
2. { Marital Status } et { Measures × Product }
3. { Product } et { Measures × Marital Status }
4. { Marital Status × Product } et { Measures }
5. { Measures × Product } et { Marital Status }
6. { Measures × Marital Status } et { Product }
FIG.23
Si l’utilisateur 1 ne veut garder que les structures qui ont des nombres de graduation identiques
ou rapprochés pour les deux axes, alors il doit cocher «Structures with only nearest axis».
Dans ce cas, le système va comparer toutes les structures de l’ensemble afin de garder celles qui
ont une différence entre les nombres de graduation des deux axes minime (Fig24).
Sinon, s’il ne trouve aucune différence, alors il va comparer
73
Chapitre 4
Conception et implémentation
cet ensemble basant sur la différence entre les nombres
des dimensions sur les deux axes, afin de ne garder
que celles qui réalisent le nombre minimum.
2. { Marital Status } et { Measures × Product }
3. { Product } et { Measures × Marital Status }
5. { Measures × Product } et { Marital Status }
6. { Measures × Marital Status } et { Product }
FIG.24
Les résultats d’exécution en utilisant l’ensemble de références
avec chacune de ces structures filtrées seront :
(Fig25, Fig.26, Fig.27 et Fig.28 pour respectivement les structures 2, 3, 5 et 6).
FIG.25
FIG.26
FIG.27
FIG.28
Tandis que les résultats d’exécution de l’ensemble de références pour les structures éliminées
suivant :
1. { Measures } et { Marital Status × Product }
4. { Marital Status × Product } et { Measures }
Sont respectivement (Fig.29 et Fig.30 ):
FIG.29
FIG.30
74
Chapitre 4
Conception et implémentation
• Discussion des résultats
D’après les deux ensembles des résultats, il est clair que le but de cette optimisation est
de supporter les visualisations qui garantissent un placement des données (sinon des dimensions)
équitable ou bien rapproché sur les deux axes de cube résultant. Cette idée ne veut pas dire que
les structures éliminées sont indésirables, puisque toutes les structures proposées par le système
sont correctes, mais c’est juste pour alléger le choix de structure pour l’utilisateur en cas où
l’ensemble des structures proposées par le système est assez grand.
7. Conclusion
Parmi nos propositions présentées dans ce chapitre, l’algorithme STRUCTURATION qui
est différent de celui de [Bellatrech et al.2005] (FindStruct) de fait que ce dernier a pour but
d’affirmer pour un cube C l’existence d’une structure S respectant la contrainte de visualisation
VT,G ou non en calculant cette structure si elle existe, tandis que notre algorithme
STRUCTURATION calcule pour un cube de données C l’ensemble de toutes les structures
possibles qui respectent la contrainte de visualisation VT,G.
Ainsi, et avec l’existence d’une part, des structures parmi celles générées par notre
algorithme STRUCTURATION où la totalité ou la plupart des dimensions sélectionnées sont
placées sur un seul axe, ou bien des structures où la différence entre le nombre de graduations
sur les deux axes est considérable, et la forme carrée que prendre la majorité des assistants
personnels PDA, SmartPhone (téléphone intelligent : un téléphone mobile couplé à un PDA)
d’une autre part, on a introduit une nouvelle définition concernant la visualisation des résultats
d’exécution des requêtes OLAP sur ces appareilles.
Cette définition qualifier une visualisation d’être la meilleure si elle est réalisée par une
structure où la différence entre le nombre de graduations sur ses deux axes est minime. Cette
différence peut être supervisée par un seuil afin d’aider l’utilisateur à justifier ses visualisations.
Ensuite , Nous avons faits une étude de cas pour donner un aperçu pratique pour le
prototype développé Personnalisation ainsi que son fonctionnement de base. Après avoir exploré
les algorithmes de personnalisation des requêtes OLAP dans la partie précédente, cette partie a
pour objectif de montrer et discuter le prototype développé Personnalisation qui implémente ces
algorithmes de personnalisation. Ce prototype consiste en une simulation d’une application java
s’exécutant sur un smart phone d’un utilisateur.
A travers l’exemple pratique, on a essayé d’aborder l’objectif principal de notre système
Personnalisation. Cet objectif consiste à ne présenter à l’utilisateur que les résultats respectant
ses préférences figurées dans son profil.
Il a été aussi l’occasion d’évaluer l’efficacité de notre algorithme STRUCTURATION
pour la générations de l’ensemble de toutes les structures possibles pour un ensemble de
références en tenant compte les contraintes de visualisation de l’utilisateur. L’évaluation de la
proposition concernant la discrimination entre plusieurs sous-ensembles de références ainsi que
la suggestion pour une structure parmi un ensemble de plusieurs structures proposées par le
système font partie de l’objectif principal de cet exemple pratique.
75
Dans ce mémoire, on a essayé d’éclairer la notion de personnalisation, ses enjeux dans les
diverses disciplines et surtout d’enlever certaines ambiguïtés qui entourent ce concept dans les
entrepôts de données.
On a constaté que la personnalisation dans les entrepôts de données et comme dans les
bases de données relationnelles, elle est basée sur l’utilisation de profil utilisateur pour lui donner
une réponse appropriée à ses préférences. Le principe est lorsqu’un utilisateur interroge un
entrepôt de données par une requête OLAP, ses préférences stockées dans son profil doivent
êtres prises en considération.
Certaines particularités qui caractérisent les entrepôts de données exigent l’introduction
des autres factures telles que la présentation des résultats. Cette information est aussi stockée
dans le profil de l’utilisateur et lui permet d’exprimer la forme que doit prendre le résultat
d’exécution de sa requête OLAP.
Pour cet objectif (donner à l’utilisateur ce qui lui convient), il y a des travaux récents qui
adoptent la notion de recommandation. Dans ce contexte, la recommandation figure dans
l’enrichissement de schéma de l’entrepôt de données par des nouveaux niveaux de granularité ou
par la suggestion des requêtes OLAP à l’utilisateur en basant sur l’enchaînement des requêtes
des autres utilisateurs qui le précèdent sur le même système.
Afin de concrétiser la notion de personnalisation dans les entrepôts de données, on a
réalisé un prototype appelé Personnalisation. D’après ce dernier, on a essayé de synthétiser les
principales fonctionnalités d’un système de personnalisation. Les algorithmes employés dans ce
prototype sont l’algorithme de personnalisation de contenu [Bellatreche et al, 2006] et notre
algorithme STRUCTURATION pour la génération des structures possibles pour un ensemble des
références.
Le principal objectif de l’ensemble des exemples pratiques réalisés avec notre prototype
été la démonstration de l’efficacité des algorithmes employés dans l’implémentation de ce
prototype, ainsi que pour démontrer les avantages des différentes propositions.
Les qualités des différents résultats obtenus démontrent l’utilité de la personnalisation
dans les systèmes d’information, et le confort offert aux utilisateurs dés qu’ils obtiennent ce
qu’ils veulent sans qu’ils soient surchargés par des informations qui ne les intéresse plus.
79
[ABELLO, 2006] A Abello, J Samos, and F Saltor. YAM2 : A Multidimensional Conceptual
Model Extending UML. Information Systems, 31(6) :541–567, 2006.
[AGRAWAL et AL, 2003] Agrawal, Chaudhuri, Das et Gionis. “ Automated ranking of
database query results”. 8iemme Conférence internationale sur les bases de données avancées.
2003.
[AGRAWAL et WIMMERS, 2000] Agrawaland et Wimmers. “A framework for expressing
and combining preferences”. Proceedings of the 2000 ACMSIGMOD International Conference
on Management of Data, 2000, Dallas, Texas, USA.
[ANNONI, 2007] E Annoni. Eléments méthodologiques pour le développement des systèmes
décisionnels dans un contexte de réutilisation. Thèse de doctorat, Institut de Recherche en
Informatique de Toulouse - Université Toulouse 1, Toulouse, France, 2007.
[APPLIX, 1998] Applix INC. TM1 Technology, 1998. White paper.
[ARBOR, 19898] Arbor Software. Essbase, 1998. White paper.
[BELLATRECHE et AL, 2005] L. Bellatreche, A. Giacometti, P. Marcel, H. Mouloudi, and
D. Laurent. “A Personalization Framework for OLAP Queries”. In 8th ACM International
Workshop on Data Warehousing and
OLAP (DOLAP 05), Bremen, Germany, pages 9–18. ACM Press, 2005.
[BELLATRECHE et AL, 2006] L. Bellatreche, A. Giacometti, P. Marcel, and H. Mouloudi.
“Personalization of MDX Queries”. Dans la 22èmes journées Bases de Données Avancées (BDA
06), Lil le, France, 2006.
[BOHNLEIN et AL, 2002]
M. Böhnlein, M. Plaha, Ulbrich-Vom et A. Ende. “Visual
Specification of Multidimensional Queries Based on Semantic Data Model”. Article de
recherché, Data Warehouse Zum Corporate Knowledge Center, DW 2002, 2002.
[BONIFATI et AL, 2001] A Bonifati, F Cattaneo, S Ceri, A Fuggetta, and S Paraboschi.
Designing Data Marts for DataWarehouses. ACM Transactions on Software Engineering and
Methodology, 10(4) :452–483, 2001.
[BOUSSAID et AL, 2003] O Boussaid, F Bentayeb, J Darmont, and S Rabaseda. Vers l’entreposage des données complexes. structuration, intégration et analyse. Ingenierie des Systemes
d’Information, 8(5-6) :79–107, 2003.
[BOUZEGHOUB et KOSTADINOV, 2005]
M. Bouzeghoub et D. Kostadinov. “
Personnalisation de l’information : aperçu de l’état de l’art et définition d’un modèle flexible de
profils”. Dans IIème Conférence en Recherche d’Informations et Applications (CORIA 05),
Grenoble, France, 2005.
[BRADLEY et AL, 2000] K. Bradley, R. Rafter, and B. Smyth. “Case-Based User Profiling
for Content Personalisation”. In International Conference on Adaptive Hy-permedia and
Adaptive Web- Based Systems (AH 00), Trento, Italy, volume 1892 of LNCS, pages 62–72.
Springer, 2000.
[CABIBBO, 1998] L. Cabibbo et R. Torlone. “From a Procedural to Visual Query Language
for OLAP”’. Article de recherché, 10th IEEE International Conference on scientific and
Statistical Database Management, 1998.
[CHAUDHURI et AL, 2004] Chaudhuri ,Das, Hristidis et Weikum. “Probabilistic ranking of
database query results”. The Thirtieth International Conference on Very Large Data Bases
Toronto, Canada, 2004.
[CHAUDHURI et DAYAL1, 1997]
S .Chaudhuri et U.Dayal. An Overview of Data
Warehousing and OLAP Technology. SIGMOD Rec., 1997.
[CHEN et AL, 1998] L. Chen, K. Sycara. WebMate: A Personal Agent for Browsing and
Searching, In Proceedings of the 2nd International Conference on Autonomous Agents and Multi
Agent Systems, Minneapolis, MN, May 10-13, 1998.
[CHERNIACK et AL, 2003] M. Cherniack, E.F. Galvez, M.J. Franklin, and S.B. Zdonik.
“Profile-Driven Cache Management”. In 19th International Conference on Data Engineering
(ICDE 03), Bangalore, India, pages 645–656. IEEE ComputerSociety, 2003.
[CHOMICKI, 2003]
Chomicki. “Preference formulas in relational queries”. ACM
TransDatabase Systems, 2003
[CHOONG et AL, 2007] Y.W. Choong, A. Giacometti, D. Laurent, P. Marcel, E. Negre, and
N. Spyratos. “Context-based Exploitation of DataWarehouses”. Dan la 3ème journée
francophones sur les Entrepôts de Données et l’Analyse en ligne (EDA 07), Poitiers, France,
volume B-3 of Revue des Nouvel les Technologies de l’Information, pages 131–146. Cépaduès
Editions, 2007.
[CODD, 1993] E. Codd. “Providing OLAP (On-Line Analytical Processing) to Users-Analists:
an IT mandate’’. Technical report, E.F.Codd and Associates, 1993.
[CROZAT, 2002] S. Crozat. “Introduction aux bases de données’’. Support de cours, 2002.
[DAS et AL, 2006] Das, Hristidis, Kapoor, et Sudarshan. “Ordering the attributes of query
results”. SIGMOD Conference, 2003.
[ESPIL et AL, 2002] M. Espil, A. Vaisman et L. Terribile. “Revising Data Cubes with
Exceptions: a Rule-based Perspective”. In IVth International Workshop on Design and
Management of Data Warehouses (DMDW 02), Toronto, Canada, volume 58 of CEUR
Workshop Proceedings, 2002.
[FAVRE, 2007] Cécile Favre. “Evolution de schémas dans les entrepôts de données : mise à
jour de hiérarchies de dimension pour la personnalisation des analyses’’. Thèse de doctorat,
Université Lumière-Lyon2, Lyon, France, 2007.
[FRANCO, 1997] J. M. Franco. “Le Data Warehouse Le Data Mining’’. Eyrolles, 1997.
[FRANCONI, 1999] E. Franconi and U. Sattler. A Data Warehouse Conceptual Data Model for
Multidimensional Aggregation : a Preliminary Report. Italian Association for Artificial
Intelligence AI*IA Notizie, 1 :9–21, 1999.
[GAUCH et AL 2003] S. Gauch, J. Chaffe et A. Pretschner. Ontology-Based User Profiles for
Search and Browsing, To appear in J. User Modeling and User-Adapted Interaction, the Journal
of Personalization Research , Special Issue on User Modeling for Web and Hypermedia
Information Retrieval, 2003.
[GOLFARELLI et AL, 1998] M Golfarelli, D Maio, and S Rizzi. Conceptual Design of Data
Warehouses from E/R Schemes. In XXXIst Annual Hawaii International Conference on System
Sciences (HICSS 98), Big Island, Hawaii, USA, volume 7, pages 334–343, 1998.
[GOLFARELLI, 1998] M Golfarelli, D Maio, and S Rizzi. The Dimensional Fact Model : A
Conceptual Model for Data Warehouses. International Journal of Cooperative Information
Systems, 7(2-3) :215–247, 1998.
[GRAUA, 2004] C. Graua. “SQL Serveur 2000, Analysis Service et DTS”. ENSMP, France,
2004. [email protected].
[GUERRERO, 2002] Edgard Ivan Benitez Guerrero. Infrastructure adaptable pour l’évolution
des entrepôts de données. Thèse de doctorat, Université Joseph Fourrier – Grenoble1, Grenoble,
France, 2002.
[HAFYANE, 2008] S. Hafyane. “Langage d’interrogation graphique des bases de données
multidimensionnelles temporelle’’. Thèse de Magister, Institut national de formation en
informatique (INI), Alger, Algérie, 2008.
[INMON, 1992] W H Inmon. Building the Data Warehouse. QED Technical Publishing Group,
Wellesley, Massachusetts, U.S.A, 1992.
[INMON, 1996]
Edition, 1996.
W H Inmon. Building the Data Warehouse. John Wiley & Sons, Second
[INMON, 2002]
Edition, 2002.
W H Inmon. Building the Data Warehouse. John Wiley & Sons, Third
[ISRAEL, 2001] M. Israel. “SQL Serveur 2000”. Eyrolles, 2001.
[KENAN, 1995] Kenan Systems Corporation. An Introduction to Multidimensional Database
Technology, 1995. White paper.
[KENAN, 1997] Kenan Systems Corporation. Multidimensional Database Technology and
Data Warehousing, 1997. White paper.
[KIEßLING, 2002] Kießling. “Foundations of preferences in database systems”. 2002.
[KIM et AL, 2003] H J Kim, T H Lee, S G Lee, and J Chun. Automated Data Warehousing for
Rule-Based CRM Systems. In XIVth Australasian Database Conference on Database
Technologies, pages 67–73. Australian Computer Society, 2003.
[KIMBALL, 1996] R Kimball. The Data Warehouse Toolkit. John Wiley, U.S.A, 1996
[KIMBALL et AL, 2000] R Kimball, L Reeves, M Ross, and W Thornthwaite. Concevoir et
deployer un data warehouse. Eyrolles, 2000.
[KOSTADINOV, 2008] D. Kostadinov. “Personnalisation de l’information : une approche de
gestion de profils et de reformulation de requêtes”. Thèse de doctorat, Université de Versailles
Saint- Quentin en Yvelines, France, 2008.
[KOUTRIKA et IOANNIDIS, 2004] G. Koutrika and Y. Ioannidis. “Personalization of Queries
in Database Systems”. In 20th International Conference on Data Engineering (ICDE 04), Boston,
Massachusetts, USA, pages 597–608. IEEE Computer Society, 2004.
[KOUTRIKA et IOANNIDIS, 2005] Koutrika et Ioannidis. “Constrained optimalities in query
personalization”. SIGMOD Conference, 2005.
[LIST et AL, 2002] B List, R Bruckner, K Machaczek, and J Schiefer. A Comparison of Data
Warehouse Development Methodologies Case Study of the Process Warehouse. In XIIIth
International Conference on Database and Expert Systems Applications (DEXA 02), Aix-enProvence, France, volume 2453 of LNCS, pages 203–215. Springer, 2002.
[LUJAN-MORA, 2006] S Lujan-Mora, J Trujillo, and I Y Song. A UML Profile for
Multidimensional Modeling in Data Warehouses. Data and Knowledge Engineering, 59(3) :725–
769, 2006.
[LOPEZ & AL, 2000] N.LOPEZ, J.MIGUEIS et M.PICHON, intégrer UML dans vos projet,
EYROLLES, 2000
[MOODY et AL, 2000] D LMoody andMA R Kortink. From Enterprise Models to Dimensional
Models : a Methodology for Data Warehouse and Data Mart Design. In Design and Management
of Data Warehouses, page 5, 2000.
[MOULOUDI, 2007] H Mouloudi. Personnalisation de requêtes et visualisations OLAP sous
contraintes. Thèse de doctorat, Université Franois Rabelais, Tour, France, 2007.
[MULLER, 1997] modélisation objet avec UML, Pierre-Alain Muller, 1997.
[NABLI et AL, 2005] A Nabli, A Soussi, J Feki, H Ben-Abdallah, and F Gargouri. Towards an
Automatic Data Mart Design. In VIIth International Conference on Enterprise Information
Systems (ICEIS 05), Miami, Florida, USA, pages 226–231, 2005.
[PEGUIRON, 2006] F. Peguiron. “Application de l’Intelligence Economique dans un système
d’Information Stratégique Universitaire : les apports de la modélisation des acteurs”. Thèse de
doctorat, Université Nancy2, Nancy, France, 2006.
[PERALTA et AL, 2003] V Peralta, A Illarze, and R Ruggia. On the Applicability of Rules to
Automate Data Warehouse Logical Design. In Ist International Workshop on Decision Systems
Engineering (DSE 03), in conjunction with the XVth International Conference on Advanced
Information Systems Engineering (CAiSE 03), Klagenfurt/Velden, Austria, volume 75 of CEUR
Workshop Proceedings. CEUR-WS.org, 2003.
[PHIPPS et AL, 2002] C Phipps and K C Davis. Automating Data Warehouse Conceptual
Schema Design and Evaluation. In IVth International Workshop on Design and Management of
Data Warehouses (DMDW 02), Toronto, Canada, volume 58 of CEUR Workshop Proceedings,
pages 23–32. CEUR-WS.org, 2002.
[PITOURA et STEFANIDIS, 2008] E. Pitoura et K. Stefanidis. “Fast contextual preference
scoring of database tuples”.EDBT’08, 2008, Nantes, France.
[POE, 1996] V Poe. Building a Data Warehouse for Decision Support. Prentice Hall, 1996.
[PRETSCHNER et GAUCH, 1999] A. Pretschner and S. Gauch. “Ontology Based
ersonalized Search”. In 11th IEEE International Conference on Tools with Artificial Intelligence
(ICTAI 99), Chicago, Illinois, USA. IEEE ComputerSociety, 1999.
[RAVAT et AL, 2002] F. Ravat, O. Teste, and G. Zurfluh. “Personnalisation de bases de
données multidimensionnelles”. Dans le 25ème Congrès Informatique des Organisations et
Systèmes d’Information et de Décision (INFORSID 07), Perros-Guirec, France, pages
121–136, 2007.
[SOUSSI et AL, 2005] A Soussi, J Feki, and F Gargouri. Approche semi-automatisée de
conception de schémas multidimensionnels valides. In Iere journée sur les Entrepôts de Données
et l’Analyse en ligne (EDA 05), Lyon, volume B-1 of Revue des Nouvelles Technologies de
l’Information, pages 71–90. Ce- padues Editions, 2005.
[SPOFFORD, 2001] G. Spofford. “MDX Solutions”. Willey, 2001.
[TEST, 2000] O Teste. Modélisation et manipulation d’entrepôts de données complexes et
historiées. Thèse de doctorat, Institut de Recherche en Informatique de Toulouse - Universite
Toulouse 3, Toulouse, France, 2000.
[TORLONE et CIACCIA, 2002] Torlone, Ciaccia. “Finding the best when it’s a matter of
préférence”. Dans SEBD, 2002.
[TOURNIER, 2004] R. Tournier. “ Bases de données multidimensionnelles : Etude et
Implantation d’un langage graphique ”. Rapport de DEA, IRIT, Université Paul Sabatier,
Toulouse, France, 2004.
[TARDIEU, 1983] H Tardieu, A Rochfeld, and R Coletti. La methode Merise. Les Editions
d’Organisation, Paris, 1983.
[TRUJILLO et AL, 2001] J Trujillo, M Palomar, J Gomez, and I-Y Song. Designing Data
Ware- houses with OO Conceptual Models. Computer, 34(12) :66–75, 2001.
[TRYFONA et AL, 1999] N Tryfona, F Busborg, and J G Borch Christiansen. starER : A
Concetual Model for Data Warehouse Design. In IId ACM International Workshop on Data
Warehousing and OLAP (DOLAP 99), Kansas City, Missouri, USA, pages 3–8. ACM Press,
1999.
[ULBRICH et AL, 2000] A Ulbrich vom Ende M Boehnlein. Business Process Oriented
Development of Data Warehouse Structures. In Data Warehousing 2000 Methoden
Anwendungen, Friedrichshafen, Germany. Physica Verlag, 2000.
[WU et BUCHMANN, 1997] Ming-Chuan Wu et Alejendro Buchmann. Research Issues In
Data Warehousing. Dans GI-Fachtagung Daten Banken In Buro, Technik und Wissenschaft,
Germany, 1997.
[ZACHARIS et PANAYIOTOPOULOS, 2001] NZ. Zacharis, T. Panayiotopoulos. Web
Search Using a Genetic Algorithm, IEEE Internet Computing, vol. 5, n° 2, pp. 18-26, MarchApril 2001.
[WEB1]
[WEB2]
[WEB3]
[WEB4]
[WEB5]
[WEB6]
[WEB7]
[WEB8]
[WEB9]
http: //www.inmoncif.com
http://www.stanford.edu
http : //www.olapreport.com
http : //www.olapreport.com/fasmi.htm
http ://www.linux-france.org/prj/jargonf/F/FASMI.html
http ://www.java.sun.com/products/jmi/pres/JOLAPOverview.pdf
http: //www.technet.microsoft.com/fr-fr/library/
http://www.smile.fr
http : //www.msdn.microsoft.com/fr-fr/sqlserveur/
Téléchargement