Modelado dimensional Hugo M. Castro
Modelo de datos En los sistemas transaccionales Modelo de entidad-relación Protección de integridad Altas-bajas-modificaciones Eficiencia en los procesos En los sistemas de soporte a la decisión Modelo dimensional
Modelado dimensional Variables del negocio Medidas Dimensiones Valores numéricos Sumas, consolidaciones, operaciones aritméticas Dimensiones Textuales Filtros
Modelo dimensional Diferencias El modelo de datos dimensional es lo que hace que un Data Warehouse sea una base de datos orientada al negocio
Diseñamos el Data Warehouse Elegimos el proceso de negocios que vamos a modelar: Ventas diarias, manejo de stock, … Elegimos la granularidad (nivel de detalle) del proceso de negocios Elegimos las dimensiones que van a intervenir Elegimos los hechos o medidas que se van a utilizar
Diagrama Lógico Es una representación de la estructura que va a tener el Data Warehouse Se puede revisar con el profesional de negocios Comprende Descripción de medidas y granularidad Descripción de las dimensiones
Medidas Valores numéricos Cantidad Importe Sumas, consolidaciones, operaciones aritméticas Granularidad Por fecha Por producto Por sucursal
Medidas Sucursales Fecha Sucursal Día Ventas Cantidad Importe Productos Producto
Dimensiones Variables del negocio Son de tipo textual Fechas, productos, sucursales Son de tipo textual Sirven para mostrar, agrupar, filtrar Valores numéricos categorizados Rangos de edades, niveles de precios Atributos
Relaciones entre atributos Uno-uno A cada código de artículo le corresponde una descripción A cada descripción le corresponde un código de artículo Ambos atributos forman parte de la misma dimensión
Relaciones entre atributos Uno-muchos Productos Una familia de productos comprende varios productos Un tipo de producto comprende varias familias La relación jerárquica es tipo > familia > producto
Dimensiones Tipo Familia Producto
Dimensiones Jerarquías múltiples Puede ocurrir que además de agrupar los productos por tipo y familia sea útil agruparlos por nivel de precio (caro, mediano, barato) Esto se representa con una doble jerarquía tipo > familia > producto nivel de precio > producto
Dimensiones Nivel de precios Tipo Familia Producto
Relaciones entre atributos Muchos-muchos Cada producto se vende en varias sucursales En cada sucursal se venden varios productos Estos atributos corresponden a dimensiones diferentes Se relacionan a través del diagrama de medidas
Medidas Sucursales Fecha Sucursal Día Ventas Cantidad Importe Productos Producto
Estructura de tablas Tabla de hechos Se construye sobre la base del diagrama de medidas Contiene una fila por cada acontecimiento que debe reflejar Tiene dos partes: Las referencias a las dimensiones Las medidas
Tabla de Hechos Fecha Dimensiones Producto Sucursal Importe Medidas Unidades Tickets
Estructura de tablas Tabla de dimensión Se construye sobre la base del diagrama de dimensión respectivo Contiene atributos descriptivos De tipo textual y discreto Para seleccionar Para agrupar Para mostrar No contiene valores que intervengan en cálculos Valores numéricos categorizados
Estructura de tablas Los códigos son un atributo más Se incluyen las decodificaciones como atributo No hay que confiar en que los usuarios conocen los códigos
Estructura de tablas Hay una tabla de dimensión por cada dimensión En cada tabla de dimensión se colocan todos los atributos de esa dimensión que los profesionales de negocios consideran relevantes
Atributos Para la dimensión Fecha El día El mes El año Feriado Semana Santa Día de la madre
Atributos Para la dimensión Producto El código de artículo La descripción El tipo de envase El tamaño Dietético El nivel de precio
Tabla de dimensiones Producto-ID Descripción Familia Tipo Niv. Precio
Esquema Estrella Importe Unidades Tickets Producto-ID Fecha-ID Cód.Artículo Fecha-ID Día Artículo Mes Producto-ID Familia Año Tipo Sucursal-ID Niv. Precio Sucursal-ID Importe Sucursal Unidades Distrito Tickets Zona
Esquema Estrella La tabla de hechos está en tercera forma normal No tiene filas repetidas Las tablas de dimensiones están en segunda forma normal Todos los productos de una misma familia llevan como atributo el nombre de la familia
Esquema Estrella La tabla de hechos ocupa 95-98% del volumen total de un Data Warehouse En comparación las tablas de dimensiones ocupan poco espacio Los datos en un Data Warehouse no se modifican Los únicos joins son los de la tabla de hechos con cada tabla de dimensiones Mejor rendimiento en consultas
Esquema Copo de Nieve Familia-ID Producto-ID Descripción Descripción
Esquema Copo de Nieve En un esquema Copo de Nieve todas las tablas (hechos y dimensiones) están en tercera forma normal Es aplicable para tablas de dimensiones (p.ej. Producto o Cliente) con una gran cantidad de filas
Manejo de joins En un SELECT se eligen las tablas de las que se va a hacer join Con WHERE se especifican las condiciones de join Una vez efectuado el join con WHERE se especifican los criterios de selección de las filas que interesan
Manejo de joins Si la búsqueda se hace sobre un Data Warehouse de esa forma Se efectúan los joins de la tabla de hechos con las tablas de dimensiones La tabla resultante tiene millones de filas Se elige una parte de ellas y se descarta el resto Hay mucho trabajo desperdiciado
Manejo de joins Cuando el motor de Base de Datos debe procesar un Data warehouse Primero establece las restricciones sobre las tablas de dimensiones Luego efectúa los joins con las filas de la tabla de hechos que realmente se usan
Tipos de Medidas Aditivas Se pueden sumar a lo largo de todas las dimensiones Importes Tiene sentido sumarlos por producto, por sucursal, por fecha
Medidas Semiaditivas Se pueden sumar a lo largo de una determinada dimensión Cantidad de unidades vendidas Sólo dimensión producto Carece de sentido sumarla en otras dimensiones Nivel de stock
Medidas No aditivas No tiene sentido sumarlas a lo largo de ninguna dimensión Porcentaje de ganancia Temperatura
Otras formas de consolidación Promedio Máximo Mínimo Cantidad de casos
Cómo se conecta la tabla de hechos a las de dimensión Tiene que verificarse la integridad referencial entre la tabla de hechos y las tablas de dimensión En la tabla de hechos : cada dimensión tiene una clave foránea (foreign key) que apunta a la fila que corresponde en la tabla de dimensión En la tabla de dimensión : esa clave tiene que ser una clave primaria (primary key)
Cuál es esa clave ? Opción 1 : la clave provista por los sistemas fuente (ej. código de artículo, código de cliente) Se la llama clave natural, clave del negocio, clave operativa, clave inteligente
Clave Inteligente PRODUCTO Cód. Artículo TABLA DE HECHOS Tiene significado para el negocio
Clave Inteligente Desventajas Incluye lógica del negocio (ej. parte del código de artículo es el código de proveedor) Requiere el uso conjunto de 2 ó más campos para identificar unívocamente a la fila (ej. código de artículo, fecha de vigencia) Es de longitud considerable (ej. alfanumérico de 15 ó más posiciones)
Clave Inteligente Desventajas Los códigos son reutilizados en los sistemas fuente La estructura o longitud puede cambiar con el tiempo La forma de identificar un elemento cambia con el tiempo
Clave Inteligente Tiene dos funciones Aportar conocimiento sobre el negocio Conectar la tabla de hechos con una tabla de dimensiones Ocupa mucho espacio en la tabla de hechos ¿Por qué no separar las funciones?
Clave Subrogada Opción 2 : generar dentro del ámbito del Datawarehouse una clave numérica sin significado para el negocio (número entero asignado en forma secuencial) Se la llama clave artificial, clave entera, clave subrogada
Clave Subrogada Sólo se usa para conectar las tablas PRODUCTO Producto-ID TABLA DE HECHOS Cód. Artículo Producto-ID No tiene significado para el negocio
Clave Subrogada Tiene la única función de conectar la tabla de hechos con la tabla de dimensiones Es un número consecutivo (el número de fila en la tabla de dimensiones respectiva) Ocupa menos espacio en la tabla de hechos (la más voluminosa) La clave inteligente aparece como un atributo más
Clave Subrogada Ventajas La lógica para identificar la fila de la tabla de dimensión que corresponde se hace en el proceso de ETL y no en el momento de la consulta El datawarehouse se independiza de cambios en el manejo de claves de los sistemas fuente Permite manejar dimensiones de cambio lento
Clave Subrogada Desventajas Hay que manejar y administrar estas claves en el proceso de ETL Esta complejidad adicional se ve compensada en el mediano y largo plazo.
Dimensiones de cambio lento El horizonte temporal del Data Warehouse es mayor que el de los sistemas transaccionales El Data Warehouse debe reflejar el paso del tiempo pero no perder la historia Un producto cambia de denominación Una sucursal cambia de distrito
Dimensiones de cambio lento ¿Qué hay que hacer? Interpretación del profesional de negocios ¿Queremos guardar la historia? ¿Con qué detalle?
Dimensiones de cambio lento Distintos tipos Manejan en forma diferente la conservación de la historia Se define para cada atributo No hay un tipo que sea mejor que otro Interpretación del profesional de negocios Es una técnica que se llama SCD (slowly changing dimensions)
Dimensiones de cambio lento Tipo 1 No conserva la historia Modifica el datos en la tabla de dimensiones
Dimensiones de cambio lento PRODUCTO Enero 2008 146 267894 HECHOS Yogur dietético 146 TIPO 1
Dimensiones de cambio lento PRODUCTO Octubre 2008 146 267894 HECHOS Yogur BC 146 TIPO 1
Dimensiones de cambio lento Tipo 2 Cuando un atributo cambia de valor se agrega una nueva fila a la tabla de dimensiones Los nuevos hechos apuntan a la nueva fila Los hechos anteriores continúan apuntando a la fila anterior
Dimensiones de cambio lento PRODUCTO Enero 2008 146 267894 HECHOS Yogur dietético 146 TIPO 2
Dimensiones de cambio lento PRODUCTO Octubre 2008 542 267894 HECHOS Yogur BC 542 TIPO 2
Dimensiones de cambio lento Tipo 3 Guarda una cantidad limitada de valores históricos de atributos seleccionados El profesional de negocios debe identificar el valor correspondiente
Dimensiones de cambio lento PRODUCTO 385 HECHOS 267894 Denom. actual 385 Denom. anterior Denom. original TIPO 3
Dimensiones de cambio no tan lento Problema Tabla de dimensiones con gran cantidad de filas Atributos que cambian con cierta frecuencia Aumento desmedido de la cantidad de filas
Minidimensiones El caso Dimensión clientes con gran cantidad de filas Hay cambios de tipo socioeconómico Nivel de ingresos Estado civil Rango de edad
Minidimensiones Solución Se crea una dimensión que agrupa a estos atributos Nivel de ingresos Rango de edad Estado civil Personas a cargo
Dimensiones de cambio no tan lento Cada fila de esa tabla de dimensiones contiene un juego de valores posibles de cada uno de esos atributos Estado civil: Casado Ingresos: entre $1000 y $2000 Edad: entre 50 y 60 años Más de 3 personas a cargo
Minidimensiones SOCIOEC 67 CLIENTE 1518 67 HECHOS 1518 67 Casado 1000-2000 50 – 60 Más 3 pers 67 HECHOS 1518 67
Tablas de hechos sin medidas Tabla de hechos que se refiere a la asistencia de alumnos a distintos cursos Tabla de hechos correspondientes a un censo Cada fila de la tabla de hechos identifica un caso a estudiar No existen medidas numéricas para sumar
Tablas de hechos sin medidas Fecha-ID Curso-ID N° Curso Fecha-ID Alumno-ID Alumno-ID N° Matrícula Curso-ID Aula-ID Profesor-ID Ubicación Profesor-ID Aula-ID N° Legajo