La notion de granularité est essentielle car elle définit le niveau de détail d'une table de faits et garantit ainsi la cohérence des données.

Contexte

Prenons l’exemple d’une table de faits Order_facts dont l’objectif est de rassembler les informations concernant des commandes.


Source du schéma : Adamson, Christopher. Star Schema. Osborne/McGraw-Hill, 2010, page 30.

La granularité d’une table de faits est très importante car elle permet de comprendre la nature des différents faits. De manière plus concrète la granularité définit la nature d’une ligne de la tables de faits. Sur l’exemple ci-dessus les faits Quantity Ordered, Order Dollars, Cost Dollars et Margin Dollars sont calculés par produit (PRODUCT), par vendeur (SALESPERSON), par client (CUSTOMER) et par date de vente (DAY).

Définition

La granularité ou grain est ce qui permet de définir le niveau de détail des informations présentes dans une ligne d’une table de faits. Il est défini par un ensemble minimal de dimensions.

Ainsi, la granularité d’une table de faits est son niveau de détails :

  • Elle définit le contexte précis des différents faits.
  • Elle garantit que tous les faits sont enregistrés avec le même niveau de détail.

La granularité peut être exprimée de 2 manières différentes :

  • A l’aide d’une définition dimensionnelle en énumérant les dimensions associées : PRODUCT, SALESPERSON, CUSTOMER, DAY.
  • A l’aide d’une définition métier, en utilisant des termes issus du domaine métier sans référence explicite aux dimensions : Ventes de produits effectués par un vendeur à un client donné, un jour donné.

Attention, le grain correspond à un sous-ensemble de l’ensemble des dimensions liées à la table de faits : ce n’est pas forcément toujours l’intégralité des dimensions comme dans l’exemple ci-dessus.

Une table de faits comporte plusieurs faits. Tous ces faits doivent correspondre à un même contexte. Par exemple, pour une commande, on pourra avoir pour chacun des produits commandés : la quantité commandée et le montant total. Dans ce cas, la quantité et le montant sont relatifs à un même contexte : la commande et le produit.

Il n’est pas possible que la quantité soit celle d’un produit, et que le montant soit le montant total de la commande.

Lorsque deux faits correspondent à deux grains différents, c’est qu’ils ne participent pas au même processus, et qu’ils doivent donc être stockés dans deux tables de faits différentes.

Lorsque deux faits dans deux tables de faits différentes ont la même définition, la même unité de mesure et le même mode de calcul on dit qu’il s’agit de faits conformes, même s’ils ne sont pas définis au même grain.

Lecture Granularité d'une table de faits : Star Schema. Christopher Adamson. pages 42, 67-69

Lecture Granularité d'une table de faits : Agile Data Warehouse Design: Collaborative Dimensional Modeling, from Whiteboard to Star Schema Laurence Corr, and Jim Stagnitto. pages 8-9, 233

Lecture Granularité d'un événement : Agile Data Warehouse Design: Collaborative Dimensional Modeling, from Whiteboard to Star Schema Laurence Corr, and Jim Stagnitto. page 54