Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo

precedent    sommaire    suivant   


Comment utiliser des tables agrégées ?
auteur : Bruno2r
Les tables agrégées contiennent des données précalculées à des niveaux de détail décroissants afin d'accélérer l'exécution des requêtes. Cette technique est particulièrement indiquée pour l'interrogation d'une base infocentre qui, tout en gardant le niveau de détail des évènements journaliers, devra répondre de façon optimale aux analyses hebdomadaires, mensuelles, trimestrielles ou annuelles.
Dès qu'une table contient plusieurs centaines de milliers de lignes d'évènements par an et couvre plusieurs années d'historique, la navigation agrégée prend tout son sens.

Un univers permet la navigation agrégée lorsqu'il contient un ou plusieurs objets dont la définition est adaptée à plusieurs niveaux d'agrégat.

La définition de ces objets s'appuie sur :

  • La fonction @Aggregate_Aware.
  • La gestion des incompatibilités Objets / Tables.
La fonction @Aggregate_Aware.
Elle permet d'indiquer dans la clause Select d'un même objet le champ numérique lui correspondant dans chacune des tables agrégées.
Les tables doivent impérativement être désignées de façon ordonnée en allant de la plus agrégée vers la plus détaillée.
Exemple : Objet indicateur Valeur
@Aggregate_Aware(sum(ANNEE_STAT.VAL), sum(MOIS_STAT.VAL), sum(DETAIL_STAT.VAL)).
Explication :
Si l'indicateur Valeur est choisi par l'utilisateur, avec la dimension Mois ...
le SQL sera détourné de la table ANNEE_STAT qui n'offre pas ce niveau d'information,
sera dirigé vers la table MOIS_STAT, niveau suffisant d'information pour ramener les objets demandés.

En revanche, si l'indicateur Valeur est choisi, ainsi que les dimensions Année, Mois et Date...
la table annuelle sera écartée, puis la table mensuelle (puisque ni l'une ni l'autre ne possèdent de champ date)
seule sera compatible la table détaillée au niveau des jours.

La gestion des incompatibilités Objets / Tables.

Elle seule permet que soit déterminé, au sein de la fonction @Aggregate_Aware, la table compatible.
Pour chaque table agrégée, il convient de spécifier les objets incompatibles ce qui désignera les tables agrégées à ignorer lors de la génération du SQL.

Les règles de la compatibilité Tables / Objets sont les suivantes :

Un objet est compatible avec une table s'il est placé à un niveau d'agrégat équivalent ou supérieur à celui de cette table.

Il est incompatible :

  • Si l'objet est placé à un niveau d'agrégation inférieur à celui de la table.
  • Si l'objet n'a aucun lien avec la table.
Pour fixer ces incompatibilités :

  • Menu Outils / Commande Navigation agrégée…
  • Dans la liste des Tables, choisissez une table agrégée.
  • Dans le volet de droite, cochez la case de chaque objet incompatible avec cette table.
  • Répétez l'opération pour chaque table.
warningMise en garde : l'utilisation du bouton "Détecter les incompatibilités" offre des propositions d'incompatibilité que vous devez vérifier et valider.

precedent    sommaire    suivant   

Consultez les autres F.A.Q's


Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2008  Developpez LLC. Tout droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com