En el almacenamiento de datos , una tabla de hechos consta de las medidas, métricas o hechos de un proceso empresarial . Se encuentra en el centro de un esquema de estrella o un esquema de copo de nieve rodeado de tablas de dimensiones . Cuando se utilizan varias tablas de hechos, estas se organizan como un esquema de constelación de hechos . Una tabla de hechos suele tener dos tipos de columnas: las que contienen hechos y las que son una clave externa.a tablas de dimensiones. La clave principal de una tabla de hechos suele ser una clave compuesta que se compone de todas sus claves externas. Las tablas de hechos contienen el contenido del almacén de datos y almacenan diferentes tipos de medidas, como medidas aditivas, no aditivas y semi aditivas.
Las tablas de hechos proporcionan los valores (generalmente) aditivos que actúan como variables independientes mediante las cuales se analizan los atributos dimensionales. Las tablas de hechos a menudo se definen por su grano . El grano de una tabla de hechos representa el nivel más atómico por el cual se pueden definir los hechos. El grano de una tabla de hechos de ventas podría expresarse como "volumen de ventas por día por producto por tienda". Por tanto, cada registro de esta tabla de hechos se define de forma única por día, producto y tienda. Otras dimensiones pueden ser miembros de esta tabla de hechos (como ubicación / región) pero no añaden nada a la unicidad de los registros de hechos. Estas "dimensiones de afiliados" permiten fragmentos adicionales de los hechos independientes, pero generalmente brindan información a un nivel más alto de agregación (una región contiene muchas tiendas).
Ejemplo
Si el proceso empresarial son las ventas, la tabla de hechos correspondiente normalmente contendrá columnas que representan tanto hechos sin procesar como agregaciones en filas como:
- $ 12,000 , siendo "ventas para la tienda de Nueva York del 15 de enero de 2005".
- 34.000 dólares , que corresponden a "ventas para la tienda de Los Ángeles el 15 de enero de 2005".
- 22.000 dólares , que corresponden a "ventas para la tienda de Nueva York del 16 de enero de 2005".
- 21.000 dólares , que son las "ventas diarias promedio de la tienda de Los Ángeles en enero de 2005".
- 65.000 dólares , que son las "ventas diarias promedio de la tienda de Los Ángeles en febrero de 2005".
- 33.000 dólares , que son las "ventas diarias promedio de la tienda de Los Ángeles para el año 2005".
"Ventas diarias promedio" es una medida que se almacena en la tabla de hechos. La tabla de hechos también contiene claves externas de las tablas de dimensiones , donde se almacenan series de tiempo (por ejemplo, fechas) y otras dimensiones (por ejemplo, ubicación de la tienda, vendedor, producto).
Todas las claves externas entre las tablas de hechos y dimensiones deben ser claves sustitutas , no claves reutilizadas de datos operativos.
Tipos de medidas
- Aditivo: medidas que se pueden agregar en cualquier dimensión.
- No aditivo: medidas que no se pueden agregar en ninguna dimensión.
- Semi-aditivo: medidas que se pueden agregar en algunas dimensiones.
Una tabla de hechos puede contener hechos a nivel de detalle o hechos que se han agregado (las tablas de hechos que contienen hechos agregados a menudo se denominan tablas de resumen).
Se debe tener especial cuidado al manipular proporciones y porcentajes. Una buena regla de diseño [1] es no almacenar nunca porcentajes o proporciones en tablas de hechos, sino calcularlos únicamente en la herramienta de acceso a datos. Por lo tanto, solo almacene el numerador y el denominador en la tabla de hechos, que luego se pueden agregar y los valores almacenados agregados se pueden usar para calcular la relación o el porcentaje en la herramienta de acceso a datos.
En el mundo real, es posible tener una tabla de hechos que no contenga medidas ni hechos. Estas tablas se denominan "tablas de hechos sin hechos" o " tablas de unión ".
Las tablas de hechos sin hechos se pueden utilizar para modelar relaciones de varios a varios o para capturar marcas de tiempo de eventos. [1]
Tipos de tablas de hechos
Hay cuatro eventos de medición fundamentales, que caracterizan a todas las tablas de hechos. [2]
- Transaccional
- Una tabla transaccional es la más básica y fundamental. El grano asociado con una tabla de hechos transaccionales generalmente se especifica como "una fila por línea en una transacción", por ejemplo, cada línea en un recibo. Normalmente, una tabla de hechos transaccionales contiene datos del nivel más detallado, lo que hace que tenga un gran número de dimensiones asociadas.
- Instantáneas periódicas
- La instantánea periódica, como su nombre lo indica, toma una "imagen del momento", donde el momento podría ser cualquier período de tiempo definido, por ejemplo, un resumen del desempeño de un vendedor durante el mes anterior. Una tabla de instantáneas periódicas depende de la tabla transaccional, ya que necesita los datos detallados contenidos en la tabla de hechos transaccionales para entregar el resultado de rendimiento elegido.
- Acumulación de instantáneas
- Este tipo de tabla de hechos se utiliza para mostrar la actividad de un proceso que tiene un comienzo y un final bien definidos, por ejemplo, el procesamiento de una orden. Un pedido pasa por pasos específicos hasta que se procesa por completo. A medida que se completan los pasos para completar el pedido, se actualiza la fila asociada en la tabla de hechos. Una tabla de instantáneas acumuladas a menudo tiene varias columnas de fecha, cada una de las cuales representa un hito en el proceso. Por lo tanto, es importante tener una entrada en la dimensión de fecha asociada que represente una fecha desconocida, ya que muchas de las fechas de hitos se desconocen en el momento de la creación de la fila.
- Instantáneas temporales
- Al aplicar la teoría de bases de datos temporales y técnicas de modelado, la tabla de hechos de instantáneas temporales [3] permite tener el equivalente a instantáneas diarias sin tener realmente instantáneas diarias. Introduce el concepto de Intervalos de tiempo en una tabla de hechos, lo que permite ahorrar mucho espacio, optimiza el rendimiento y permite al usuario final tener el equivalente lógico de la "imagen del momento" que le interesa.
Pasos para diseñar una tabla de hechos
- Identifique un proceso comercial para su análisis (como ventas).
- Identifique medidas de hechos (dólares de ventas), haciendo preguntas como '¿qué número de X son relevantes para el proceso comercial?', Reemplazando la X con varias opciones que tengan sentido dentro del contexto del negocio.
- Identifique las dimensiones de los hechos (dimensión de producto, dimensión de ubicación, dimensión de tiempo, dimensión de organización), haciendo preguntas que tengan sentido dentro del contexto de la empresa, como 'analizar por X', donde X se reemplaza con el sujeto a probar.
- Enumere las columnas que describen cada dimensión (nombre de la región, nombre de la sucursal, nombre de la unidad de negocio).
- Determine el nivel más bajo (granularidad) de resumen en una tabla de hechos (por ejemplo, dólares de ventas).
Un enfoque alternativo es el proceso de diseño de cuatro pasos descrito en Kimball: [1] seleccionar el proceso de negocio, declarar el grano, identificar las dimensiones, identificar los hechos.