IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Décisions SGBD Discussion :

[Tables Agregat] Quel est leur rôle ?


Sujet :

Décisions SGBD

  1. #1
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 319
    Points : 80
    Points
    80
    Par défaut [Tables Agregat] Quel est leur rôle ?
    salut,

    J'aurai aimé savoir si quelqu'un pouvait m'expliquer dans quel cas il utilise des table d'agregat et quel est leurs rôle ?

    Merci

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut Re: table d agregat ?
    Citation Envoyé par Melvine
    J'aurai aimé savoir si quelqu'un pouvait m'expliquer dans quel cas il utilise des table d'agregat et quel est leurs rôle ?
    Dans la quasi totalité des datawarehouse (entrepôts de données).
    On utilise des tables d'agrégats parce que la granularité de l'information à stocker est moins fine que l'information d'origine et/ou à de fins de performances.
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  3. #3
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 319
    Points : 80
    Points
    80
    Par défaut
    en faite une table d'agregat c'est si par exemple je dispose d'une table localisation avec à l'interieur ville region pays
    une table d'agregat c'est le faite de decomposer cette table et d 'en faire plusieurs et de le relié entre elle
    je transforme ma table localisation en 3 table relié entre elle :
    ville , region, pays

  4. #4
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Citation Envoyé par Melvine
    en faite une table d'agregat c'est si par exemple je dispose d'une table localisation avec à l'interieur ville region pays
    une table d'agregat c'est le faite de decomposer cette table et d 'en faire plusieurs et de le relié entre elle
    je transforme ma table localisation en 3 table relié entre elle :
    ville , region, pays
    Ca c'est plutôt une "dimension" (la localisation)associée à une "hiérarchie" (à 3 niveaux). Pour avoir un agrégat, il faut avoir une mesure (un indicateur), en général dans une table de faits (vocabulaire du décisionnel) et pour laquelle on calcule des agrégats (par ville, par région et par pays au lieu des données individuelles).
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  5. #5
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 319
    Points : 80
    Points
    80
    Par défaut
    en faite comme la table de fait contient des mesures, alors c 'est aussi une table d'agregat

  6. #6
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Citation Envoyé par Melvine
    en faite comme la table de fait contient des mesures, alors c 'est aussi une table d'agregat
    Pas si c'est la granularité la plus fine.
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  7. #7
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 137
    Points : 80
    Points
    80
    Par défaut
    Une table d'agregat sert (je pense) avant tout à optimiser les temps de réponse d'un entrepôt ou d'un datamart.

    Exemple : on a un DWH avec une table de fait vente avec les dimension temps, produit et région et ayant la granularité la plus fine, donc un produit, en un jour précis dans une région pour une vente. ( il y aura autant de ligne dans la table de fait qu'il y a de produit dans la même vente).
    Si un utilisateur a besoin d'un rapport ayant toutes les ventes par mois , par région tout produit confondus, la requête qui sera faite sera très longue à sortir. donc on créera une table d'agregat qui donnera le CA par region et par mois grace au fonction SUM , et GROUP BY (region, mois).
    et quand l'utilisateur lancera sa requête , il n'y aura qu'à lire cette table au lieu de faire des operation d'agregation sur la table de fait.
    En faite c'est une sorte de table de fait mais qui résume les table de fait les plus fine.

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Points : 1 628
    Points
    1 628
    Par défaut
    salut
    aller voir mon topic svp (c un peu le sujet):

    http://www.developpez.net/forums/viewtopic.php?t=442397

    Corriger moi si je me trompe ;

    Une fonction d'agregat calculent une seul valeur résultant d'un ensemble de valeur en entrée (avg, count, max, min ...).
    Et donc une vue d'agregat (probablement de même pour une table) contient des agragats dans le colonnes de la vue (table).
    Je sais que dans les entreports de données on les utilise pour la réécriture de requêtes (et bien evidemment pour optimiser).
    Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.

    Twitter Blog Mon site

    Mon article sur l'agilité

  9. #9
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 319
    Points : 80
    Points
    80
    Par défaut
    personne n'aurait un exemple simple et concret SVP?

  10. #10
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Il faudrait peut être fouiller le site de ce membre de dvp : abdelelomari
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 43
    Points : 46
    Points
    46
    Par défaut
    Pour comprendre la notion d'aggrégation, il faut commencer par celle de hierarchie ! Je m'explique :

    En général Un magasin est localisé dans un secteur, Un secteur dans une Ville, une ville dans un pays, un pays dans un continent ! Nous disposons alors de la hierarchie "Magasin" suivante :
    Continent
    ------- Pays
    -----------Ville
    --------------Secteur
    -----------------Magasin
    Le résultat est donc selon le design que l'on a choisi :

    En schéma en étoile on aurait tout mis dans une seule table de dimension comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Magasins_dim(Code_magasin, Nom_magasin, Adresse, Code_secteur, Nom_secteur, Code_Ville, Nom_ville, Code_pays, Nom_pays, Code_continent, Nom_continent)
    En Flocon de neige on aurait eu 5 tables:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Magasins_dim(Code_magasin, Nom_magasin, Adresse, Code_secteur)
    Secteur_dim(Code_secteur, Nom_secteur, Code_ville)
    Ville_dim(Code_ville, Nom_ville, Code_Pays)
    Pays_dim(Code_Pays, Nom_pays, Code_continent)
    Continent_dim(Code_continent, Nom_continent)
    Nous avons la table des ventes par magasin, Notez ici que les ventes par magasins est la granularité la plus fine de notre table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ventes ( Code_produit, Code_magasin, Vente_total, Code_jour)
    On y représente donc les ventes par produit, par jour et par magasin.

    Business Intelligence veut dire répondre à des questions du genre :
    Quel est le total des ventes par Ville, par jour. Indépendement du magasin, du secteur et du produit ?

    Il est impensable de charger toutes les données de la table "ventes" dans un cube pour pouvoir répondre à ce genre de question ! Parfois il est tout simplement impossible de le faire, comment peut-on feuilleter toutes ces données pour enfin répondre à la question ? la réponse est dans les tables d'aggrégat :

    En général une table d'agrégat permet d'alimenter un Data mart dans un certain niveau de granularité. Dans notre cas le niveau de granularité est le suivant : Ventes par Ville et par jour... On doit alors créer une table d'aggrégation qui devra contenir ces données comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Ventes_agr(Vente_total, jour, Code_ville).
    Pour alimenter cette table (Dans le cas du schéma en étoile) :
    Dans Oracle je le ferais comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    INSERT INTO VENTES_AGR SELECT 
    SUM(VF.VENTE_TOTAL), MD.CODE_VILLE, VF.JOUR FROM VENTES VF, MAGASINS_DIM MD
    WHERE VF.CODE_MAGASIN =  MD.CODE_MAGASIN
    GROUP BY MD.CODE_VILLE, VF.JOUR
    On pourras donc soit alimenter un cube avec cette table, ou encore l'utiliser directement afin de faire des drill-down avec évidement un outil approprié.

    Il existe des mécanisme plus sophistiqué pour ce genre de table, Oracle (Que je connais) dispose de ce qu'on appelle les vues materialisées ( Materialized views) qui peuvent être rafraichies soit incrémentalement ou au complet, automatiquement ou manuellement ...

    Voila !

    www.systemeetl.com
    Tout sur les systèmes ETL, la modélisation dimensionnelle et les entrepôts de données.

Discussions similaires

  1. Quel est le rôle du seuil du perceptron ?
    Par soujava dans le forum Méthodes prédictives
    Réponses: 5
    Dernier message: 24/09/2009, 23h35
  2. Quel est le rôle d'un administrateur systeme ?
    Par essse dans le forum Administration
    Réponses: 10
    Dernier message: 15/10/2008, 09h04
  3. Quel est le rôle du chef de projet selon Merise
    Par DEV-10 dans le forum Merise
    Réponses: 3
    Dernier message: 22/05/2008, 22h49
  4. Quel est le rôle du forum Débutez en SGBD ?
    Par Marc Lussac dans le forum Débuter
    Réponses: 0
    Dernier message: 22/03/2008, 13h32
  5. Quel est le rôle de ce script ?
    Par jaipastoutcompris dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/05/2007, 18h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo