Tables et entités de faits

Une table de faits ou une entité de faits est une table ou une entité définie dans un schéma en étoile ou en flocon, qui stocke des mesures d'évaluation de l'activité, comme les ventes, le coût des marchandises ou les bénéfices.

Les tables ou les entités de faits accumulent des mesures ou les données chiffrées d'une activité. Pour mesurer les données d'une table ou d'une entité de faits, toutes les mesures d'une table ou d'une entité de faits doivent posséder le même grain.

Pour obtenir les données les plus utiles d'une table ou d'une entité de faits, vous devez utiliser des mesures à la fois numériques et additionnelles. L'utilisation de ces mesures garantit l'extraction et l'agrégation des données pour permettre à l'entreprise de tirer parti des multiples informations de la base de données.

Les tables et les entités de faits contiennent également des clés externes qui les relient aux tables de dimensions. Ces clés externes lient chaque ligne de données de la table de faits aux dimensions et aux niveaux correspondants.

Les tables et les entités de faits utilisent des clés primaires qui sont des clés composées. Une clé composée comprend un sous-ensemble de clés. Si une table ou une entité d'un modèle dimensionnel utilise un clé composée, cette table est une table ou une entité de faits. L'utilisation de clés composées entraîne une relation plusieurs-plusieurs entre la table ou l'entité et d'autres tables et entités du modèle dimensionnel.

Types de table et d'entité de faits

Il y existe trois types de tables et d'entités de faits :
Transactionnelle
Une table de faits transactionnelle ou une entité de faits transactionnelle enregistre une ligne par transaction.
Périodique
Une table de faits périodique ou une entité de faits périodique stocke une ligne pour un groupe de transactions exécutées sur une période donnée.
Cumulé
Une table de faits cumulés ou une entité de faits cumulés stocke une seule ligne pendant toute la durée de vie d'un événement. Par exemple, une table ou une entité de faits cumulés stocke la durée de vie d'une demande de carte de crédit, de sa date d'envoi jusqu'à sa date d'acceptation.
Remarque : Vous ne pouvez pas indiquer explicitement le type de table ou d'entité de faits en utilisant le plan de travail. Pour documenter le type de table de faits que vous utilisez, vous pouvez ajouter les informations à la documentation.
Le tableau suivant compare les types de table et d'entité de faits. Il indique que chaque table ou entité possède un type de grain différent et qu'il y a des différences dans le mode d'exécution des opérations d'insertion et de mise à jour. Par exemple, dans des tables et des entités de faits transactionnelles et périodiques, seules des opérations d'insertion sont exécutées. Toutefois, dans une table ou une entité de faits accumulés, la première ligne est insérée et lorsqu'un jalon est atteint et que des mesures supplémentaires sont disponibles, la table ou l'entité est mise à jour.
Tableau 1. Comparaison des types de table de faits
Fonction Transactionnelle Périodique Cumulée
Grain Une ligne par transaction Une ligne par période Une ligne pour toute la durée de vie d'un événement
Dimension Dimension de date au niveau de granularité le plus bas Dimension de date au niveau de granularité Fin de période Plusieurs dimensions de date
Nombre de dimensions Plus élevé que le type de fait périodique Moins élevé que le type de fait transactionnel Nombre de dimensions le plus élevé par rapport aux autres types de table de faits
Dimensions conformes Utilise des dimensions partagées conformes Utilise des dimensions partagées conformes Utilise des dimensions partagées conformes
Mesures Relatives aux activités de transaction Relatives aux activités périodiques Relatives aux activités qui possèdent une durée de vie définie
Taille de la base de données Taille la plus élevée. Au niveau de grain le plus détaillé, la taille de la base de données a tendance à augmenter très rapidement. Plus petite que la table de faits transactionnelle car le grain de la dimension de date et d'heure est nettement plus élevé Plus petite que les tables de faits transactionnelles et périodiques
Performances Offre de bonnes performances qui peuvent être améliorées en sélectionnant un grain situé au-dessus du grain le plus détaillé Offre de meilleures performances que les autres types de table de faits car des données sont stockées au niveau d'un grain moins détaillé Bonnes performances
Insertion Oui Oui Oui
Mise à jour Non Non Oui, lorsqu'un jalon est atteint pour une activité spécifique
Suppression Non Non Non
Augmentation de la taille de la table des faits Très rapide Lente comparée à la table de faits basée sur des transactions Lente comparée à la table de faits transactionnelle et périodique
Besoin de tables d'agrégation Elevé, en particulier parce que les données sont stockées à un niveau très détaillé Nul ou très faible, principalement parce que les données sont déjà stockées à un niveau d'agrégation élevé Moyen car les données sont principalement stockées au niveau Jour. Toutefois, les données des tables de faits cumulés sont moins nombreuses que celles du niveau transactionnel.

Exemple de table de faits

La table suivante suit les ventes des produits commercialisés par la société fictive Great Outdoors :
GOSALESDW.SLS_SALES_FACT
ORDER_DAY_KEY
ORGANIZATION_KEY
EMPLOYEE_KEY
RETAILER_KEY
RETAILER_SITE_KEY
PRODUCT_KEY
PROMOTION_KEY
ORDER_METHOD_KEY
SALES_ORDER_KEY
SHIP_DAY_KEY
CLOSE_DAY_KEY
QUANTITY
UNIT_COST
UNIT_PRICE
UNIT_SALE_PRICE
GROSS_MARGIN
SALE_TOTAL
GROSS_PROFIT

Commentaires en retour