VISITAS (Un Click es bien recibido)

jueves, 22 de septiembre de 2011

Jerarquía de Tiempos I(modelo de datos simplificado)

Un tema muy importante en esto que se ha dado en llamar Business intelligence es una buena jerarquía de tiempo.
Antes de nada solo decir que una buena jerarquía es fundamental para posteriormente realizar cualquier tipo de informe con cualquier herramienta de reporting. Sin ella es difícil poder analizar cualquier tipo de información desde el tipo de vista temporal, lo cual es imprescindible.
Practicando para no oxidarme estaba haciendo una, y se me ocurrió que a lo mejor lo podía compartir y con sugerencias mejorarla poco a poco.
Como pronto este es el modelo de datos que la representa, por cierto el modelo está realizado con la herramienta “Data Modeling” de MySQL:

La jerarquía es muy sencilla como se puede ver, para describir un poco cada campo con una mínima explicación:
  • Tabla T_Year: Contiene simplemente años con una serie de atributos que nos van a interesar a la hora de poder hacer informes:
    • idYear: año, su formato es YYYY.
    • Num_dias_Anyo: Días del año.
    • Bisiesto: 0=No es bisiesto, 1= si es bisiesto.
    • idYearPrevio: añosprevio.
    • idYearSiguiente: Año siguiente.
  • Tabla T_Trimeste: Como su nombre indica es una agrupación de los años en trimestres. Sus campos son:
    • idTrimestre: Identificación del trimestre: YYYYN
    • Descripcion_Trimestre: Descripción en texto, con valores: Primer Trimestre, Segundo Trimestre, Tercer Trimestre y Cuarto Trimestre.
    • idTrimestrePrevio: Identificación del trimestre previo.
    • IdTrimestreSiguiente: Identificación del trimestre siguiente.
    • idYear: Clave externa a T_Year.
    • NTrimestre: Valores del 1 al 4.
  • Tabla T_Cuatrimeste: Como su nombre indica es una agrupación de los años en cuatrimestres. Los campos que contiene:
    • idCuatrimestre: Identificación del cuatrimestre: YYYYN
    • Descripcion_cuatrimestre: Descripción en texto, con valores: Primer Cuatrimestre, Segundo Cuatrimestre, Tercer Cuatrimestre y Cuarto Cuatrimestre.
    • idCuatrimestrePrevio: Identificación del Cuatrimestre previo.
    • IdCuatrimestreSiguiente: Identificación del Cuatrimestre siguiente.
    • idYear: Clave externa a T_Year.
    • NCuantrimestre: Valores del 1 al 3.
  • Tabla T_Mes: Pues para que muchas explicaciones, contiene fechas en formato YYYYMM.
    • idMes : Identificación del mes.
    • Descripcion_Mes : Descripción del mes: Enero, Febrero…
    • idYear: identificación del Año.
    • NMes: Numero del mes : 1= Enero, 2= Febrero…
    • NumDiasMes : Número de días del mes correspondiente.
    • idMesPrevio: Identificación del mes previo.
    • idMesSiguiente Identificación del mes siguiente.
    • idTrimestre: Identificación del trimestre al que pertenece el mes.
    • idCuatrimestre: Identificación del Cuatrimestre al que pertenece el mes.
    • PrimerDiaMes: Primer día del mes.
    • UltimoDiaMes: Último día del mes.
  • Tabla T_Dia: Esta tabla contiene las fechas en su mayor detalle, los campos que componen la estructura
    • idDia : Identificación del día con formato YYYMMDD
    • Fecha: Otra representación del día en un formato más usual DD-MM-YYYY
    • Descripcion_Dia: Día de la semana: Lunes, Martes…
    • IdDiaPrevio: Identificación del día anterior.
    • idDiaSiguiente: Identificación del día siguiente.
    • Festivo: Indicará si el día es o no festivo.
    • FinSemana: Indica si el día cae en fin de semana.
    • Semana: Semana del año en al que se encuentra el día.
    • idees: Identificación del mes al que pertenece.
    • DiaDelAnio: Día del año.
En la próximas entradas pondré el SQL para generar el esquema por si alguien le quiere, y los procedimientos de carga de las tablas.
Si alguien me quiere sugerir ideas para implementarlo serán muy bien recibidas.

No hay comentarios: