Modelo dimensional de un proceso de negocio

9,629 views

Published on

Modelo dimensional de un proceso de negocio

  1. 1. Miguel OrqueraBasado en el libro: The Data Warehouse ToolkitSecond Edition. The Complete Guide to DimensionalModeling. Ralph Kimball. Margy Ross. 2002
  2. 2. CONCEPTOS Y TERMINOLOGIA DEL MODELAMIENTO DIMENSIONAL Hay un amplio acuerdo entre los usuarios de DW de que elmodelamiento dimensional es la mejor forma de presentarla información porque es la mejor manera de reunir lasprincipales metas de diseño: Presentar la información a los usuarios en la forma más simple posible. Retornar los resultados a los usuarios lo más rápido posible. Proveer información relevante que guarde pistas de los procesos subyacentes.
  3. 3. CONCEPTOS Y TERMINOLOGIA DEL MODELAMIENTO DIMENSIONAL  Albert Einstein capturó la principal razón por la que se usa un modelo dimensional cuando dijo: “Hacer las cosas tan simples como sea posible, pero no demasiado simples”. Entonces, la simplicidad es relativa. El modelo dimensional es mucho más fácil de entender para los usuarios que un sistema basado en un modelo normalizado de un sistema fuente típico, aunque un modelo dimensional típicamente contiene exactamente la misma información que un modelo normalizado.
  4. 4. La información se agrupa en categorías  Un modelo dimensional tiene mucho menos tablas y la información es agrupada en categorías de negocio coherentes que tienen sentido para los usuarios. Estas categorías ayudan a los usuarios a navegar por el modelo ya que categorías enteras pueden ser pasadas por alto si no son útiles para un determinado análisis.
  5. 5. No es tan simple  Desafortunadamente, “tan simple como sea posible” no quiere decir que el modelo dimensional necesariamente es simple. El modelo debe reflejar el negocio, y los negocios son típicamente complejos. Si se simplifica demasiado, para presentar solo datos agregados, el modelo pierde información que es crítica para entender el negocio. No importa como se modelen los datos, la complejidad intrínseca de los datos contenidos es en último término la razón por la que muchas personas utilizan reportes estructurados y aplicaciones analíticas para acceder al DW.
  6. 6. Las consultas son más rápidas  En el ambiente relacional, el modelo dimensional ayuda al rendimiento en las consultas a causa de la desnormalización involucrada en la creación de dimensiones. Pre juntando varias jerarquías y tablas de consulta, el optimizador debe consideran muchas menos junturas y crear muy pocas tablas temporales intermedias. Las consultas utilizando el SQL Server relacional funcionan mucho mejor sobre una estructura dimensional que sobre una estructura completamente normalizada. En un ambiente de Análisis Services OLAP, el motor está específicamente diseñado para soportar modelos dimensionales. El rendimiento se logra en gran parte pre juntando datos relacionados en las dimensiones.
  7. 7. ¿Qué es un modelo dimensional?  Un modelo dimensional consta de una (o varias) tablas de hechos central y sus dimensiones asociadas. El modelo dimensional es también llamado modelo en estrella porque es similar a una estrella, con la tabla de hechos en el medio y las dimensiones formando las puntas de la estrella. Desde la perspectiva de un modelo de datos relacional, el modelo dimensional consiste en una tabla de hechos normalizada, con tablas dimensionales desnormalizadas.
  8. 8. TABLA DE HECHOS  La tabla de hechos es la principal de un modelo dimensional; es allí donde están almacenadas las mediciones numéricas de rendimiento del negocio. Se llama hecho a una medida del negocio. Por ejemplo, en una cadena de supermercados, una tabla de hechos registra cómo se venden los productos, anotando la cantidad de cada producto que se vende y la cantidad de dinero que se obtiene por las ventas, cada día, para cada producto en cada tienda.
  9. 9. Tabla de hechos de Ventas Diarias  FactVentasDiarias FechaCodigo (FK) ProductoCodigo (FK) TiendaCodigo (FK) CantidadVendida ValorEnDolares
  10. 10. Medidas del negocio  Una medida es tomada en la intersección de todas las dimensiones (día, producto y tienda). Esta lista de dimensiones define la granularidad de la tabla de hechos y nos dice cuál es el alcance de las mediciones. Una fila en una tabla de hechos corresponde a una medida. Todas las medidas en la tabla de hechos deben tener la misma granularidad.
  11. 11. Los hechos son numéricos y sumables  Los hechos más usados son numéricos y sumables, tales como la cantidad en dólares de cada venta. El que sean sumables es muy importante porque en las aplicaciones de DW casi nunca se recupera una sola fila de la tabla de hechos, más bien se recuperan cientos, miles o millones de filas de hechos a la vez, y lo mejor que se puede hacer con tantas filas es sumarlas o resumirlas. En el ejemplo, no importa qué porción de la base de datos el usuario elija, podemos sumar las cantidades y dólares y obtener un total válido.
  12. 12. Hechos semisumables y no sumables  También hay hechos semisumables y aún otros que no son sumables. Los semisumables pueden sumarse solo en ciertas dimensiones, mientras los no sumables no lo son en ninguna circunstancia. Con los no sumables se deben usar contadores y promedios si se quiere hacer un resumen de las filas o se reduce a imprimir las filas de hechos de una en una. Esto sería un ejercicio aburrido en una tabla de hechos con un billón de filas.
  13. 13. Medidas tipo texto  Es posible que la medida de un hecho sea textual, pero es muy raro. Cuando esto sucede, el texto es una medida de algo, y son textos que provienen de una lista predefinida. Es preferible poner medidas textuales en las dimensiones porque pueden ser correlacionados con otros atributos textuales dimensionales y ahorran mucho espacio. No se debe almacenar texto redundante en las tablas de hechos. A menos que cada fila de la tabla de hechos tenga texto único, permanece en la tabla de dimensiones. Un hecho con datos en texto libre no es posible en un DW porque es imposible de analizar.
  14. 14. Las tablas de hechos son muy grandes  Si no hay ventas un determinado día, en una determinada tienda para un determinado producto, esa fila no se registra en la tabla de hechos. No se debe llenar la tabla de hechos con ceros, pues no sirven para el análisis. A pesar de esto, la tabla de hechos consume normalmente más del 90% del espacio de la BD dimensional. Las tablas de hechos tienden a ser profundas en términos del número de filas, pero estrechas en el número de columnas.
  15. 15. Granularidad de las tablas de hechos  La granularidad de las tablas de hechos cae en una de las tres categorías: transacción, imágenes periódicas y acumulación de esas imágenes. Las tablas de hechos con granularidad a nivel de transacción son las más comunes.
  16. 16. Claves en las tablas de hechos  Todas las tablas de hechos tienen dos a más claves foráneas que conectan a las claves primarias de las tablas dimensionales. Por ejemplo, la clave de producto en la tabla de hechos empatará con la clave de un producto de la tabla dimensional Producto, a través de la integridad referencial. La tabla de hechos tiene su propia clave primaria conformada por un grupo de claves foráneas que es llamada clave compuesta o concatenada. Cada tabla que expresa una relación con cardinalidad muchos a muchos es una tabla de hechos, las demás son tablas de dimensiones. En un modelo dimensional, las tablas de hechos expresan una relación de cardinalidad muchos a muchos entre dimensiones.
  17. 17. Clave primaria en una tabla de hechos  Solamente un subconjunto de las claves foráneas que tiene una tabla de hechos basta para identificar a cada fila. De una docena o más de claves, pueden ser 2 o 3. Por ejemplo, código de venta y código de producto. En la mayoría de casos no hay ninguna ventaja en crear una clave primaria con un código en la tabla de hechos, pues la tabla se hace más grande, y un índice sobre este atributo no tiene ningún valor. Sin embargo, puede ser útil para facilitar la administración del sistema y cuando puede haber varias filas con todos los valores iguales.
  18. 18. TABLAS DE DIMENSIONES  Son la compañía integral de una tabla de hechos, contienen las descripciones textuales del negocio. En un modelo dimensional bien diseñado, las tablas dimensionales contienen muchas columnas o atributos que describen las filas. Se debe incluir tantas descripciones textuales como sea posible. Es común que una tabla dimensional tenga entre 50 y 100 atributos. Tienden a ser pequeñas en cuanto al número de filas (mucho menos de 1 millón) pero son muy extensas horizontalmente, con muchas columnas. Cada dimensión tiene una clave primaria única, que se enlaza a través de integridad referencial a cualquier tabla de hechos a la cual esté juntada.
  19. 19. Tabla de la dimensión Producto  DimProducto ProductoCodigo ProductoDescripcion Numero de referencia (SKU) Marca Categoría Departamento Tipo de empaque Tamaño de empaque Contenido de grasa Tipo de dieta Peso Unidades de medida Tipo de almacenamiento Vida útil de la caja Ancho de la caja Alto de la caja Profundidad de la caja
  20. 20. Los atributos de las dimensiones  Los atributos de las dimensiones son utilizados en condiciones de consultas, agrupamientos y reportes etiquetados, y son claves para hacer al DW usable y entendible. El DW es tan bueno como son los atributos dimensionales, depende de la calidad y profundidad de sus atributos dimensionales. Mientras más elementos y terminología del negocio se incorporen en los atributos dimensionales, mejor es el DW. Las tablas dimensionales son los puntos de entrada a las tablas de hechos. Atributos dimensionales robustos llevan a una capacidad de análisis robusto. Las dimensiones implementan la interfaz de usuario del DW.
  21. 21. Atributos de las dimensiones  Los mejores atributos son textuales y discretos, deben ser palabras reales y completas en vez de abreviaciones. Atributos típicos para una dimensión producto pueden incluir una descripción corta (10 a 15 caracteres) o larga (40 – 50 caracteres). Ejemplo: tipo de producto, categoría de producto, tipo de empaque, tamaño, y otras numerosas características. Aunque el tamaño de un producto se expresa en números, es un atributo dimensional porque se comporta como una descripción textual antes que como un valor sumable. El tamaño es un descriptor discreto y constante de un producto.
  22. 22. ¿Atributo de una dimensión o de una tabla de hechos?  Algunas veces en el diseño no está claro si un dato numérico que es extraído de un sistema fuente pertenece a una dimensión o a una tabla de hechos. Para tomar la decisión debe preguntarse si ese atributo tiene muchos valores y éstos servirán para hacer cálculos, si es así, pertenece a una tabla de hechos, o, si es una descripción discreta que es más o menos constante y participa en las condiciones de búsqueda, es un atributo dimensional. Por ejemplo, el costo estándar de un producto puede verse como un atributo constante del producto, pero puede cambiar varias veces, y también se puede decidir tratarlo como un hecho medible.
  23. 23. Códigos de las aplicaciones operacionales  Se debe tratar de minimizar el uso de códigos en una tabla dimensional reemplazándoles con atributos textuales mas explícitos. Se debe tener decodificación estándar para los códigos operacionales disponibles como atributos dimensionales para que las etiquetas de las consultas y reportes sean consistentes. Algunos códigos operacionales o identificadores tienen una significación específica del negocio para los usuarios, o se requieren para regresar al sistema operacional, en estos casos, los códigos deben aparecer como atributos de las dimensiones, acompañados de su descripción explicita textual.
  24. 24. Códigos con información adicional  En otros casos, el código puede llevar información adicional del negocio, por ejemplo, los primeros dos dígitos pueden identificar la línea del negocio, los siguientes dos dígitos indican la región, etc. Aquí se debe extraer de los códigos esa información y ponerlas como atributos adicionales que puedan ser filtrados, agrupados y reporteados con facilidad. Las tablas dimensionales a menudo representan relaciones jerárquicas dentro del negocio.
  25. 25. Jerarquías  En el ejemplo de la tabla dimensional Producto, los productos se agrupan en tipos, y los tipos en categorías. Para cada fila en la dimensión Producto se almacena el tipo y la categoría asociada con cada producto. Se puede ver que la información descriptiva jerárquica tiene redundancia, pero se hace esto para facilitar las consultas y mejorar el rendimiento. Las tablas dimensionales son altamente desnormalizadas, y como su tamaño es muy pequeño en relación con las tablas de hechos, el aumento del almacenamiento por la redundancia no es significativo.
  26. 26. Esquema estrella 
  27. 27. Esquema estrella  En la figura, la tabla de hechos que consiste de medidas numéricas está unida a un set de tablas dimensionales que contienen atributos descriptivos. Este tipo de esquema se le conoce como esquema estrella. La primera cosa que se nota en el esquema es su simplicidad y simetría, lo que hace más fácil entender y navegar. Además, el reducido número de tablas y el uso de los descriptores de negocio hacen menos probable que se produzcan errores.
  28. 28. Modelos dimensionales  La simplicidad también trae beneficios en el rendimiento, ya que el optimizador procesará las consultas más eficientemente porque tienen pocas junturas. Los modelos dimensionales son muy adaptables a los cambios, el marco de trabajo predecible de un modelo dimensional resiste cambios inesperados en la conducta de los usuarios. Cada dimensión es equivalente, todas las dimensiones son simétricamente iguales puntos de entrada a la tabla de hechos.
  29. 29. Granularidad de los hechos  Mientras más granularidad exista y se tengan datos más atómicos, mas dimensionalidad existe. Los datos atómicos, es decir, que no han sido resumidos, son los más expresivos y son la base de diseño de las tablas de hechos para resistir consultas de los usuarios no esperadas.
  30. 30. Los cambios se hacen fácilmente  Se puede ir agregando nuevas dimensiones al esquema. También se puede agregar nuevos e inesperados hechos a la tabla de hechos. También se puede incrementar nuevos atributos en las tablas dimensionales, o aumentar un nuevo nivel de granularidad desde un punto en el tiempo, todo esto utilizando el comando de SQL ALTER TABLE, sin tener que recargar los datos, y sin que se afecten las aplicaciones que están funcionando.
  31. 31. Facilidad para los reportes 
  32. 32. Facilidades para reportes  Otra manera de ver como se complementan entre tablas de hechos y dimensiones es verlas traducidas en un reporte. Como se ve en la figura, los atributos dimensionales aportan los títulos de los reportes, mientras que las tablas de hechos proporcionan los valores numéricos de los reportes.
  33. 33. Modelo dimensional de ventasen una cadena de supermercados 
  34. 34. Modelo dimensional de ventasen una cadena de supermercados  El modelo le permite al usuario cruzar el negocio para analizar las ventas al detalle desde varias perspectivas. Los administradores pueden ver las ventas por producto para diferentes tiendas y en diferentes fechas, los gerentes de las tiendas pueden ver las ventas por fecha y por cajero, los planificadores de tiendas pueden ver a las ventas por tipo de tienda y por localización. Como este modelo es razonablemente robusto, un gran supermercado podría tener un poco mas de dimensiones, clientes en particular, y muchos mas atributos.
  35. 35. Modelo dimensional de ventasen una cadena de supermercados  En la figura, los campos marcados con PK son las claves primarias. En un modelo dimensional las claves primarias de las dimensiones son implementadas con un solo campo. Las claves foráneas FK controlan la integridad referencial. El campo DD es una dimensión especial degenerada, la cual es explicada luego. Para captar el concepto de dimensiones y hechos, es útil ver ejemplos de modelos dimensionales de una variedad de industrias y procesos de negocios.
  36. 36. Modelo dimensional del proceso de vuelos en una aerolínea 
  37. 37. Modelo dimensional del proceso de vuelos en una aerolínea  Las dimensiones han sido llenadas los suficientes para dar sentido a sus contenidos. Los planeadores de rutas pueden ver los vuelos por aeropuerto, los de logística pueden ver la utilización de aeronaves, marketing puede ver el comportamiento de los viajeros frecuentes, la actividad de los vuelos por clase y tarifas base, los de ventas pueden ver el comportamiento de los canales de ventas. Hay algo para todos en este modelo dimensional.

×