Table de faits avec faits et table de faits sans fait

DéfinitionTable de faits avec faits

En général la table des faits comporte un ou plusieurs attributs représentant des faits, que l'on va sommer sur les dimensions lors de l'analyse.

ExempleTable des fait avec faits

Par exemple une table des faits représentant des achats de produits pourra contenir la quantité de produits achetés, le chiffre d'affaire de la vente...

ventes (fk_date, fk_produit, quantite, ca)

1
SELECT sum(v.quantite)
2
FROM ventes v JOIN date d 
3
ON fk_date=pk_date
4
GROUP BY d.week

DéfinitionTables de faits sans fait (factless fact table)

Dans certains cas, on mesure directement dans la table des faits des événements unitaires. Un fait est donc juste un enregistrement dans la table des faits.

Dans ce cas le table des faits ne contient que des clés étrangères, et aucun fait en tant que tel (c'est l'enregistrement qui est le fait).

AttentionAnalyse en count

Pour analyser une table de faits sans fait, on ne peut pas utiliser sum (il n'y a rien à sommer), on utilise count (on analyse le nombre de faits enregistrés).

ExempleTables de faits sans fait

On enregistre ici directement des ventes de produits qui sont toujours vendus à l'unité, en vue d'une analyse en quantité (où le prix de vente n'intervient pas).

ventes (fk_date, fk_produit)

1
SELECT count(*)
2
FROM ventes v JOIN date d 
3
ON fk_date=pk_date
4
GROUP BY d.week

MéthodeAjouter une colonne avec la constante 1

Afin de rendre ce cas plus lisible, il est parfois conseillé d'ajouter une colonne qui contient la valeur 1 pour toutes les lignes. On matérialise ainsi le fait par une valeur, même si elle est toujours la même, et il est de nouveau possible de travailler en somme.