La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 Entreposage de Données et Aide à la Décision Chapitre 23, 23.828.10.

Présentations similaires


Présentation au sujet: "1 Entreposage de Données et Aide à la Décision Chapitre 23, 23.828.10."— Transcription de la présentation:

1 1 Entreposage de Données et Aide à la Décision Chapitre 23,

2 2 Objectifs Entreposage de données: OLAP vs OLTP Modèle de données multidimensionnelles Requêtes OLAP Design des données multidimensionnelles Techniques dimplémentation Vues et aide à la décision Matérialisation des vues Gestion et maintien des vues matérialisées

3 3 Vues et Aide à La Décision Les requêtes OLAP sont typiquement des requêtes dagrégats. Du prétraitement est essentiel pour des temps de réponse interactifs. Le CUBE est en fait une collection de requêtes dagrégat et du prétraitement est important à ce sujet: le challenge majeur est de trouver ce qui doit être prétraité étant donné un espace limité disponible pour stocker le résultat du prétraitement. Un entrepôt de données peut être conçu comme une collection de table reproduite de manière asynchrone et comme des vues mises à jour périodiquement. Cela a attiré un intérêt renouvelé dans la maintenance des vues.

4 4 Requêtes sur les Vues: Modification des Vues (Evaluer sur Demande) CREATE VIEW RegionalSales(category,sales,state) AS SELECT P.category, S.sales, L.state FROM Products P, Sales S, Locations L WHERE P.pid=S.pid AND S.locid=L.locid SELECT R.category, R.state, SUM (R.sales) FROM RegionalSales R GROUP BY R.category, R.state SELECT R.category, R.state, SUM (R.sales) FROM ( SELECT P.category, S.sales, L.state FROM Products P, Sales S, Locations L WHERE P.pid=S.pid AND S.locid=L.locid) AS R GROUP BY R.category, R.state Vue Requête modifiée

5 5 Requêtes sur les Vues: Matérialisation des Vues (Prétraitement) Supposez que nous prétraitons RegionalSales et stockons le résultat avec un index B+ groupé sur [category,state,sales]. La requête de la page précédente peut être traitée au moyen dun scannage de lindex ( index-only scan). SELECT R.state, SUM (R.sales) FROM RegionalSales R WHERE R.category=Laptop GROUP BY R.state SELECT R.state, SUM (R.sales) FROM RegionalSales R WHERE R. state=Wisconsin GROUP BY R.category Utiliser lindex B+ sur la vue Matérialisée:localiser la 1 ère Feuille qui satisfait la clause WHERE et scanner à partir de là Lindex sera peu utile (car un scannage de tout le niveau des feuilles de larbre B+ est nécessaire.

6 6 Vues Matérialisées Une vue dont les tuples sont stockées dans une base de données est dite matérialisée. Fournit un accès rapide (agit comme une mémoire cache). Besoin de maintainir la vue au fur et à mesure que la les tables sous-jacentes changent. Idéalement des algorithmes de maintenance incrémentale sont souhaitables. Concepts proches: entreposage, OLAP, maintien asynchrone des bases de données distribuées, évaluation contraintes dintégrité et évaluation des triggers.

7 7 Matérialisation des Vues: Problématiques Quelles vues matérialiser et quels indexes construire sur ces vues? Etant donnée une requête et un ensemble de vues matérialisées, peut-on utiliser ces vues pour donner une réponse à cette requête? Quelle fréquence utiliser pour rafraichir les vues matérialisées afin de le rendre consistantes avec les tables sous-jacentes? Comment effectuer le rafraichissement de manière incrémentale?)

8 8 Maintenance des Vues Deux étapes: Propagation: Calculer les changements aux vues lorsque celles-ci changent. Rafraichissement: Appliquer les changements aux tables matérialisées. Une police de maintenance détermine quand rafraichir les vues. Maintenance immédiate: La vue est synchronisée avec les tables sous-jacentes au moment de transaction qui modifie cette table sous-jacentes. La vue matérialisée sera toujours consistante. Les modifications sont ralenties. Maintenance différée: La vue est synchronisée plutard dans une transaction séparée. La vue devient inconsistante. Plusieurs vues peuvent être facilement maintenues sans que les modifications soient ralenties.

9 9 Maintenance Différée Trois variantes: Paresseuse: retarder le rafraichissement jusquà la prochaine requête sur la vue et rafraichir juste avant de répondre à la requête. Périodique (Snapshot): Rafraichir périodiquement. Les requêtes sont traitées en utilisant des versions périmées de la vues (Cette variante est largement utilisée, spécialement pour des reproductions asynchrones dans les bases de données distribuées et dans les application dentreposage de données). Basée sur les événements: p.ex. rafraichir après un nombre fixe de changements aux tables sous- jacentes.

10 10 Snapshots dans Oracle 7 Une copie instantanée (snapshot) est une matérialisation locale dune vue stockée sur un site original. Rafraichissement périodique par reconstruction de la vue dans son entièreté. Rafraichissement rapide incrémental pour des instantanées simples: chaque ligne dans la vue est basée sur une seule ligne dans une seule table sous-jacente aucun DISTINCT, GROUP BY aucune opération dagrégat; aune sous-requête, aucun join ni opération ensembliste Les changements sur le site original sont journalisés par un trigger afin de supporter les copies instantanées.

11 11 Maintenance des Vues: Problématiques Quelles infos sont disponibles? (Relations de base, vues matérialisées, contraintes dintégrité). Supposez que le tuple parts(p5,5000) est inséré: Seule la vue matérialisée est disponible: Nous ne pourrons pas dire si p5 est à insérer dans la vue ou pas tant que seule la vue est disponible. La table Parts est disponible: Ajouter p5 à la vue sil ny a pas déjà un tuple p5 de Parts dont le coût est plus grand que (Parts pourrait ne pas être disponible si la vue est dans un entrepôt!) Si nous savons que pno est la clé de Parts: Nous pouvons inférer que p5 nest pas déjà dans la vue et devons donc ly insérer. expensive_parts(pno) :- parts(pno, cost), cost > 1000

12 12 Maintenance des Vues: Problématiques (Suite) Quels changements doivent être propagés? (Insertions, effacements et modifications). Supposez que le tuple parts(p1,3000) est effacé: Seule la vue matérialisée est disponible : Si p1 est dans la vue, il ny a pas moyen de dire si p1 devrait être effacé ou pas. Si nous maintenons un compte (count -- #dérivations) pour chaque tuple de la vue, nous pouvons dire si p1 devrait être effacé ou pas (décrémenter le compte et effacer si le compte est = 0). La table Parts est disponible : S il ny a pas déjà un tuple p1 de Parts dont le coût est plus grand que 1000, effacer p1 de la vue. Si nous savons que pno est la clé de Parts : Nous pouvons inférer que p1 est déjà dans la vue et devons donc len effacer. expensive_parts(pno) :- parts(pno, cost), cost > 1000

13 13 Maintenance des Vues: Problématiques (Suite) Langage de définition des vue? Requêtes conjonctive (règles) commandes SQL appropriées Duplicatas Agrégats Récusions

14 14 Maintenance Incrémentale: Insertions utilisant une Règle Etape 0: Maintenir un compteur de dérivation pour chaque tuple de la vue. Etape 1: Calculer les ensembles de tuples delta1 et delta2 correspondants aux relations Rel1 et Rel2 (delta1 et delta2 sont les ensembles de tuples insérés dans Rel1 et Rel2, respectivement). Etape 2: Calculer lensemble delta_new des tuples inserés dans la vue View(X,Y). Important: les duplicatas ne sont pas effacés (maintenir un compteur de dérivation pour chaque nouveau tuple). Etape 3: Rafraîchir View(X,Y) en effectuant une union des multi ensembles delta_new et (I.e. mettre à jour les compteurs de dérivation des tuples existants et ajouter les tuples de delta_new qui nétaient pas dans View). View(X,Y) :- Rel1(X,Z), Rel2(Z,Y)

15 15 Maintenance Incrémentale: Effacement utilisant une Règle Etapes 0 - 2: Similaire aux insertions. Etape 3: Rafraichir la vue stockée en effectuant une différence des multi ensembles à la place de lunion. Pour mettre à jour les compteur de dérivation des tuples existants, nous devons soustraire les compteurs de dérivation des nouveau tuples de ceux des tuples existants. View(X,Y) :- Rel1(X,Z), Rel2(Z,Y)

16 16 Maintenance Incrémentale: Algorithmes Généraux Utilisant une Multitude de Règles Lalgorithme à compteur peut être généralisé aux vues définies par une multitude de règles de dérivations. Il peut aussi être généralisé aux requêtes SQL avec duplicatas, négation et agrégats.

17 17 Maintenance des Vues dEntrepôts Principal changement: Les vues sont dans un entrepôt de données et les tables sources sont autre part ailleurs (SGBS opérationnels, al DBMS, sources propriétaires, …). ÀLentrepôt est notifié de tout changement au niveau des tables sources (p.ex. lorsque un tuple est ajouté à r2) ÁLentrepôt peut nécessiter une information additionnelle au sujet des tables sources pour traiter un changement (p.ex. quest ce qui est dans r1 à linstant ?) ÁLa source répond avec linfo additionnelle et lentrepôt rafraichit la vue de manière incrémentale. view(sno) :- r1(sno, pno), r2(pno, cost) Problème: Il peut y avoir des changements aux sources entre les Etapes 1 et 3!

18 18 Subtilités de la Maintenance des Vues Initialement: r1(1,2), r2 est vide Exécution de insert r2(2,3) à la source r2; notification de lentrepôt Lentrepôt enverra la requête dinfo additionnelle ?r1(sno,2) à r1 Check pour trouver quel sno insérer dans la vue Exécution de insert r1(4,2) à la source; notification de lentrepôt Lentrepôt enverra la requête dinfo additionnelle ?r2(2,cost) à r2 Check pour voir si nous avons besoin dincrémenter le compteur de dérivation de view(4) Les sources r1 et r2 retourneront sno=1, sno=4 à lentrepôt; ces valeurs iront dans la vue avec 1 comme valeur du compteur de chacune de ces valeurs. La source reçoit la seconde requête et y répond positivement et incrémente ainsi le compteur de view(4). Ce résultat est faux! Car le compteur correct pour view(4) est 1! Doù la nécessité dalgorithmes sophistiqués pour la maintenance des vues dans un environnement distribué view(sno) :- r1(sno, pno), r2(pno, cost)

19 19 Résumé Laide à la décision suppose la création de larges dépôts de données consolidées appelés entrepôts de données (data warehouses). Les entrepôts de données sont utilisés au moyen de techniques danalyse sophistiquées: requêtes SQL complexes et requêtes OLAP pour données multidimensionnelles. De nouvelles techniques sont utilisées pour le design des bases de données, lindexage et les requêtes interactives. Les entrepôts de données sont des vues matérialisées qui exigent une maintenance au fur et à mesure que les sources de données changent.


Télécharger ppt "1 Entreposage de Données et Aide à la Décision Chapitre 23, 23.828.10."

Présentations similaires


Annonces Google