Professional Documents
Culture Documents
ots de donn
ees pour laide `
a la d
ecision m
edicale:
conception et exp
erimentation
Serna Encinas Mara Trinidad
THSE
pour obtenir le grade de
Docteur de lUniversit Joseph Fourier
Spcialit : Informatique
prpare au laboratoire LSR IMAG
dans le cadre de lcole Doctorale
Mathmatiques, Sciences et Technologies de lInformation
Prsident
Rapporteur
Rapporteur
Examinateur
Examinateur
Directeur de thse
Remerciements
Je tiens remercier Anne Doucet, professeur lUniversit Pierre et Marie Curie de Paris (LIP6), et Mokrane Bouzeghoub, professeur lUniversit de Versailles
(PRiSM), pour avoir accept dtre rapporteur et pour leurs commentaires et critiques constructives qui mont apport un regard clairant sur les contributions de
cette thse. Je remercie aussi Jacques Demongeot, professeur lInstitut dIngnierie de lInformation de Sant de Grenoble (TIMC), et Ren Ecochard, professeur au
Service de Biostatistique de Lyon (LBBE), davoir accept de faire partie de mon
jury.
Je remercie trs sincrement Christine Collet, professeur lEcole Nationale Suprieure dInformatique et de Mathmatiques Appliques de Grenoble (ENSIMAG)
et responsable du projet NODS, pour mavoir accueilli dans son quipe et pour
lhonneur quelle ma fait en prsidant le jury de thse.
Jexprime ma profonde gratitude Michel Adiba, professeur lUniversit Joseph
Fourier de Grenoble (UJF), pour la conance quil ma toujours tmoign, ainsi que
pour ses conseils, ses encouragements et sa patience. Jose dire que vous devenez
mon ami.
Je remercie galement Claudia Lucia Roncancio, professeur lEcole Nationale
Suprieure dInformatique et de Mathmatiques Appliques de Grenoble (ENSIMAG), pour son aide, ses suggestions et principalement, pour son amiti.
Je tiens aussi remercier aux membres et collaborateurs de lquipe STORM,
Genoveva Vargas-Solar, Cyril Labbe, Fabrice Jouanot, Christophe Bobineau, Khalid Belhajjame, Edgar Benitez, Tran-Kien Cao, Laurent dOrazio, Levent Gurgen,
Nagapraveen Jayaprakash, Thi-Huong-Giang Vu et Hanh Tan, pour la disponibilit
quils ont eue pendant la ralisation de ce travail.
Merci tous les membres du Laboratoire Logiciels, Systmes, Rseaux de lIMAG,
en particulier aux quipes administratives (Liliane Di Giacomo, Martine Pernice,
Pascale Poulet et Carol Pasanisi) qui mont toujours aide dans les dmarches
suivre.
Jadresse mes plus vifs remerciements Gennaro Bruno, Hctor Manuel Prez
Urbina, Maria del Pilar Villamil, Sonia Mendoza-Chapa, Edicarsia Barbiero, Julio
Moreno, Irma Ramirez, Patricia Quintero, Norma Pacheco, Sonia Meneses, Carmen
Villarreal, Daniel Prez et Francisca Lorena Zepeda, pour avoir partag cette aventure avec moi et mavoir toujours soutenue pendant les moments les plus diciles
de cette thse. Pour moi, vous tes dj une partie de ma famille.
Je remercie ma mre, qui toujours ma soutenue, mes soeurs et mes frres, pour
leur amour inconditionnel et sans limites, pour leurs encouragements et pour leurs
conseils. Je tiens remercier spcialement Migdia, Carmen, Rosa, et Juan, qui ont
toujours cru en moi et qui mont soutenue tout ou long de ce travail.
A mes lles, dont lexistence donne un sens ma vie. Tous mes remerciements
sont vous. Vous tes la raison pour laquelle je me lve tous les jours de ma vie.
Pour ustedes, yo me levanto todos los dias de mi vida.
1
2
3
6
6
8
9
10
10
10
11
11
11
12
15
15
15
17
18
20
22
23
23
24
27
27
28
30
32
34
34
35
35
ii
2.6
2.7
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
37
37
38
43
44
45
46
47
47
49
50
75
76
76
77
79
80
84
88
.
.
.
.
.
.
.
50
51
51
51
52
53
53
54
59
59
61
62
63
63
64
65
65
66
67
70
71
72
iii
4.3
4.4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
90
91
92
94
95
98
.
.
.
.
.
.
.
.
.
.
.
.
.
.
101
. 102
. 102
. 103
. 105
. 105
. 105
. 107
. 108
. 115
. 116
. 117
. 117
. 119
. 122
.
.
.
.
.
.
.
.
.
.
.
125
. 125
. 125
. 125
. 126
. 127
. 127
. 128
. 128
. 129
. 131
. 132
145
iv
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
2.12
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
16
20
21
22
23
25
29
30
33
44
45
46
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
50
52
56
58
66
67
68
70
71
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
5
9
. . . . . . . . . . .
cot de stockage (
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. 76
.
.
.
.
.
.
.
79
82
83
86
87
91
93
vi
4.9
4.10
4.11
4.12
Structure de la dimension . . . . . . . . . . . . . . . . . . . .
Interface pour la gnration (semi-automatique) dindicateurs
Rsultat de lexcution de la requte Q4 . . . . . . . . . . . .
Fichier Requete.REL . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
94
96
97
98
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
102
103
113
114
117
118
120
120
6.1
6.2
donnes
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
3.1
3.2
4.1
4.2
4.3
4.4
4.5
5.1
5.2
A.1
A.2
A.3
A.4
Description
Description
Description
Description
vii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
18
19
24
24
25
25
25
26
26
26
42
77
78
82
86
88
148
149
151
152
viii
Chapitre 1
Introduction
Les entrepts de donnes intgrent les informations en provenance de direntes
sources, souvent rparties et htrognes et qui ont pour objectif de fournir une vue
globale de linformation aux analystes et aux dcideurs. Ces applications daide la
dcision sont de type OLAP (On-Line Analytical Processing ou Analyse en ligne).
La construction et la mise en oeuvre dun entrept de donnes reprsentent une
tche complexe qui se compose de plusieurs tapes. La premire consiste lanalyse
des sources de donnes et lidentication des besoins des utilisateurs. La deuxime
correspond lorganisation des donnes lintrieur de lentrept. Finalement, la
troisime consiste tablir divers outils dinterrogation (danalyse, de fouille de
donnes ou dinterrogation). Chaque tape prsente des problmatiques spciques.
Ainsi, par exemple, lors de la premire tape, la dicult principale consiste en lintgration des donnes, de manire quelles soient de qualit pour leur stockage.
Pour lorganisation, ils existent plusieurs problmes comme : la slection des vues
matrialiser, le rafrachissement de lentrept, la gestion de lensemble de donnes
(courantes et historises), entre autres. En ce qui concerne le processus dinterrogation, nous avons besoin des outils performants et conviviaux pour laccs et lanalyse
de linformation.
Notre travail se focalise principalement sur les deux dernires tapes, ainsi, pour le
processus dorganisation, nous proposons la dnition dun modle multidimensionnel, un algorithme pour la slection optimale des vues matrialiser et lutilisation
des versions de schmas bitemporels pour la gestion des aspects temporels des entrepts. Pour linterrogation, nous avons dvelopp une interface graphique qui permet
la gnration semi-automatique des indicateurs. Dans les chapitres suivants, nous
dployons chacune de nos propositions.
Cette thse a eu pour cadre un projet mdical. Ainsi, dans ce chapitre nous
prsentons dabord une introduction des entrepts dans le milieu mdical et un
rsum du projet ADELEM (Aide la Dcision Logistique et Mdical). Ensuite,
nous prsentons la problmatique et lobjectif de la thse et pour nir, nous exposons
la dmarche suivie et notre contribution.
1
Introduction
1.1
E
X
T
R
A
C
T
I
O
N
Sources de donnes
O
R
G
A
N
I
S
A
T
I
O
N
Entrept
de
donnes
I
N
T
E
R
R
O
G
A
T
I
O
N
Outils
A lintrieur de lentrept, nous trouvons le processus dorganisation, il est responsable de structurer les donnes par rapport leur niveau de granularit (agrgats).
Finalement, le troisime processus correspond linterrogation qui se place entre
lentrept et les dirents outils pour arriver lanalyse des donnes, pour les dirents utilisateurs de lentreprise.
Malgr une conception attentive et soigneuse, la structure dune base de donnes
est sujette de nombreux changements. Bien que les estimations dirent, la plupart
saccordent sur le fait que plus de 50% du travail des dveloppeurs se focalise sur les
modications du systme aprs leur implantation [Rod95]. Ces changements peuvent
aecter aussi bien les donnes que leur structure. En eet, lvolution dun schma
concerne tout le cycle de vie dun entrept de donnes. Un de premiers travaux dans
ce contexte est [HMV99a, HMV99b], o les auteurs proposent des oprateurs pour
lvolution des dimensions.
1.2
Cette thse a eu pour cadre le projet ADELEM1 qui consiste en la mise au point
doutils logiciels ncessaires laide la dcision logistique et mdicale, dans le cadre
des SROS (Schmas dOrganisation Sanitaire et Sociale) grs par les ARH (Agences
Rgionales dHospitalisation). Dans le systme de soins dune rgion, ces agences
sont charges de rpartir de manire optimale les moyens mdicaux (l"ore") en
fonction des besoins sanitaires (la "demande"). A partir des observations de sant
constituant linformation primaire, essentiellement contenue dans les donnes PMSI
(Programme de Mdicalisation du Systme dInformation des hpitaux) [PMS04], il
1
Introduction
Introduction
1.3
Les entrepts de donnes ont t conus pour laide la dcision. Ils intgrent les
informations en provenance des dirents systmes transactionnels de lentreprise.
Lensemble des donnes, y compris leur historique, est utilis pour faire des calculs
prvisionnels, des statistiques ou pour tablir des stratgies de dveloppement et
danalyses des tendances.
Dans le cadre du projet ADELEM, nous nous proposons dadapter notre savoirfaire au problme de la gestion de donnes mdicales qui constituent un cadre applicatif particulirement intressant. En eet, ces donnes se trouvent rparties dans
plusieurs sources quil faut, dans un premier temps, fdrer pour constituer un entrept de donnes pertinentes pour lapplication vise. Cette tape est importante
car elle doit non seulement identier les sources, mais aussi dterminer comment
extraire de ces sources les donnes dsires. Nous devons dterminer si les donnes
doivent tre extraites telles quelles ou bien sil faut les traiter au pralable en leur
appliquant des fonctions spciques comme des agrgats, des sommes, ... En plus,
nous devons tablir un mcanisme pour la gestion de lvolution. Dans ce cas, il faut
dterminer ladaptation au niveau : de lapplication dextraction, des agrgats et de
lapplication danalyse.
Cette problmatique est gnrale la constitution de tout entrept mais nous
devons ici tenir compte de la nature particulire des donnes sur lesquelles portent
ltude : type, format, smantique, condentialit, degr de abilit et de conance,
informations manquantes ou incompltes, ... En rsum, il sagit de constituer un
entrept qui contient des donnes pertinentes et de qualit sur lesquelles sera bas
loutil dinterrogation et le processus daide la dcision.
Prcedemment, nous avons dit que notre travail sencadre principalement aux
tapes dorganisation et dinterrogation. Pour cela, nous nous sommes focaliss sur
les problmatiques suivantes : la conception dun entrept de donnes, la slection
des vues matrialiser et la gestion de lvolution. Ainsi, nous traitons dabord ces
sujets et nous terminons avec lobjectif de notre thse.
1.3.1
4) Lensemble de mesures.
5) Les attributs des dimensions avec des descriptions compltes.
6) La gestion de lvolution.
7) La dnition des agrgats, des dimensions dgnres et des dimensions htrognes.
8) Ltendue historique des donnes.
9) La priodicit des mises jour.
Nous donnons une description de ces dcisions :
A partir de lanalyse des sources de donnes existantes et rellement utilises,
nous pouvons aboutir aussi bien lidentication des tables de faits, qui reprsentent
le sujet danalyse, qu son niveau de granularit. Lorsque le grain de la table de
faits est connu, les dimensions peuvent tre identies. Le choix des dimensions
est le point cl de la conception, car elles modlisent les perspectives de lanalyse.
Une fois les dimensions choisies, nous dnissons lensemble de mesures, qui reprsentent les direntes valeurs de lactivit analyse. Nous devons aussi enregistrer
pour chaque dimension lensemble des attributs textuels. Les attributs peuvent tre
utiliss comme source de restrictions dans une requte.
Pour la gestion de lvolution lintrieur des dimensions, Kimball [Kim96] propose trois solutions qui assurent un suivi des modications dans le temps :
1) Remplacer des valeurs anciennes par des nouvelles dans lenregistrement de la
dimension, nanmoins, nous perdons la possibilit de suivre les vnements passs.
2) Crer des nouveaux enregistrements de dimension lors du changement qui
contiennent les nouvelles valeurs de lattribut. Ceci quivaut segmenter lhistorique selon lancienne et la nouvelle description.
3) Crer des nouveaux champs "actuels" lintrieur de lenregistrement dorigine
de la dimension, tout en conservant en mme temps les premires valeurs enregistres. Dans ce cas, nous pouvons garder seulement la valeur originale et la courante
de lattribut modi. Les valeurs intermdiaires sont perdues.
Une dimension qui contient un seul attribut reprsente une dimension dgnre.
De cette manire, nous gardons lattribut (la cl de la dimension) lintrieur de la
table de faits.
Nous dcrirons une dimension htrogne en utilisant un exemple. Une compagnie dassurances a en gnral des domaines dactivit trs direncis. Il y a par
exemple : les risques habitation, les risques automobiles, les risques objets personnels, la responsabilit civile, ..., o chaque domaine est reprsent par des attributs
particuliers. Nous identions deux dimensions : une pour le bien assur et une autre
Introduction
1.3.2
1.3.3
Adaptation de
lapplication
dextraction
E
X
T
R
A
C
T
I
O
N
Sources de donnes
Adaptation des
agrgats
O
R
G
A
N
I
S
A
T
I
O
N
Entrept
de
donnes
Adaptation de
lapplication
danalyse
I
N
T
E
R
R
O
G
A
T
I
O
N
Outils
10
Introduction
1.3.4
Objectif de la thse
1.4
Dmarche et contribution
1.4.1
Mtamodle multidimensionnel
1.4.2
11
Nous avons dit prcdemment que pour la matrialisation dun hypercube, nous
avions les possibilits suivantes : la matrialisation complte, pas de matrialisation
ou la matrialisation partielle. Dans notre cas, nous considrons la dernire approche.
Notre algorithme utilise un modle de cot, nanmoins, nous considrons aussi les
paramtres suivants : frquence dutilisation, cot de calcul et frquence des mises
jour des relations de base.
Nous avons utilis notre algorithme et celui propos dans [HRU95] sur des donnes
mdicales relles et nous avons constat que notre proposition donne de meilleurs
rsultats pour notre cas exprimental.
1.4.3
1.4.4
12
Introduction
- Un ensemble de 19 primitives ncessaires pour la gestion des cubes, des dimensions et des hirarchies.
- Un ensemble de 5 primitives qui agissent sur les versions de schmas.
- Un gestionnaire dvolution responsable de la manipulation des direntes versions de schmas historises.
1.5
Plan de la thse
13
14
Introduction
Chapitre 2
Entrepts de donnes
multidimensionnelles et aspects
temporels
Les entrepts de donnes sont apparus vers les annes 1990 en rponse la ncessit de rassembler toutes les informations de lentreprise en une base de donnes
unique destine aux analystes et aux gestionnaires [Cod93, DG01]. Lensemble des
donnes, y compris leur historique, est utilis dans de nombreux domaines, tels
que : lanalyse de donnes et laide la dcision (gestion et analyse de march,
gestion et analyse du risque, gestion et dtection des fraudes,...) ; dans autres applications (recherches dans des textes, dans les documents web, dans lastronomie,...)
[Adi02, BCA01].
Dans ce chapitre, nous analysons aussi bien les caractristiques des entrepts que
leurs aspects temporels.
2.1
Entrepts de donnes
2.1.1
16
Entrept de
donnes
O
Mtadonnes
Donnes externes
Donnes fortement
rsumes
U
T
I
Donnes lgrement
rsumes
Donnes de dtail
L
S
Donnes de production
(SGBD, systmes lgus)
Donnes anciennes
archives
a) Les sources : Les donnes de lentrept sont extraites de diverses sources souvent rparties et htrognes, et qui doivent tre transformes avant leur stockage
dans lentrept. Nous avons deux types de sources des donnes : internes et externes
lorganisation.
Internes : La plupart des donnes sont saisies partir des dirents systmes
de production qui rassemblent les divers SGBD oprationnels, ainsi que des anciens
systmes de production qui contiennent des donnes encore exploites par lentreprise.
Externes : Ils reprsentent des donnes externes lentreprise et qui sont souvent
achtes. Par exemple, les sources de donnes dmographiques.
b) Lentrept de donnes : Il existe plusieurs types de donnes dans un entrept, qui correspondent diverses utilisations, comme :
17
2.1.2
18
de dcision. Ils intgrent les informations qui ont pour objectif de fournir une vue
globale de linformation aux analystes et aux dcideurs.
Le tableau 2.1 rsume ces dirences entre les systmes de gestion de bases de
donnes et les entrepts de donnes [DG01].
Objectifs
Utilisateurs
Taille de la base
Organisation
des donnes
Type de donnes
Requtes
Transactions
SGBD
Gestion et production
Gestionnaires de production
Plusieurs gigaoctets
Par traitement
Entrepts de donnes
Consultation et analyse
Dcideurs, analystes
Plusieurs teraoctets
Par mtier
Donnes de gestion
(courantes)
Simples, prdtermines,
donnes dtailles
Courtes et nombreuses,
temps rel
Donnes danalyse
(rsumes, historises)
Complexes, spciques,
agrgations et group by
Longues, peu nombreuses
2.2
Modlisation multidimensionnelle
19
Donnes
Utilisateurs
S. Transactionnel
Exhaustives
Courantes
Dynamiques
Orientes applications
Nombreux
Varis (employs,
directeurs,...)
Concurrents
Mises jour et
interrogations
Requtes prdnies
Rponses immdiates
Accs peu
dinformation
S. Dcisionnel
Rsumes
Historiques
Statiques
Orientes sujets (danalyse)
Peu nombreux
Uniquement les dcideurs
Non concurrents
Interrogations
Requtes imprvisibles et complexes
Rponses moins rapides
Accs de nombreuses informations
20
2.2.1
Schmas relationnels
Dans les schmas relationnels nous trouvons deux types de schmas. Les premiers
sont des schmas qui rpondent fort bien aux processus de type OLTP qui ont t
dcrits prcdemment, alors que les deuximes, que nous appelons des schmas pour
le dcisionnel, ont pour but de proposer des schmas adapts pour des applications
de type OLAP.
Nous dcrivons les dirents types des schmas relationnels pour le dcisionnel.
2.2.1.1
Le schma en toile
Produit
Temps
Cl_T
Jour
Mois
Anne
Ventes
Cl_P
Cl_T
Cl_M
Cl_P
Description
Type
Catgorie
Quantit
Magasin
Cl_M
Raison_soc
Adresse
Commune
Dpartement
Rgion
Pays
21
Il drive du schma prcdent avec une relation centrale et autour delle les direntes dimensions, qui sont clates ou dcomposes en sous hirarchies. Lavantage
du schma en ocon de neige est de formaliser une hirarchie au sein dune dimension, ce qui peut faciliter lanalyse. Un autre avantage est reprsent par la normalisation des dimensions, car nous rduisons leur taille. Nanmoins dans [Kim96],
lauteur dmontre que cest une perte de temps de normaliser les relations des dimensions dans le but dconomiser lespace disque. Par contre, cette normalisation
rend plus complexe la lisibilit et la gestion dans ce type de schma. En eet, ce type
de schma augmente le nombre de jointures raliser dans lexcution dune requte.
Les hirarchies pour le schma en ocon de neige de lexemple de la gure 2.2 sont :
Dimension Temps = Jour Mois Anne
Dimension Magasin = Commune Dpartement Rgion Pays
La gure 2.3 montre le schma en ocon de neige avec les dimensiones Temps et
Magasin clates en sous hirarchies.
Produit
Temps
Cl_T
Jour
Mois
Ventes
Cl_P
Cl_T
Cl_M
Cl_P
Description
Type
Catgorie
Quantit
T_Mois
Magasin
Mois
Anne
Cl_M
Raison_soc
Adresse
Commune
Dpartement
M_Dpartement
Dpartement
Rgion
M_Rgion
Rgion
Pays
22
2.2.1.3
Magasin
Produit
Cl_M
Raison_soc
Adresse
Commune
Dpartement
Rgion
Pays
Ventes
Cl_P
Cl_M
Cl_T
Cl_P
Description
Type
Catgorie
Quantit
Temps
Cl_T
Jour
Mois
Anne
Achats
Cl_P
Cl_F
Cl_T
Quantit
Fournisseur
Cl_F
Raison_soc
Adresse
Code_postal
Commune
Pays
2.2.2
23
Magasin
TV
CS
S
U
M
CP
Lyon
Grenoble
Annecy
Pays
Temps
anne
Rgion
mois
Dpartement
Jour
Ville
SUM
01/01/2000
Temps
02/01/2000
03/01/2000
SUM
All
2.3
Pour visualiser les donnes multidimensionnelles, nous pouvons utiliser la reprsentation sous forme dune table de donnes, qui est la plus courante [Mar98, Vas98].
Dans une table, nous reprsentons les direntes combinaisons des valeurs choisies
pour constituer les noms de lignes et de colonnes. Nanmoins, quand le nombre de
dimensions est suprieur deux, lutilisateur a des problmes pour visualiser simultanment lensemble de linformation. Pour rsoudre ce problme, nous devons
disposer doprations pour manipuler les donnes et rendre possible la visualisation.
Nous prsentons les oprations pour la manipulation des donnes multidimensionnelles, en les divisant selon leur impact sur la faon de prsenter les direntes
vues des donnes analyses [Mar98, MQM97, MS90, Tes00].
2.3.1
Oprations classiques
24
les mesures, soit sur les membres. Par exemple, une slection des ventes suprieur
350 est une slection sur les mesures, tandis que une slction des ventes raliss
dans la rgion "Rhne Alpes" de lanne "2000" est une slection sur les membres
dune dimension.
La projection : Rsulte en un sous-ensemble des attributs dune relation, qui sont
soit des dimensions, soit des niveaux de granularit. Dans les systmes dcisionnels,
les oprations de slection et de projection sont appeles souvent "slice-and-dice".
La jointure : Permet dassocier les donnes de relations direntes. Par exemple,
en utilisant les tables 2.3 et 2.4, nous faisons une jointure sur la dimension Produit.
Lobjectif est de reprsenter sur une mme table la quantit de produits vendue et
leur prix (cf. Figure 2.6).
Ventes (01/01/2000)
Tlviseur
Radio
Camscope
Camera photo
Mag1
100
50
100
Mag2
Mag3
250
200
50
100
100
Prix (01/01/2000)
1
2
3
4
2.3.2
Les oprations agissant sur la structure visent prsenter une vue (face du cube)
dirente en fonction de leur analyse, citons :
La rotation (rotate) : Consiste pivoter ou eectuer une rotation du cube, de
manire prsenter une vue dirente des donnes analyser.
25
Produit
Tlviseur
Radio
Camscope
Camera photo
Mag1
50
50
100
Mag2
100
Mag3
100
50
100
Produit
Tlviseur
Radio
Camscope
Camera photo
Mag1
100
50
100
100
Mag2
100
50
Mag3
50
100
100
100
Produit
Tlviseur
Radio
Camscope
Camera photo
Tlviseur
Radio
Camscope
Camera photo
Mag1
50
50
100
100
50
100
100
Mag2
100
Mag3
100
50
100
50
100
50
100
100
100
26
01/01/2000
100
50
02/01/2000
100
200
100
100
03/01/2000
50
100
100
100
01/01/2000
200
50
100
02/01/2000
100
200
100
03/01/2000
150
100
100
01/01/2000
250
02/01/2000
100
100
50
100
03/01/2000
50
100
50
100
27
2.3.3
2.4
Les donnes oprationnelles constituent la source principale dun systme dinformation dcisionnel. Les systmes dcisionnels complets reposent sur la technologie
OLAP, conue pour rpondre aux besoins danalyse des applications de gestion.
Lacronyme FASMI (Fast Analysis of Shared Multidimensional Information) permet de rsumer la dnition des produits OLAP. Cette dnition fut utilise pour
28
la premire fois en 1995 et depuis aucune autre dnition nest plus proche pour
rsumer le terme OLAP [Ola04].
Fast : Le temps de rponse aux demandes des utilisateurs oscille entre 1 et 20
secondes. Les constructeurs utilisent des pr-calculs pour rduire les dures des requtes.
Analysis : Le systme doit pouvoir faire face toutes les logiques daaires et
de statistiques, ainsi que fournir la possibilit aux utilisateurs de construire leurs
calculs et leurs analyses sans avoir programmer. Pour cela, il y a des outils qui
seront fournis par le constructeur.
Shared : Le systme doit crer un contexte o la condentialit est prserve et doit
grer les cas o plusieurs utilisateurs ont des droits en critures. Ce point constitue
la plus grosse faiblesse des produits actuels.
Multidimensional : Cest la caractristique cl. Le systme doit fournir des vues
conceptuelles multidimensionnelles des donnes. Il doit supporter aussi les hirarchies.
Informations : Lensemble des donnes et les informations ncessaires pour un produit OLAP.
Nous exposons dans la suite les divers types de stockage des informations dans
les systmes dcisionnels.
2.4.1
Dans les systmes relationnels OLAP, lentrept de donnes utilise une base de
donnes relationnelle. Le stockage et la gestion de donnes sont relationnels. Toutefois, le modle relationnel requiert des extensions pour supporter les requtes danalyses multidimensionnelles du niveau dapplication. Le moteur ROLAP traduit dynamiquement le modle logique de donnes multidimensionnel M en modle de stockage relationnel R (la plupart des outils requirent que la donne soit structure en
utilisant un schma en toile ou un schma en ocon de neige). Techniquement, le
moteur ROLAP excute une transformation partir dune requte multidimensionnelle m contre M vers une requte relationnelle r contre R. Lecacit du rsultat
de la requte est le facteur dominant pour la performance et le passage lchelle
global du systme. Ainsi, les stratgies doptimisation reprsentent le point principal
qui distingue les systmes ROLAP existants [DSBH99, Sat03].
La gure 2.7 montre une architecture pour le serveur ROLAP.
29
Serveur ROLAP
Base de donnes
relationnelle
Vue
multidimensionnelle
Client OLAP
30
2.4.2
Les systmes multidimensionnels OLAP utilisent une base de donnes multidimensionnelle pour stocker les donnes de lentrept et les applications analytiques
sont construites directement sur elle. Dans cette architecture, le systme de base de
donnes multidimensionnel sert tant au niveau de stockage quau niveau de gestion
des donnes. Les donnes des sources sont conformes au modle multidimensionnel,
et dans toutes les dimensions, les direntes agrgations sont prcalcules pour des
raisons de performance [WB97].
La gure 2.8 montre une architecture pour les systmes MOLAP.
Serveur MOLAP
Base de donnes
multidimensionnelle
(hypercube)
Client OLAP
31
32
SAS OLAP Cube Studio : Cest un outil pour la construction des cubes et qui
peut tre facilement utilis pour la dnition des mesures, des dimensions et des
agrgations.
SAS Metadata Server : Cest un conteneur des mtadonnes.
Ce serveur fournit un processus ETL (Extract, Transform and Load) qui est
transparent et intgr.
Informix MetaCube : Il fournit un mcanisme pour analyser lentrept de donnes et leurs data marts intgrant des outils OLAP avec la technologie de bases de
donnes relationnelles [Inf02]. Les composants du logiciel MetaCube sont :
MetaCube Analysis Engine : Il fournit une interface multidimensionnel. Cet outil tend la fonctionnalit danalyse de la base de donnes avec lincorporation des
oprations OLAP, par exemple lopration rotation (rotate).
MetaCube Explorer : Cest une interface graphique qui permet aux utilisateurs
dexcuter des requtes au travers du MetaCube Analysis Engine.
MetaCube Warehouse Manager : Cest une interface graphique pour crer une description multidimensionnelle des tables et des colonnes dans lentrept de donnes.
Le MetaCube Analysis Engine stocke cette description multidimensionnelle comme
un ensemble de tables.
2.4.3
Un systme HOLAP est un systme qui supporte et intgre un stockage des donnes multidimensionnel et relationnel dune manire quivalente pour proter des
caractristiques de correspondance et des techniques doptimisation.
Ci-dessous, nous traitons une liste des caractristiques principales quun systme
HOLAP doit fournir [DSBH99] :
La transparence du systme : Pour la localisation et laccs aux donnes, sans
connatre si elles sont stockes dans un SGBD relationnel ou dimensionnel. Pour la
transparence de la fragmentation,...
Un modle de donnes gnral et un schma multidimensionnel global :
Pour aboutir la transparence du premier point, tant le modle de donnes gnral
que le langage de requte uniforme doivent tre fournis. Etant donn quil nexiste
pas un modle standard, cette condition est dicile raliser.
Une allocation optimale dans le systme de stockage : Le systme HOLAP
33
doit bncier des stratgies dallocation qui existent dans les systmes distribus
tels que : le prol de requtes, le temps daccs, lquilibrage de chargement,...
Une re-allocation automatique : Toutes les caractristiques traites ci-dessus
changent dans le temps. Ces changements peuvent provoquer la rorganisation de
la distribution des donnes dans le systme de stockage multidimensionnel et relationnel, pour assurer des performances optimales.
Actuellement, la plupart des systmes commerciaux utilisent une approche hybride. Cette approche permet de manipuler des informations de lentrept de donnes avec un moteur ROLAP, tandis que pour la gestion des data marts, ils utilisent
lapproche multidimensionnelle. Dans la gure 2.9, nous montrons une architecture
en utilisant les types de serveurs ROLAP et MOLAP pour le stockage de donnes.
Serveur
MOLAP
Base de donnes
multidimensionnelle
(hypercube)
Base de donnes
relationnelle
Vue
multidimensionnelle
Client OLAP
34
2.5
Dans cette partie, nous dcrivons les projets de recherche sur les entrepts de donnes. Les deux premiers (WHIPS et SIRIUS) sont centrs sur des problmatiques
lies lextraction et la maintenance des donnes. Le troisime DWQ traite de la
qualit des entrepts, tandis que le dernier, le projet EVOLUTION propose le dveloppement dune mthodologie et doutils pour laide la conception et lvolution
des entrepts.
2.5.1
35
diaire et dtecter automatiquement les changements dans la source pour les propager
vers lintgrateur.
Intgrateur : Il est responsable de la rception des reprsentations intermdiaires
des donnes sources, en provenance des adaptateurs, et de lintgration de cellesci. Lintgration entrane aussi une phase de transformation, celle-ci consiste les
prparer (mise en correspondance des formats de donnes), les nettoyer, les ltrer,...,
pour les rendre conforme au schma de lentrept et aux critres de qualit choisis.
2.5.2
Ce projet dvelopp lUniversit de Zurich, est un systme dentrept de donnes qui a pour objectif dtudier des techniques permettant le rafrachissement
incrmental de lentrept en rduisant les temps de mise jour. Le schma de lentrept est dni sous la forme dun schma global UML.
Chaque source de donnes est munie dun adaptateur et dun moniteur. Le moniteur dtecte les volutions de la source laquelle il est associ. Le module de
gestion du rafrachissement est le module central (DWRM Data Warehouse Refresh
Manager). Ladaptateur traduit les donnes de la source dans un modle commun,
interne au systme et les transmet au module central DWRM [VGD00].
Objectif du projet :
Lobjectif principal de cette approche est dintroduire une architecture dintergiciel exible, pour :
- Fournir des solutions pour le rafrachissement de donnes.
- Pouvoir tre utilise de faon indpendante par rapport au stockage de donnes
de lentrept.
- Pouvoir tre utilise par des entrepts de donnes composs des sources de
donnes htrognes.
2.5.3
36
Les rsultats comportent des mta-modles formels de donnes destins la description de larchitecture statique dun entrept de donnes. Les outils associs
comportent des facilits de modlisation incluant des caractristiques spciques
aux entrepts comme la rsolution de sources multiples, la gestion de donnes multidimensionnelles agrges et des techniques pour loptimisation de requtes et la
propagation incrmentale des mises jour.
Ce projet permet aussi lvolution de lentrept. Les outils incluent un ensemble
doprateurs, lanalyse et loptimisation des dnitions des vues, la slection optimise de sources de donnes, des stratgies dintgration et des vues matrialises
[JV97, JQJ98, JJQV99, TS99].
Objectifs du projet :
Les objectifs de recherche visent trois domaines, o les facteurs de qualit reprsentent le point central :
- Enrichir la smantique de la mta base avec des models formels de qualit de
linformation qui permettent loptimisation de la conception de faon adaptative et
quantitative.
- Enrichir la smantique des models dinformation qui permettent aussi bien le
rafrachissement incrmental de donnes et leur propagation vers lentrept, que la
rsolution des conits.
- Enrichir la smantique des models de schma de lentrept qui permettent aux
concepteurs de prendre les avantages explicites par rapport la nature temporelle,
spatiale et des agrgats des donnes.
Composants de lentrept de donnes :
Le projet DWQ fournit un modle architectural qui considre la conception, la
mise en oeuvre, la maintenance et lvolution des entrepts. Les composants basics
sont :
- Sources : les donnes stockes dont le contenu peut tre matrialis dans lentrept.
- Adaptateur : responsable du chargement des donnes sources dans lentrept.
- Base de donnes nale : lentrept de donnes et les data marts.
- Mta base : conteneur dinformation des autres composants, par exemple, le
schma des donnes sources.
37
2.5.4
Projet EVOLUTION
2.6
Malgr une conception attentive et soigneuse, la structure dune base de donnes est sujette de nombreux changements. Bien que les estimations dirent,
la plupart saccordent sur le fait que plus de 50% du travail des dveloppeurs se
focalise sur les modications du systme aprs leur implantation [Rod95]. Pour rsoudre le problme de perte de donnes aprs des changements du schma, le concept
dvolution de schma t introduit pour rcuprer les donnes existantes. Cette
rcupration se ralise par le biais de ladaptation des donnes au nouveau schma.
Nanmoins, dans les systmes qui doivent grer des donnes historiques, lvolution
38
2.6.1
Nous tudions ce paradigme dans les divers modles de donnes existants. Ceux
que nous abordons sont le modle relationnel, le modle objets, les bases de donnes
temporelles et nous terminons avec les entrepts de donnes.
2.6.1.1
Modle relationnel
La gestion des volutions dans la structure des bases de donnes a donn naissance
aux concepts de modication, dvolution et de versions de schmas. La distinction
entre les dirents concepts reste un peu imprcise. Dans la suite nous donnons
chaque dnition [DGW+ 98, Rod92, Rod95, TS93] :
La modification de schma dun systme de bases de donnes peut se faire
mme si la base de donnes est dj peuple.
Lvolution de schma dun systme de bases de donnes facilite la modication du schma de la base sans perdre les donnes existantes.
Les versions de schma permettent laccs toutes les donnes, de faon rtrospective et prospective, travers des interfaces de versions dnies par lutilisateur.
A partir de ces dnitions, nous constatons que mme si lvolution de schma
permet leur actualisation, elle nimplique pas un support historique complte du
schma.
Versions et bases de donnes : Dans la suite nous traitons les conditions pour
quune base de donnes supporte la gestion de versions [ABCM99, CW98, KU95,
Mun93].
La fonctionnalit des systmes qui supportent les versions est reprsente par
lensemble des oprations utiliser. Les oprations fondamentales sont la cration
de nouvelles versions et laccs aux donnes des direntes versions. Nanmoins, le
systme doit fournir dautres oprations sur les versions : dnition des noms ou des
identications, eacement, modication, transformer une version dans une version
39
40
2.6.1.2
Dans ce paradigme, deux types de changements sont signicatifs : les changements dans la dnition dune classe (le contenu dun noeud) et les changements
dans la structure (les artes et les noeuds). Ces changements reprsentent lensemble
des oprations primitives qui permettent de manipuler lvolution de la classe. Les
changements dans la dnition de la classe incluent les oprations de cration et
de suppression des attributs et des mthodes qui appartiennent une classe. Les
changements dans la structure, correspondent aux oprations de cration et de
suppression dune classe, ainsi que la modication des relations entre les classes
[MBJ+ 02, GM99, GMS00, FGM00, Lau96, RR97].
Versions de schmas, de classes et de vues : Dans lenvironnement de bases de
donnes multi-utilisateurs, une fonctionnalit importante est la capacit des utilisateurs visualiser et manipuler direntes collections dobjets via direntes versions
de schma. Il existe trois approches pour reprsenter les volutions : la version de
schma, la version de classes et les schmas de vues [Lau96, KC88, FGM00, MS93,
Odb92].
Dans lapproche de versions de schma, chaque version reprsente une conguration cohrente de versions au niveau de la classe. Le systme fournit un ensemble
doprations primitives pour la gestion de lvolution. Quand nous drivons une
nouvelle version de schma SVj partir de SVi , les classes existantes peuvent tre
modies ou eaces et des classes nouvelles peuvent tre cres pour SVj . Si une
classe C est modie, on peut dire que SVi et SVj contiennent direntes versions
de la class C, dnote par SVi .C et SVj .C respectivement. Toutes les versions dun
schma sont stockes dans une structure qui garde les relations de drivation entre
toutes les versions de schmas.
La deuxime approche traite lvolution au niveau de la classe. A la dirence
des versions de schma, si une version nouvelle Vj de la classe C est drive de la
version Vi , toutes les sous-classes de la classe C doivent faire rfrence la nouvelle
version de C. Ceci signie quune nouvelle version doit tre cre pour chacune des
sous-classes de C.
Le schma de vues peut tre utilis pour simuler des modications de schma.
Lide gnrale est de manipuler la base de donnes seulement travers des vues.
Dans ce cas, les changements peuvent tre simuls en changeant les vues et les applications peuvent utiliser direntes vues (comme dirents schmas) sans changer
la base de donnes sous-jacente.
De nombreux travaux [MBJ+ 02, GM99, GMS00, KC88, Lau96] se sont focaliss
sur la premire approche, car elle manipule la granularit de versions au niveau du
schma. Ceci permet une vue globale de lensemble des classes lintrieur dune
version de schma.
41
Les bases de donnes temporelles permettent de reprsenter et de manipuler lhistoire des donnes (donnes extensionnelles). Le support de versions de schmas dans
les bases de donnes temporelles prsente deux problmes fondamentaux. Le premier
est le stockage et la manipulation de lensemble de versions de schma appele la smantique du changement. Ce problme implique la vrication et la maintenance de
la consistance du schma aprs des changements. Le second problme reprsente la
gestion et la manipulation des versions de donnes, nomme aussi la propagation des
changements. Cette problmatique concerne la consistance des donnes existantes
avec la nouvelle version du schma [MBJ+ 02, GM02, GMS00, ME97, RGMS01].
Laspect temporel est associ aux objets, aux versions, aux attributs et aux relations. Dans les bases de donns temporelles, le temps de transaction correspond
linstant o un fait est enregistr dans la base. Alors que, le temps de validit dun
fait correspond aux instants auxquels ce fait est vrai dans le monde modlis. Dans
la suite, nous traitons chaque dnition.
Temps de transaction, temps de validit et bitemporel : La manipulation de la dimension temps dans les versions de schma correspond soit la version de schma au temps de transaction, soit au temps de validit, soit les deux.
Cette dernire appele bitemporel, reprsente la combinaison des deux premires
[Dum00, GM02, ME97, Sno99].
Pour le temps de transaction, les modications appliques dans une version de
schma sont eectives au moment de leur dnition. Dans cette approche, la gestion
du temps est transparente lutilisateur. Le schma courant peut tre modi et
les changements sont appliqus sans aucune rfrence au temps. Cette approche ne
permet aucun changement sur les versions successives du schma. Nanmoins, toutes
les versions sont disponibles pour laccs et la manipulation des donnes.
La version de schma en temps de validit est ncessaire quand les modications des versions de schmas rtroactives ou proactives doivent tre supportes.
Dans ce cas, chaque version de schma est assigne une validit temporelle. Cette
approche permet des versions de schmas multiples valides dirents moments.
Toutes les versions de schmas sont disponibles aussi bien pour laccs et la manipulation des donnes, que pour la ralisation des modications futures.
La version de schma bitemporelle reprsente une combinaison du temps de
transaction et du temps valide. Elle supporte les modications des versions de schmas courantes, comme dans la premire approche et aussi les modications des
versions de schmas de faon rtroactive et proactive. Par rapport la version de
schma en temps valide, lhistoire complte des changements du schma est maintenue, car aucune version de schma nest abandonne.
42
Salaire
Temps de transaction
1000
1500
1600
1-07-2000 - 31-12-2000
1-01-2002 - 31-01-2002
1-01-2003 - UC3
Temps de validit
1-07-2000 - 31-12-2001
1-01-2002 - 31-12-2002
01-01-2003 - 31-12-2004
2.6.1.4
Les actualisations ralises dans les sources des donnes doivent tre reportes
sur lentrept. Ce processus requiert une transaction de maintenance. Dans les entrepts, une problmatique trs importante est la faon dexcuter les transactions
de maintenance sans perturber les requtes des utilisateurs. La plupart des systmes
commerciaux garantissent la consistance sans blocage, en excutant une seule et
unique transaction de maintenance, normalement pendant la nuit, quand lentrept
est hors de service [QW97].
Les changements eectus dans les sources peuvent tre appliqus aussi bien au
contenu des donnes qu leur structure. Dans [Ben02], lauteur propose une infrastructure adaptable pour lvolution des entrepts de donnes. Il prsente un
ensemble doprateurs dvolution de schmas multidimensionnels, ainsi quun langage de description de donnes multidimensionnelles. Nanmoins, aucun support
historique nest prsent dans ce travail.
En ce qui concerne lapproche des versions de schmas, la plupart des recherches se
sont focalises dans la propagation des changements sur les donnes [KC02, KM99,
QW97, TU98]. Dans [KC02], par exemple, les auteurs proposent un contrle de
concurrence multi-version adapt pour les entrepts de donnes (MVCC-DW) en
utilisant un serveur multidimensionnel OLAP (MOLAP). MVCC-DW permet des
actualisations de lentrept pendant que des requtes sont excutes sur les donnes.
Dans [QW97], les auteurs proposent un mcanisme appel 2VNL (Two-Version
No-Locking). Ce mcanisme permet quune requte puisse continuer utiliser une
vue, alors quune transaction de maintenance crit la nouvelle version de cette vue.
Dans [ZR98, RKZ+ 99], les auteurs proposent une approche pour la maintenance
de la consistance dans un environnement concurrent supportant des changements sur
les donnes et sur leur schma. Ils ont dvelopp un systme appel EVE (Evolvable
3
Le symbole UC (Until Changed) indique que lintervalle de transaction de la version va jusqu
la date daujourdhui.
43
2.6.2
Espace de versions
Dans cette partie, nous traitons de lespace de versions. Dabord, nous ranons
la dnition de version de schma. Ensuite, nous expliquons leurs types ainsi que
les graphes de version, puis, nous terminons avec une description de lensemble des
oprations utiliser lors des changements eectuer.
Versions de schmas : Il est important dans la gestion des versions de distinguer la rcupration et la mise jour des donnes. Pour rpondre ce besoin, le concept de versions de schma a t divis en version partielle et complte
[CW98, Rod95, WMC01] :
Version partielle de schma : Les donnes stockes sous nimporte quel schma
historique peuvent tre visualises sous tout autre schma. Nanmoins les donnes
peuvent seulement tre actualises au travers du schma courant.
Version complte de schma : Les donnes stockes sous nimporte quel
schma historique peuvent tre visualises et actualises sous tout autre schma.
Un modle de version dnit les lments qui ont volus, les proprits communes partages et les deltas. Chaque version doit tre identie de faon unique,
travers un identicateur de version VID. Les deltas reprsentent les dirences entre
deux versions. Un delta peut tre symtrique ou direct.
Un delta symtrique entre deux versions v1 et v2 , reprsente lensemble de diffrences entre elles, cest dire :
(v1 , v2 ) = (v1 - v2 ) U (v2 - v1 )
O le symbole correspond la dnition du delta.
Un delta direct reprsente une squence doprations de changements op1 , ...
,opm . Quand ces changements sont appliqus sur une version v1 , ils produisent une
44
nouvelle version v2 .
(v1 ,v2 ) = op1 , ... ,opm
Cest--dire, v1 gnre v2 : v1 v2
2.6.3
Une version est dnie comme un tat dun objet variant dans le temps. Les
modles de versions peuvent considrer les dirents tats des objets. Dans cette
approche, les versions sont dcrites par rapport aux rvisions et aux variantes. Une
rvision est une version qui remplace la prcdente. Lensemble des versions qui coexistent sont appeles des variantes.
Dans les modles bass sur les changements, une version est dcrite par rapport
aux modications. Dans cette approche, chaque changement est aect un identicateur (CID) ainsi que des attributs pour caractriser les causes et/ou la nature
du changement. Ainsi, une version est dcrite par rapport aux changements quelle
implante.
Lespace des changements peut se reprsenter de deux faons (Figure 2.10).
changements
b
c1
c2
c3
c4
c5
c6
c1
v1
c3
c2
v2
versions
c4
c3
v3
v1
c5
v3
v4
c6
c4
v4
v2
a) Reprsentation en matrice
45
sont anonymes de faon ce que nous puissions les dduire partir de la topologie
du graphe de version.
2.6.4
Graphes de version
Un graphe de version consiste en un ensemble de noeuds et dartes qui correspondent une version et leur relations [Mun93, CW98]. La plupart des systmes
utilisent une organisation un ou deux niveaux que nous exposons dans la suite.
Types dorganisations Un graphe de version dun niveau consiste en un ensemble de versions qui sont connectes par leurs relations successeurs. Ce type de
graphes reprsente lhistorique de lvolution dun lment. Par exemple, si la version v2 est un successeur de v1 , cela signie que la version v2 a t drive partir
de v1 . La gure 2.11 reprsente dirents types de graphes de version.
v1
v1
v1
v2
v4
v2
v3
v2
v4
v3
v3
a) Squence
b) Arbre
c) Graphe acyclique
46
b2
v1
v2
v1
branche
successeur
descendants
b4
v1
v2
v3
v2
v3
v4
v3
v4
v2
fusion
2.6.5
La gestion de versions extensionnelles ou de versions de donnes, concerne la reconstruction de versions cres priori. Elle requiert lidentication de la version
(VID) et limmutabilit de la version. Une version est immuable si elle nautorise
pas de changements, ce qui permet dassurer une rcupration sre des donnes.
Finalement, la reconstruction de versions demande aussi un systme de stockage
ecace [CW98, ME97, MBJ+ 02].
En ce qui concerne la gestion de versions intensionnelles (ou versions de schmas), elle traite de la construction de nouvelles versions partir des descriptions
bases sur des proprits. Cette approche est trs utilise quand un logiciel volue
en plusieurs rvisions et variantes o beaucoup de changements doivent tre combins. Les systmes qui supportent des versions intensionnelles doivent fournir un
mcanisme pour rsoudre le problme dexplosion des combinaisons et de contrle
de cohrence. Ce mcanisme permet seulement la construction de versions pouvant
satisfaire certaines contraintes [CW98, ABCM99].
Dans [ABCM99], les auteurs prsentent un modle uni de versions extensionnelles. Ce modle utilise un mcanisme appel version concentration pour rduire le
nombre de combinaisons prendre en compte. Dans [MBJ+ 02], les auteurs utilisent
un modle temporel de version (TVM) pour permettre le stockage de versions dobjets, ainsi que toute lhistoire des changements pour chaque version. Finalement,
dans [GM02], les auteurs prsentent un modle formel pour des versions temporelles
de schmas dans les bases de donnes orientes objets. Ils proposent un schma volu qui consiste en une collection de versions de schmas dnies sur un ensemble
de noms de classes et dattributs.
47
2.7 Bilan
2.6.6
Oprations primitives
2.7
Bilan
Dans ce chapitre, nous avons trait le sujet des entrepts de donnes qui tendent
les concepts et la technologie traditionnelle des bases de donnes pour crer des systmes daide la dcision.
En utilisant larchitecture dun entrept de donnes, nous avons expliqu les diffrents composants quil intgre, comme les diverses sources, les types de donnes
et les dirents outils pour arriver la visualisation de linformation. Nous avons
dcrit les dirents modles multidimensionnels pour la construction dun entrept
de donnes, ainsi que les direntes oprations pour la manipulation des donnes
multidimensionnelles.
Lavant dernire partie a t consacre aux types de serveurs dcisionnels. Dans
un premier temps, nous avons dcrit le serveur ROLAP qui utilise une base de donnes relationnelle, tant au niveau du stockage quau niveau de la gestion de donnes.
Dans cette architecture, les stratgies doptimisation reprsentent le point principal
qui distingue les systmes existants. Nous avons donn galement une description
des systmes ROLAP existants sur le march.
Le serveur MOLAP a t la deuxime architecture que nous avons traite. Ces
types de systmes utilisent une base de donnes multidimensionnelle pour le stockage des donnes. Les systmes MOLAP doivent grer le problme de donnes
clairsemes, quand seulement un nombre rduit des cellules dun cube contiennent
48
une valeur de mesure associe. La faon de rsoudre cette problmatique, par les
produits commerciaux, reprsente un des plus importants critres pour les systmes
MOLAP. Nous avons aussi donn une liste des produits existants.
La troisime architecture que nous avons dcrite est le serveur HOLAP. Un systme de ce type supporte et intgre un stockage de donnes multidimensionnelles et
relationnelles. La plupart des systmes commerciaux utilisent une approche hybride
pour manipuler les informations de lentrept avec un moteur ROLAP, tandis que
pour la gestion des magasins des donnes (data marts), ils utilisent lapproche MOLAP. Finalement, nous avons dcrit quelques produits commerciaux existants.
En ce qui concerne les projets de recherche dans le domaine des entrepts de donnes, nous avons dcrit succinctement WHIPS, SIRIUS, DWQ et EVOLUTION. Les
deux premiers sont centrs sur des problmatiques lies lextraction et la maintenance incrmentale des donnes. Le projet de la communaut Europenne DWQ
traite de la qualit des entrepts, tandis que le dernier, le projet EVOLUTION du
laboratoire PRiSM Paris, propose le dveloppement dune mthodologie et doutils
pour laide la conception et lvolution des entrepts.
Dans la dernire partie, nous avons dcrit lapproche des versions de schma.
Dabord nous avons donn ltat courant des versions dans les modles de donnes
existants. Ensuite nous avons dcrit lespace de versions, leurs types, la gestion de
donnes extensionnelles et intensionnelles, ainsi que les oprations primitives utiliser.
En ce qui concerne lvolution de schmas, elle permet la rcupration des donnes
existantes par le biais de leur adaptation au nouveau schma. Nanmoins, lvolution
nimplique pas un support historique du schma et par consquent ne considre pas
un mcanisme pour la visualisation des donnes travers des schmas volus. Dans
le paradigme des entrepts la manipulation de donnes historiques reprsente une
tche essentielle. Par consquent le concept dvolution de schma nest pas susant
et il est ncessaire tablir une stratgie spcique pour rpondre cette ncessit.
Nous considrons lapproche de versions de schma comme une alternative aux
systmes qui doivent grer et manipuler des donnes historiques. Dans le cas prcis
du projet ADELEM, nous proposons lutilisation de versions de schma pour grer
les aspects temporels de lentrept de donnes. Pour aboutir cela, nous devons
tablir un mcanisme pour la gestion, le stockage et la visualisation de lensemble
de donnes (courantes et historiques) mdicales.
Nous prsentons dans la suite une architecture et un modle que nous proposons
pour un systme dcisionnel dans le contexte mdical.
Chapitre 3
Architecture et modle pour un
entrept de donnes mdicales
La conception dun entrept de donnes est une tche complexe et dlicate. Elle
se compose de plusieurs tapes. Dans un premier temps, nous devons analyser lensemble des sources de donnes internes et externes. Cette analyse sert aussi bien
la slection de lensemble de donnes stocker dans lentrept, qu la slection
des outils requis pour lextraction et la transformation de ces donnes avant leur
stockage. La deuxime tape consiste organiser ces donnes lintrieur de lentrept. Pour ce faire, nous devons concevoir le modle multidimensionnel utiliser
ainsi que dnir lensemble optimal de vues matrialiser. Finalement, la troisime
tape consiste dterminer les outils ncessaires pour la visualisation de lensemble
des donnes.
Dans le chapitre prcdent, nous avons prsent larchitecture typique dun entrept de donnes. Dans cette architecture, nous trouvons les trois tapes dj dcrites :
extraction-intgration, organisation et interrogation. Nanmoins, en ce qui concerne
le concept dorganisation, nous considrons quil est pertinent de faire une distinction entre la structuration et lorganisation. Pour nous le terme de structuration
correspond la conception du modle multidimensionnel et la slection des vues
matrialiser, tandis que lorganisation entrane la gestion de lensemble de donnes
(intensionnelles et extensionnelles) courantes et historises stockes soit lintrieur,
soit lextrieur de lentrept.
Ce chapitre prsente la premire partie du processus de structuration, savoir, la description de la conception dun modle multidimensionnel. Nous proposons dabord une architecture pour un systme dcisionnel. Cette architecture comprend trois composants qui traitent les deux derniers processus (la structurationorganisation et linterrogation). Dans une deuxime partie, nous dnissons un mtamodle multidimensionnel qui est compos de trois classes : Cube, Dimension et
Hirarchie. Ce mtamodle sert la conception dun modle multidimensionnel avec
quatre dnitions : le schma dune base multidimensionnelle, dun cube, dune dimension et dune hirarchie. Nous donnons aussi la dnition dinstances de chacune
49
50
des classes.
Nous avons utilis des donnes mdicales relles, ainsi, les dernires parties de ce
travail prsentent lapplication de notre modle sur ces donnes.
3.1
Dans cette partie, nous dcrivons larchitecture qui a t conue. Elle est base
sur trois composants. Le premier est lInterface pour la Gnration (Semiautomatique) dIndicateurs. Nous plaons ce composant lintrieur du processus dinterrogation. Les composants de lEntrept de donnes et les Versions de
Schmas Bitemporels font partie du processus de structuration-organisation.
La gure 3.1 montre notre architecture ainsi que les dirents liens entre les composants :
Interface graphique
Gestionnaire de Requtes
Entrept de
donnes
Sources
de
donnes
s
u
l
t
a
t
Gestionnaire dEvolution
Donnes rsumes
et de dtail
courantes
3.1.1
51
3.1.2
Entrept de donnes
Entrept de Donnes : Reprsente la collection des donnes consulter. Lentrept contient aussi bien des donnes de dtail que rsumes. Par exemple :
Donnes de dtail : "Le nombre de ventes par magasin, par produit et par ville
du mois de janvier 2000".
Donnes rsumes : Nous pouvons avoir des donnes lgrement ou fortement
rsumes. Par exemple, "les ventes mensuelles par magasin et par produit des dix
dernires annes" sont des donnes faiblement rsumes, tandis que "les ventes semestrielles par rgion des dix dernires annes" sont fortement rsumes.
Sources : Elles rassemblent lensemble de sources internes, par exemple, les dirents systmes oprationnels qui sont utiliss pour mettre jour les donnes stockes
dans lentrept. Les sources externes sont des donnes qui nappartiennent pas
lentreprise et qui sont souvent achetes, par exemple, les donnes gographiques.
3.1.3
Gestionnaire dEvolution
3.2
Mtamodle Multidimensionnel
Il reprsente la structure pour la mise en oeuvre des modles de type multidimensionnel (cf. Section 2.3) qui se compose des mtaclasses1 . La gure 3.2 montre les
1
Une mtaclasse est une classe qui modlise des classes [PCTM02, PCTM03]. Nous avons utilis
UML (Unified Modeling Language) pour la spcification du mtamodle multidimensionnel.
52
<<Mtaclasse>>
MtaSchma
+/cube: Cube
+/dimension: Dimension
1
1..
1..
+Strings[]: Attribut_nom
+Strings[]: Type
+Strings[]: Cl_P
+Strings[]: Cl_E
+/hirarchie: Hirarchie
+Strings[]: Mesure_nom
+Strings[]: Type
+Strings[]: Cl
+/dimension: Dimension
1..
*
{La Cl de la mtaclasse
Cube est compose de
lensemble des Cl_P de ses
mtaclasses Dimensions}
1..
1..
*
{La Cl_P dune
mtaclasse
Hirarchie ne
peut pas relier
la mtaclasse
Cube associe
sa mtaclasse
Dimension
(granularit)}
<<Mtaclasse>>
Dimension
<<Mtaclasse>>
Cube
0..1
<<Mtaclasse>>
Hirarchie
+Strings[]:
+Strings[]:
+Strings[]:
+Strings[]:
0..
Attribut_nom
Type
Cl_P
Cl_E
3.2.1
Pour relier les mtaclasses, nous pouvons utiliser les types de relations suivants
[PCTM03, Var00, VQVJ00] :
Association : Cest une relation entre deux classes qui reprsente les connections
entre leurs objets. Une association est bidirectionnelle ou unidirectionnelle.
Agrgation : Elle spcie une relation de composition et peut tre :
Partage : Un lment composant lintrieur dun ou de plusieurs lments composites ; ou
53
3.2.2
3.2.3
54
Mtaclasse Cube : La mtaclasse Cube modlise des classes de type Cube. Elle
reprsente les direntes mesures danalyse. Une mtaclasse Cube est reprsente
par deux ensembles de couples :
h Mesure_nom : string, Type : string i reprsentent le(s) sujet(s) danalyse.
h Cl : string, Type : string i reprsentent lensemble des mtaclasses Dimensions (perspectives danalyse) qui appartiennent la mtaclasse Cube.
Mtaclasse Dimension : Cette mtaclasse modlise des classes de type Dimension. Elle reprsente une perspective danalyse ou un axe de localisation dune cellule
dun Cube. Une mtaclasse Dimension est compose densembles de couples de
type :
h Attribut_nom : string, Type : string i ensemble dattributs textuels
lintrieur de la classe Dimension.
h Cl_P : string, Type : string i identicateur unique pour la classe Dimension.
h Cl_E : string, Type : string i reprsentent des liens entre les classes
Dimension et Hirarchie.
Mtaclasse Hirarchie : Elle reprsente les relations de dpendance entre les
niveaux lintrieur dune classe Hirarchie. Une mtaclasse Hirarchie est compose des ensembles de couples de type :
h Attribut_nom : string, Type : string i reprsentent des paramtres textuels dans la classe Hirarchie.
h Cl_P : string, Type : string i identicateur unique pour la classe Hirarchie.
h Cl_E : string, Type : string i reprsentent des liens entre les classes de
type Hirarchie.
3.2.4
55
lvolution dun systme multidimensionnel. Dans [GM02], lauteur propose un modle formel des versions de schmas temporelles pour des bases de donnes objets.
Nous faisons la dirence entre une dimension et une hirarchie. Ainsi, notre modle se compose de quatre lments essentiels : une base multidimensionnelle, un
cube, une dimension et une hirarchie. Nous donnons pour chacun la dnition de
schma et dinstance. Nous supposons lexistence de :
S
S
S
S
DOM = dom(char) dom(integer) dom(oat) dom(decimal) dom(date)
S
{t} contenant le domaine de chaque type atomique plus la valeur distingue t.
C = Ensemble de noms de cubes.
D = Ensemble de noms de dimensions.
H = Ensemble de noms de hirarchies.
M = Ensemble de noms de mesures.
P = Ensemble de noms de proprits.
L = Ensemble de noms de niveaux.
R = Ensemble de contraintes.
Nous associons chaque cube cC un ensemble de valeurs {a1 , ..., a n } tel que
i=1,...n ai DOM. De mme pour chaque dimension dD, nous associons un ensemble
de valeurs {b1 , ..., bn } tel que i=1,...n bi DOM. Finalement, pour chaque niveau lL,
nous associons un ensemble de valeurs {f1 , ..., fn } tel que i=1,...n fi DOM.
Nous supposons lexistence des fonctions suivantes :
measuredom : M E(DOM)2 , qui retourne lensemble des valeurs associes
une mesure.
propertydom : P E(DOM), qui retourne lensemble des valeurs associes
une proprit.
levelset : H E(DOM), qui retourne lensemble des membres associs un
niveau.
Dfinition 3.1 : Schma de base de donnes et dinstance multidimensionnelle.
Le schma dune base de donnes multidimensionnelle est un n-uplet SM = (Cs ,
Ds , Hs , R), o Cs est un ensemble de schmas de cubes, Ds est un ensemble de
schmas de dimensions, Hs est un ensemble de schmas de hirarchies et R est un
ensemble de contraintes.
2
56
Produit
TV
Produit
Magasin
CS
S
U
M
CP
Lyon
Grenoble
Annecy
Magasin
SUM
01/01/2000
Quantit
Temps
02/01/2000
Temps
03/01/2000
SUM
All
Instance
57
de hirarchies.
Une instance de dimension est un n-uplet Id = (dn , {(v1 ,...,vi )}, {h}), o dn D
est le nom de la dimension, (v1 ,...,vi ) est un ensemble de proprits tel que j=1,...n vj
propertydom(pj ) avec pj P. Enfin, hH est lensemble de hirarchies qui appartiennent dn .
Par exemple, le schma de la dimension Magasin est dni de la manire suivante :
dn = Magasin
{p1 ,...pi } = {Cle_Magasin, Libelle_Magasin }
hn = H_Geo (cf. Dnition 3.4)
Schma et instance de hirarchie.
Pour nous un schma et une instance de hirarchie peuvent prendre la forme dun
graphe squentiel ou dun graphe acyclique dirig reprsentant les hirarchies de niveaux. Chaque noeud du graphe contient un niveau et un arc entre deux noeuds
reprsente une association entre les niveaux contenus par les noeuds. Nous supposons lexistence de deux noeuds, nomms base et sommet, partir desquels tous
les autres noeuds peuvent tre atteints directement ou par transitivit. Le noeud
sommet contient le niveau de la hirarchie. La gure 3.4 prsente un exemple de
graphe squentiel. Comme exemple de graphe acyclique dirig, nous pouvons considrer le schma de hirarchie suivant : H_Temps = ({(Jour, Mois), (Mois, Semestre),
(Semestre, Annee)}, {(Jour, Semaine), (Semaine, Annee)}), o la base=Jour et le
Sommet=Annee. Dans notre modle, nous considrons les caractristiques suivantes :
1. Nous distinguons les termes de dimension et de hirarchie. Ainsi, une dimension peut relier 0, une ou plusieurs hirarchies. Pour une hirarchie donne, il
y a une liaison directe avec la dimension associe dans le cube. Par exemple, si
le cube Ventes comporte la dimension Magasin relie une commune, ce cube
sera alors indirectement li aux niveaux suprieurs commune (Dpartement,
Rgion, ). Ainsi, il sera possible deectuer des agrgats sur ces niveaux
suprieurs.
2. Nous pouvons insrer un niveau de hirarchie soit ct de la hirarchie dj
dnie soit lintrieur. Pour faire cela, nous avons besoin de spcier trois
niveaux, le premier est le niveau insrer, les deux derniers reprsentent les
niveaux infrieur et suprieur partir desquels le nouveau niveau sera plac.
3. Dans la dnition du schma de hirarchie, nous considrons le cas o l=,
cest dire quand nous avons seulement les niveaux base et sommet.
Nous donnons dans la suite la dnition de schma et dinstance de hirarchie.
58
Region
Rhne Alpes
Departement
Commune
Schma
...
Isre
Lyon
Grenoble
...
Annecy
Instance
59
3.3
Cette section est consacre lanalyse des donnes du projet. Dabord, nous
analysons lensemble des sources existantes, ce qui nous permet didentier deux
types de donnes, les donnes publiques concernant la sant (RSA, RHA, CIM10 et
FINESS) et les donnes dmographiques (RP99) [Bel02].
3.3.1
Sources de donnes
Nous dcrivons les chiers RSA (Rsums de Sorties Anonymes), RHA (Rsum
Hebdomadaire Anonyme), FINESS (Fichier National des tablissements Sanitaires
et Sociaux), CIM10 (Classication International de Maladies version 10). Ces chiers
sont htrognes et rpartis et ils devront tre intgrs (les prparer, les nettoyer,
les transformer, etc.), avant leur stockage dans lentrept de donnes.
Fichier RSA (Rsums de Sorties Anonymes) Tout sjour hospitalier, effectu dans la partie court sjour dun tablissement, fait lobjet dun Rsum de
Sortie Standardis RSS). Un RSS est constitu dun ou plusieurs Rsum(s) dUnit
Mdicale (RUM). La transmission dinformations mdicales la direction de ltablissement ou lextrieur de celui-ci, sopre sur la base de donnes agrges ou
Rsums de Sortie Anonymes (RSA).
Le chier RSA est obtenu par transformation automatise des RSS. A partir du
chier de RSS groups, le mdecin responsable du DIM (Dpartement dInformation
Mdicale) utilise le logiciel GENRSA (Gnrateur de RSA), proprit de lEtat, pour
produire le chier de RSA. Le RSA comprend toujours un enregistrement unique
par sjour (environ 15 18 millions denregistrements pour chaque anne) [PMS04].
Caractristiques du chier :
-
60
61
- Propritaire : INSEE
- Type du chier : BDF
- Anne : 1999
- Mode dobtention : achat
- Taille : 50.8 Mo (chier avec tranches dge dhommes et de femmes par commune)
Lannexe A contient une description en dtail des sources RSA et FINESS.
3.3.2
Dans cette partie nous analysons les direntes sources dcrites prcdemment
pour proposer des mcanismes adapts selon les caractristiques des informations.
Nous proposons dabord un tableau qui contient les proprits des sources. Ensuite,
nous donnons un tableau danalyse de donnes en considrant une dizaine dannes
de stockage.
Le tableau 3.1 dcrit les direntes proprits des sources :
Source
Propritaire
RSA
ARH
RHA
ARH
FINESS
MCASS
CIM10
RP90/99
OMS
INSEE
Type de fichier
Texte (ASCII fixe)
ou Access
Texte (ASCII fixe)
ou Access
Texte (ASCII fixe)
ou Access
Excel
DBF
Mode
dobtention
Taille
Anne
Mise jour
Gratuit
11 Go
2000
Annuelle
Gratuit
3 Go
2000
Annuelle
Gratuit
2.24 Mo
2000
Annuelle
Achat (625,04)
1.34 Mo
50.8 Mo
1995
1999
Il a t dcid une mise jour annuelle des rsultats du recensement par le biais dune nouvelle
mthode de collecte. Le dpart de cette nouvelle collecte a t fix au dbut de lanne 2004 pour
obtenir les premiers rsultats la fin de lanne 2008. A partir de cette anne (2008) des rsultats
rcents et rguliers seront publis sur la population de chaque commune, avec une anciennet
maximale de trois ans.
4
A partir de 2008.
62
Taille
RSA
RHA
FINESS
CIM10
RP90/99
110 Go
30 Go
22.4 Mo
13.4 Mo
508 Mo
Optimisation
du stockage
Rafrachissement
Requtes
complexes
Agrgats
Evolution
du schma
Oui
Oui
Non
Non
Oui
Annuel
Annuel
Annuel
Oui
Oui
Non
Non
Non
Oui
Oui
Non
Non
Oui
Oui
Oui
Oui
Oui
Oui
Annuel4
3.4
Nous numrons les divers indicateurs, qui ont t crs pour le projet ADELEM.
Nous les avons diviss en trois types, les deux premiers rassemblent les dirents indicateurs crs par le Laboratoire de Biomtrie et Biologie de Lyon (les indicateurs
dore "gographiques" et les indicateurs de consommation, de besoins et de ux
"temporels"). Le troisime type sont des indicateurs que nous proposons, ils correspondent des indicateurs "temporels", quil est intressant de prendre en compte.
Dans les divers types dindicateurs, il existe des valeurs qui sont des paramtres
de la requte. Par exemple dans lindicateur : "Nombre de sjours par maladie de
ltablissement CHU GRENOBLE durant le 1er janvier 2000", nous trouvons pour
lattribut Raison_sociale de la dimension Etablissement la valeur "CHU GRENOBLE" ainsi que la valeur "01-01-2000" pour lattribut Jour de la dimension Temps.
3.4.1
63
3.4.2
64
3.4.3
Ce sont des indicateurs qui permettent de faire des analyses de comparaison, soit
sur lge des patients, soit sur le mode de sortie de lunit mdicale.
a) Indicateurs de consommation : Indicateurs de comparaison sur lge du
patient. En gardant lge du patient dans la relation Prise_MCO, on peut faire des
analyses comme :
Indicateur de comparaison 1 : Nombre annuel de patients par tablissement et
par ge.
Indicateur de comparaison 2 : Nombre annuel de personnes de plus de 60 ans par
maladie et par tablissement.
b) Indicateurs de flux : Indicateurs de comparaison sur le mode de sortie. Avec
cette dimension on peut faire des analyses sur le mode de sortie, en utilisant le code
suivant :
6 = mutation, le dpart vers une autre unit mdicale de la mme entit juridique.
=
=
=
=
65
Indicateur 1 : Nombre annuel de patients qui sont transfrs (code 7) par maladie
et par tablissement.
Indicateur 2 : Nombre annuel de patients dcds par maladie, par tablissement
et par rgion.
3.5
3.5.1
66
3.5.2
Hirarchies du schma
La gure 3.6 montre deux hirarchies que nous avons conues pour le schma en
constellation prcdent [JLS99, WB97]. La premire, que nous appelons H_Geo,
t dnie pour les dimensions Etablissement et Zone_geo de la manire suivante.
Etant donn que le domaine de la dimension est : x ={C1,...,Cn}, reprsentant
les communes du pays, nous dnissons :
x {D1, ..., Dn} comme Dpartements
x {R1, ..., Rn} comme Rgions
x {P } comme Pays.
La seconde hirarchie, appele H_Temps, correspond la dimension Temps, dont
le domaine est : x ={1, ..., 12}, reprsentant les mois de lanne, nous dnissons :
x {H, P, E, A} comme les saisons (Hiver, Printemps, Et, Automne)
67
P
X
(Pays)
R1
...
D1
...
C1
...
Rn
X
(Anne)
X
(Rgion)
Dn
Cn
A
X
(Saison)
X
(Dpartement)
X
(Commune)
1 2 3 4 5 6 7
8 9 10 11 12
X
(Mois)
Dimension Temps
3.5.3
Description du schma
Prise_MCO
et de ses dimensions
Nous montrons la spcication de ltoile : Prise_MCO. Pour faire cela, nous prenons la gure 3.5 et nous isolons la premire toile. La gure 3.7 reprsente un
schma compose de la relation de faits Prise_MCO et de ses dimensions. La saisie
de linformation se fera partir du chier RSA (public2000.mdb et prive2000.mdb),
du chier FINESS (FINESSTOT.xls), du chier CIM10 (libcim10-95.xls) et du chier RP99 (DA99CCMC.xls). Dans cette relation, il y aura un enregistrement pour
chaque sjour eectu dans la partie court sjour dun tablissement. La taille estime pour la relation Prise_MCO est environ 15 18 millions denregistrements par
anne.
Un schma de cube est un n-uplet Cs = (cn , M, D), o
68
69
<1500g
>=1500g
>=2000g
>=2500g
>=3000g
>3500g
et
et
et
et
<2000g
<2500g
<3000g
<3500g
dn = Age
P = {Cle_Age}
H = {}
dn = Mode_sortie
P = {Cle_Mode, Libelle_mode}
H = {}
Un schma de hirarchie est un n-uplet Hs = (hn , L, ), o
hn = {H_Geo}
L = {Commune, Dpartement, Rgion, }
= {(Commune, Dpartement), (Dpartement, Rgion), (Rgion, )}
hn = {H_Temps}
L = {Mois, Saison, }
= {(Mois, Saison), (Saison, )}
70
3.5.4
Description du schma
Population
et de ses dimensions
71
3.5.5
Description du schma
Prise_SSR
et de ses dimensions
Dans cette relation, il y aura un enregistrement pour chaque sjour eectu dans
la partie long sjour dun tablissement (Soins de Suite ou de Radaptation). La
taille estime pour la relation Prise_SSR est denviron 4 millions denregistrements
par an correspondants des sjours hebdomadaires. La gure 3.9 reprsente le troisime schma Prise_SSR.
72
3.6
Bilan
Dans ce chapitre, nous avons prsent la premire partie de ce que nous appelons le processus de structuration. Nous avons conu dabord une architecture pour
un systme dcisionnel base sur trois composants, une interface graphique pour
la gnration semi-automatique des indicateurs, un entrept multidimensionnel qui
rassemble les donnes internes et externes et les versions de schmas bitemporels.
Dans une deuxime phase, nous nous sommes focalis sur le mtamodle et le modle multidimensionnel. Pour le mtamodle, nous avons spci trois mtaclasses :
Cube, Dimension et Hirarchie. Nous avons propos un ensemble de dnitions pour
chaque mtaclasse et leurs instances, ainsi quune dnition dune base de donnes
multidimensionnelle et de son instance. Ceci nous a permis daboutir la conception
dun schma en constellation pour la construction dun entrept multidimensionnel
de donnes mdicales. Nous avons utilis les informations concernant lensemble des
sources de donnes relles et des indicateurs du projet ADELEM pour prouver et
vrier le modle propos.
Pendant la premire tape de notre exprimentation, nous avons analys les
sources de donnes. Ceci nous a permis didentier deux types de donnes, les donnes dmographiques (RP99) et les donnes publiques concernant la sant (RSA,
RHA, CIM10 et FINESS). Principalement, dans ces dernires, nous avons constat
le besoin dorir des mcanismes pour une manipulation ecace de lensemble dinformation. Pour le projet, nous avons conu un tableau danalyse qui regroupe les
donnes sur dix annes. Ce tableau nous a permis didentier les sources qui ont
besoin dutiliser des techniques doptimisation de stockage comme la cration des
agrgats.
Lanalyse des indicateurs tablis pour le projet nous a permis de les classer en trois
types. Les deux premiers rassemblent les identicateurs dore "gographiques" et
les identicateurs de consommation, de besoins et de ux "temporels". Le troisime
type correspond des nouveaux indicateurs galement "temporels". Nous les avons
identis comme des indicateurs de consommations et de ux. Ils nous permettent
de faire des analyses par rapport lge du patient ainsi qu son mode de sortie de
lhpital.
Dans la dernire partie, nous nous sommes focaliss sur la conception dun modle
3.6 Bilan
73
74
Chapitre 4
Systme daide la dcision
mdicale : une exprimentation
Dans le chapitre prcdent, nous avons dcrit le modle multidimensionnel conu
pour le projet ADELEM. Tout au long de ce chapitre, nous focalisons notre exprimentation sur un systme dcisionnel.
Nous avons divis le travail ralis en trois parties. La premire dcrit le schma
en toile construit et la matrialisation de lhypercube pour celui-ci. La deuxime
partie traite le sujet des vues matrialises qui nous permettent doptimiser lexcution de requtes. Nous avons construit le schma Adelem_MCO et nous avons cre
la base de donnes correspondante en utilisant un chantillon du 10% des donnes
relles du projet. Nous avons utilis le systme dcisionnel dOracle9i Entreprise
Edition Release 9.2.0.1.0 pour la cration du schma et pour la gnration des vues
matrialises. Ceci nous a permis de connatre le cot de stockage (reprsent par le
nombre de n-uplets du rsultat) de chaque vue et de pouvoir facilement dterminer
leur cot de calcul (produit des cardinalits approximatives des relations de base).
Nous proposons un algorithme pour la slection de lensemble optimal des vues
slectionner qui utilise comme paramtres la frquence dutilisation, le cot de calcul
et la probabilit de changement des relations de base. Nous terminons cette partie
avec les relations de dpendance et la cration des vues matrialiser de cet ensemble optimal.
Finalement, la troisime partie se focalise sur le fonctionnement de linterface pour
la gnration semi-automatique dindicateurs. Nous donnons dabord larchitecture
pour cette interface et la description de ses composants. Lutilisation de linterface
requiert un module pour la cration du schma, ainsi, nous dcrivons dabord le
fonctionnement de ce module, ensuite, nous classions les types de requte excuter
et nalement, nous dcrivons le fonctionnement de linterface graphique en utilisant
un exemple de requte.
75
76
4.1
Construction du schma
4.1.1
Schma en toile
Adelem_MCO
Pour la construction du schma, nous avons seulement utilis une partie de ltoile
Prise_MCO du schma en constellation conu pour le projet (cf. Figure 3.5). La gure 4.1 montre le schma Adelem_MCO construit. Il est compos de la relation de
faits Prise_MCO et des dimensions Etablissement, CIM10, Temps et Mode_sortie.
Dimensions :
Etablissement = {Cle_Finess, Raison_sociale, Adresse, Code_postal, CA1,
77
Fait/Dimension
Fait
Dimension
Dimension
Dimension
Dimension
Taille
53799 n-uplets
5079
17788
12
5
4.1.2
Matrialisation de lHypercube
78
Relations
V1
V2
V3
V4
V5
V6
V7
V8
V9
V10
V11
V12
V13
V14
V15
Prise_MCO+Etablissement+CIM10+Temps+Mode_sortie
Prise_MCO+Etablissement+CIM10+Temps
Prise_MCO+Etablissement+CIM10+Mode_sortie
Prise_MCO+Etablissement+Temps+Mode_sortie
Prise_MCO+CIM10+Temps+Mode_sortie
Prise_MCO+Etablissement+CIM10
Prise_MCO+Etablissement+Temps
Prise_MCO+Etablissement+Mode_sortie
Prise_MCO+CIM10+Temps
Prise_MCO+CIM10+Mode_sortie
Prise_MCO+Temps+Mode_sortie
Prise_MCO+Etablissement
Prise_MCO+CIM10
Prise_MCO+Temps
Prise_MCO+Mode_sortie
C. de Stockage
C. de Calcul
53799 n-uplets
47133
18456
603
32918
13973
184
58
26058
8186
48
19
5329
12
4
90M
90M
90M
61K
346K
90M
60K
25K
216K
90K
60
5K
18K
12
5
79
90M
90M
EC
V6
14K
5K
ECT
V2
60K
Etab
V12
47K
ET
V7
19
90M
184
ECM
V3
25K
18K
ECTM
V1
18K
EM
V8
61K
58
216K
Cim10
V13
5K
12
ALL
V16
4 Dim
54K
ETM
V4
CT
V9
603
26K
Temps
V14
12
346K
90K
CTM
V5
CM
V10
3 Dim
33K
8K
Mode
5 V15
60
TM
V11
2 Dim
48
1 Dim
4
0 Dim
1
Cot de calcul
Matrialisation Complte:
Pas de Matrialisation:
361M (n-uplets)
90M (n-uplets)
4.2
Vues matrialises
Dans cette section, nous nous focalisons sur la gnration des vues matrialises.
Nous appliquons deux algorithmes aux donnes du projet ADELEM. Le premier est
lalgorithme Greedy, lautre est un algorithme que nous proposons pour la slection
des vues matrialiser.
Lalgorithme Greedy propos par [HRU95, HRU96] repose sur un modle de cot
pour dterminer lensemble optimal de vues matrialiser. Il utilise le cot de sto-
80
4.2.1
81
V3 : V6 V3, V8 V3, V10 V3, V12 V3, V13 V3, V15 V3, V16 V3
V4 : V7 V4, V8 V4, V11 V4, V12 V4, V14 V4, V15 V4, V16 V4
V5 : V9 V5, V10 V5, V11 V5, V13 V5, V12 V5, V15 V5, V16 V5
V6 : V12 V6, V13 V6, V16 v6
V7 : V12 V7, V14 V7, V16 V7
V8 : V12 V8, V15 V8, V16 V8
V9 : V13 V9, V14 V9, V16 V9
V10 : V13 V10, V15 V10, V16 V10
V11 : V14 V11, V15 V11, V16 V11
V12 : V16 V12
V13 : V16 V13
V14 : V16 V14
V15 : V16 V15
Quelques notations de lalgorithme Greedy :
C(v) = Cot de stockage de la vue v.
= Relation de dpendance. Par exemple, Q2 Q1 si et seulement si Q2 peut tre
rpondue par Q1, donc Q2 est dpendante de Q1.
S = Ensemble de vues slectionnes.
B(v, S) = Gain de la vue v relative S,
1) Pour chaque w v, dnir la quantit Bw par :
a) Si u est la vue de cot infrieur dans S, tel que w u. Nous remarquons que
lensemble S contient au moins la vue V1.
b) Si C(v) < C(u), alors Bw = C(v) - C(u). Sinon Bw = 0.
P
2) Dnir B(v, S) =
wv Bw .
La gure 4.3 dcrit lalgorithme Greedy pour une slection de n vues matrialiser.
Nous utilisons lhypercube de la g 4.2 pour lapplication de lalgorithme. La
table 4.3 dcrit les rsultats avec n gal 7.
82
Vue
1re Choix
2 Choix
3 Choix
4 Choix
5 Choix
6 Choix
7 Choix
V2
V3
V4
V5
V6
V7
V8
V9
V10
V11
V12
V13
V14
V15
V16
{V1}
7K*8=56K
36K*8=288K
53K*8=424K
21K*8=168K
40K*4=160K
54K*4=216K
54K*4=216K
28K*4=112K
46K*4=184K
54K*4=216K
54K*2=108K
49K*2=98K
54K*2=108K
54K*2=108K
54K*1=54K
S=S+V4
7K*4=28K
36K*4=144K
21K*4=84K
40K*2=80K
419*4=2K
545*4=2K
28K*2=56K
46K*2=92K
555*4=2K
584*2=1K
49K*1=49K
591*2=1K
599*2=1K
1K
S=S+V3
7K*2=14K
21K*2=42K
4K*2=8K
419*4=2K
545*4=2K
28K*1=28K
10K*2=20K
555*4=2K
584*2=1K
13K*1=13K
591*2=1K
599*2=1K
1K
S=S+V5
7K*1=7K
4K*2=8K
419*4=2K
545*4=2K
7K*1=7K
10K*2=20K
555*4=2K
584*2=1K
13K*1=13K
591*2=1K
599*2=1K
1K
S=S+V10
7K*1=7K
4K*1=4K
419*4=2K
545*4=2K
7K*1=7K
555*4=2K
584*2=1K
3K
591*2=1K
599*2=1K
1K
S=S+V9
7K*1=7K
4K*1=4K
419*4=2K
545*4=2K
555*4=2K
584*2=1K
3K
591*2=1K
599*2=1K
1K
S=S+V2
4K*1=4K
419*4=2K
545*4=2K
555*4=2K
584*2=1K
3K
591*2=1K
599*2=1K
1K
S=S+V6
83
V2
V3
90M
V6
.
.
.
Cot de calcul
Cot de stockage
Nombre
de
tuples
V5
300k
V9
200k
V10
100k
V4
...
16
Car cette vue ne peut pas tre construit partir daucune autre vue.
84
1. Si V1 est plus grande que les autres vues, alors lalgorithme est proche de
loptimal.
2. Si toutes les vues sont gales, alors lalgorithme est optimal.
Si nous considrons le cot de stockage que nous avons dans lhypercube de la
gure 4.2, nous nous apercevons que notre cas est similaire au premier, car la seule
vue proche de la vue V1 est la vue V5. Le reste des vues est plus petit que V1.
La slection des vues matrialiser est un sujet de recherche trs important. Il
existe de nombreux travaux de recherche [AAD+ 96, BB03, BPT97, CHS02, CLF99,
GM95, Gup97, KMP02, KR99, LMSS95, SDJL96, YKL97, ZYY01, YW00] qui utilisent un modle de cot, comme celui de Greedy, mais qui a t adapt avec linclusion de certains paramtres, tels que : la frquence de la requte, la frquence des
mises jour sur les relations de base, le cot de maintenance, entre autres.
Par exemple, dans [BB03], les auteurs proposent un algorithme qui permet de
calculer le gain global de la vue par rapport au cot de la requte et le cot de
maintenance. Ils direncient le cot dvaluation dune requte par rapport au
type dopration (Select, Project et Join). Ils utilisent aussi la frquence de la requte ainsi que le cot de maintenance bas sur les oprateurs Add et Delete.
Lalgorithme Greedy est simple et ecace, nanmoins, dans notre exprimentation, partir du 6me choix, il slectionne les vues les plus coteuses. Ceci nous
motive pour proposer un mcanisme pour une slection plus able. Nous proposons
dinclure les paramtres suivants : frquence dutilisation, cot de calcul et probabilit de changement des relations de base (cot).
4.2.2
Dans notre algorithme, les relations dpendantes dune vue jouent un rle essentiel, ainsi, nous considrons que leur nombre reprsente un paramtre initial pour
la frquence dutilisation, ainsi que pour le cot de calcul. Pour le premier, nous
multiplions le bnce optimal, donn par lalgorithme Greedy, par le nombre total des relations dpendantes, car pour nous, la frquence dutilisation augmente
en proportion directe du nombre de relations dpendantes. Pour le cot de calcul,
nous considrons quil diminue par rapport au nombre de relations dpendantes,
ainsi, nous divisons le cot de calcul par le nombre total des relations dpendantes
[SA05a].
Notre algorithme considre aussi la probabilit de changement des relations de
base. Dans ce cas, nous avons besoin du nombre dlments lintrieur de la vue qui
85
peuvent subir des changements. Considrons par exemple la vue V2. Elle se compose
des relations Etablissement, CIM10 et Temps. La relation Etablissement contient 24
proprits, CIM10 et Mode_sortie contiennent 2 proprits et Temps en contient
4 (cf. paragraphe 4.1.1). Nous avons 36 lments pouvant voluer (32 proprits et
4 dimensions). Supposons que nous avons une probabilit de changement de 20%,
ainsi, notre calcul pour la frquence des mises jour de V2 est (33*100/36*.20), o
33 est le nombre dlments de la vue V2.
Quelques notations :
CC = Cot de calcul (produit des cardinalits approximatives des relations de base)
divis par le nombre de relations dpendantes. Par exemple, le CC(v) si v=V2 (vue
ECT, cf. Figure 4.4) est : CC(V2) = ((5K*18K) + (14K*12))/8 90M/8 = 11M,
o 8 est le nombre total des relations dpendantes de V2.
PC = Probabilit de changement des relations de base multipli par le cot de
calcul. Par exemple, si nous avons lhypothse de 20% de changement des lments
du schma sur la vue V2 (3 dimensions et 30 attributs qui peuvent changer), alors
PC(V2) = (3300/36*.20)*11M = 2M.
V = Ensemble de vues.
S = Ensemble de vues slectionnes.
w = Nombre de choix.
fq(v) = Complexit de la vue (nombre total des relations dpendantes de la vue v).
v = Vue slectionne.
vo = C(vue "top view").
La gure 4.5 montre lalgorithme propos incluant la frquence dutilisation, le
cot de calcul et la probabilit de changement.
Le tableau 4.4 montre les rsultats de lapplication de notre algorithme pour les
7 premiers choix, en considrant 20% comme frquence des mises jour sur les relations de base.
Pour le premier choix la valeur de vo est gale 54K, le cot de V1, car elle
reprsente la vue avec le cot de stockage minimum dans lensemble S. Pour le
deuxime et le troisime elle est reprsente par 603 (le cot de V4), car cest la vue
ayant un cot de stockage infrieur lintrieur de S. Dans la premire itration,
le choix est la vue V4, car elle reprsente le plus haut gain ((((53K*8)*8)=3392K)((61K/8)*1.18=9K)=3M). Le gain est calcul de la manire suivante : cot(V4) cot(V1) = (53K*8) reprsente le gain de Greedy, nous multiplions ce gain par le
nombre de relations dpendantes de V4 (V4, V7, V8, V11, V12, V14, V15 et V16).
Ensuite, nous le soustrayons le cot de calcul divis par le nombre de relations dpendantes et multipli par la frquence des mises jour.
Le second choix est la vue V5 avec 626K (((21K*4*8)=672K) - ((346K/8) *
86
Vue
1re Choix
2 Choix
3 Choix
4 Choix
5 Choix
6 Choix
7 Choix
V2
V3
V4
V5
V6
V7
V8
V9
V10
V11
V12
V13
V14
V15
S=S+V1
(448K-(11M*1.18))=-13M
(2M-13M)=-11M
(3392K-9K)=3M
(1344K-46K)=1298K
(640K-26M)=-25M
(864K-18K)=845K
(864K-7K)=857K
(448K-56K)=392K
(736K-24K)=713K
(864K-62)=864K
(216K-3K)=213K
(196-9K)=187K
(54K*2*2=216K)=216K
(54K*2*2=216K)=216K
S=S+V4
-13M
-12M
626K
-26M
-11K
2K
168K
345K
9K
-1K
89K
2K
2K
S=S+V5
-13M
-12M
-26M
-11K
2K
0K
177K
9K
-1K
47K
2K
2K
S=S+V10
-13M
-12M
-26M
-11K
2K
-28K
9K
-1K
-3K
2K
2K
S=S+V11
-13M
-12M
-26M
-11K
2K
-28K
-1K
-3K
30
41
S=S+V8
-13M
-12M
-26M
-11K
-28K
-3K
-3K
30
41
S=S+V15
-13M
-12M
-26M
-11K
-28K
-3K
-3K
30
S=S+V14
87
1.06=46K) = 626K), les vues dpendantes sont (V5, V9, V10 et V13), les autres
vues dpendantes de V5 ne sont pas prises en compte, car elles ont un gain infrieur
celui de la vue V4. Nanmoins, nous multiplions le rsultat par le nombre total
des vues dpendantes et nous divisons le cot de calcul par ce nombre total. Finalement, la dernire ligne contient le rsultat, elle reprsente lensemble S={V4, V5,
V10, V11, V8, V15, V14}.
La gure 4.6 montre lapplication de notre algorithme par rapport aux cots
de calcul et de stockage. Nous considrons les 7 premiers rsultats. Si nous prenons comme rfrence la gure 4.2, nous remarquons que la slection est faite de
la manire suivante : du deuxime niveau (3 Dim), notre algorithme slectionne les
deux vues de gain optimal. Pour le troisime niveau (2 Dim), il slectionne les trois
meilleures et nalement pour le dernier niveau (1 Dim), il slectionne les deux premires vues optimales.
90M
.
.
.
Cot dexcution
Cot de stockage
Nombre
de
tuples
V5
300k
200k
V10
100k
V4
V8
V11
V14
V15
...
16
88
4.2.3
No de jointures
Cot de Stockage
Cot de Calcul
3
3
2
2
2
1
1
603
33K
58
8K
48
12
4
61K
346K
25K
90K
60
12
5
V4 E+T+M
V5 C+T+M
V8 E+M
V10 C+M
V11 T+M
V14 T
V15 M
89
90
WHERE temps.cle_temps=prise_mco.cle_temps
AND mode_sortie.cle_mode=prise_mco.cle_mode
GROUP BY temps.cle_temps, mode_sortie.cle_mode ;
Rsultats : 48 n-uplets
VM14 : Nombre de sjours par mois
CREATE MATERIALIZED VIEW cs_sejour_temps_1d
ENABLE QUERY REWRITE AS
SELECT temps.cle_temps, count(compteduree_sejour) as compte_sejour,
sum(sommeduree_sejour) as somme_sejour
FROM temps, prise_mco
WHERE temps.cle_temps=prise_mco.cle_temps
GROUP BY temps.cle_temps ;
Rsultats : 12 n-uplets
VM15 : Nombre de sjours par mode de sortie
CREATE MATERIALIZED VIEW cs_sejour_mode_1d
ENABLE QUERY REWRITE AS
SELECT mode_sortie.cle_mode, count(compteduree_sejour) as compte_sejour,
sum(sommeduree_sejour) as somme_sejour
FROM mode_sortie, prise_mco
WHERE mode_sortie.cle_mode=prise_mco.cle_mode
GROUP BY by mode_sortie.cle_mode ;
Rsultats : 4 n-uplets
4.3
91
4.3.1
Interface graphique
Gestionnaire de Requtes
Schma Global/Schma Local
Gnration SQL
Excution SQL
s
u
l
t
a
t
Schma
relationnel
+
Mta-schma
(mappings)
Gestionnaire dEvolution
Entrept de
donnes
Sources
de
donnes
92
4.3.2
Fonctionnement de linterface
93
94
4.3.3
95
Q2 : Nombre de sjours.
SELECT Sum(CompteDuree_sejour)
FROM Prise_MCO
HAVING Sum(SommeDuree_sejour)>100
Slection sur 1 relation + comptage + group by + condition sur une
mesure :
Q3 : Nombre de sjour par tablissement.
SELECT Cle_Finess, Sum(CompteDuree_sejour)
FROM Prise_MCO
GROUP BY Cle_Finess
HAVING Sum(SommeDuree_sejour)>100
Requtes de type 2 : Correspondent aux requtes sur n relations, nous dcrivons
ce type avec un exemple :
Q4 : Nombre de sjours par tablissement et par maladie pendant le mois janvier
(avec nombre de sjours > 100).
SELECT Etablissement.Cle_Finess, Etablissement.Raison_sociale,
CIM10.Libelle_maladie, Count(Prise_MCO.CompteDuree_sejour),
Sum(Prise_MCO.SommeDuree_sejour)
FROM Prise_MCO, Etablissement, CIM10, Temps
WHERE Prise_MCO.Cle_Finess=Etablissement.Cle_Finess
AND Prise_MCO.Cle_Maladie=CIM10.Cle_Maladie
AND Prise_MCO.Cle_Temps=Temps.Cle_Temps
AND Temps.Cle_Temps=1
GROUP BY Etablissement.Cle_Finess, Etablissement.Raison_sociale,
CIM10.Libelle_maladie
HAVING Sum(SommeDuree_sejour)>100
ORDER BY Etablissement.Cle_Finess
Dans la partie suivante, nous dcrivons linterface graphique que nous avons
conue pour faciliter lexcution de lensemble des requtes.
4.3.4
96
97
98
4.4
Bilan
Dans ce chapitre, nous avons dcrit notre exprimentation dans le cadre dun
systme dcisionnel. Pour aboutir la mise en oeuvre du schma, nous avons utilis
seulement une partie du modle multidimensionnel que nous avons conu pour le
projet ADELEM (cf. Chapitre 3).
La premire section sest focalise sur la construction du schma, que nous avons
appel Adelem_MCO. Il se compose dune table de faits (Prise_MCO) et de quatre dimensions (Etablissement, CIM10, Temps et Mode_sortie). Nous avons construit ce
schma en utilisant un chantillon du 10% des donnes relles du projet.
La deuxime partie a t consacre aux vues matrialiser. Nous avons dabord
utilis lalgorithme Greedy pour la slection de lensemble optimal de vues matrialiser, ensuite, nous avons appliqu notre algorithme. Nous les avons appliqu sur
des donnes mdicales relles et nous avons constat que notre proposition donne
de meilleurs rsultats pour notre cas dexprimentation. Nous avons termin cette
partie avec la gnration de lensemble optimal de vues matrialiser.
La dernire section dcrit linterface pour la gnration (semi-automatique) dindicateurs. Nous avons divis ce travail en quatre parties. La premire partie dcrit
notre architecture pour linterface graphique. La deuxime dcrit le fonctionnement
de linterface pour la cration et/ou la mise jour du schma. Nous avons group
lensemble des lments qui intgrent cette interface dans 5 composants et nous
avons termin cette partie avec la description de chaque composant.
Dans la troisime partie, nous avons class les types de requtes par rapport au
nombre de dimensions. Nous avons aussi donn des exemples de chaque type de
requtes excuter sur linterface graphique et nous avons termin cette section
avec la description du fonctionnement de linterface graphique pour la gnration
(semi-automatique) de requtes. Nous avons utilis un exemple pour dcrire son
4.4 Bilan
99
fonctionnement.
Dans le chapitre suivant, nous dployons notre proposition pour la gestion, le
stockage et la visualisation de lensemble de donnes contenues dans un entrept de
donnes. Nous proposons lutilisation des versions de schmas bitemporels pour la
gestion de lvolution des donnes aussi bien intensionnelles que extensionnelles.
100
Chapitre 5
Aspects temporels et versions de
schmas dans les entrepts
Malgr une conception attentive et soigneuse, la structure dune base de donnes
est sujette de nombreux changements. Ces changements peuvent aecter aussi
bien les donnes que leur structure. Pour grer ces changements, nous pouvons utiliser lvolution de schmas ou les versions de schmas. Pour rsoudre le problme
de perte de donnes aprs des changements du schma, le concept dvolution de
schma t introduit pour rcuprer les donnes existantes par le biais de leur
adaptation au nouveau schma. Nanmoins, nous considrons que pour les systmes
qui doivent grer des donnes historiques, lvolution de schma nest pas susante
et la maintenance de plusieurs schmas est requise. Nous devons choisir la technique
utiliser par rapport aux caractristiques de lapplication cible.
Dans ce chapitre, nous utilisons un schma en volution qui contient aussi bien
des changements sur les donnes extensionnelles que sur les donnes intensionnelles.
Ceci nous permet dintroduire le concept de versions de schmas qui permettent de
grer ces changements en gardant lensemble des donnes. Nous nous inspirons des
besoins et des caractristiques dune application mdicale.
Nous proposons lutilisation des versions de schmas pour la gestion, le stockage et
la visualisation des donnes historises de lapplication mdicale ADELEM. Nanmoins, la gestion des versions est une tche complexe et elle prsente plusieurs
problmes. Le principal, notre connaissance, est lexplosion des versions, car lexcution de chacune des primitives entrane la gnration dune nouvelle version. Ainsi,
nous devons tablir un mcanisme pour contrler cette explosion. Pour faire cela,
nous avons dni un oprateur appele SetVersion qui permet de grouper un ensemble de primitives excuter sur une version de schma et qui gnre une nouvelle
[SA05b].
La gestion des versions de schmas requiert aussi la spcication dun ensemble
de composants. Dabord, nous avons besoin dun ensemble de primitives permettant
lvolution dune version vers une autre et dun ensemble de rgles dintgrit. Nous
101
102
avons aussi besoin dun gestionnaire dvolution qui manipule les direntes versions
de schmas historises et dun moteur de versions. Ce dernier gre le stockage des
deltas et les rgles de conguration ncessaires lors de la manipulation des versions
de schmas.
5.1
Versions de schmas
Cette section prsente une introduction aux versions de schmas. Nous utilisons
dabord un schma en volution pour dcrire le besoin de la gestion des versions de
schmas. Ensuite, nous montrons la reprsentation bitemporelle de cet ensemble de
versions.
5.1.1
Nous utilisons un schma en toile avec quatre dimensions qui est dcrit par la
gure 5.1. Il reprsente une volution annuelle dune application mdicale. La table
centrale reprsente une table de faits (Prise_MCO). Elle contient un n-uple pour
chaque sjour dans un hpital.
CIM10 (VS01)
Etablissment (VS01)
Cle_Maladie
Libelle_maladie
Prise_MCO (VS01)
Cle_Maladie
Cle_Finess
Prise_MCO (VS02)
Cle_Maladie
Cle_Finess
Temps (VS01)
Cle_Temps
Temps (VS02)
Cle_Temps
Mois
Semestre
Annee
Prise_MCO (VS03)
Cle_Maladie
Cle_Finess
Cle_Temps
Cle_Mode
Compte_sejour
Somme_sejour
Cle_Finess
Raison_sociale
Code_postal
CA1..CA7
...
Etablissement (VS02)
Cle_Finess
Raison_sociale
Adresse
Code_postal
CA1..CA7
...
Mode_sortie (VS01)
Cle_Mode
Libelle_mode
Temps (VS03)
Cle_Temps
Mois
Saison
Semestre
Annee
103
5.1.2
Pour la gestion de la notion du temps dans notre modle de versions de schmas, nous pouvons utiliser soit le temps transactionnel, soit le temps de validit,
ou bien le bitemporel [DGS95, GM02, AQ86]. Le temps de validit dune version
correspond aux instants auxquels cette version est vraie dans le monde modlis.
De cette manire, nous pouvons linterroger par rapport la validit, des donnes
de cette version, du schma correspondant, ou en utilisant un schma valide dans
un intervalle dirent. Par contre, le temps transactionnel correspond linstant o
un fait est enregistr dans la base. Dans cette approche, nous pouvons seulement
modier le schma courant. Ainsi, si par exemple, nous avons besoin daccder une
version historique pour corriger certains erreurs en gardant lhistoire complte des
changements du schma, nous devons choisir le bitemporel pour la gestion du temps.
Dans notre cas, nous avons dcid de manipuler les versions de schmas bitemporels.
Ainsi, nous devons grer la combinaison du temps de transaction et du temps de
validit (cf. Subsection 2.6.1.3).
La gure 5.2 montre la gestion du temps pour lapplication mdicale prsente
dans la gure 5.1.
01/01
01/03
01/02
01/04
UC
valid-time
07/02
VS01
07/03
VS02
07/04
VS03
07/05
UC
transaction-time
104
{}
(tt, vt) =
sinon
Nous dnotons par 1 (VS) le temps associ par la fonction VS. Ainsi, 1 (VS)
reprsente la pertinence temporelle (timestamp) de VS.
Finalement, notre version de schma reprsente un n-uplet VS = (Vs , Cs , Ds ,
Hs , R, CS, 1 ) par rapport la gure 5.1, tel que :
Vs = {VS01, VS02, VS03}
Cs = {Prise_MCO}
M = {Compte_sejor, Somme_sejour}
Ds = {Etablissement, CIM10, Temps, Mode_sortie}
P = {Cle_Finess, Raison_sociale, Adresse, Codepostal, CA1 .. CA7, CMO1 ..
CMO7, NLA, NLO, Commune, Departement, Region, Pays, Cle_Maladie, ... }
Hs = {}
L = {}
CS = {(AddProprieteAdresse , VS01, VS02), (AddProprieteSaison , VS02, VS03)}
1 (VS01) = (2002-07, UC2 )t X (2001-01 - 2001-12)v
1 (VS02) = (2003-07, UC)t X (2002-01 - 2002-12)v
1 (VS03) = (2004-07, UC)t X (2003-01 - 2003-12)v
La gestion de lensemble des changements dun schma en volution requiert
un nombre doprations primitives qui permettent aux donnes intensionnelles et
extensionnelles, de continuer dexister ou dtre valides.
1
2
5.2
105
Nous dcrivons les oprations primitives que nous avons dnies pour la gestion
dun schma en volution. Lensemble doprations a t inspir par les travaux de
recherche dans le domaine de lvolution de schmas [Ben02, KC88, KC02, GM02,
GMS00, Lau96, RKZ00]. Nous avons adapt lensemble de primitives pour les entrepts de donnes et nous avons dni les rgles dintgrit requises.
5.2.1
Ensemble de primitives
Nous avons divis les primitives en deux catgories, la premire pour la gestion
des cubes, des dimensions ou des hirarchies. La deuxime correspond aux primitives
qui agissent sur les versions de schmas.
Gestion de la relation (cube, dimension ou hirarchie) :
Nous avons construit le tableau 5.1 avec lensemble des primitives qui agissent
sur le contenu dune relation avec leur dnition et les rgles dintgrit.
Gestion des versions :
Le trableau 5.2 dcrit lensemble des primitives construites pour la gestion de
versions avec leur dntion et les rgles dintgrit.
5.2.2
Ensemble de restrictions
Nous prsentons lensemble des rgles dintgrit que nous avons conu. Le format
gnral pour leur dnition est le suivant :
constraint nom_contrainte := constraint ;
Nous listons lensemble des restrictions que nous avons dni par rapport aux
oprations primitives prcdentes. Nous avons aussi divis les restrictions en deux
catgories.
Rgles dintgrit dfinies
Sur une relation :
R1 : constraint addm := type(mn ) = numrique.
R2 : constraint deletem := {M} 2.
R3 : constraint created := cl primaire {FC}, o FC est lensemble de cls
trangres qui appartiennent la relation de faits.
R4 : constraint dropd := cl primaire
/ {FC}.
106
Primitive
CreateC
DropC
RenameC
AddM
DeleteM
RenameM
CreateD
DropD
RenameD
AddP
DeleteP
Change_typeP
RenameP
CreateH
Dfinition
CreateC(BM, cn , {M}, {D})
DropC(BM, cn )
RenameC(BM, cn , cn )
AddM(BM, cn , mn )
DeleteM(BM, cn , mn )
RenameM(BM, cn , mn , mn )
CreateD(BM, dn , {P}, {H})
DropD(BM, dn )
RenameD(BM, dn , dn )
AddP(BM, dn , pn )
DeleteP(BM, dn , pn )
Change_typeP(BM, dn , pn , pn )
RenameP(BM, dn , pn , pn )
CreateH(BM, hn , L, )
DropH
DropH(BM, hn )
RenameH
AddL
DeleteL
RenameH(BM, hn , hn )
AddL(BM, hn , ln , l1 , l2 )
DeleteL(BM, hn , ln )
RenameL
RenameL(BM, hn , ln , ln )
Rgle dintgrit
(R10) cl primaire
/ {FC}
cl primaire
/ {FD}
(R11) cl primaire {FC}
cl primaire {FD}
Primitive
CreationV
FreezeV
DefrostV
ExporterR
DropV
Dfinition
Rgle dintgrit
AddV(BMS, VSn )
FreezeV(VSn )
(R12) (VSn )=vrai
DefrostV(VSn )
ExporterR(VSn , CIM10, VSn ) (R13) dn VSn
DropV(VSn )
(R14) DropV(VSn ) (VSn )=vrai
Tab. 5.2 Primitives pour la gestion des versions
107
5.3
Dans cette section, nous traitons la dnition de lensemble des primitives requises
pour la cration dune version de schma. Nous avons gard les deux catgories spcies prcdemment. Nous avons aussi identi un ensemble de proprits qui doivent
tre prserves lors des volutions.
Noms uniques : Les versions de schmas, les cubes, les dimensions, les hirarchies, les mesures, les proprits et les niveaux ont des noms uniques.
Schma du cube : La cardinalit de lensemble daxes et de lensemble de mesures doit tre suprieure ou gale 1.
Schma de dimension : La cardinalit de lensemble des proprits doit tre
suprieure ou gale 1.
Schma de hirarchie : Il est reprsent par un graphe acyclique dirig qui
contient un seul noeud base et un seul noeud sommet .
Schma de version : Il est reprsent par un schma multidimensionnel VS=(V,
C, D, H, R, CS, 1 ) et linstance est IV=(Vi , Ci , Di , Hi , Ri , CSi , 1
i ).
La smantique de lensemble de primitives doit respecter ces proprits. Pour la
dnition des primitives, nous avons repris les 4 dnitions pour la spcication
dune base de donnes multidimensionnelle dj prsentes (cf. Chapitre 3).
108
5.3.1
Dans cette partie, nous prsentons lensemble des dnitions des primitives qui
agissent sur les schmas de cubes, de dimensions ou de hirarchies.
Dfinition 5.1 : Primitive CreateC
Etant donns une version de schma VS = (Vs , Cs , Ds , Hs , R, CS, 1 ) et dinstance IV = (Vi , Ci , Di , Hi , Ri , CSi , 1
i ), un nom de cube cn C, un ensemble de
dimensions D tel que |D| 1 et un ensemble de mesures M tel que |M| 1, le
rsultat de la primitive CreateC(VS, cn , M, D) est une version dont le schma est
S
VS = (Vs , Cs {cs }, Ds , Hs , R, CS, 1 ), o cs est un schma de cube (cn , M, D)
et linstance est IM = IM.
Considrons linsertion dans la version VSi dun nouveau cube Achats qui contient
lensemble de dimensions {Magasin, Temps, Produit, Fournisseur} et la mesure
QuantiteA, la primitive CreateC(VSi , Achats, {Magasin, Temps, Produit, Fournisseur}, QuantiteA) cre le cube.
Dfinition 5.2 : Primitive DropC
Cette primitive limine un schma de cube, ses dimensions et ses hirarchies dune
version de schma VS.
Etant donns une version de schma VS = (Vs , Cs , Ds , Hs , R, CS, 1 ) et
dinstance IV = (Vi , Ci , Di , Hi , Ri , CSi , 1
i ), un nom de cube cn C, la primitive
DropC(VS, cn ) cre une version dont le schma est VS = (Vs , Cs , Ds , Hs , R,
CS, 1 ), o Cs = Cs \{(cn , m1 ,..., mj , D)}. Linstance est IV = (Vi , Ci \{ci }, Di ,
Hi , Ri , CSi , 1
i ), o ci = {(cn , {(v1 ,..., vj )| i=1,...,n vi measuredom(mi )}, {d})}.
Par exemple, pour liminer le cube Achats de la version VSi , nous excutons la
primitive DropC(VSi , Achats).
Dfinition 5.3 : Primitive RenameC
Etant donns une version de schma VS = (Vs , Cs , Ds , Hs , R, CS, 1 ) et dinstance IV = (Vi , Ci , Di , Hi , Ri , CSi , 1
i ), les noms de cubes cn cn C, lexcution
de la primitive RenameC(VS, cn , cn ) fournit une version dont le schma est VS
S
= (Vs , Cs , Ds , Hs , R, CS, 1 ), o Cs = Cs \{(cn , M, D)} {(cn , M, D)}, et
linstance est IV = IV.
Par exemple, pour renommer le cube Ventes par VentesJournalieres : RenameC(VSi ,
Ventes, VentesJournalieres).
Dfinition 5.4 : Primitive AddM
109
Etant donns une version de schma VS = (Vs , Cs , Ds , Hs , R, CS, 1 ) et dinstance IV = (Vi , Ci , Di , Hi , Ri , CSi , 1
i ), un nom de cube cn C et un nom de
mesure mn M, la primitive AddM(VS, cn , mn ) cre une version dont le schma est
S
S
VS = (Vs , Cs , Ds , Hs , R, CS, 1 ), o Cs = Cs \{(cn , M, D)} {(cn , M {mn },
S
D)}, et linstance est IV = (Vi , Ci , Di , Hi , Ri , CSi , 1
i ) oSCi = C i \{ci } {ci },
o ci = (cn , {(m1 ,..., mi )}, {d}) et ci = (cn , {(m1 ,..., mi )} {mn }, {d}).
Par exemple, pour ajouter la mesure QuantiteV au cube Ventes, nous excutons
la primitive AddM(VSi , Ventes, QuantiteV).
Dfinition 5.5 : Primitive DeleteM
Etant donns une version de schma VS = (Vs , Cs , Ds , Hs , R, CS, 1 ) et dinstance IV = (Vi , Ci , Di , Hi , Ri , CSi , 1
i ), un nom de cube cn C et un nom de
mesure mn M tel que |M| 2, le rsultat de DeleteM(VS, cn , mn ) est une version dont le schma est VS = (Vs , Cs , Ds , Hs , R, CS, 1 ), o Cs = Cs \{(cn ,
S
M, D)} {(cn , M\{mn }, D)}. Linstance IV = (Vi , Ci , Di , Hi , Ri , CSi , 1
i )
S
o Ci = C i \{ci } {ci }, o ci = (cn , {(m1 ,..., mi )}, {d}) et ci = (cn , {(m1 ,...,
mi )}\{mn }, {d}).
Par exemple, pour supprimer la mesure QuantiteV de cube Ventes : DeleteM(VSi ,
Ventes, QuantiteV).
Dfinition 5.6 : Primitive RenameM
Etant donns une version de schma VS = (Vs , Cs , Ds , Hs , R, CS, 1 ) et dinstance IV = (Vi , Ci , Di , Hi , Ri , CSi , 1
i ), un nom de cube cn C et les noms mn et
mn M, lexcution de la primitive RenameM(VS, cn , mn , mn ) donne une version
dont le schma est VS = (Vs , Cs , Ds , Hs , R, CS, 1 ), o Cs = Cs \{(cn , M,
S
S
D)} {(cn , M\{mn } {mn }, D)}. Linstance est IV = IV.
Par exemple, pour changer le nom de la mesure Quantite par QuantiteJournaliere,
nous excutons la primitive RenameM(VSi , Ventes, Quantite, QuantiteJournaliere).
Dfinition 5.7 : Primitive CreateD
Etant donns une version de schma VS = (Vs , Cs , Ds , Hs , R, CS, 1 ) et
dinstance IV = (Vi , Ci , Di , Hi , Ri , CSi , 1
i ), un nom de cube cn C un nom de
dimension dn D, un ensemble de proprits P tel que |P| 1 et H, le rsultat de la
primitive CreateD(VS, Cn , dn , P, H) est une version dont le schma est VS = (Vs ,
S
S
S
Cs , Ds {ds }, Hs , R, CS, 1 ), o Cs = Cs \{(cn , M, D)} {(cn , M, D {dn })}
S
et Ds = Ds {ds }. Linstance est IV = (Vi , Ci , Di , Hi , Ri , CSi , 1
i ), o Ci =
S
S
Ci \{ci } {ci }, ci = (cn , {m}, {d1 ,... di }), ci = (cn , {m}, {d1 ,... di } {dn }) et Di
110
= Di .
Considrons par exemple la cration de la dimension Fournisseur qui contient
lensemble de proprits {Cle_F, Raison_sociale, Adresse, Tlphone, Pays} au
cube Ventes, nous excutons la primitive CreateD(VSi , Ventes, Fourniseur, {Cle_F,
Raison_sociale, Adresse, Tlphone, Pays}, {}).
Dfinition 5.8 : Primitive DropD
Cette primitive limine un schma de dimension et leurs instances dune version
VSi . La primitive ne peut pas tre excute sil existe un schma de cube qui utilise
cette dimension. Ainsi, nous supposons lexistence dune fonction boolenne indiquant si la dimension peut tre supprime.
Etant donns une version de schma VS = (Vs , Cs , Ds , Hs , R, CS, 1 ) et
dinstance IV = (Vi , Ci , Di , Hi , Ri , CSi , 1
i ), un nom de dimension dn D tel que
(dn =vrai), la primitive DropD(VS, dn ) cre une version dont le schma est VS
= (Vs , Cs , Ds , Hs , R, CS, 1 ), o Ds = Ds \{(dn , P, H)}. Linstance est IV =
(Vi , Ci , Di , Hi , Ri , CSi , 1
i ), o Di = Di \{di }, o di = (dn , {(v1 ,..., vx )| i=1,...,n
vi propertydom(pi )}, {h}).
Par exemple, pour supprimer la dimension Magasin, nous excutons la primitive
DropD (VSi , Magasin) (Magasin)=vrai.
Dfinition 5.9 : Primitive RenameD
Etant donns une version de schma VS = (Vs , Cs , Ds , Hs , R, CS, 1 ) et dinstance IV = (Vi , Ci , Di , Hi , Ri , CSi , 1
i ), un nom de cube cn C et deux noms de
dimensions dn , dn D, lopration RenameD(VS, cn , dn , dn ) fournit une version
dont le schma est VS = (Vs , Cs , Ds , Hs , R, CS, 1 ), o Cs = Cs \{(cn , M,
S
S
S
D)} {(cn , M, D\{dn } {dn })} et Ds = Ds \{(dn , P, H)} {(dn , P, H)} et linstance est IV = IV.
Par exemple, pour changer le nom de la dimension Magasin par le nom Boutique
du cube Ventes : RenameD(VSi , Ventes, Magasin, Boutique).
Dfinition 5.10 : Primitive AddP
Etant donns une version de schma VS = (Vs , Cs , Ds , Hs , R, CS, 1 ) et dinstance IV = (Vi , Ci , Di , Hi , Ri , CSi , 1
i ), un nom de dimension dn D et un nom
de proprit pn P, la primitive AddP(VS, dn , pn ) cre une version dont le schma
S
S
est VS = (Vs , Cs , Ds , Hs , R, CS, 1 ), o Ds = Ds \{(dn , P, H)} {(dn , P {pn },
S
H)}, et linstance est IV = (Vi , Ci , Di , Hi , Ri , CSi , 1
o Di = Di \{di } {di },
i )S
o di = (dn , {(p1 ,..., pi )}, {h}) et di = (dn , {(p1 ,..., pi )} {pn }, {h}).
111
112
hirarchie hn H, un ensemble de niveaux L et une relation dfinie sur L, le rsultat de la primitive CreateH(VS, dn , hn , L, ) est une version dont le schma est VS
S
S
= (Vs , Cs , Ds , Hs , R, CS, 1 ), o Ds = Ds \{(dn , P, H)} {(dn , P, H {hn })}
S
et Hs = Hs {hs }, o hs est un schma de hirarchie (hn , L, ). Linstance est IV
S
= (Vi , Ci , Di , Hi , Ri , CSi , 1
D = Di \{di } {di }, di = (dn , {p}, {(h1 , ...,
i ), o
S i
hk )}), di = (dn , {p}, {(h1 , ..., hk )} {hn }) et Hi = Hi .
Considrons par exemple la cration de la hirarchie H_Temps qui contient lensemble de niveaux {Jour, Mois, Saison, Annee}. La relation entre les niveaux est
{(Jour, Mois), (Mois, Saison), (Saison, Annee)}. La primitive CreateH(VSi , Etablissement, H_Temps, L, ) insre la dimension Etablissement, la nouvelle hirarchie.
Dfinition 5.15 : Primitive DropH
Nous ne pouvons pas utiliser cette primitive sil existe un schma de cube utilisant
un niveau de la hirarchie en tant quaxe. Ainsi, nous supposons lexistence dune
fonction boolenne qui nous indique si nous pouvons excuter la primitive.
Etant donns une version de schma VS = (Vs , Cs , Ds , Hs , R, CS, 1 ) et
dinstance IV = (Vi , Ci , Di , Hi , Ri , CSi , 1
i ), un nom de hirarchie hn H tel que
(hn )=vrai, la primitive DropH(VS, hn ) fournit une version dont le schma est VS
= (Vi , Cs , Ds , Hs , R, CS, 1 ), o Hs = Hs \{(hn , L, )}. Linstance est IV =
S
(Vi , Ci , Di , Hi , Ri , CSi , 1
i ), o Hi = Hi \{( li L levelset(li ), RUP)}.
Par exemple, pour supprimer la hirarchie H_Temps : DropH(VSi , H_Temps).
Dfinition 5.16 : Primitive RenameH
Etant donns une version de schma VS = (Vs , Cs , Ds , Hs , R, CS, 1 ) et dinstance IV = (Vi , Ci , Di , Hi , Ri , CSi , 1
i ), le nom de dimension dn D, et deux noms
de hirarchies hn et hn H, la primitive RenameH(VS, dn , hn , hn ) cre une version
dont le schma est VS = (Vs , Cs , Ds , Hs , R, CS, 1 ), o Ds = Ds \{(dn , P,
S
S
S
H)} {(dn , P, H\{hn } {hn }) et Hs = Hs \{(hn , L, )} {(hn , L, )}. Linstance
est IV= IV.
Par exemple, pour renommer la hirarchie H_Temps de la dimension Temps par le
nom H_Jour, nous excutons la primitive RenameH(VSi , Temps, H_Temps, H_Jour).
Dfinition 5.17 : Primitive AddL
Cette primitive modie le schma de hirarchie hs en construisant une relation
entre les niveaux l1 et l2 qui appartiennent hs et un nouveau niveau ln . Cette opration tablit les relations de dpendances suivantes : l1 ln et ln l2 . Pour faire
cela, nous supposons lexistence dune fonction qui, tant donns un nom de hi-
113
RUP). Lensemble RUP contient les fonctions ruplji telles que ruplln1 = {(e, m)|e
l
l
levelset(l1 )}, rupll2n = {(e, m)|e levelset(l2 )} et ruplji = ruplji pour les autres
niveaux li et lj .
Region
Rhne Alpes
District
Columbia
Departement
Commune
Isre
Lyon
Grenoble
a) Schma
...
...
...
Annecy
b) Instance
114
Rhne Alpes
Region
District
Commune
Columbia
Lyon
Grenoble
a) Schma
...
...
Annecy
b) Instance
5.3.2
115
Nous prsentons lensemble des dnitions de primitives qui agissent sur la gestion de versions de schmas. Nous considrons lexistence de :
S
S
S
S
DOM = dom(char) dom(integer= dom(oat) dom(decimal) dom(date)
contenant le domaine de chaque type atomique.
OP = Ensemble de oprations primitives.
Dfinition 5.20 : Primitive CreateV
Etant donns une version de schma VS = (Vs , Cs , Ds , Hs , R, CS, 1 ) et dinstance IV = (Vi , Ci , Di , Hi , Ri , CSi , 1
i ), et un nom de version vn V, le rsultat
de CreateV(VS, vn ) cre une nouvelle version dont le schma est VS = VS et linstance est IV = IV.
Par exemple, supposons que nous voulons crer une version de schma VSj
partir de la version VSi . La primitive CreateV(VSi , VSj ) cre la version VSj = (Vs ,
Cs , Ds , Hs , R, CS, 1 ).
Dfinition 5.21 : Primitive FreezeV
Cette primitive permet de geler une version (i.e., elle ne permet plus de changements). La seul primitive que nous pouvons appliquer une version gele est
DefrostV (cf. Dnition 5.22).
Etant donns une version de schma VS = (Vs , Cs , Ds , Hs , R, CS, 1 ) et dinstance IV = (Vi , Ci , Di , Hi , Ri , CSi , 1
i ), et un nom de version vn V, la primitive
FreezeV(vn ) bloque cette version en interdisant lexcution des primitives dvolution. La version de schma est VSi =vn dont le schma est VS = (Vs , Cs , Ds , Hs , R,
CS, 1 ) et linstance IV = (Vi , Ci , Di , Hi , Ri , CSi , 1
i ). i=1,...,n pi OP, pi (VSi )
sexcute si et seulement si VSi nest pas gele.
Dfinition 5.22 : Primitive DefrostV
Etant donns une version de schma VS = (Vs , Cs , Ds , Hs , R, CS, 1 ) et
dinstance IV = (Vi , Ci , Di , Hi , Ri , CSi , 1
i ), et un nom de version vn V, la primitive DefrostV(vn ) fournit une version de schma VSi =vn dont le schma est VS
= (Vs , Cs , Ds , Hs , R, CS, 1 ) et linstance IV = (Vi , Ci , Di , Hi , Ri , CSi , 1
i ).
i=1,...,n ei E(VSi ) pi (VSi ) sexcute, o pi OP.
Dfinition 5.23 : Primitive ExporterR
Cette primitive permet de faire migrer lensemble des donnes intensionnelles et
extensionnelles dune relation vers une nouvelle version de schma.
116
Etant donns une version de schma VS = (Vs , Cs , Ds , Hs , R, CS, 1 ) et dinstance IV = (Vi , Ci , Di , Hi , Ri , CSi , 1
i ), un schma de dimension dn D et un nom
de version vn V, le rsultat de ExporterR(VS, dn , vn ) est une version VS dont le
S
schma est VS = (Vs , Cs , Ds {ds }, Hs , R, CS, 1 ), o ds est un schma de dimension (dn , P, H), et linstance est IV = IV.
Par exemple, pour faire migrer la dimension CIM10 qui appartient la version
VSn , nous excutons la primitive ExporterR(VSn , CIM10, VSn ), o le schma de
la dimension CIM10 est (CIM10, {Cle_Maladie, Libelle_maladie}, {}).
Dfinition 5.24 : Primitive DropV
Lexcution de cette primitive limine le schma et les instances dune base de
donnes multidimensionnelle. Nous pouvons excuter cette opration si la version
de schma nexiste pas dans le priode historique tabli. Ainsi, nous supposons
lexistence dune fonction boolenne indiquant si la version de schma peut tre
supprime.
Etant donns une version de schma VS = (Vs , Cs , Ds , Hs , R, CS, 1 ) et
dinstance IV = (Vi , Ci , Di , Hi , Ri , CSi , 1
i ), et un nom de version vn V tel que
(vn )=vrai, la primitive DropV(VSi ), o VSi = vn , limine la version de schma
SVi ainsi que leurs instances.
Dfinition 5.25 : Oprateur SetVersion
Etant donns une version de schma VS = (Vs , Cs , Ds , Hs , R, CS, 1 ) et dinstance IV = (Vi , Ci , Di , Hi , Ri , CSi , 1
i ), un ensemble de primitives {EP} et les
noms de versions vn et vn V, la primitive SetVersion(VSi , {EP}, VSj ), o VSi
= vn et VSj = vn , cre la version de schma VSj dont le schma est VS = (Vs ,
Cs , Ds , Hs , R, CS, 1 ) et linstance est IV = (Vi , Ci , Di , Hi , Ri , CSi , 1
i ).
Si nous voulons crer une nouvelle version VSj partir de la version courante VSi
incluant les changements : {EP}=(DropC(VSi , Prise_MCO), DropD(VSi , Mode_sortie),
ExporterR(VSi , CIM10, VSj ), ExporterR(VSi , Etablissement, VSj ), RenameP(VSi ,
Etablissement, Codepostal, Code), ExporterR(VSi , Temps, VSj ), DeleteP(VSi , Temps,
Saison)), lexcution de SetVersion (VSi , {EP}, VSj ) donne le rsultat souhait.
Chaque primitive de lensemble EP doit respecter la dnition donne prcdemment.
5.4
Nous traitons dans cette section la gestion des donnes historises de notre modle. Nous montrons dabord larchitecture conue simplie du projet et linterac-
117
tion entre leurs composants, puis nous prsentons le modle de versions de schmas
bitemporels et nous terminons par la description du gestionnaire dvolution de
schmas.
5.4.1
Larchitecture que nous avons conue pour le projet ADELEM est compose de
trois composants principaux : linterface graphique, lentrept de donnes mdicales
et le gestionnaire dvolution. La gure 5.5 montre linteraction entre le gestionnaire
de requtes et le gestionnaire dvolution.
Interface Graphique
Gestionnaire de Requtes
Entrept
de
donnes
Donnes de
dtail et rsumes
(courantes)
Gestionnaire dEvolution
5.4.2
118
Gestionnaire dvolution
Entrept
de donnes
historises
Donnes intensionnelles
et extensionnelles
Stockage de deltas
+
Table de correspondance
Rgles de configuration
Lattribut Relation_type spcie les types : cube, dimension, hirarchie, vue matrialise, vue.
Table pour les attributs :
119
Lattribut Key est de type boolen et sert pour indiquer si ID_Attribut fait partie
de la cl primaire.
Table dquivalences :
TE = {ID_Attribut, ID_Relation, Attribut_nomancien,
Attribut_nomnouveau, Temps_transaction, Temps_validite, Attribut_immuable}
5.4.3
120
Gestionnaire dvolution
Stockage
de deltas
...
Donnes
intensionnelles
et extensionnelles
historises 1
+
Table Corresp.
Meta
Schema
Donnes
intensionnelles
et extensionnelles
historises n
+
Table Corresp.
Rgles de
Configuration
Deltas
+
Rgles de Configuration
T1
T2
Niveau 3
(Meta-schema)
T4
T3
UC
tv
VS01 (DI)
Niveau 2
(Intensionnel)
Table de Corresp.
Niveau 1
(Extensionnel)
VS01 (DE)
T
VS02 (DI)
Niveau 2
(Intensionnel)
Table de Corresp.
Niveau 1
(Extensionnel)
VS02 (DE)
T
VS03 (DI)
UC
Niveau 2
(Intensionnel)
tt
Table de Corresp.
Historique
VS03 (DE)
Niveau 1
(Extensionnel)
121
122
5.5
Bilan
Dans un entrept de donnes, la manipulation des donnes historises est essentielle. Nanmoins, leur gestion est une tche complexe et coteuse. Dans ce chapitre,
nous avons prsent notre proposition pour la gestion, le stockage et la visualisation
de lensemble de donnes historises. Nous avons introduit dabord un ensemble de
versions de schmas annuels dans un contexte mdical. Ce schma est compos dune
toile avec quatre dimensions prsentant divers changements au cours du temps. En
considrant ces changements, nous avons cre un ensemble de versions de schmas
qui nous permet la manipulation des donnes sans perte. Nous avons aussi donn
une reprsentation bitemporelle pour chaque version de schma.
Pour la cration et la gestion des versions de schmas, nous avons spci une
liste doprations primitives divise en deux catgories, la premire rassemble un
ensemble de 19 primitives ncessaires pour la gestion des cubes, des dimensions
et des hirarchies. La deuxime contient 5 primitives qui agissent sur les versions
de schmas. Nous avons aussi dni loprateur SetVersion qui permet de grouper
un ensemble de primitives excuter sur une version de schma et qui gnre une
nouvelle version. De cette manire, nous pouvons contrler le nombre de versions
gnres. Nous avons aussi dni un ensemble de contraintes pour la manipulation
des versions. La smantique de lensemble de primitives doit respecter cet ensemble
de contraintes pour assurer une gestion cohrente.
Pour chaque primitive, nous avons donn sa dnition formelle. Pour ce faire,
nous avons repris la dnition dune base de donnes multidimensionnelle, dun
cube, dune dimension, dune hirarchie ainsi que de leurs instances donnes au
Chapitre 3. La dnition formelle de la primitive considre aussi bien son schma
que ses instances.
La dernire section a trait la gestion temporelle des entrepts de donnes. Nous
avons donn une architecture simplie qui dcrit linteraction entre gestionnaires
de requtes et dvolution. Nous avons prsent notre modle de versions de schmas
bitemporels compos dun entrept de donnes historises et dun moteur de versions
stockant les deltas et les rgles de conguration. Nous avons donn la description du
gestionnaire dvolution de schmas. Nous avons prsent aussi bien la gestion de
donnes historises que lactivit du gestionnaire dvolution par niveau. Le niveau
5.5 Bilan
123
124
Chapitre 6
Conclusions et perspectives
6.1
6.1.1
Principales contributions
Nous listons nos contributions pour la conception et la mise en oeuvre dun entrept de donnes :
- Dnition dun modle multidimensionnel.
- Traitement de requtes et algorithme pour la slection optimale de vues matrialiser.
- Interface graphique pour la gnration (semi-automatique) des requtes.
- Versions de schmas bitemporels pour la gestion de donnes mdicales historises.
6.1.2
Notre mtamodle multidimensionnel se compose de trois classes : Cube, Dimension et Hirarchie. Ce mtamodle sert la conception dun modle multidimensionnel. Pour faire cela, nous avons donn quatre dnitions : le schma dune base
multidimensionnelle, dun cube, dune dimension et le schma dune hirarchie.
125
126
Conclusions et perspectives
6.1.3
Nous avons appliqu notre algorithme et celui de Greedy aux donnes du projet ADELEM. Lalgorithme Greedy est simple et ecace, nanmoins, dans notre
exprimentation, partir du 6me choix, lalgorithme slectionne les vues les plus
coteuses. Ceci nous a motiv pour proposer un algorithme qui tend Greedy avec
les paramtres : frquence dutilisation, cot de calcul et frquence des mises jour
sur les relations de base.
Nous avons remarqu que plusieurs propositions utilisent comme frquence dutilisation un nombre assign chaque vue, par exemple : la frquence dutilisation
pour la vue V1 est gale 10, V2 5, V3 1, ... Ainsi, la particularit de notre
algorithme rside dans la spcication de deux propositions. La premire consiste
utiliser la complexit de la vue (nombre de ses relations dpendantes) pour les
deux premiers paramtres : la frquence dutilisation et le cot de calcul de la vue.
Ainsi, nous considrons que la frquence dutilisation dune vue augmente en proportion directe du nombre de ses relations dpendantes et que le cot de calcul
diminue dans la mme proportion. La deuxime proposition consiste dterminer la
frquence des mises jour sur les relations de base, dans ce cas, nous avons besoin
du nombre dlments lintrieur de la vue qui peuvent subir des changements.
Nous avons constat que notre proposition donne de meilleurs rsultats dans notre
cas exprimental.
La faiblesse de notre algorithme est labsence du cot dvaluation dune requte
par rapport au type dopration (Select, Project ou Join). Nous ne considrons pas
127
6.1.4
6.1.5
Les actualisations ralises dans les sources des donnes doivent tre reportes sur
lentrept. Ces changements peuvent aecter aussi bien les donnes que leur structure. Pour sa gestion, nous pouvons utiliser lvolution de schmas ou les versions
de ceux-ci.
En ce qui concerne lvolution de schmas, elle permet la rcupration des donnes
existantes par le biais de leur adaptation au nouveau schma. Nanmoins, lvolution nimplique pas un support historique de celui-ci et elle ne considre non plus
un mcanisme pour la visualisation des donnes travers des schmas volus. Par
consquence le concept dvolution de schma nest pas susant et il est ncessaire
dtablir une stratgie spcique pour rpondre cette ncessit.
Lapproche des versions de schma a t utilise principalement pour la cohrence
des donnes et de leurs schmas courants. Nous considrons cette approche comme
une alternative aux systmes qui doivent grer et manipuler des donnes historiques.
Dans le cas prcis du projet ADELEM, nous proposons lutilisation de versions de
schma pour grer les aspects temporels de lentrept de donnes.
La principale caractristique de notre proposition consiste fournir une approche
simple et adapte au paradigme des entrepts pour la gestion et la manipulation
aussi bien des donnes historiques que courantes. En plus, la dirence des systmes temporels, o lensemble de donnes doit contenir la notion du temps, les
donnes extensionnelles dans notre approche sont stockes telles quelles.
Bien que nous nous sommes inspirs des caractristiques et des besoins du projet
ADELEM, notre approche de versions peut tre utilise par tout systme qui doit
grer des donnes historises. Cest la raison pour laquelle nous avons dcid duti-
128
Conclusions et perspectives
6.2
Perspectives
Nous avons un ensemble de perspectives permettant de continuer le travail prsent ainsi que son amlioration. Nous avons dit prcdemment que nous avons
seulement dvelopp une version initiale de linterface, ainsi, nous dcrivons dabord
lextension du prototype ralis. Nous donnons aussi une autre perspective pour
la gestion des donnes, celle dinclure les aspects spatiaux aux donnes mdicales.
Finalement, nous incluons dautres perspectives quil est intressant de prendre en
compte.
6.2.1
Extension du prototype
Algorithme propos
6.2 Perspectives
6.2.1.2
129
6.2.2
130
Conclusions et perspectives
La diversit de ces donnes est une question critique : donnes textuelles, donnes
spatiales de type vectoriel telles que les donnes gomtriques, de type matriciel ( ou
rasteur) comme les donnes cartographiques, et donnes multimdia, par exemple les
images satellitales et ariennes, les donnes audio et vido. Ces donnes proviennent
de sources diverses et sous direntes chelles et formats de stockage ou dchange.
La reprsentation des donnes dans les SIGs :
Tous les SIGs utilisent trois primitives, le point, la ligne, et la rgion pour
construire la gomtrie dun objet. Deux choix sont faire pour reprsenter cette
gomtrie [Sch01] :
1. Quelle primitive utiliser (point, ligne ou rgion) ?
2. Quel mode rasteur ou vecteur dans chacun des cas ?
La description dun terrain partir de donnes de source satellitaire ou provenant
dimages ariennes est faite dans un mode reprsentation discrte appel rasteur, au
moyen dune grille : le plan est soit divis en un nombre ni de points soit dcompos
en un nombre ni de cellules rgulires. Une ligne ou une rgion peut tre reprsente
en mode rasteur par des cellules connexes. Plus la rsolution de la grille est grande,
meilleure est lapproximation obtenue.
La plupart des systmes actuels utilisent le mode vecteur : les points sont reprsents par leurs coordonnes, les lignes sont reprsentes par des segments de droite
qui sont des approximations linaires par morceaux, aussi appeles polylignes. Quant
aux rgions elles sont reprsentes par une approximation polygonale de leur frontire.
La gure 6.1 montre les deux modes pour reprsenter la gomtrie dun objet.
Aujourdhui lutilisation des SIGs et des techniques de cartographie dans le domaine de la sant en Sant Publique se dveloppe rapidement. Les ressources de
Sant Publique, les maladies spciques et les vnements sanitaires peuvent tre
reprsents et cartographis en fonction de leur environnement et de lexistence
dinfrastructures sanitaires et sociales. De telles informations, quand elles sont cartographis ensemble, crent un outil puissant pour grer et contrler les priorits en
matire de Sant Publique. Le SIG fournit un sens excellent de lanalyse de donnes pidmiologiques et programmes, rvlant les tendances, les dpendances et
les corrlations, ce qui est plus dicile mettre en valeur lorsque ces donnes sont
sous forme de tableau.
Finalement, il est intressant de faire un couplage entre larchitecture conue
pour ADELEM et un SIG. Pour faire cela, nous pouvons utiliser le logiciel HealthMapper, ceci nous permettra dacher les donnes slectionnes au travers de leur
6.2 Perspectives
131
6.2.3
Le processus dextraction-intgration est fondamental dans la conception dun entrept de donnes, car les donnes fournies seront stockes lintrieur de lentrept.
Pour cela, nous pensons quil est intressant de prendre en compte le dveloppement
de ce processus, due au fait que nous pouvons mesurer la qualit de lentrept par
le biais de la qualit de ses donnes. La principale problmatique est le suivi des
changements dans les sources de donnes et leur propagation vers lentrept pour
le mettre jour. Ce processus requiert une transaction de maintenance. Dans les
entrepts de donnes, une problmatique trs importante est la faon dexcuter les
transactions de maintenance sans perturber les requtes des utilisateurs.
La gure 6.2 montre larchitecture propose pour le projet WHIPS lUniversit
de Stanford [HGMW+ 95, Wid95].
Adaptateur/Moniteur : Il est associ chaque source de donnes et il a deux
fonctionnes : transformer le schma et ses instances en une reprsentation intermdiaire et dtecter automatiquement les changements dans la source pour les propager
vers lintgrateur.
Intgrateur : Il est responsable de la rception des reprsentations intermdiaires
des donnes sources, en provenance des adaptateurs, et de lintgration de celles-ci.
Lintgration entrane aussi une phase de transformation, celle-ci consiste les prparer (mise en correspondance des formats de donnes), les nettoyer, les ltrer,...,
pour les rendre conforme au schma de lentrept et aux critres de qualit choisis.
132
Conclusions et perspectives
Entrept
de
donnes
Intgrateur
Adaptateur/
Moniteur
Source
Adaptateur/
Moniteur
Source
Adaptateur/
Moniteur
Source
6.2.4
Grille de donnes
6.2 Perspectives
133
134
Conclusions et perspectives
Bibliographie
[AAD+ 96]
[ABCM99]
[Adi02]
[AGS97]
[AQ86]
[BB03]
[BCA01]
[Bel02]
[Ben02]
[Ber03]
[Blo99]
[BPT97]
136
Conclusions et perspectives
[BSH98]
J.W. Buzydlowski, I-Y. Song, and L. Hassell. A Framework for ObjectOriented On-Line Analytic Processing. In ACM First International
Workshop on Data Warehousing and OLAP, Bethesda, Maryland,
USA, November 1998.
[CD97]
Surajit Chaudhuri and Umeshwar Dayal. An overview of data warehousing and OLAP technology. SIGMOD Record, 26(1) :6574, 1997.
[CGJM01]
W. Cellary, S. Gangarski, G. Jomier, and M. Manouvrier. Les versions, Chapitre 8 du livre : Bases de Donnes et Internet, Modles,
langages et systmes. Editions Herms, 2001.
[CHJM02]
[CHS02]
[CLF99]
[Cod93]
E.F. Codd. Providing OLAP (On-Line Analytical Processing) to useranalystes : an IT mandate. Technical report, 1993.
[CT97]
Luca Cabibbo and Riccardo Torlone. Querying Multidimensional Databases. In Workshop on Database Programming Languages, pages
319335, 1997.
[CT98]
[CW98]
R. Conradi and B. Westfechtel. Version Models for Software Conguration Management. ACM Computing Surveys, 30(2) :232282, June
1998.
[DB204]
DB2
OLAP
Server
http
306.ibm.com/software/data/db2/db2olap/, 2004.
[Dbo97]
[DG01]
A. Doucet and S. Gangarski. Entrepts de donnes et Bases de Donnes Multidimensionnelles, Chapitre 12 du livre : Bases de Donnes
et Internet, Modles, langages et systmes. Editions Herms, 2001.
[DGS95]
://www-
6.2 Perspectives
[DGW+ 98]
[DSBH99]
[Dum00]
[EJWG03]
[Evo97]
[FGM00]
[Fra97]
[GBLP95]
[GM95]
[GM99]
[GM00]
[GM02]
[GMS00]
137
138
Conclusions et perspectives
[Gog04]
[Gup97]
Himanshu Gupta. Selection of Views to Materialize in a Data Warehouse. In ICDT, pages 98112, 1997.
[Hea05]
[HMV99a]
[HMV99b]
[How03]
[HRU95]
[HRU96]
[IH94]
[Inf02]
[Inm92]
William Inmon. Building the Data Warehouse. QED Technical Publishing Group, Wellesley, Massachusetts, U.S.A., 1992, 1992.
[Inm95]
[INS05]
[JJQV99]
[JLS99]
[JQJ98]
6.2 Perspectives
139
[JV97]
[KC88]
Won Kim and Hong-Tai Chou. Versions of Schema for ObjectOriented Databases. In Proceedings of the Fourteenth International
Conference on Very Large Data Bases, pages 148159. Morgan Kaufmann Publishers Inc., 1988.
[KC02]
Heum-Geun Kang and Chin-Wan Chung. Exploiting Versions for Online Data Warehouse Maintenance in MOLAP Servers. In Proceedings
of the 28th VLDB Conference, 2002.
[Kim96]
[KM99]
[KMP02]
[KR99]
[KR03]
[KS95]
Ralph Kimball and Kevin Strehlo. Why Decision Support Fails and
How To Fix It. SIGMOD Record, 24(3) :9297, 1995.
[KU95]
[Lau96]
[LMSS95]
A. Levy, A. Mendelzon, Y. Sagiv, and D. Srivastava. Answering Queries Using Views. In Proceedings of the 14th ACM SIGACT-SIGMODSIGART Symposium on Principles of Database Systems, pages 95
104, San Jose, Calif., 1995.
[LW96]
[LZW+ 97]
140
[Mar98]
[MBJ+ 02]
[ME97]
[Med05]
[MQM97]
[MS90]
[MS93]
[Mun93]
[Odb92]
[Ola04]
[ORA96]
[PCTM02]
[PCTM03]
[PMS04]
[Qui99]
[QW97]
[RGMS01]
Conclusions et perspectives
P. Marcel. Manipulations de Donnes Multidimensionnelles et Langages de Rgles. PhD thesis, Institut National des Sciences Appliques
de Lyon, France, 1998.
Renata Matos, Adriana Bueno, Anelise Jantsch, Nina Edelweiss, and
Clesio Saraiva. Dynamic Schema Evolution Management Using Version in Temporal Object-Oriented Databases. In Database and Expert
Systems Applications, pages 524533, 2002.
Viviane Pereira Moreira and Nina Edelweiss. Queries to Temporal
Databases Supporting Schema Versioning, 1997.
Aci project MEDIGRID : medical data storage and processing on the
GRID - http ://www.creatis.insa-lyon.fr/medigrid/, 2005.
Inderpal Singh Mumick, Dallan Quass, and Barinderpal Singh Mumick. Maintenance of data cubes and summary tables in a warehouse.
In SIGMOD 97 : Proceedings of the 1997 ACM SIGMOD international conference on Management of data, pages 100111. ACM Press,
1997.
E. McKenzie and Richard Thomas Snodgrass. Schema evolution and
the relational algebra. Inf. Syst., 15(2) :207232, 1990.
Simon Monk and Ian Sommerville. Schema evolution in OODBs using
class versioning. SIGMOD Rec., 22(3) :1622, 1993.
B. P. Munch. Versioning in a Software Database - The Change Oriented Way. PhD thesis, Norwegian Institute of Technologie, 1993.
Erik Odberg. A Framework for Managing Schema Versioning in
Object-Oriented databases. In DEXA, pages 115120, 1992.
The OLAP Report - http ://www.olapreport.com/fasmi.htm, 2004.
Oracle Express Server - http ://otn.oracle.com/documentation /express_server.html, 1996.
J. Poole, D. Chang, D. Tolbert, and D. Mellor. Common Warehouse
Metamodel, An Introduction to the Standard for Data Warehouse Integration. Wiley Publishing, Inc., 2002.
J. Poole, D. Chang, D. Tolbert, and D. Mellor. Common Warehouse
Metamodel, Developers Guide. Wiley Publishing, Inc., 2003.
Programme de Mdicalisation des Systmes dInformation http ://www.atih.sante.fr/, 2004.
Christoph Quix. Repository Support for Data Warehouse Evolution.
In DMDW, page 4, 1999.
Dallan Quass and Jennifer Widom. On-line warehouse view maintenance. In Proceedings of the 1997 ACM SIGMOD international
conference on Management of data, pages 393404. ACM Press, 1997.
John F. Roddick, Fabio Grandi, Federica Mandreoli, and Maria Rita
Scalas. Beyond Schema Versioning : A Flexible Model for SpatioTemporal Schema Selection. Geoinformatica, 5(1) :3350, 2001.
6.2 Perspectives
141
[RKZ+ 99]
[RKZ00]
[Rod92]
John F. Roddick. Schema evolution in database systems : an annotated bibliography. SIGMOD Rec., 21(4) :3540, 1992.
[Rod95]
[RR97]
Young-Gook Ra and Elke A. Rundensteiner. A Transparent SchemaEvolution System Based on Object-Oriented View Technology. IEEE
Transactions on Knowledge and Data Engineering, 9(4) :600624,
1997.
[SA04]
[SA05a]
[SA05b]
[SAS04]
[Sat03]
Ulrike Sattler. Data Warehouse Models and OLAP Operations http ://www.cs.man.ac.uk/ sattler/teaching/cs636.html, 2003.
[Sch01]
[SDJL96]
Divesh Srivastava, Shaul Dar, H. V. Jagadish, and Alon Y. Levy. Answering Queries with Aggregation Using Views. In VLDB 96 : Proceedings of the 22th International Conference on Very Large Data Bases,
pages 318329. Morgan Kaufmann Publishers Inc., 1996.
[SMKK98]
Sunil Samtani, Mukesh K. Mohania, Vijay Kumar, and Yahiko Kambayashi. Recent Advances and Research Problems in Data Warehousing. In ER Workshops, pages 8192, 1998.
[SMS04]
142
Conclusions et perspectives
[Sno95]
[Sno99]
Richard T. Snodgrass. Developing Time-Oriented Database Applications in SQL. Morgan Kaufmann, 1999.
[Tes00]
O. Teste. Modlisation et manipulation dentrepts de donnes complexes et historises. PhD thesis, Universit Paul Sabatier de Toulouse,
Dcembre 2000.
[TS93]
[TS99]
[TU98]
Michael Teschke and Achim Ulbrich. Concurrent Warehouse Maintenance Without Compromising Session Consistency. In Database and
Expert Systems Applications, pages 776785, 1998.
[Var00]
G. Vargas. Service dvenements flexible pour lintgration dapplications bases de donnes rparties. PhD thesis, Universit Joseph
Fourier, Grenoble, France, Dcembre 2000.
[Vas98]
[VGD00]
[VQVJ00]
[VS99]
[WB97]
[Wid95]
[WMC01]
Bernhard Westfechtel, Bjorn P. Munch, and Reidar Conradi. A Layered Architecture for Uniform Version Management. Software Engineering, 27(12) :11111133, 2001.
[YKL97]
6.2 Perspectives
143
[YW00]
[ZR98]
[ZS99]
Thomas Zurek and Markus Sinnwell. Datawarehousing Has More Colours Than Just Black & White. In VLDB 99 : Proceedings of the 25th
International Conference on Very Large Data Bases, pages 726729.
Morgan Kaufmann Publishers Inc., 1999.
[ZYY01]
C. Zhang, X. Yao, and J. Yang. An evolutionary approach to materialized view selection in a data warehouse environment. IEEE Trans.
Systems, Man, Cybernetics, PART C, 31 :282294, September 2001.
144
Conclusions et perspectives
Annexe A
Description des sources de donnes
Caractristiques du fichier RSA :
Tout sjour hospitalier, eectu dans la partie court sjour dun tablissement,
fait lobjet dun Rsum de Sortie Standardis (R.S.S.) constitu dun ou plusieurs
Rsum(s) dUnit Mdicale (R.U.M.). La transmission dinformations mdicales
la direction de ltablissement ou lextrieur de celui-ci, sopre sur la base de
donnes agrges ou de Rsums de Sortie Anonymes (R.S.A.) obtenus par transformation des RSS. La production des RSA est automatise. A partir du chier de RSS
groups, le mdecin responsable du DIM utilise le logiciel GENRSA (Gnrateur de
RSA), proprit de lEtat, pour produire le chier de RSA. A la dirence du RSS,
le RSA constitue toujours un enregistrement unique par sjour.
Description des variables du fichier :
GHM : Tout Rsum de Sortie Standardis est class dans un Groupe Homogne
de Malades. La classication en GHM permet un classement exhaustif et unique :
tout sjour est obligatoirement class dans un GHM et dans un seul. A partir des
variables mdico-administratives contenues dans le RSS, chaque sjour va aboutir
dans lun des groupes de la classication. Celle-ci comporte 512 groupes, soit 462
GHM et 50 groupes autres, dont 46 groupes "ambulatoires" et 4 groupes dans la
Catgorie Majeure n90 (erreurs et sjours inclassables).
CMD : Les sjours de moins de 24 heures (sances, dcs immdiat, transfert
immdiat, pathologies traites en moins de 24 heures) sont classs dans la Catgorie
Majeure n24 (CM24 : sances et sjours de moins de 24 heures), spcicit franaise
absente de la classication amricaine qui ne prend pas en compte les sjours de
moins de 48 heures. Les sjours de plus de 24 heures sont classs dans lune des 23
Catgories Majeures de Diagnostic (CMD01 CMD23), en fonction du diagnostic
principal contenu dans le RSS.
RUM : Le RUM contient un nombre limit dinformations qui doivent tre systmatiquement renseignes. Ces informations sont dordre administratif et mdical.
Pour que les informations mdico-administratives contenues dans le RUM puissent
145
146
bncier dun traitement automatis, elles sont codes selon des nomenclatures et
des classications standardises. Les nomenclatures utilises pour coder les RUM
sont :
Pour le codage des diagnostics, la Classication Internationale des Maladies (C.I.
M.)
Pour le codage des actes, le Catalogue des Actes Mdicaux (C.d.A.M.)
DP : (concerne les sjours de plus de 24 heures) :
Dans le cas dun sjour mono-unit, le diagnostic principal contenu dans le RUM
devient celui du RSS.
Dans le cas dun sjour multi-unit, le diagnostic principal est obtenu par lalgorithme suivant : si un seul RUM comporte un acte classant opratoire, le DP de ce
RUM est celui du RSS ; si aucun RUM ne mentionne dacte classant opratoire ou,
si plusieurs RUM en mentionnent (au moins) un, le DP du RSS est celui du RUM
dont la dure de sjour est la plus longue ; si deux RUM possdent la mme dure
de sjour, le DP du RSS est celui du RUM de la dernire unit chronologiquement
frquente.
Codage du mode dentre Le mode dentre dans lunit mdicale se code comme
suit :
6 : mutation La mutation signie la provenance dune autre unit mdicale de la
mme entit juridique.
7 : transfert normal Le transfert normal signie la provenance dune autre entit
juridique pour une hospitalisation part entire, distinguer du cas de la prestation
ralise pour le compte de ltablissement dorigine, cod 0.
8 : domicile Le patient vient de chez lui.
0 : transfert pour ou aprs ralisation dun acte Ce type particulier de transfert
est rserv deux cas :
Un tablissement "prestataire" reoit un patient pour une dure de moins de 48
heures dans le seul but de raliser un acte que ltablissement dorigine ne peut
pas raliser lui-mme. Cette "prestation" donnera dailleurs lieu une facturation
ltablissement dorigine.
Un tablissement "donneur dordre" rcupre un patient quil avait transfr pour
la ralisation dun acte quil ne pouvait raliser lui-mme. Il sagit donc de la n de
la prestation.
Codage du mode de sortie Le mode dentre dans lunit mdicale se code comme
suit :
147
6 : mutation La mutation signie le dpart vers une autre unit mdicale de la
mme entit juridique.
7 : transfert normal Le transfert normal signie le dpart vers une autre entit
juridique, distinguer du cas dun retour ltablissement dorigine aprs la ralisation dune prestation, cod 0.
8 : domicile Le patient rentre chez lui.
9 : dcs Le patient est dcd dans lunit mdicale.
0 : transfert pour ou aprs ralisation dun acte Ce type particulier de transfert
est rserv deux cas :
Un tablissement "prestataire" retourne le patient dans son tablissement dorigine aprs lavoir accueilli pour une dure de moins de 48 heures dans le seul but de
raliser un acte qui ne pouvait pas tre ralis sur place. Il facture dailleurs cette
"prestation" ltablissement dorigine.
Un tablissement "donneur dordre" envoie un patient dans un autre tablissement pour la ralisation dun acte quil ne peut raliser lui-mme.
Liste Alphabtique des Variables :
Les variables sont classes dans lordre alphabtique de leur code et sont dcrites
dans le tableau de la manire suivante :
-
le code
le type (numrique ou caractre)
la longueur
le libell
148
Variable
FINESS
Type
Caractre
Taille
9
Champ 2
Caractre
Champ 3 + numRSA
Champ 5
Caractre
Caractre
10
3
Champ 6
Champ 7 + cmd_
tab + ghm_tab
+ Champ 10
Champ 11 + cmd +
ghm + Champ14
Caractre
Caractre
3
9
Caractre
Champ 15
Numrique
AGE_ANNEES
AGE_JOURS
Numrique
Caractre
3
3
sexe
Mode_ent
Caractre
Caractre
1
1
Provenan
Caractre
Mois_sor
Anne_sor
Mode_sor
Destinat
Caractre
Caractre
Caractre
Caractre
2
4
1
1
Type_sjour
Nbre_rad
Caractre
Numrique
1
2
Nbre_dia
Dure_se
Numrique
Numrique
2
3
Libell
Numro FINESS de
lentit juridique
N de version du
format du RSA (C05)
Clef de validation
Numro de version du format
du "RSS-group" (ou du RSS) lu
N de version de Genrsa
Groupage lu sur le
"RSS-group" : V,
CMD, GHM, code retour
Groupage obtenu
par GENRSA : V,
CMD, GHM, code retour
Nombre de RUM composant
le RSS dorigine
Age en annes
Age en jours (si < 1 an)
calcul lentre
Sexe
Mode dentre dans
le champ du PMSI
Provenance (si le
mode dentre est
mutation ou transfert)
Mois de sortie du champ PMSI
Anne de sortie du champ PMSI
Mode de sortie du champ PMSI
Destination (si le
mode de sortie est
mutation ou transfert)
Type de sjour
Nombre dactes de
radiothrapie
Nombre dactes de dialyse
Dure totale du sjour
dans le champ du PMSI
(vide si sances)
149
Variable
Champ 29
Type
Caractre
Taille
3
Code_geo
Poids
Nbre_sea
Igs2
Filler
Champ 34
Champ 35
Champ 36
Diag_pri
Diag_rel
Nbre_di1
Caractre
Numrique
Numrique
Caractre
Caractre
Caractre
Caractre
Caractre
Caractre
Caractre
Numrique
5
4
2
3
8
1
1
6
6
6
2
Nbre_act
Numrique
Libell
Dure de la priode
sur laquelle stalent
les sances (si sances)
Code gographique de rsidence
Poids la naissance (en grammes)
Nombre de sances
IGS 2
Filler +
Code de prise en charge *
Facture associe 0 franc *
Zone rserve *
Diagnostic principal (DP)
Diagnostic reli (DR)
Nombre de diagnostics
associs (Nd) dans ce RSA
Nombre dactes (Na) dans ce RSA
150
151
Type
Char
Char
Num
Num
Num
Num
Num
Num
Num
Taille
35
25
8
8
8
8
8
8
8
Libell
Adresse de ltablissement
Adresse de ltablissement
capacit autorise en nombre de lits
capacit autorise en nombre de lits
capacit autorise en nombre de lits
capacit autorise en nombre de lits
capacit autorise en nombre de lits
capacit observe en nombre de lits
capacit observe en nombre de lits
152
Variable
Capacitemiseenoeuvre3
Capacitemiseenoeuvre4
Capacitemiseenoeuvre5
Code1
Code2
Code3
Code4
Code5
CodePSPH
Codecategorie
Codepostal
Codepostalpublic
Codestatut
Codetarif
Compldistrpublic
Complementdistribution
Dateouvert
FINESSjuridique
Fax
Faxpublic
GGDE1
GGDE2
GGDE3
GGDE4
GGDE5
LibPSPH
Libcategorie
Libelleroutage
Libstatut
Libtarif
LieuditBP
LieuditBPpublic
NumeroFINESS
Raisonsociale
Routagepublic
SIRET
Tel
Telpublic
Type
Num
Num
Num
Num
Num
Num
Num
Num
Num
Num
Num
Char
Num
Num
Char
Char
Char
Char
Char
Char
Char
Char
Char
Char
Char
Char
Char
Char
Char
Char
Char
Char
Char
Char
Char
Char
Char
Char
Taille
8
8
8
8
8
8
8
8
8
8
8
5
8
8
20
35
20
9
15
15
20
20
20
20
20
20
25
30
25
20
35
10
9
65
20
20
15
15
Libell
capacit observe en nombre de lits
capacit observe en nombre de lits
capacit observe en nombre de lits
Code de la discipline
Code de la discipline
Code de la discipline
Code de la discipline
Code de la discipline
Code de Part. au Serv. Pub. Hosp.
Code lactivit de ltab.
Code postal
Code postal public
Code le statut de ltab.
Code de lautorit xant le tarif
Complment de distribution public
Complment de distribution
Date douverture
Numro FINESS juridique
Numro Fax
Numro Fax public
Grands Groupe de Discipline 1
Grands Groupe de Discipline 2
Grands Groupe de Discipline 3
Grands Groupe de Discipline 4
Grands Groupe de Discipline 5
Libell de Part. au Serv. Pub. Hosp.
Libell de la catgorie
Libelle du routage
Libell du statut
Libell de lautorit xant le tarif
Lieudit BP
Lieudit BP public
Numro FINESS
Nom de ltablissement
Routage public
Numro SIRET
Numro Tlphone
Numro Tlphone public