Contexte
Prenons l’exemple d’une table de faits Order_facts
dont l’objectif est de rassembler les informations concernant des commandes.
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.
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