
En el almacenamiento de datos , una tabla de hechos contiene las mediciones, métricas o hechos de un proceso de negocio . Se ubica en el centro de un esquema de estrella o de copo de nieve, rodeada por tablas de dimensiones . Cuando se utilizan varias tablas de hechos, se organizan en 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 claves foráneas a las tablas de dimensiones. La clave primaria de una tabla de hechos suele ser una clave compuesta formada por todas sus claves foráneas. Las tablas de hechos contienen el contenido del almacén de datos y almacenan diferentes tipos de medidas, como medidas aditivas, no aditivas y semiaditivas.
Las tablas de hechos (generalmente) proporcionan los valores aditivos que actúan como variables independientes mediante las cuales se analizan los atributos dimensionales. Las tablas de hechos suelen definirse por su granularidad . La granularidad de una tabla de hechos representa el nivel más atómico en el que se pueden definir los hechos. La granularidad de una tabla de hechos de ventas podría expresarse como "volumen de ventas por día, por producto y por tienda". Por lo tanto, cada registro en esta tabla de hechos se define de forma única por un día, un producto y una tienda. Otras dimensiones pueden ser miembros de esta tabla de hechos (como la ubicación/región), pero estas no añaden nada a la unicidad de los registros de hechos. Estas "dimensiones afiliadas" permiten segmentar aún más los hechos independientes, pero generalmente proporcionan información a un nivel de agregación superior (una región contiene muchas tiendas).
Ejemplo
Si el proceso de negocio es ventas, entonces la tabla de hechos correspondiente normalmente contendrá columnas que representan tanto hechos brutos como agregaciones en filas como por ejemplo:
- $12,000 , que corresponde a "ventas de la tienda de Nueva York el 15 de enero de 2005".
- $34,000 , que corresponden a "ventas de la tienda de Los Ángeles el 15 de enero de 2005".
- $22,000 , que corresponden a "ventas de la tienda de Nueva York el 16 de enero de 2005".
- $21,000 , que corresponde a las "ventas diarias promedio de la tienda de Los Ángeles en enero de 2005".
- 65.000 dólares , que corresponde a las "ventas diarias promedio de la tienda de Los Ángeles en febrero de 2005".
- $33,000 , que corresponde a las "ventas diarias promedio de la tienda de Los Ángeles durante el año 2005".
El "promedio de ventas diarias" es una medida que se almacena en la tabla de hechos. Esta tabla también contiene claves foráneas de las tablas de dimensiones , donde se almacenan series temporales (por ejemplo, fechas) y otras dimensiones (por ejemplo, ubicación de la tienda, vendedor, producto).
Todas las claves foráneas entre las tablas de hechos y dimensiones deben ser claves subrogadas , no claves reutilizadas de los datos operativos.
Tipos de medidas
- Aditivo: medidas que se pueden sumar en cualquier dimensión.
- No aditivas: medidas que no se pueden sumar en ninguna dimensión.
- Semiaditivo: medidas que se pueden sumar en algunas dimensiones.
Una tabla de hechos puede contener hechos a nivel de detalle o hechos agregados (las tablas de hechos que contienen hechos agregados a menudo se denominan tablas de resumen).
Se debe tener especial cuidado al manejar razones y porcentajes. Una buena regla de diseño [ 1 ] es no almacenar nunca porcentajes ni razones en tablas de hechos, sino calcularlos únicamente en la herramienta de acceso a datos. Por lo tanto, solo se deben almacenar el numerador y el denominador en la tabla de hechos, los cuales luego se pueden agregar, y los valores agregados almacenados se pueden usar para calcular la razón o el porcentaje en la herramienta de acceso a datos.
En la práctica, 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 pueden utilizarse para modelar relaciones de muchos a muchos o para capturar marcas de tiempo de eventos. [ 1 ]
Tipos de tablas de hechos
Hay cuatro eventos de medición fundamentales que caracterizan todas las tablas de hechos. [ 2 ]
- Transaccional
- Una tabla transaccional es la más básica y fundamental. La granularidad asociada a una tabla de hechos transaccional se especifica normalmente como "una fila por línea en una transacción", por ejemplo, cada línea de un recibo. Por lo general, una tabla de hechos transaccional contiene datos del nivel más detallado, lo que implica que tenga un gran número de dimensiones asociadas.
- Instantáneas periódicas
- La instantánea periódica, como su nombre indica, captura una "imagen del momento", que puede ser cualquier período de tiempo definido, por ejemplo, un resumen del rendimiento de un vendedor durante el mes anterior. Una tabla de instantánea periódica depende de la tabla transaccional, ya que necesita los datos detallados que contiene para generar el resultado de rendimiento seleccionado.
- Acumulación de instantáneas
- Este tipo de tabla de hechos se utiliza para mostrar la actividad de un proceso con un inicio y un final bien definidos, por ejemplo, el procesamiento de un pedido. Un pedido avanza a través de pasos específicos hasta su procesamiento completo. A medida que se completan los pasos para completar el pedido, se actualiza la fila correspondiente en la tabla de hechos. Una tabla de instantáneas acumulativas suele tener varias columnas de fecha, cada una de las cuales representa un hito en el proceso. Por lo tanto, es importante incluir una entrada en la dimensión de fecha correspondiente que represente un marcador de posición para una fecha desconocida, ya que muchas de las fechas de los hitos se desconocen al momento de crear la fila.
- Instantáneas temporales
- Mediante la aplicación de la teoría de bases de datos temporales y técnicas de modelado, la tabla de hechos de instantáneas temporales [ 3 ] permite obtener el equivalente a instantáneas diarias sin necesidad de contar con ellas. Introduce el concepto de intervalos de tiempo en una tabla de hechos, lo que permite ahorrar mucho espacio, optimizar el rendimiento y, al mismo tiempo, proporcionar al usuario final el equivalente lógico de la "imagen del momento" que le interesa.
Pasos para diseñar una tabla de hechos
El diseño dimensional de Kimball sigue cuatro pasos: [ 4 ]
- Seleccione el proceso de negocio a modelar (por ejemplo, entrada de pedidos, procesamiento de reclamaciones). [ 4 ]
- Declarar el granularidad : definir con exactitud qué representa una sola fila de la tabla de hechos; no se deben mezclar diferentes granularidades en una misma tabla. [ 5 ]
- Identificar las dimensiones que se aplican a cada fila de la tabla de hechos. [ 4 ]
- Identificar los hechos (medidas) que son verdaderos para el grano declarado. [ 6 ]
Después de declarar el grano, elija un tipo de tabla de hechos apropiado (por ejemplo, transacción, instantánea periódica, instantánea acumulativa). [ 7 ] Las medidas en una tabla de hechos se clasifican comúnmente como: [ 8 ]
- Aditivo : se puede sumar en todas las dimensiones (por ejemplo, importe de las ventas).
- Semiaditivo : aditivo en algunas dimensiones pero no en otras (por ejemplo, el saldo de una cuenta no es aditivo en el tiempo).
- No aditivo : no se puede sumar en ninguna dimensión (por ejemplo, proporciones); normalmente se calcula en consultas en lugar de almacenarse.
Ejemplo (grano de transacción, “una fila por línea de pedido”):
SELECT d . calendar_date , SUM ( f . sales_amount ) AS daily_sales FROM fact_sales f JOIN dim_date d ON f . date_key = d . date_key JOIN dim_product p ON f . product_key = p . product_key WHERE p . category = 'Widgets' GROUP BY d . calendar_date ;Este agregado sigue siendo válido porque la medida es aditiva y las filas de hechos comparten un único grano declarado. [ 5 ]
Referencias
- 1 2 Kimball & Ross - El kit de herramientas para almacenes de datos, 2.ª ed. [Wiley 2002]
- ↑ Kimball, Ralph (2008). The Data Warehouse Lifecycle Toolkit, 2.ª edición . Wiley. ISBN 978-0-470-14977-5.
- ↑ Davide, Mauri. "Tabla de hechos de instantánea temporal" .
- 1 2 3 "Proceso de diseño dimensional de cuatro pasos" . Kimball Group . Consultado el 15 de agosto de 2025 .
- 1 2 "Grano" . Kimball Group . Consultado el 15 de agosto de 2025 .
- ↑ "Tablas de hechos" . Kimball Group . Consultado el 15 de agosto de 2025 .
- ↑ "Consejo de diseño n.° 13: Cuándo se puede usar una tabla de hechos como tabla de dimensiones" (PDF) . Kimball Group . Consultado el 15 de agosto de 2025 .
- ↑ "Hechos aditivos, semiaditivos y no aditivos" . Kimball Group . Consultado el 15 de agosto de 2025 .
- Almacenamiento de datos