¿Diferencia entre la tabla de hechos y la tabla de dimensiones?

112

Al leer un libro sobre objetos comerciales, me encontré con la tabla de términos y hechos y la tabla de dimensiones.

Estoy tratando de entender cuál es la diferencia entre la tabla de dimensiones y la tabla de hechos.

Leí un par de artículos en Internet pero no pude entender con claridad.

¿Algún ejemplo sencillo me ayudará a entender mejor?


fuente
El concepto es bastante largo para describirlo en detalle, si tiene un problema específico más allá de la definición básica, por favor cuéntenoslo.
NoChance
Básicamente, estaba tratando de entender si las tablas de dimensiones también pueden ser tablas de hechos o no.

Respuestas:

52

Esto es para responder la parte:

Estaba tratando de entender si las tablas de dimensiones también pueden ser tablas de hechos o no.

La respuesta corta (INMO) es No. Eso se debe a que los 2 tipos de tablas se crean por diferentes razones. Sin embargo, desde la perspectiva del diseño de una base de datos, una tabla de dimensiones podría tener una tabla principal como el caso de la tabla de hechos, que siempre tiene una tabla de dimensiones (o más) como principal. Además, las tablas de hechos se pueden agregar, mientras que las tablas de dimensiones no se agregan. Otra razón es que se supone que las tablas de hechos no deben actualizarse en su lugar, mientras que las tablas de Dimension se pueden actualizar en algunos casos.

Más detalles:

Las tablas de hechos y dimensiones aparecen en lo que comúnmente se conoce como esquema en estrella. Un propósito principal del esquema en estrella es simplificar un conjunto complejo de tablas normalizadas y consolidar datos (posiblemente de diferentes sistemas) en una estructura de base de datos que se pueda consultar de una manera muy eficiente.

En su forma más simple, contiene una tabla de hechos (Ejemplo: StoreSales) y una o más tablas de dimensiones. Cada entrada de Dimensión tiene 0,1 o más tablas de hechos asociadas (Ejemplo de tablas de dimensión: Geografía, Artículo, Proveedor, Cliente, Hora, etc.). También sería válido que la dimensión tuviera un padre, en cuyo caso el modelo es del tipo "Snow Flake". Sin embargo, los diseñadores intentan evitar este tipo de diseño, ya que provoca más uniones que un rendimiento lento. En el ejemplo de StoreSales, la dimensión Geografía podría estar compuesta por las columnas (GeoID, ContenentName, CountryName, StateProvName, CityName, StartDate, EndDate)

En un modelo de Snow Flakes, podría tener 2 tablas normalizadas para la información geográfica, a saber: Tabla de contenido, Tabla de países.

Puede encontrar muchos ejemplos en Star Schema. Además, consulte esto para ver una vista alternativa del modelo de esquema en estrella Inmon vs. Kimball . Kimbal tiene un buen foro que quizás también quieras visitar aquí: Foro de Kimball .

Editar: Para responder a un comentario sobre ejemplos de 4NF:

  • Ejemplo de una tabla de hechos que viola 4NF:

Hecho de ventas (ID, BranchID, SalesPersonID, ItemID, Amount, TimeID)

  • Ejemplo de una tabla de hechos que no viola 4NF:

Ventas agregadas (BranchID, TotalAmount)

Aquí la relación está en 4NF

El último ejemplo es bastante poco común.

Ninguna posibilidad
fuente
1
Algunas tablas de hechos reflejan datos a nivel de transacciones. Algunos reflejan datos agregados. Una tabla de hechos en un esquema en estrella no tiene que ser pareja en 3NF. Por ejemplo, Sales Fact podría contener datos como (ID, BranchID, Amount, SalesPerson, Time) - Esto viola 3NF, BCNF y 4NF debido a la dependencia de SalesPerson y Branch.En consecuencia, no es cierto que una tabla de hechos típica esté en 4NF.
NoChance
258

En el modelado de almacén de datos, un esquema en estrella y un esquema de copo de nieve consta de tablas de hechos y dimensiones .

Tabla de hechos:

  • Contiene todas las claves principales de la dimensión y los hechos o medidas asociados (es una propiedad sobre la que se pueden realizar cálculos) como la cantidad vendida, la cantidad vendida y las ventas promedio.

Tablas de dimensiones:

  • Las tablas de dimensiones proporcionan información descriptiva para todas las medidas registradas en la tabla de hechos.
  • Las dimensiones son relativamente muy pequeñas como comparación de la tabla de hechos.
  • Las dimensiones más utilizadas son personas, productos, lugar y tiempo.

ingrese la descripción de la imagen aquí

fuente de imagen

Premraj
fuente
52
esto es mucho más útil que la respuesta aceptada
Booji Boy
15
Bueno, una imagen vale más que mil palabras. No entendí nada al leer las otras respuestas, pero esta me salvó.
The One
Las dimensiones parecen relativamente grandes en comparación con la tabla de hechos del diagrama, ya que tiene datos más descriptivos. Y también están más en números
Blue Clouds
1
@Blue Clouds: Debes darte cuenta de que la tabla de hechos contiene una entrada para cada combinación posible de los dim´s (si hay datos, al menos). Si bien la dimensión de ubicación contendrá como máximo una entrada para cada ubicación posible (digamos 50 puntos de venta) y rara vez crecerá, cuando se agregan nuevas posiciones, la tabla de hechos probablemente crecerá para cada día por ubicación x artículos x sucursales. Entonces, los hechos aumentarán en cantidad de registros bastante rápido.
Daniel
@Premraj ¿Puede existir una tabla de hechos sin una clave principal?
Kalana
109

¡Esta parece ser una respuesta muy simple sobre cómo diferenciar entre tablas de hechos y de dimensiones!

Puede ser útil pensar en las dimensiones como cosas u objetos. Algo como un producto puede existir sin estar involucrado en un evento empresarial. Una dimensión es tu sustantivo. Es algo que puede existir independientemente de un evento empresarial, como una venta. Productos, empleados, equipos, son todas las cosas que existen. Una dimensión hace algo o tiene algo que hacer.

Los empleados venden, los clientes compran. Los empleados y los clientes son ejemplos de dimensiones, lo hacen.

Los productos se venden, también son dimensiones porque les han hecho algo.

Los hechos son el verbo. Una entrada en una tabla de hechos marca un evento discreto que le sucede a algo de la tabla de dimensiones. La venta de un producto se registraría en una tabla de hechos. El evento de la venta se anotaría por qué producto se vendió, qué empleado lo vendió y qué cliente lo compró. Producto, Empleado y Cliente son dimensiones que describen el evento, la venta.

Además, las tablas de hechos también suelen tener algún tipo de datos cuantitativos. La cantidad vendida, el precio por artículo, el precio total, etc.

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

AeyJey
fuente
5
Excelente redacción, solo se necesitan 5 minutos para comprender el concepto.
user1951
Para resumir: las dimensiones son atributos de hechos-hechos. DAFE. ¿Qué estás haciendo, DAFE?
youcantryreachingme
3
Sí, así los recuerdo. Es lo contrario de lo que piensas. Uno pensaría que los hechos están escritos en piedra y las dimensiones son dinámicas, basadas en las palabras mismas. Pero es lo contrario: una tabla atenuada básica es una lista de búsqueda bastante estática, y una tabla de hechos básica son datos vivos que se ingresan.
undrline
1
Esta fue mi explicación favorita y causó que hiciera clic en mi cabeza, ¡gracias!
Arjun Arun
9

Encontré esta respuesta más fácil de entender desde la perspectiva de una persona que no conoce mucho de la terminología DB / DW.

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

Recomendaré revisar esto primero y luego revisar la respuesta de Emmad Kareem para obtener más granularidad. Espero que sea de ayuda.

aa8y
fuente
1
Primera explicación que ha sido totalmente clara. Un ejemplo muy útil, en un lenguaje sencillo y laico, que revela algunos detalles. Ahora finalmente lo entiendo.
Sharon
Muy bonito ... creo que tienes razón ... lee eso primero. Todas las respuestas son útiles ... pero esta tiene una forma de verbalizar el concepto en términos más "humanos".
Code Novice
4

Explicación súper simple:

Tabla de hechos: una tabla de datos que mapea los ID de búsqueda juntos. Suele ser una de las principales tablas centrales de su aplicación.

Tabla de dimensiones: una tabla de búsqueda utilizada para almacenar valores (como nombres de ciudades o estados) que se repiten con frecuencia en la tabla de hechos.

RelatividadSQL
fuente
2

En la forma más simple, creo que una tabla de dimensiones es algo así como una tabla 'Maestra', que mantiene una lista de todos los 'elementos', por así decirlo.

Una tabla de hechos es una tabla de transacciones que describe todas las transacciones. Además, los datos agregados (agrupados), como las ventas totales por vendedor, las ventas totales por sucursal, este tipo de tablas también pueden existir como tablas de hechos independientes.

usuario5729371
fuente
2

Tabla de dimensiones La tabla de dimensiones es una tabla que contiene atributos de medidas almacenadas en tablas de hechos. Esta tabla consta de jerarquías, categorías y lógica que se pueden usar para atravesar nodos.

Tabla de hechos contiene la medición de los procesos comerciales y contiene claves externas para las tablas de dimensiones.

Ejemplo: si el proceso empresarial es la fabricación de ladrillos

Número medio de ladrillos producidos por una persona / máquina: medida del proceso empresarial

Shriraj
fuente
1
  1. La tabla de hechos consta principalmente de hechos comerciales y claves externas que hacen referencia a claves primarias en las tablas de dimensiones. Una tabla de dimensiones consta principalmente de atributos descriptivos que son campos textuales.
  2. Una tabla de dimensiones contiene una clave sustituta, una clave natural y un conjunto de atributos. Por el contrario, una tabla de hechos contiene una clave externa, medidas y dimensiones degeneradas.
  3. Las tablas de dimensiones proporcionan información descriptiva o contextual para la medición de una tabla de hechos. Por otro lado, las tablas de hechos proporcionan las medidas de una empresa.
  4. Al comparar el tamaño de las dos tablas, una tabla de hechos es más grande que una tabla dimensional. En una tabla de comparación, se presentan más dimensiones que las tablas de hechos. En una tabla de hechos, se observa un menor número de hechos.
  5. La tabla de dimensiones debe cargarse primero. Mientras se cargan las tablas de hechos, es necesario mirar la tabla de dimensiones. Esto se debe a que la tabla de hechos tiene medidas, hechos y claves externas que son las claves principales en la tabla de dimensiones.

Leer más: Tabla de dimensiones y tabla de hechos | Diferencia entre | Tabla de dimensiones frente a tabla de hechos http://www.differencebetween.net/technology/hardware-technology/dimension-table-and-fact-table/#ixzz3SBp8kPzo

invitado
fuente
-3

Tabla de dimensiones: no es nada, pero podemos mantener información sobre la fecha caracterizada llamada tabla de dimensiones.

Ejemplo: dimensión de tiempo, dimensión de producto.

Tabla de hechos: no es nada, pero podemos mantener información sobre las métricas o los datos de cálculo previo.

Ejemplo: hechos de ventas, hechos de pedidos.

Esquema de estrella: un enlace de tabla de hechos con formulario de tabla de dimensiones como esquema de inicio.

ingrese la descripción de la imagen aquí

Maheshwar Reddy
fuente
2
(Esta publicación no parece proporcionar una respuesta de calidad a la pregunta. Edite su respuesta o simplemente publíquela como un comentario a la pregunta).
sɐunıɔ ןɐ qɐp