Différence entre la table de faits et la table de dimension?

113

En lisant un livre sur les objets métier, je suis tombé sur la table terminologique et la table des dimensions.

J'essaie de comprendre quelle est la différence entre la table de dimension et la table de faits?

J'ai lu quelques articles sur Internet mais je n'ai pas pu comprendre clairement.

Un exemple simple m'aidera à mieux comprendre?


la source
Le concept est assez long à décrire en détail, si vous avez un problème spécifique au-delà de la définition de base, veuillez nous en parler.
NoChance
Fondamentalement, j'essayais de comprendre si les tables de dimension peuvent également être des tables de faits ou non?

Réponses:

53

C'est pour répondre à la partie:

J'essayais de comprendre si les tables de dimension peuvent également être des tables de faits ou non?

La réponse courte (INMO) est non, car les 2 types de tableaux sont créés pour des raisons différentes. Cependant, du point de vue de la conception de base de données, une table de dimension peut avoir une table parent comme le cas avec la table de faits qui a toujours une table de dimension (ou plus) comme parent. De plus, les tables de faits peuvent être agrégées, tandis que les tables de dimensions ne le sont pas. Une autre raison est que les tables de faits ne sont pas censées être mises à jour sur place alors que les tables de dimension peuvent être mises à jour sur place dans certains cas.

Plus de détails:

Les tableaux de faits et de dimensions apparaissent dans ce que l'on appelle communément un schéma en étoile. Un des principaux objectifs du schéma en étoile est de simplifier un ensemble normalisé complexe de tables et de consolider les données (éventuellement provenant de différents systèmes) dans une structure de base de données qui peut être interrogée de manière très efficace.

Dans sa forme la plus simple, il contient une table de faits (exemple: StoreSales) et une ou plusieurs tables de dimension. Chaque entrée de dimension est associée à 0,1 ou plus de tables de faits (exemple de tables de dimension: géographie, article, fournisseur, client, temps, etc.). Il serait également valable pour la dimension d'avoir un parent, auquel cas le modèle est de type "Snow Flake". Cependant, les concepteurs tentent d'éviter ce type de conception car il entraîne davantage de jointures que la lenteur des performances. Dans l'exemple de StoreSales, la dimension Geography pourrait être composée des colonnes (GeoID, ContenentName, CountryName, StateProvName, CityName, StartDate, EndDate)

Dans un modèle Snow Flakes, vous pouvez avoir 2 tables normalisées pour les informations géographiques, à savoir: Table de contenu, Table de pays.

Vous pouvez trouver de nombreux exemples sur Star Schema. Vérifiez également ceci pour voir une vue alternative sur le modèle de schéma en étoile Inmon vs Kimball . Kimbal a un bon forum que vous voudrez peut-être aussi consulter ici: Kimball Forum .

Edit: Pour répondre aux commentaires sur les exemples pour 4NF:

  • Exemple pour une table de faits violant 4NF:

Facture de vente (ID, BranchID, SalesPersonID, ItemID, Amount, TimeID)

  • Exemple de table de faits ne violant pas 4NF:

AggregatedSales (BranchID, TotalAmount)

Ici la relation est en 4NF

Le dernier exemple est plutôt rare.

Aucune chance
la source
1
Certaines tables de faits reflètent des données au niveau des transactions. Certains reflètent des données agrégées. Une table de faits dans un schéma en étoile n'a pas besoin d'être même dans 3NF. Par exemple, Sales Fact pourrait contenir des données telles que (ID, BranchID, Amount, SalesPerson, Time) - Cela enfreint 3NF, BCNF et 4NF parce que les dépendances SalesPerson et Branch.
NoChance
259

Dans la modélisation de l'entrepôt de données, un schéma en étoile et un schéma en flocon se compose de tables de faits et de dimensions .

Tableau de faits:

  • Il contient toutes les clés primaires de la dimension et les faits ou mesures associés (c'est une propriété sur laquelle des calculs peuvent être effectués) comme la quantité vendue, la quantité vendue et les ventes moyennes.

Tables de dimensions:

  • Les tableaux de dimensions fournissent des informations descriptives pour toutes les mesures enregistrées dans le tableau de faits.
  • Les dimensions sont relativement très petites par rapport à la table de faits.
  • Les dimensions couramment utilisées sont les personnes, les produits, le lieu et le temps.

entrez la description de l'image ici

source d'image

Premraj
la source
52
c'est tellement plus utile que la réponse acceptée
Booji Boy
15
Eh bien, une image vaut mille mots. Je n'ai rien compris en lisant les autres réponses, mais celle-ci m'a sauvé.
The One
Les dimensions semblent relativement grandes par rapport à la table de faits dans le diagramme car elles contiennent des données plus descriptives. Et ils sont plus en nombre aussi
Blue Clouds
1
@Blue Clouds: Vous devez réaliser que le Fact-Table contient une entrée pour chaque combinaison possible de for dim´s (s'il y a des données, au moins). Alors que la dimension d'emplacement contiendra au maximum une entrée pour chaque emplacement possible (disons 50 points de vente) et augmentera rarement, lorsque de nouvelles positions sont ajoutées, le tableau des faits augmentera probablement pour chaque jour par emplacement x articles x branches. Ainsi, les faits deviendront rapidement nombreux en nombre d'enregistrements.
Daniel
@Premraj La table de faits peut-elle exister sans clé primaire?
Kalana le
109

Cela semble être une réponse très simple sur la façon de différencier les tables de faits et de dimension!

Il peut être utile de considérer les dimensions comme des choses ou des objets. Une chose telle qu'un produit peut exister sans jamais être impliquée dans un événement commercial. Une dimension est votre nom. C'est quelque chose qui peut exister indépendamment d'un événement commercial, comme une vente. Les produits, les employés, les équipements sont tout ce qui existe. Une dimension fait quelque chose ou se fait faire quelque chose.

Les employés vendent, les clients achètent. Les employés et les clients sont des exemples de dimensions, ils le font.

Les produits sont vendus, ce sont aussi des dimensions car on leur fait quelque chose.

Les faits, sont le verbe. Une entrée dans une table de faits marque un événement discret qui arrive à quelque chose de la table de dimension. Une vente de produit serait enregistrée dans une table de faits. L'événement de la vente serait noté par quel produit a été vendu, quel employé l'a vendu et quel client l'a acheté. Produit, Employé et Client sont toutes des dimensions qui décrivent l'événement, la vente.

En outre, les tableaux de faits contiennent généralement des types de données quantitatives. La quantité vendue, le prix par article, le prix total, etc.

Source: http://arcanecode.com/2007/07/23/dimensions-versus-facts-in-data-warehousing/

AeyJey
la source
5
Excellente écriture, il n'a fallu que 5 minutes pour comprendre le concept.
user1951
Pour résumer: les dimensions sont des attributs d'événements de fait. DAFE. Que fais-tu, DAFE?
youcantryreachingme
3
Oui, c'est comme ça que je me souviens d'eux. C'est l'inverse de ce que vous pensez. On pourrait penser que les faits sont gravés dans la pierre et que les dimensions sont dynamiques, basées sur les mots eux-mêmes. Mais c'est le contraire: une table dim de base est une liste de recherche assez statique, et une table de faits de base est constituée de données vivantes qui sont entrées.
annulez le
1
C'était mon explication préférée et je l'ai fait claquer dans ma tête, merci!
Arjun Arun
9

J'ai trouvé cette réponse plus facile à comprendre du point de vue d'une personne qui ne connaît pas beaucoup la terminologie DB / DW.

http://databases.about.com/od/datamining/a/Facts-Vs-Dimensions.htm

Je recommanderai d'abord de passer en revue cela, puis de passer en revue la réponse d'Emmad Kareem pour plus de granularité. J'espère que c'est utile.

aa8y
la source
1
Première explication qui a été totalement claire. Un exemple très utile, dans un langage profane simple, révélant quelques détails. Maintenant, je comprends enfin.
sharon
Très bien ... je pense que vous avez raison ... lisez celui-là d'abord. Toutes les réponses sont utiles ... mais celle-ci a un moyen de verbaliser le concept en termes plus «humains».
Code Novice
4

Explication super simple:

Table de faits: une table de données qui mappe les ID de recherche ensemble. Est généralement l'une des principales tables centrales de votre application.

Table de dimension: une table de recherche utilisée pour stocker des valeurs (telles que des noms de villes ou des états) qui sont fréquemment répétées dans la table de faits.

RelativitéSQL
la source
2

Dans la forme la plus simple, je pense qu'une table de dimension est quelque chose comme une table «maître» - qui garde une liste de tous les «éléments», pour ainsi dire.

Une table de faits est une table de transactions qui décrit toutes les transactions. En outre, des données agrégées (groupées) telles que les ventes totales par vendeur, les ventes totales par branche - ces types de tableaux peuvent également exister sous forme de tableaux de faits indépendants.

user5729371
la source
2

Table de dimension La table de dimension est une table qui contient des attributs de mesures stockées dans des tables de faits. Cette table se compose de hiérarchies, de catégories et de logiques qui peuvent être utilisées pour traverser dans les nœuds.

La table de faits contient la mesure des processus métier et elle contient des clés étrangères pour les tables de dimension.

Exemple - Si le processus métier consiste à fabriquer des briques

Nombre moyen de briques produites par une personne / machine - mesure du processus métier

Shriraj
la source
1
  1. La table de faits se compose principalement de faits commerciaux et de clés étrangères qui font référence à des clés primaires dans les tables de dimension. Une table de dimension se compose principalement d'attributs descriptifs qui sont des champs textuels.
  2. Une table de dimension contient une clé de substitution, une clé naturelle et un ensemble d'attributs. Au contraire, une table de faits contient une clé étrangère, des mesures et des dimensions dégénérées.
  3. Les tables de dimension fournissent des informations descriptives ou contextuelles pour la mesure d'une table de faits. D'autre part, les tableaux de faits fournissent les mesures d'une entreprise.
  4. Lorsque vous comparez la taille des deux tables, une table de faits est plus grande qu'une table dimensionnelle. Dans un tableau de comparaison, plus de dimensions sont présentées que les tableaux de faits. Dans une table de faits, moins de nombres de faits sont observés.
  5. La table de dimension doit d'abord être chargée. Lors du chargement des tables de faits, il faut regarder la table de dimension. Cela est dû au fait que la table de faits a des mesures, des faits et des clés étrangères qui sont les clés primaires de la table de dimension.

Lire la suite: Tableau des dimensions et tableau des faits | Différence entre | Tableau des dimensions et tableau des faits http://www.differencebetween.net/technology/hardware-technology/dimension-table-and-fact-table/#ixzz3SBp8kPzo

client
la source
-3

Table de dimension: ce n'est rien mais nous pouvons conserver des informations sur la date caractérisée appelée table de dimension.

Exemple: dimension temporelle, dimension produit.

Table de faits: Ce n'est rien mais nous pouvons conserver des informations sur les métriques ou les données de précalcul.

Exemple: Sales Fact, Order Fact.

Schéma en étoile: un lien de table de faits avec un formulaire de table de dimension comme schéma de départ.

entrez la description de l'image ici

Maheshwar Reddy
la source
2
(Ce message ne semble pas fournir une réponse de qualité à la question. Veuillez modifier votre réponse ou simplement la publier en tant que commentaire sur la question).
sɐunıɔ ןɐ qɐp