Tablas y entidades de hechos

Una tabla de hechos o una entidad de hecho es una tabla o entidad de un esquema de estrella o copo de nieve que almacena medidas para medir el negocio, como las ventas, el coste de las mercancías o las ganancias.

Las tablas y entidades de hechos agregan medidas o los datos numéricos de un negocio. Para medir los datos de una tabla o entidad de hechos, todas las medidas de una tabla o entidad de hechos debe corresponder al mismo grano.

Para obtener los datos más útiles de una tabla o entidad de hechos, debe utilizar medidas que sean numéricas y aditivas. La utilización de estas medidas garantiza que los datos se puedan recuperar y agregar de manera que el negocio pueda hacer uso de la riqueza de datos de negocio de la base de datos.

Las tablas y entidades de hechos también contienen claves foráneas a las tablas de dimensiones. Estas claves foráneas relacionan cada fila de datos de la tabla de hechos con sus correspondientes dimensiones y niveles.

Las tablas y entidades de hechos utilizan claves primarias que son claves compuestas. Una clave compuesta consta de un subconjunto de otras claves. Si una tabla o entidad de un modelo dimensional utiliza una clave compuesta, esa tabla será una tabla o entidad de hechos. El uso de claves compuestas hace que la tabla o entidad tenga una relación de muchos a uno con otras tablas y entidades del modelo dimensional.

Tipos de tablas y entidades de hechos

Hay tres tipos de tablas y entidades de hechos:
Transacción
Una tabla de hechos de transacciones o entidad de hechos de transacciones registra una fila por transacción.
Periódico
Una tabla de hechos periódicos o entidad de hechos periódicos almacena una fila para un grupo de transacciones que se realizan a lo largo de un período de tiempo.
Acumulativo
Una tabla de hechos acumulativos o entidad de hechos acumulativos almacena una fila para el tiempo de vida total de un suceso. Un ejemplo de una tabla o entidad de hechos acumulativos registra el tiempo de vida de una aplicación de tarjetas de crédito desde el momento en que se envía al momento en que se acepta.
Nota: No puede especificar explícitamente el tipo de tabla o entidad de hechos utilizando el entorno de trabajo. Para documentar los tipos de tablas de hechos que está utilizando, puede añadir la información a la documentación.
En la tabla siguiente se comparan los distintos tipos de tablas y entidades de hechos. En la tabla se enfatiza que cada una tiene un tipo distinto de grano y que hay diferencias en cómo se realizan en cada una las operaciones de inserción y actualización. Por ejemplo, en las tablas y entidades de hechos periódicos, sólo se realizan operaciones de inserción. Sin embargo, en una tabla o entidad de hechos acumulativos, la fila se inserta primero, y cuando se consigue un objetivo y se hacen disponibles medidas adicionales, se actualiza posteriormente la tabla o entidad.
Tabla 1. Comparación de tipos de tablas de hechos
Característica Transacción Periódico Acumulativo
Grano Una fila por transacción Una fila por período de tiempo Una fila para el tiempo de vida total de un suceso
Dimensión Dimensión de fecha en el nivel más bajo de granularidad Dimensión de fecha en la granularidad de fin de período Varias dimensiones de fecha
Número de dimensiones Más que el tipo de hechos periódicos Menos que el tipo de hechos de transacciones Número más alto de dimensiones cuando se compara con otros tipos de tablas de hechos
Dimensiones conformadas Utiliza dimensiones conformadas compartidas Utiliza dimensiones conformadas compartidas Utiliza dimensiones conformadas compartidas
Medidas Se relaciona con actividades de transacciones Se relaciona con actividades periódicas Se relaciona con actividades que tienen un tiempo de vida definitivo
Tamaño de base de datos Es el mayor tamaño. En el nivel de grano más detallado, tiende a crecer muy rápido. Más pequeña que la tabla de hechos de transacciones, ya que el grano de la dimensión de fecha y hora es significativamente mayor. La de tamaño más pequeño cuando se compara con las tablas de hechos periódicos y de transacciones.
Rendimiento Funciona bien y se puede mejorar eligiendo un grano por encima del más detallado Funciona mejor que otros tipos de tablas de hechos, ya que los datos se almacenan en un grano menos detallado Funciona bien
Insertar
Actualizar No No Sí, cuando se alcanza un objetivo en una actividad determinada.
Suprimir No No No
Crecimiento de tabla de hechos Muy rápido Lento en comparación con una tabla de hechos basada en transacciones Lento en comparación con la tabla de hechos periódicos y de transacciones
Necesidad de tablas de agregación Alta, principalmente porque los datos se almacenan a un nivel muy detallado Baja o muy baja, principalmente porque los datos ya están almacenados en un nivel alto de agregación Media, porque los datos se almacenan principalmente en el nivel diario. Sin embargo, los datos de las tablas de hechos acumulativos se encuentran en un nivel inferior al nivel de transacción.

Tabla de hechos de ejemplo

En la tabla siguiente se realiza un seguimiento de las ventas de los productos vendidos por la empresa ficticia Great Outdoors:
GOSALESDW.SLS_SALES_FACT
ORDER_DAY_KEY
ORGANIZATION_KEY
EMPLOYEE_KEY
RETAILER_KEY
RETAILER_SITE_KEY
PRODUCT_KEY
PROMOTION_KEY
ORDER_METHOD_KEY
SALES_ORDER_KEY
SHIP_DAY_KEY
CLOSE_DAY_KEY
QUANTITY
UNIT_COST
UNIT_PRICE
UNIT_SALE_PRICE
GROSS_MARGIN
SALE_TOTAL
GROSS_PROFIT

Comentarios