Conception et optimisation d’un entrepôt de données médicales María Trinidad SERNA-ENCINAS Michel ADIBA Laboratoire LSR-IMAG Juin 2005
Plan Conception du schéma Projet ADELEM Sources et indicateurs Schéma pour ADELEM Algorithme pour la sélection des vues à matérialiser Algorithme Greedy Notre proposition Conclusions
Le projet ADELEM Le projet ADELEM Le projet ADELEM consiste en la mise au point d'outils logiciels nécessaires à l'aide à la décision logistique et médicale. Le Laboratoire TIMC Le laboratoire de Biométrie et Biologie Évolutive Le projet ADELEM Le laboratoire LSR L’Organisation Mondiale de la Santé
Laboratoire de Biométrie et Biologie de Lyon Année : 2000 Source : Ministère de La Santé Indicateur d’offre de soins : le nombre de lits par établissement
Problématique Données: Publiques concernant la santé: RSA, RHA, FINESS, CIM10 Démographiques: RP90 et RP99 Géographiques: GéoFLCP, HEXAPOSTE, Inventaire Communal (1988) Sources de données hétérogènes, distribuées et certaines d’entre elles sont externes au domaine médical proprement dit. Nature des données: type, format, sémantique, confidentialité, degré de fiabilité et de confiance, informations manquantes ou incomplètes, …
Sources de données Sources Tableau Historique
Typage des indicateurs Indicateurs d’offre (géographiques - spatio-temporels) Localiser sur une carte tous les établissements de court séjour en faisant apparaître leur capacité en nombre de lits MCO (Médecine-Chirurgie-Obstétrie) Indicateurs de consommation, de besoin et de flux (temporels) Nombre de séjours par établissement durant l’année 2000 Nouveaux indicateurs (temporels) Nombre de personnes de plus de 60 ans par maladie et par établissement
Schéma en constellation Projet ADELEM
Description du schéma (1/2) SM = (Cs, Ds, Hs, R) Cs = {Prise_MCO, Population, Prise_SSR} Ds = {Etablissement, CIM10, Temps, Mode_sortie, Age, Zone_geo, Poids_naissance, RP99, Semaine_debut, Semaine_fin} Hs = {H_Geo, H_Temps} R = {C_Cube, C_Dimension, C_Hiérarchie} Cs = (cn, M, D) cn = Prise_MCO M = {CompteDuree_sejour, SommeDuree_sejour} D = {Etablissement, CIM10, Temps, Mode_sortie, Age, Zone_geo, Poids_naissance}
Description du schéma (2/2) Ds = (dn, P, H) dn = Etablissement P = {Cle_Finess, Raison_Sociale, Adresse, Codepostal, CA1 .. CA7, CMO1 .. CMO7, NLA, NLO, Commune, Departement} H = {H_Geo} Hs = (hn, L, <} hn = H_Geo L = {Commune, Departement, Region, Pays} < = {(Commune, Departement), (Departement, Region), (Region, T)}
Plan Conception du schéma Projet ADELEM Sources et indicateurs Schéma pour ADELEM Algorithme pour la sélection des vues à matérialiser Algorithme Greedy Notre proposition Conclusions
Matérialisation du cube Tables du schéma ADELEM_MCO (nb de n-uplets): Prise_MCO (53799) fait Etablissement (5079) dimension CIM10 (17788) dimension Temps (12) dimension Mode_sortie (5) dimension Construction d’un entrepôt avec un échantillon de 10% des données réelles. Taille du cube = 16 vues (2n où n est le nombre de dimensions) Utilisation d’Oracle9i, Entreprise Edition
Treillis du cube Coût de stockage (droite) Coût de calcul (gauche) 5 90M CC(V1) = (5K*18K)+ (14K*12)+ (47K*5) ECTM V1 4 Dim 3 Dim 2 Dim 1 Dim 0 Dim 47K 18K 603 33K 14K 184 58 26K 8K 48 19 5K 12 4 1 54K 90M 12 CC(V2) = (5K*18K)+ (14K+12) CTM V5 ETM V4 ECM V3 ECT V2 90M 61K 346K 60K 25K 216K 90K 60 CT V9 ET V7 EC V6 T V14 C V13 E V12 ALL V16 TM V11 CM V10 EM V8 M V15 90M CC(V6) = (5K * 18K) 5K 18K Coût de calcul (gauche) (produit des cardinalités approximatives des relations de base) Coût de stockage (droite) (représenté par le nombre de n-uplets du résultat)
Sélection des vues à matérialiser Algorithme Greedy[HRU95] Quelques notations: C(v) = Coût de stockage de la vue v. = Relation de dépendance. S = Ensemble de vues sélectionnées. B(v,S) = Bw : Bénéfice de la vue v relative à S w v Bw Bw = C(v) – C(u) si u est la vue de coût minimal dans S, telle que w u et C(v) < C(u), Bw = 0, sinon.
Application de l’algorithme Greedy aux données ADELEM 1ère Choix est V4 (Coût (V4) – Coût(V1) * 8) = 53K*8 = 424K, où 8 représente le nombre de vues dépendante de V4 (V4, V7, V8, V11, V12, V14, V15, V16) 2ème Choix est V3 = 144k (36K*4 (V3, V6, V10, V13)), les autres vues dépendantes de V3 ne sont pas prises en compte, car elles donnent un gain plus élevé avec la vue V4. S = {V1, V4, V3, V5, V10, V9, V2, V6}
Ensemble ordonné des vues sélectionnées Y : Coût de calcul et de stockage X : sept premières vues ordonnées par rapport à leur coût de calcul
Algorithme Greedy Avantages: Inconvénient majeur: Simplicité Certaine efficacité (coût de stockage) Inconvénient majeur: Pas des paramètres, comme: fréquence de la requête, fréquence des mises à jour, coût de maintenance ou de calcul. Dans notre expérimentation, à partir du 6ème choix, il sélectionne les vues plus coûteuses (V2 et V6). Ceci nous motive pour un mécanisme de sélection plus efficace.
Algorithme proposé Paramètres Bg = Bénéfice de Greedy Fréquence d’utilisation (fq) fq(v) = nombre de relations dépendantes de la vue v (complexité) B(v, S) = Bg * fq(v) - (CC(v) + PC(v)) CC(v) = Coût de calcul divisé par le nombre de relations dépendantes de v. Exple. CC(V2) = ((5K*18K) + (14K*12))/8 90M/8 =11M où 8 = nombre total des relations dépendantes de V2 PC(v) = Probabilité de changement des relations de base multiplié par le coût de calcul Hypothèse de 20% de changement des éléments du schéma Exple. V2 a 3 dimensions et 30 attributs qui peuvent changer PC(V2) = (3300/36*.20)*11M = 2M B(V2,S) = Bg * fq(V2) – (CC(V2) + PC(V2))
Application de notre algorithme 1ère Choix est V4 (Bg*fq) – ((CC(v)/fq) + PC(v)) = 3M (53K * 8)*8 – ((61K/8) * 1.18) où 8 représente le nombre de vues dépendante de V4 (V4, V7, V8, V11, V12, V14, V15, V16) 2ème Choix est V5 = 626K (21K*4*8)-((346K/8)*1.06), où 4 est (V3, V6, V10, V13), les autres vues dépendantes de V5 ne sont pas prises en compte, car elles donnent un gain plus élevé avec la vue V4. S = {V1, V4, V5, V10, V11, V8, V15, V14}
Ensemble ordonné des vues sélectionnées Y : Coût de calcul et de stockage X : sept premières vues ordonnées par rapport à leur coût de calcul
Résultats Notre algorithme donne de meilleurs résultats pour notre cas expérimental. Vues sélectionnées: 3 Dim 2 meilleures vues (V4 et V5) 2 Dim 3 meilleures vues (V8, V10 et V11) 1 Dim 2 meilleures vues (V14 et V15) Faiblesses: Absence du coût d’évaluation d’une requête par rapport au type d’opération (Select, Project ou Join) Nous ne prenons pas en compte les restrictions éventuelles sur l’espace de stockage
Plan Conception du schéma Projet ADELEM Sources et indicateurs Schéma pour ADELEM Algorithme pour la sélection des vues à matérialiser Algorithme Greedy Notre proposition Conclusions
Bilan du travail réalisé Description du schéma conçu Algorithme pour la sélection des vues à matérialiser Paramètres: fréquence d’utilisation, coût de calcul et probabilité de changement des relations de base Faiblesse: Absence du coût d’évaluation d’une requête par rapport au type d’opération (Select, Project ou Join) Nous ne prenons pas en compte les restrictions éventuelles sur l’espace de stockage Expérimentation sur Oracle9i
Questions?
Application de l’algorithme Greedy aux données ADELEM 1ère Choix est V4 (Coût (V4) – Coût(V1)) = 424K (53K * 8) où 8 représente le nombre de vues dépendante de V4 (V4, V7, V8, V11, V12, V14, V15, V16) 2ème Choix est V3 = 144k (36K*4 (V3, V6, V10, V13)), les autres vues dépendantes de V3 ne sont pas prises en compte, car elles donnent un gain plus élevé avec la vue V4.
Application de notre algorithme 1ère Choix est B(V4,S) = Bg * fq(V4) – (CC(V4) + PC(V4)) = 3M (424K*8) – ((61K/8)*1.18) où 8 représente le nombre de vues dépendante de V4 (V4, V7, V8, V11, V12, V14, V15, V16) 2ème Choix est V5 = 626K (21K*4*8)-((346K/8)*1.06), où 4 est (V3, V6, V10, V13), les autres vues dépendantes de V5 ne sont pas prises en compte, car elles donnent un gain plus élevé avec la vue V4.