Saltar al contenido
Datacon Alex— inicio
YouTube
← Glosario

Modelado

Tabla de hechos

en inglés: Fact Table

La tabla central de un modelo dimensional. Guarda un renglón por cada evento medible del negocio, con las métricas que se suman y las llaves que apuntan a las dimensiones.

Si una tabla contesta "¿cuánto?", es de hechos. Si contesta "¿de qué?" o "¿de quién?", es de dimensión.

Lo primero es la granularidad

Antes de crear una sola columna tienes que poder terminar esta frase: "cada renglón de esta tabla representa...".

  • "…una línea de un pedido" → grano fino, máximo detalle.
  • "…un pedido completo" → ya perdiste el detalle por producto.
  • "…las ventas de una tienda en un día" → agregada, no puedes bajar de ahí.

Elegir mal el grano es el error más caro del modelado, porque no se arregla después: si guardaste el total del pedido, la venta por producto ya no existe y no hay consulta que la reconstruya. En la duda, guarda el grano más fino que puedas.

Tipos de métrica

No todas las columnas numéricas se pueden sumar igual:

  • Aditivas: se suman en cualquier dimensión. El importe de una venta.
  • Semiaditivas: se suman en unas dimensiones pero no en el tiempo. Un saldo de cuenta: sumar el saldo de enero y el de febrero no significa nada; el promedio sí.
  • No aditivas: no se suman nunca. Porcentajes y razones. Guarda el numerador y el denominador por separado y calcula la razón al final.
-- Mal: el promedio de un promedio no es el promedio.
SELECT AVG(margen_pct) FROM hechos_ventas;

-- Bien: guarda los componentes y divide hasta el final.
SELECT SUM(utilidad) / SUM(importe) AS margen_pct
FROM hechos_ventas;

Tres sabores

  • Transaccional: un renglón por evento cuando ocurre. El más común.
  • Instantánea periódica: una foto del estado cada cierto tiempo. Inventario al cierre de cada día.
  • Instantánea acumulada: un renglón por proceso que se va actualizando con cada hito. Un pedido con sus fechas de creado, pagado, enviado y entregado.

Siguientes en la fila