Las tablas fact son parte fundamental de un modelo dimensional que almacena las medidas resultantes de los eventos sucedidos en los procesos de la organización.
El término fact representa una medida de negocio. Alguna unidad de medida monetaria o cantidad de productos en inventario. Cada registro corresponde a un evento sucedido en un proceso de negocio. Todos los facts que pertenecen a una tabla fact debe estar almacenada con el mismo nivel de granularidad. La granularidad de las tablas fact se reprensentan en una de tres categorías: transaction, periodic snapshot fact table o accumulated snapshot fact table. Las medidas suelen representarse como valores continuos y no como texto, debido a la dificultad de generar análisis sobre estos.
La estructura general de una tabla fact consiste en dos grupos de campos: llaves foráneas hacía dimensiones o medidas de los procesos. Es por esto que la estructura de estas tablas se debe basar en las actividades de la empresa y no influenciado por los eventuales reportes que se requieran. Además es posible que contengan degenerated dimensions y algunas fechas.
Todas las facts tienen asociadas dos o más dimensiones, almacenando las llaves prímarias de las dimensiones. La llave primaría de una tabla fact generalmente tiene su llave primaría compuesta por un subconjunto de llaves foráneas.
Con las consideraciones presentadas en data vault, es posible implementar la idea de hash key para las identificaciones de los registros en dimensiones y sus asociaciones en tablas fact. Las tablas fact y dimension se combinarán mediante joins.
Se debe identificar si la medidas es aditiva, semi-aditiva o no-aditiva. Esto dependerá si es posible agrupar las medidas en función de todas, de pocas o de ninguna dimension.
Cuando la medida de un evento es desconocido, se debe establecer como null el campo en base de datos, pues el manejo por las funciones de agregación será el correcto. Sin embargo, en las llaves foráneas hacía las dimensiones esto se debe evitar, pues se perderá la integridad referencial.
Algunas medidas llamadas conformed facts son presentadas en distintas tablas fact, sin embargo, es importante reconocer si ambas presentan la misma información y pueden ser confrontadas, de lo contrario será importante que se nombren diferente para evitar confusiones.
Transaction Fact Table
Cada registro corresponde a un evento sucedido en el proceso de negocio en un punto de espacio y tiempo. Las tablas fact atómicas permiten las mayores operaciones de slicing y dicing de los datos transaccionales.
Periodic Snapshot Fact Table
Cada registro sumariza varios eventos ocurridos en una periodicidad particular, como día, semana o mes. La granularidad corresponde a estos intervalos de tiempo y no a las transacciones individuales. Estas tablas suelen ser uniformes, pues aunque no existan datos de eventos, un registro se inserta en la tabla fact conteniendo un cero o null en las columnas de medidas.
Accumulating Snapshot Fact Table
Cada registro sumariza los eventos ocurridos en una serie de etapas predecibles entre el inicio y fin de un proceso. Existe una dimension de fecha por cada etapa crítica del proceso. Cada registro representa una instancia del proceso, y se va actualizando a medida que la secuencia del proceso se ejecuta. Generalmente se incluyen campos que miden el retraso entre cada etapa y contadores que miden las etapas completadas.
Factless Fact Table
Existen eventos que no tienen mediciones asociadas y sólo es deseable medir la cantidad de relaciones existentes. Ante estos escenarios se crean tablas fact que solemente contienen las llaves foráneas a las dimensiones. Las consultas ejecutadas sobre estas tablas suelen construirse en dos partes: 1) una base que contenga todas las posibilidades de eventos que pueden suceder 2) las combinaciones que realmente sucedieron. Al substraer estas dos consultas es posible determinar todos los eventos que NO sucedieron.
Aggregate Fact Table
Son tablas fact que contienen valores númericos agrupados con el propósito de mejorar el desempeño de las consultas. Un diseño apropiado se debe comportar como índices de base de datos. Estas tablas fact contienen llaves foráneas hacía los shrunken conformed dimensions, así como datos agregados de las tablas fact atómicas.
Consolidated Fact Table
Es conveniente combinar facts de múltiples procesos en una tabla consolidada, si se puede expresar en la misma granularidad. Se deben considerar para generar métricas cruzadas que generalmente se suelen analizar juntos.
Es posible virtualizar la construcción de las tablas fact mediante el uso de vistas que se ejecuten sobre tablas bridge, que ya contenderían las llaves primarias necesarias para generar pocos joins en su construcción, además de algunos campos calculados. Y en caso el desempeño de las vistas sea pobre, será la mejor opción para mejorar el desempeño de la construcción física.
Siguiente: Modelado - Dimensions | Indice
Saludos,
Brian Estrada