el diseño de la base de datos de un data warehouse

67
Marta Millan [email protected] www.eisc.univalle.edu.co/materias El diseño de la base de datos de un Data Warehouse

Upload: others

Post on 15-Oct-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: El diseño de la base de datos de un Data Warehouse

Marta [email protected]/materias

El diseño de la base de datos de un Data Warehouse

Page 2: El diseño de la base de datos de un Data Warehouse

Marta [email protected]/materias

El modelo MultidimensionalPrincipios básicos

Page 3: El diseño de la base de datos de un Data Warehouse

Introducción

� Un data warehouse se construye de manera heurística

� En un primer momento, no se conocen bien los requerimientos

� Proceso de construcción nuevos requerimietos

Page 4: El diseño de la base de datos de un Data Warehouse

Motivaciones

� ¿Cómo diseñar una base de datos que permita ejecutar consultas desconocidas?

� Entender la forma usar información en el data warehouse

Page 5: El diseño de la base de datos de un Data Warehouse

Motivaciones

� La mayor parte de las consultas a un data warehouse sobre un hecho esencial, analizado de distintas formas:� Número medio de ventas de micros por tienda el último

mes� Los diez programas por cable más vistos la semana

pasada� Ventas previstas de natilla en Navidad comparado con el

stock actual

Page 6: El diseño de la base de datos de un Data Warehouse

E/R vs. Multidimensional

� Los modelos E/R intentan eliminar la redundancia en los datos

� La búsqueda de consistencia hace que los procesos de consulta sean difíciles y costosos.

� Modelos dimensionales: meta comprensión y el rendimiento

Page 7: El diseño de la base de datos de un Data Warehouse

Modelos Multidimensionales

� Técnica de diseño lógico para diseño de Data Warehouses

� Proporcionan los mejores resultados � Diseños de acuerdo a un estándar que es

intuitivo y fácil de entender� Permite accesos de alto rendimiento

Page 8: El diseño de la base de datos de un Data Warehouse

Modelos Multidimensionales

� Formado por una tabla cuya clave es compuesta -Table Fact (tabla de hechos) y un conjunto de tablas más pequeñas denominadas Tablas de Dimensión.

� Su apariencia hace que se les denomine diagramas STAR

Page 9: El diseño de la base de datos de un Data Warehouse

Diagramas en estrella

TablaTabla dede hechoshechos

VentasVentas

ClienteCliente

DimensiDimensi óónn

AlmacenAlmacen

DimensiDimensi óónn

FechaFecha

DimensiDimensi óónn

ProductoProducto

DimensiDimensi óónn

Page 10: El diseño de la base de datos de un Data Warehouse

Hechos

� Transacciones que han ocurrido. Poco probable que cambien en el futuro .

� Los hechos se pueden analizar de diferentes formas dependiendo de la información de referencia

� Los hechos suelen tener pocos atributos, puesto que no tiene datos operacionales

Page 11: El diseño de la base de datos de un Data Warehouse

Dimensiones

� Representa factores por los que se puede analizar un determinado área de negocio.

� Son tablas más pequeñas� A menudo se desnormalizan

Page 12: El diseño de la base de datos de un Data Warehouse

Hechos y dimensiones

VENTASVENTAS

Tiendas Región

Producto

Page 13: El diseño de la base de datos de un Data Warehouse

Diseño STAR: Etapas

� Un diagrama E/R se divide en múltiples diagramas en estrella

� Separar en procesos discretos de negocio (hechos) y modelizar cada hecho separadamente

� Seleccionar relaciones n:m con atributos numéricos

� Desnormalizar las tablas de dimensión� El esquema final serán de 10- 25 STAR cada

uno de ellos con 5-10 dimensiones

Page 14: El diseño de la base de datos de un Data Warehouse

Marta [email protected]/materias

Una metodología de trabajo parael diseño de la base de datos de

un Data Warehose

Page 15: El diseño de la base de datos de un Data Warehouse

Método de diseño: Enfoque 1

� Diseñar la base de datos del Data Warehouse global:

• Mucho esfuerzo• Mucho tiempo• Resultados tardan mucho tiempo en aparecer• No es abordable en la mayoría de los casos

Page 16: El diseño de la base de datos de un Data Warehouse

Método de Diseño Enfoque 2

• Diseñar la base de datos de cada Data Mart por separado:

• Mucho más sencillo• Menos tiempo• Menos recursos• La integración posterior de varios Data Mart se

complica

Page 17: El diseño de la base de datos de un Data Warehouse

Método de Diseño

� SOLUCIÓN:� Diseñar la Base de Datos de cada Data Mart sin

perder de vista el objetivo final de integración.� Definir una estructura común (bus del data

warehouse) sobre la que se apoyen todos los data marts

Page 18: El diseño de la base de datos de un Data Warehouse

Unión de los modelos STAR

� Construir todo el DW desde el principio o hacer diseños separados para cada area de negocio??

� Planifiquemos Data Marts separados pero que compartan aquellas definiciones comunes a la organización

� Data Marts con arquitectura de bus común

Page 19: El diseño de la base de datos de un Data Warehouse

La arquitectura del BUS común del DW

� Crear una arquitectura que defina todo el marco de la organización.

� Construir Data Marts dentro de ese marco común

� Dimensiones conformadas� Definición estándar de hechos

Page 20: El diseño de la base de datos de un Data Warehouse

Dimensiones conformadas (I)

� Es una dimensión que significa lo mismo para cada posible tabla fact

� Ejemplos: cliente, producto, tiempo, localización

� Es responsabilidad del equipo diseñador establecer, publicar y mantener las dimensiones conformadas

Page 21: El diseño de la base de datos de un Data Warehouse

Dimensiones conformadas (II)

� Sin un uso estricto de dimensiones conformadas el datawarehouse nunca funcionará como un todo.

� Hacen posible:

� Una única tabla de dimensión se puede usar contra múltiples tablas de hechos en el mismo espacio de bases de datos

� Las interfaces de usuario y el contenido de los datos son consistentes dondequiera que se use

� Hay una interpretación consistente de atributos

Page 22: El diseño de la base de datos de un Data Warehouse

Dimensiones conformadas (III)

� Puede llevar mucho tiempo la identificarlas

� Se diseñan al nivel de granilaridad más bajo que sea posible

� Deben tener una clave no significativa para poder permitir cambios en el futuro

� La creación de las mismas es tan decisión técnica como política

Page 23: El diseño de la base de datos de un Data Warehouse

Definiciones de hechos conformadas

� Se realiza al mismo tiempo que las dimensiones conformadas

� Ejemplos: costos, precios, beneficio, ...� Mismas unidades de medida� Mismos periodos� Mismas localizaciones� Si es imposible conformar un hecho único

asegurarse de dar a las distintas interpretaciones diferentes nombres

Page 24: El diseño de la base de datos de un Data Warehouse

Data Marts con múltiples fuentes de datos

� data mart con una única fuente de datos son los más fáciles de construir.� Ej: sistema de pedidos disponible y diseño del data mart de pedidos.

� Es recomendable empezar con estos data marts porque minimiza el riesgo de implementaciones demasiado ambiciosas.

� Una implementación de data marts sencillos permitirá al equipo de desarrollo seguir trabajando mientras los usuarios ya van realizando sus consultas.

Page 25: El diseño de la base de datos de un Data Warehouse

Data Marts con múltiples fuentes de datos (II)

� Cuando se hayan implementado suficientes data marts de una única fuente es razonable combinarlos para conseguir un data mart de más de una fuente.� Ej: Conseguir el data mart de beneficios

combinado distintos componentes de costos y ganancias

Page 26: El diseño de la base de datos de un Data Warehouse

La arquitectura común del DW

� Las dimensiones conformadas y las definiciones estándar de los hechos configuran la arquitectura del bus del data warehouse.

� La definición del bus en un determinado entorno permite añadir un nuevo data mart que puede coexistir con los ya existentes.

Page 27: El diseño de la base de datos de un Data Warehouse

Marta [email protected]/materias

Aspectos de diseño a tener encuenta en el diseño de las tablas

de un Data Mart

Page 28: El diseño de la base de datos de un Data Warehouse

4 pasos para diseñar tablas de hechos

� Elegir el data mart� Empezar con data marts de una fuente

� Decidir el grano de la tabla de hechos� Establece lo que significa cada registro de la tabla de

hechos

� Decidir las dimensiones

� Decidir los hechos de la tabla de hechos� Deben ser específicos para el grano elegido para la tabla

de hechos

Page 29: El diseño de la base de datos de un Data Warehouse

Buscar las transacciones en el proceso del negocio

� Transacciones que describen sucesos fundamentales para el negocio

� Para cada hecho potencial, preguntar: ¿se usa de verdad esta transacción en el proceso de negocio?

Page 30: El diseño de la base de datos de un Data Warehouse

Determinar dimensiones principales

� En modelo lógico que entidades están asociadas con la entidad que representa la tabla hecho

� No todas las dimensiones principales están asociadas directamente a la tabla hecho en el modelo lógico

� Preguntarse cuál va a ser el enfoque en el análisis del negocio

Page 31: El diseño de la base de datos de un Data Warehouse

Comprobar si un hecho es una dimensión

Buscar dimensiones no normalizadas en las tablas candidatas a hechos. Se puede dar el caso de que un candidato a hecho sea una dimensión que contenga grupos repetidos de atributos hechos

Page 32: El diseño de la base de datos de un Data Warehouse

Comprobar si un hecho es una dimensión

Diseñar tablas hecho para almacenar filas que no varíen en el tiempo. Si la entidad parece que varía en el tiempo, considerar el crear una tabla hecho que represente eventos que cambien el estado de esa entidad

Page 33: El diseño de la base de datos de un Data Warehouse

Comprobar si una dimensión es un hecho

� ¿Puedo ver esta entidad en otra dimensión?. ¿En cuántas?

� Si la respuesta es más de tres, la entidad no es una dimensión, sino un hecho

Page 34: El diseño de la base de datos de un Data Warehouse

Diseñar las tablas de hechos

� ¿Cómo puede ser una tabla de grande?� Existen una serie de técnicas para reducir

el tamaño de las tablas de hechos.

Page 35: El diseño de la base de datos de un Data Warehouse

Reducir el tamaño de la tabla de hechos

1. Identificar el periodo histórico significativo para los distintos procesos, y el grado de detalle requerido.

2. Si los requisitos del negocio no necesitan todos los datos hecho detallados, se puede considerar almacenar algunos ejemplos y agregar el resto

3. Eliminar todas las columnas de la entidad hecho que no sean requeridas para responder a preguntas de toma de decisiones

Page 36: El diseño de la base de datos de un Data Warehouse

Reducir el tamaño de la tabla de hechos (II)

4. Asegurarse de que cada byte de cada columna se necesita

5. No usar claves automáticas en las tablas hecho, a menos que se tenga la certeza de que los identificadores no cambian durante la vida del dw

6. Usar fechas en la tabla de hechos, y no construir una tabla especial para el tiempo

Page 37: El diseño de la base de datos de un Data Warehouse

Diseñar las tablas dimensión

Desnormalizar las entidades consultadas muy a menudo para acelerar el rendimiento de las consultas (Esquemas estrella)

PRODUCTO

Nombre, color, estilo, tamaño

Sección

Departamento

Negocio

PRODUCTO

Sección, departamento,

negocio, nombre, color,

estilo, tamaño

Page 38: El diseño de la base de datos de un Data Warehouse

Jerarquías

� A veces no es posible desnormalizar todas las entidades en esquemas en estrella. Entidades que se relacionan entre si con relaciones muchos-a-muchos no se deberían desnormalizar en un esquema en estrella

Page 39: El diseño de la base de datos de un Data Warehouse

Jerarquías

Las jerarquías son muy usadas para representar diferentes vistas. En estos casos, es más efectivo determinar cuál es la jerarquía que va a ser más consultada. Ésta será desnormalizada, y el resto permanecerán como están

Page 40: El diseño de la base de datos de un Data Warehouse

Esquemas starflake

� En el diseño de un data warehouse, se usa una combinación de esquemas normalizados (esquemas snowflake) y desnormalizados (esquemas estrella)

� La combinación de ambos recibe el nombre de esquemas starflake

Page 41: El diseño de la base de datos de un Data Warehouse

VentasLocalización Tiempo

Localización

Localización

Tiempo

SemanaMes

Page 42: El diseño de la base de datos de un Data Warehouse

Drill up, Drill down

� Drilling down:más detalle de los datos por ejemplo añadiendo una nueva restricción.

� No es sólo cuestión de navegar en las jerarquías

� Drill up es la operación contraria esto es eliminar cabeceras de los informes

Page 43: El diseño de la base de datos de un Data Warehouse

Snowflaking

� Una dimensión está “snowflaked” cuando los atributos de baja cardinalidad se llevan a tablas separadas.

� Generalmente no se recomienda en DW� A veces se usa para ahorrar espacio de

almacenamiento� No permite hacer uso de los índices bitmap� Sin embargo existen situaciones (datos

demográficos) en las que son aconsejables.

Page 44: El diseño de la base de datos de un Data Warehouse

Claves primarias y foráneas

� Todas las claves que se utilicen en tablas del data warehouse deben ser claves sin significado.

� Nunca se deben usar claves de producción� Nunca se deben usar claves con

significado� Facilitan los cambios

Page 45: El diseño de la base de datos de un Data Warehouse

La importancia de los atributos

� La calidad del Data warehouse se mide por la calidad de los atributos:� Descriptivos� Completos (sin valores nulos)� Indexados� Palabras enteras� Documentados (metadata)� Calidad asegurada

Page 46: El diseño de la base de datos de un Data Warehouse

Degenerate Dimension

� La mayoría de los diseños multidimensionales están alrededor de un documento de control: nº de pedido, factura, ticket, ...

� Generalmente son contenedores con más de un producto

� Generalmente en estos casos el grano de la tabla es producto

� ¿Qué se hace con los números?� Se ponen en las tablas pero no tienen una

dimensión con la que hacer join

Page 47: El diseño de la base de datos de un Data Warehouse

Junk Dimension

� En ocasiones se tienen atributos textuales y flags de distinta naturaleza que no parecen organizarse de manera coherente.

� La solución no parece sencilla:� Dejar los atributos en la tabla fact� Hacer dimensiones separadas para cada atributo� Quitar directamente estos atributos

� La mejor solución es compactarlos todos en lo que se denomina una “junk dimension”

Page 48: El diseño de la base de datos de un Data Warehouse

Aditividad

� Siempre que sea posible, los hechos de la tabla fact deberían elegirse para que sean perfectamente aditivos.

� Esto significa que se pueden sumar por cualquier dimensión.

� Las medidas de actividad (ventas) son generalmente aditivas

Page 49: El diseño de la base de datos de un Data Warehouse

Aditividad

� Las medidas de intensidad no siempre lo son (niveles de inventario, balance de cuentas...). Estas medidas generalmente son aditivas por todas las dimensiones menos por el tiempo.

� Existen otras medidas que no se pueden sumar por ninguna dimensión (temperaturas).

Page 50: El diseño de la base de datos de un Data Warehouse

Familias de tablas de hechos (I)

Hay negocios con un flujo lógico con un principio y un fin (value chain):� Ciclo de vida de un producto� Ciclo de vida de un cliente� Seguros

Page 51: El diseño de la base de datos de un Data Warehouse

Familias de tablas de hechos (I)

� Todos estos casos se pueden enfocar de la misma manera:� Se define una tabla fact y un conjunto de

dimensiones asociadas para cada paso de la cadena

� Se deciden las dimensiones conformadas y se utilizan para cada paso de la cadena

Page 52: El diseño de la base de datos de un Data Warehouse

Familias de tablas de hechos (II)

Otros negocios se organizan como círculos. En estos casos todas las entidades miden la misma transacción:� Organizaciones de salud

Page 53: El diseño de la base de datos de un Data Warehouse

Ejemplo

Tiempo

Cuenta

Sucursal

Titular

Balance

Cuotas pagadas

Num_transacciones

Clave para unir con fact personalizada

Tiempo

Sucursal

Clave Cuenta

Clave por tipo de cuenta

Clave por tipo de cuenta

Atributos por tipo

Clave de fact1

Hechos particulares

Clave de factn

Hechos particulares

Page 54: El diseño de la base de datos de un Data Warehouse

Agregados

� Las tablas de agregados son resúmenes que se construyen y almacenan para mejorar el rendimiento de las consultas

� Se genera una familia de tablas que se derivan de la tabla de hechos a nivel detallado

� Cada miembro de la familia representa un grado determinado de resumen en relación a una o más dimensiones

Page 55: El diseño de la base de datos de un Data Warehouse

Tablas fact sin hechos

diseño final una tabla fact sin hechos, solo interesa el suceso en sí:� Afluencia de público� Coberturas

Page 56: El diseño de la base de datos de un Data Warehouse

Tablas fact sin hechos (II)

Fecha

Persona

Establecimiento

Fecha

Producto

Establecimiento

Promoción

Fecha

Persona

Establecimiento

Producto

Promoción

Page 57: El diseño de la base de datos de un Data Warehouse

Relaciones n:m

� relaciones n:m desde la “table fact” a las tablas de dimensión (titulares de cuentas bancarias,....)

� El problema se soluciona añadiendo una tabla puente

Page 58: El diseño de la base de datos de un Data Warehouse

Roles

Dimensiones comunes requiere la creación de vistas sobre las tablas de dimensión

Fin: identificar cada uno de los posibles roles de la dimensiónCiudad:

– Ciudad de destino– Ciudad de origen

Page 59: El diseño de la base de datos de un Data Warehouse

Roles

Fecha:– Fecha de entrega– Fecha de venta– Fecha de devolución

Operador– Larga distancia– Metropolitana o Local

Page 60: El diseño de la base de datos de un Data Warehouse

Agregaciones

Aceleran las consultas más comunes

costo de crear y de gestionar las agregaciones vs. beneficios

Page 61: El diseño de la base de datos de un Data Warehouse

¿Qué es una agregación?

La mayoría de las consultas sobre un subconjunto o una agregación de los datos detallados

Ejemplo: se desea conocer las ventas de un determinado producto en un dpto. En Colombia: uso de tablas resumen

Page 62: El diseño de la base de datos de un Data Warehouse

Diseñando tablas resumen

Proceso similar al de las tablas de hechos� Determinar las dimensiones por las cuales agregar� Determinar la agregación de múltiples valores� Agregar varios hechos en la tabla resumen� Determinar el nivel de agregación� Diseñar el tiempo en la tabla resumen� Hacer un índice de la tabla resumen

Page 63: El diseño de la base de datos de un Data Warehouse

Determinar las dimensiones por las que agregar

� Dos técnicas:� Incorporar la dimensión : consultar con frecuencia datos

agregados, se crea una tabla con los datos resumidos y se prescinde de la dimensión

� Agregar la dimensión : consultas se hacen sobre datos agregados, con lo que se pueden crear tablas resumen en los que se prescinde de la dimensión agregada

Page 64: El diseño de la base de datos de un Data Warehouse

Determinar la agregación de múltiples valores

Si existen muchas consultas que usan más de un valor agregado sobre la misma dimensión, se puede agregar los valores requeridos en un conjunto de columnas dentro de las misma tabla resumen

Page 65: El diseño de la base de datos de un Data Warehouse

Determinar el nivel de agregación

� Cuando se hacen agregaciones de un nivel, se pierden datos sobre el nivel inferior

� Se puede considerar agregar los datos a un nivel inferior al deseado para no perder datos

Ejemplo : Si se quieren datos mensuales, considerar agregar datos a nivel de semana. De este modo, no se pierde este detalle, y siempre se pueden tener los datos mensuales

Page 66: El diseño de la base de datos de un Data Warehouse

Diseñar el tiempo en la tabla resumen

Para acelerar las consultas, se puede almacenar el tiempo de varias formas:� Como una fecha física: lo más

recomendable� Como un desplazamiento: no es

apropiado. Se tarda mucho en calcular el desplazamiento

� Como un rango: nada recomendado

Page 67: El diseño de la base de datos de un Data Warehouse

Hacer un índice de la tabla resumen

Maximizar la velocidad de las consultas sobre las tablas resumen indexando todos los posibles accesos, es decir, considerar usar un nivel de indexación muy alto sobre las tablas resumen