Saltar la navegación

Tiempo

En un DW, la creación y el mantenimiento de una tabla de Dimensión Tiempo es obligatoria, y la definición de granularidad y estructuración de la misma depende de la dinámica del negocio que se esté analizando. Toda la información dentro del DW posee su propio sello de tiempo que determina la ocurrencia de un Hecho específico, representando de esta manera diferentes versiones de una misma situación.

La Dimensión Tiempo NO es sola una secuencia cronológica representada de forma numérica, sino que mantiene niveles jerárquicos especiales que son representativos de las actividades de la organización. Esto se debe a que l@s usuari@s podrán por ejemplo analizar las ventas realizadas teniendo en cuenta el día de la semana en que se produjeron, quincena, mes, trimestre, semestre, año, estación, etc.

La forma de diagramar la Dimensión Tiempo es muy sencilla, se debe tomar el campo que indique la fecha en que sucedieron los Hechos y luego analizar dicha fecha para crear los campos requeridos.

Veamos un ejemplo:


En el ejemplo anterior se ha definido más de una Jerarquía para la Dimensión tiempo. Esto es lógico ya que hay Jerarquías que NO son compatibles, por ejemplo anio-semestre-bimestre es una Jerarquía compatible, pero anio-trimestre-bimestre NO lo es ya que NO todos los bimestres están contenidos en un trimestre.

Existen muchas maneras de diseñar esta tabla, por lo cual debemos evaluar la temporalidad de los datos, la forma en que trabaja la organización, los resultados que se esperan obtener del DW relacionados con una unidad de tiempo y la flexibilidad que se desea obtener de dicha tabla.

Fecha & Hora

Si se requiere analizar los datos por fecha (año, mes, día, etc) y por hora (hora, minuto, segundo, etc), lo más recomendable es confeccionar dos tablas de Dimensión Tiempo:

  • una conteniendo los datos referidos a la fecha y
  • la otra, con los datos referidos a la hora.


Día Juliano

Si bien, el lenguaje SQL ofrece funciones del tipo DATE, en la tabla de Dimensión Tiempo, se modelan y presentan datos temporales que, en algunos casos, son complejos de calcular en una consulta.

Es conveniente mantener en la tabla de Dimensión Tiempo un campo que se refiera al día Juliano. El día juliano se representa a través de un número secuencial e identifica unívocamente cada día. Mantener este campo permitirá la posibilidad de realizar consultas que involucren condiciones de filtrado de fechas desde-hasta, mayor que, menor que, etc, de manera sencilla e intuitiva.

Por ejemplo, si a partir de determinada  fecha se desean analizar los datos de los 81 días siguientes:

  • el valor desde sería el día Juliano de la fecha en cuestión y
  • el valor hasta sería igual a desde más 81.