web-dev-qa-db-fra.com

Différence entre table de faits et table de dimensions?

En lisant un livre sur les objets métier, je suis tombé sur les tables de faits et de 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?

66
user2467545

C'est pour répondre à la partie:

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

La réponse courte (INMO) est Non. C'est parce que les 2 types de tables sont créés pour des raisons différentes. Cependant, du point de vue de la conception de la base de données, une table de dimension peut avoir une table parent comme 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, alors que les tables de dimension ne sont pas agrégées. 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 pourraient être mises à jour sur place dans certains cas.

Plus de détails:

Les tables de faits et de dimensions apparaissent dans ce que l'on appelle communément un schéma en étoile. L'un des principaux objectifs du schéma en étoile est de simplifier un ensemble complexe de tables normalisées et de consolider les données (éventuellement de différents systèmes) dans une structure de base de données pouvant ê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 table de faits ou plus (exemple de tables de dimension: géographie, poste, fournisseur, client, heure, etc.). Il serait également valable que la dimension ait un parent, auquel cas le modèle est de type "Snow Flake". Toutefois, les concepteurs tentent d’éviter ce type de conception, car elle entraîne davantage de jointures que des performances lentes. Dans l'exemple de StoreSales, la dimension Geography peut ê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. Consultez également cette option pour voir un autre point de vue sur le modèle de schéma en étoile Inmon vs. Kimball . Kimbal a un bon forum que vous pouvez également consulter ici: Kimball Forum .

Edit: Pour répondre à un commentaire sur des exemples pour 4NF:

  • Exemple pour une table de faits violant 4NF:

Facteur de vente (ID, ID de succursale, ID de client, ID d'article, Montant, ID de temps)

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

Ventes agrégées (BranchID, TotalAmount)

Ici la relation est en 4NF

Le dernier exemple est plutôt rare.

38
NoChance

Dans Data Warehouse Modeling, un schéma en étoile et un flocon de neige sont les suivants: Fait et Tables de dimension .

Table de faits:

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

Tables de dimensions:

  • Les tables de dimension fournissent des informations descriptives pour toutes les mesures enregistrées dans la table de faits.
  • Les dimensions sont relativement très petites en tant que comparaison de table de faits.
  • Les dimensions couramment utilisées sont les personnes, les produits, le lieu et l'heure.

enter image description here

source de l'image

101
Premraj

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

Il peut être utile de considérer les dimensions comme des choses ou des objets. Un produit tel qu'un produit peut exister sans jamais être impliqué dans un événement professionnel. Une dimension est votre nom. C'est quelque chose qui peut exister indépendamment d'un événement professionnel, tel qu'une vente. Les produits, les employés, les équipements, sont toutes des choses qui existent. Une dimension fait quelque chose ou a fait 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, ils sont aussi des dimensions car ils ont quelque chose à faire.

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 le produit vendu, le salarié qui l'a vendu et le client qui l'a acheté. Produit, Employé et Client sont toutes les dimensions décrivant l'événement, la vente.

De plus, les tables de faits contiennent généralement des 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/

85
AeyJey

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 de commencer par ceci, puis par la réponse d'Emmad Kareem pour plus de précision. J'espère que c'est utile.

8
aa8y

Explication super simple:

Table de faits: une table de données qui associe des ID de recherche. Est généralement l’une des tables principales au centre de votre application.

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

2
RelativitySQL
  1. La table de faits est principalement composée de faits commerciaux et de clés étrangères faisant référence aux clés primaires des tables de dimension. Une table de dimension comprend principalement des 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 permettant de mesurer une table de faits. D'autre part, les tables 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 tables de faits. Dans un tableau de faits, moins de faits sont observés.
  5. La table de dimension doit être chargée en premier. Lors du chargement des tables de faits, il convient de regarder la table de dimension. En effet, la table de faits contient des mesures, des faits et des clés étrangères qui sont les clés primaires de la table de dimensions.

Lire la suite: Table de dimension et table de faits | Différence entre | Dimension Table vs Fact Table http://www.differencebetween.net/technology/hardware-technology/dimension-table-and-fact-table/#ixzz3SBp8kPzo

1
guest

Dans sa forme la plus simple, je pense qu'une table de dimension est quelque chose qui ressemble à une table "principale" - qui conserve une liste de tous les "éléments", pour ainsi dire.

Une table de faits est une table de transactions décrivant 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 - de tels types de tableaux peuvent également exister en tant que tableaux de faits indépendants.

1
user5729371