You are on page 1of 25

Unidad 3.

Diseando una solucin OLAP


Objetivos
Comprender la formacin de la tabla de hechos Entender que son las medidas Conocer que son las dimensiones y como se organizan Distinguir la diferencia entre los esquemas estrella y copo de nieve. Diferenciar las medidas naturales de las calculadas

Contenido de la unidad
3.1Introduccin 3.2Construyendo el data mart 3.3Esquema Estrella 3.3.1 3.3.2 Tabla de Hechos Dimensiones Relaciones y Estructura de una dimensin Esquema Estrella Esquema Copo de Nieve Padre Hijo (Parent- Child) Dimensiones Virtuales La dimensin Tiempo

3.3.2.1 3.3.2.2 3.3.2.3 3.3.2.4 3.3.2.5 3.3.2.6 3.4Medidas 3.4.1 3.4.2

Medidas Naturales Medidas Calculadas

Pgina 1 de 25

3.1. Introduccin

Con lo aprendido en las unidades anteriores, podemos comenzar a definir el diseo de nuestra base de datos OLAP. En esta unidad, desarrollaremos el diseo de las tablas que conforman el plano de un data mart (DM) que nos servir de estructura para el posterior armado del cubo. Al final de este mdulo, el lector comprender cmo definir la tabla de hechos, cmo se pueden organizar las dimensiones, y qu son las medidas. La estructura que forman la Tabla de Hechos y las Dimensiones puede verse como el plano o la visin desplegada del cubo.

Pgina 2 de 25

Data Mart: son almacenes de datos con informacin de inters particular para un determinado sector de la empresa Data Warehousing: es el conjunto de almacenes de datos particulares (Data Mart) con informacin de inters para la empresa en general

Cada uno de los siguientes son ejemplos Data Mart (DM) Ventas Recursos Humanos Produccin El Data Warehousing es el conjunto de esos data mart DM de Ventas + DM de Recursos Humanos + DM de Produccin

3.2. Construyendo el data mart


Hasta ahora hemos analizado los requerimientos del usuario, y depuramos sus datos para la formacin del data warehousing, en esta unidad comenzaremos a disear el modelo del data mart. Este modelo, ser el paso previo al armado de nuestra base de datos OLAP. En esta etapa vamos a modelar las tablas relacionales en una gran estructura desnormalizada, compuesta por tabla de hechos, y tablas ms pequeas que definirn las n-dimensiones o aperturas de nuestro cubo, llamadas tablas de dimensiones. Para ello, primero debemos conocer algunos conceptos que tendremos en cuenta en la construccin del modelo.

3.3. Esquema Estrella


Para facilitar el anlisis, el data mart organiza los datos en una estructura llamada esquema de estrella. Esta estructura esta compuesta por una tabla central - tabla de hechos - y un conjunto de tablas organizadas alrededor de sta - tablas de dimensiones. En las puntas de la estrella se encuentran las tablas de dimensin que contienen los atributos de las aperturas que interesan al negocio que se pueden utilizar como criterios de filtro y son relativamente pequeas. Cada tabla de dimensin se vincula con la tabla de hechos por un identificador.

Pgina 3 de 25

Las caractersticas de un esquema de estrella son: El centro de la estrella es la tabla de hecho. Los puntos de la estrella son las tablas de dimensiones. Cada esquema esta compuesto por una sola tabla de hechos Generalmente es un esquema totalmente desnormalizado, pudiendo estar parcialmente normalizado en las tablas de dimensiones.

En el ejemplo construimos un esquema estrella considerando que se necesita analizar como evoluciona la Admisin de Pacientes (Hecho) por servicio, pacientes y zona geogrfica a lo largo del tiempo.

Pgina 4 de 25

Dimensin Servicio

Dimensin Paciente

Tabla de Hechos Admisin Pacientes

Dimensin Tiempo

Dimensin Zona Geogrfica

3.3.1

Tabla de Hechos

El modelo dimensional divide el mundo de los datos en dos grandes tipos: las medidas y las dimensiones de estas medidas. Las medidas, siempre son numricas, se almacenan en las tablas de hechos y las dimensiones que son textuales se almacenan en las tablas de dimensiones. La tabla de hechos es la tabla primaria del modelo dimensional, y contiene los valores del negocio que se desea analizar.

Pgina 5 de 25

Cada tabla de hechos contiene las claves externas, que se relacionan con sus respectivas tablas de dimensiones, y las columnas con los valores que sern analizados. Ejemplos de Hechos En un hospital: admisin de pacientes En un operador telefnico: Trfico telefnico

Un hecho es un concepto de inters primario para el proceso de toma de decisiones, corresponde a eventos que ocurren dinmicamente en el negocio de la empresa.

3.3.2

Dimensiones

Disearemos y construiremos cada dimensin basados en los procesos de negocio definidos por el cliente. Las dimensiones organizan los datos en funcin de un rea de inters para los usuarios. Cada dimensin describe un aspecto del negocio y proporciona el acceso intuitivo y simple a datos. Una dimensin provee al usuario de un gran nmero de combinaciones e intersecciones para analizar datos. Las tablas de dimensiones son las compaeras de las tablas de hechos. Cada dimensin se define por su clave primaria que sirve para mantener la integridad referencial en la tabla de hechos a la que se relaciona. Un cubo requiere que se defina al menos una dimensin en su esquema.

3.3.2.1

Relaciones y Estructura de una dimensin

Cada nivel de una dimensin debe corresponderse con una columna en la tabla de la dimensin. Los niveles se ordenan por grado de detalle y se organizan en una estructura jerrquica. Cada nivel contiene miembros, los miembros son los valores de la columna que define el nivel. Entre los miembros y entre los niveles de una dimensin existen relaciones, estas se pueden comprender como las relaciones que existen en un rbol genealgico

Pgina 6 de 25

donde los trminos padre, hijo, hermano, primo, etc. indican una correspondencia entre elementos del rbol; y los miembros de la dimensin se comportan como familiares dentro del rbol genealgico. Padre: Es el miembro del nivel inmediatamente superior que se relaciona con el miembro seleccionado. Cada elemento tiene un solo padre. Hijo: Son los elementos del siguiente nivel inferior que se relacionan con el miembro seleccionado. Pueden existir varios hijos para un mismo miembro. Hermano: Son los miembros que se encuentran en el mismo nivel que el miembro seleccionado y poseen el mismo padre. Primo: Son los miembros que se encuentran en el mismo nivel que el miembro seleccionado, pero que tienen diferentes padres. Los primos tiene padres que son hermanos. Descendientes: Son todos los miembros que se encuentran debajo del nivel del miembro seleccionado. independientemente de la cantidad de niveles que los separen. Ancestros: Son todos los miembros que se encuentran por encima del nivel del miembro seleccionado. Un miembro es independiente de las relaciones. Cada integrante de la dimensin es miembro de ella.

Pgina 7 de 25

Ejemplos de dimensin Dimensin zona geogrfica


* PAIS ** PROVINCIA *** CIUDAD
ARGENTINA BUENOS AIRES CORDOBA MAR VILLA LA del GRAL. PLATA PLATA BELGRANO BRASIL SAN PABLO . URUGUAY MONTEVIDEO

Ejemplos de relaciones En una dimensin zona geogrfica tendramos las siguientes relaciones entres niveles y entre miembros: Padre: Argentina es padre de Buenos Aires y de Crdoba Hijo: Buenos Aires y Crdoba son hijos de Argentina Hermano: Buenos Aires y Crdoba son hermanos el uno al otro, tambin son hermanos Argentina, Brasil y Uruguay. Primo: Mar del Plata es primo de Villa General Belgrano. Descendiente: Todos los miembros que estn por debajo de Argentina son sus descendientes, por ejemplo Buenos Aires, Mar del Plata y Villa General Belgrano son alguno de sus descendientes. Ancestro: Mar del Plata tiene dos antepasados Buenos Aires y Argentina.

Las dimensiones pueden ser: Locales Compartidas Las dimensiones locales son las que se definen y se utilizan dentro de un mismo cubo. Las dimensiones compartidas son aquellas dimensiones que se definen independientes de los cubos y pueden ser utilizadas por varios de ellos.

Pgina 8 de 25

Ventajas de las dimensiones compartidas Evitamos duplicar dimensiones locales Aseguramos que los datos analizados estn organizados de la misma forma en todos los cubos, lo que implica un menor costo de mantenimiento. Desventajas de las dimensiones compartidas Deben emplearse del mismo modo en los cubos que las usen. Un cambio implica que la dimensin deber ser modificada en todos los cubos

Ejemplos de Dimensin Compartida La dimensin Producto puede utilizarse para el Data Mart Ventas y para el Data Mart Produccin. As, la dimensin producto es una dimensin compartida por los dos Data Mart.

Al definir una dimensin debemos prestar especial atencin en los requerimientos del cliente, ya que una mala definicin de la dimensin, o de sus niveles podra implicar que no obtengamos los resultados deseados. Si la definicin de las dimensiones no es la correcta, no sern correctos ni tiles las agrupaciones, las sumarizaciones o los filtros. Probablemente se termine copiando datos a una planilla de calculo como sino existiera el DM. Riesgos de Dimensiones Compartidas Es importante que nos aseguremos que cualquier modificacin o cambio en una dimensin compartida sea vlida para todos los cubos que la empleen

3.3.2.2

Dimensiones: Esquema Estrella

En el esquema estrella cada dimensin esta compuesta por una sola tabla, esta tabla esta desnormalizada. El esquema se denomina as debido a que el diagrama se parece a una estrella. Debido a que las tablas de dimensin estn desnormalizadas lograremos en el modelo del data mart, una menor cantidad de tablas.

Pgina 9 de 25

Este es un esquema donde las dimensiones tienen un esquema estrella.

Dimensin Servicio

Dimensin Paciente

Tabla de Hechos Admisin Pacientes

Dimensin Tiempo

Dimensin Zona Geogrfica

3.3.2.3

Dimensiones: Esquema Copo de Nieve

El esquema copo de nieve es una variacin del esquema estrella donde alguna punta de la estrella se explota en ms tablas. El nombre del esquema se debe a que el diagrama se asemeja a un copo de nieve. En este esquema, las tablas de dimensin copo de nieve se encuentran normalizadas para eliminar redundancia de datos.
Pgina 10 de 25

A diferencia del esquema estrella, los datos de las dimensiones se reparten en mltiples tablas. Como ventaja del esquema destacamos el ahorro de espacio de almacenamiento en disco, pero en perjuicio de un aumento en la cantidad de tablas. Los siguientes son las caractersticas de un copo de nieve: La dimensin esta normalizada Los distintos niveles se encuentran almacenados en tablas separadas Se argumenta ahorro de espacio

Pgina 11 de 25

Se muestra un esquema donde la dimensin zona geogrfica presenta un esquema copo de nieve.
Copo de nieve Dimensin zona Geografica
Pas

Provincia

Ciudad

Servicio

Admisin Paciente

Paciente

Tiempo

Ejemplo de Tabla Normalizada y Tabla Desnormalizada En la imagen vemos en la tabla normalizada los datos nombre de pas y nombre de provincia aparecern una sola vez en las tablas Pas y Provincia respectivamente. Si en cambio, la tabla esta desnormalizada tendremos redundancia de datos, ya que se repetirn los datos del Pas y de la Provincia por cada Ciudad.

Pgina 12 de 25

Normalizada Pas ID_Pas Pas Provincia ID_ Provincia Provincia ID_Pas

Desnormalizada

Zona Geogrfica Id _ Pas Pas ID_Provincia Provincia ID_Ciudad Ciudad

Ciudad ID_ Ciudad Ciudad ID_Provincia

Pgina 13 de 25

Estrella Cantidad de tablas Menor Mejora la performance Consultas Almacenamiento Aumenta el espacio Mayor

Copo de nieve

Aumenta la cantidad de uniones entre tablas provocando baja en la perfomance Ahorra espacio

3.3.2.4

Dimensiones: Padre Hijo (Parent Child)

Una dimensin padre-hijo es una dimensin donde el dato del Padre se relaciona con el Hijo y ambos se encuentran en la misma tabla de dimensin, es decir, la dimensin se relacionan consigo misma. Ejemplos de Dimensin Padre - Hijo La dimensin Cuenta Contable donde una cuenta imputable forma parte de un Sub Rubro y el Sub Rubro a su vez forma parte de un Rubro. Estos datos se encuentran en un solo Plan de Cuentas. La cuenta Activo, contiene los rubros Inversiones, Crditos y Caja, y el rubro Caja a su vez contiene Caja y Fondo Fijo.

3.3.2.5

Dimensiones Virtuales

Las dimensiones virtuales, no requieren un almacenamiento fsico en el cubo, se evalan en el momento de la consulta. Funcionan de manera similar a las dimensiones reales y son transparentes para el usuario.

Pgina 14 de 25

Ejemplos de Dimensin Virtual Podemos tener una dimensin Producto organizada de la siguiente manera: Producto (Dimensin real) Fabricante Marca Calibre Producto Si el usuario requiere que sus anlisis de informacin se realicen por Marca, utilizando la dimensin Producto requerir seleccionar a cada fabricante para obtener la informacin de la marca. Para evitar esto, podemos crear una dimensin virtual donde el orden de los niveles Fabricante - Marca estn invertidos, que le permita ver sus datos por Marca sin necesidad de seleccionar a todos los fabricantes. Esta dimensin la construiremos de la siguiente manera: Producto_Marca (Dimensin virtual 1) Marca Fabricante Calibre Producto Otra necesidad del usuario podra ser obtener los totales o filtros de calibre sin importar la marca o el fabricante, entonces construiramos una dimensin virtual que contenga solo la columna calibre. Calibre (Dimensin virtual 2) Calibre

3.3.2.6

La dimensin Tiempo

Mencionaremos esta dimensin ya que ocupa un lugar especial en cada data mart. Recordemos que el tiempo es parte implcita de la informacin que contiene el data mart. Esta dimensin la podemos definir separndola en distintas jerarquas de tiempo: Ao

Pgina 15 de 25

Semestre Mes

Ejemplos de Dimensin Tiempo

La definicin de la jerarqua la haremos teniendo en cuenta las necesidades que tiene la organizacin. Debemos contemplar los periodos de tiempo por los cuales la informacin necesita ser analizada y la regularidad con la que se cargaran los datos en el cubo. Consideraciones para esta dimensin: Nombres de los miembros: Cuando construyamos la dimensin tiempo es conveniente que los nombres de los miembros sean nicos. As, si utilizamos una nomenclatura para la jerarqua MES que sea Mes Ao cuando busquemos un periodo debemos identificarlo como Julio 2006. De esta manera nos ahorramos de utilizar dos niveles de la dimensin logrando una mayor calidad en los informes. Si en cambio, el nombre de la jerarqua MES se compone solo del nombre del mes, para identificar el periodo Julio del 2006 primero debemos seleccionar sobre el nivel Ao y luego sobre el nivel Mes. Puede existir mas de una: Cabe aclarar que no necesariamente esta dimensin es nica dentro del cubo, podramos tener que armar ms de una dimensin Tiempo. Si necesitramos analizar la informacin de la empresa en base al ao calendario y realizar otro anlisis basndonos en el ao fiscal, deberamos construir dos dimensiones de tiempo para el mismo data mart.

3.4. Medidas
Las medidas son los valores de datos que se analizan. Una medida es una columna cuantitativa, numrica, en la tabla de hechos. Las medidas representan los valores que son analizados, como cantidad de pacientes admitidos o llamadas efectuadas. Las medidas son: Valores que permiten analizar los hechos

Pgina 16 de 25

Valores numricos porque estos valores son las bases de las cuales el usuario puede realizar clculos. Si la medida fuera un valor no numrico debemos codificarla a un valor numrico en el proceso de obtencin de datos, y luego cuando tengamos que exponer sus valores decodificarla para mostrarla con el valor original. Las siguientes son algunas de las caractersticas de las medidas: Deben ser numricas. Cruzan todas las dimensiones en todos los niveles. Las medidas pueden clasificarse en: Naturales Calculadas

Ejemplos de Medidas En un hospital, donde el hecho es Admisin de Pacientes las medidas pueden ser: Pacientes Admitidos Pacientes Atendidos En un operador telefnico, donde el hecho es Trafico Telefnico, las medidas pueden ser: Llamadas Cantidad Llamadas Duracin Ejemplos de Medidas no numricas Supongamos el hecho Recursos Humanos, donde podemos tener la medida Sexo que toma los valores F o M. Estos valores debemos codificarlos en valores numricos durante el proceso de transformacin de datos (ETL). As, por ejemplo tendremos 0=F y 1=M. Cuando el usuario visualice esta medida, debemos volver los datos a sus valores originales (decodificarlos) para mostrar F o M.

Pgina 17 de 25

3.4.1

Medidas Naturales

Son las columnas numricas que queremos analizar que provienen directamente de los sistemas OLTP. Cuando definimos una medida debemos tener en cuenta cual ser la forma de agregacin (agrupacin de la misma) al subir por la estructura dimensional. Estas formas de agregacin pueden ser: Suma: es la operacin que suma los valores de las columnas Cuenta: realiza un conteo de los valores Mnima: devuelve un valor mnimo Mxima: proporciona el mayor de los valores Cuenta de Distintos: cuenta los valores diferentes Las agregaciones son resmenes de datos precalculados que mejoran el tiempo de respuesta por el simple hecho de tener preparadas las respuestas antes de que se planteen las preguntas.

3.4.2

Medidas Calculadas

Son las medidas que se calculan en el cubo en base a los valores de las medidas naturales. El sentido de la expresin medidas calculadas es muy amplio y engloba a cualquier manipulacin de las medidas naturales que nos faciliten el anlisis de los hechos. En una medida calculada puede haber: Clculos Matemticos Expresiones condicionales Alertas Estos tres tipos (clculos, condiciones y alertas) usualmente pueden existir juntos dentro de la misma medida calculada.

Pgina 18 de 25

Calculo Matemtico En un sistema de RRHH, podemos querer medir el promedio de horas extras por mes. Definimos la medida calculada Promedio de Horas Extras que ser el resultado de hacer Horas Extras dividido Dotacin. Expresiones condicionales Para la medida calculada anterior, Promedio de Horas Extras, necesitaremos verificar la condicin de numerador diferente de cero para evitar que la divisin nos arroje un error. Si Dotacin es distinto de cero entonces Promedio de Horas Extras ser igual a Horas Extras dividido Dotacin. Si Dotacin es igual a cero entonces Promedio de Horas Extras se mostrara vaci. Alertas En un hospital, podemos definir la medida calculada Sobrecarga de Pacientes que tomara el valor 1 si los Pacientes Admitidos (medida natural) es mayor a 100, de lo contrario permanecer vaca. Podemos construir una medida Cumplimiento de Ventas que sea una alerta del tipo semforo y nos indique Rojo: Si las unidades vendidas son menores a las unidades presupuestadas dividido 5, es decir, vendimos menos que el 20 % de lo presupuestado. Amarillo: Si el valor de las unidades vendidas est entre unidades presupuestadas dividido 3 y unidades presupuestadas dividido 5 (el valor vendido esta entre el 20 % y el 80 % de lo presupuestado). Verde: Si no se cumple ninguna de las condiciones anteriores, es decir, vendimos ms del 80 % de lo presupuestado.

Pgina 19 de 25

Caso de Estudio

Ilustraremos los conceptos que aprendimos en esta unidad con nuestro ejemplo de La Distribuidora Latinoamericana de Alimentos (DLA). Construiremos el modelo del data mart de ventas en tres etapas:

Etapa 1 Construccin de las Dimensiones Etapa 2 Armado de la Tabla de Hechos Etapa 3 Definicin de las Medidas Construccin de las Dimensiones
Como primer paso definiremos las dimensiones porque estas nos darn las aperturas del cubo. En base a definiciones surgidas de los reuniones de trabajo con los representantes de DLA, vimos que necesitan analizar sus datos segn el siguiente cuadro:
Hecho a medir: Venta de Productos Dimensiones Medidas Tiempo Sucursal Vendedor Cliente Producto Ventas_Importe X X X X X Ventas_Costo X X X X X Ventas_Unidades X X X X X Ventas_ImporteTotal X X X X X Ventas_Ganancia X X X X X Ventas_Promedio X X X X X

Si trabajamos en forma correcta, debera haber una exacta coincidencia entre la definicin de las dimensiones y los datos que estamos extrayendo de las fuentes transaccionales. Si esa coincidencia no ocurre, en alguna de las dos etapas tenemos un error, o bien los datos de origen no estn correctos o bien definimos mal las dimensiones. Comenzaremos por la Dimensin Tiempo ya que, como aprendimos en esta unidad, es la ms importante dentro de cualquier data mart. Nuestro cliente necesita analizar sus datos diariamente, entonces definiremos los niveles:

Pgina 20 de 25

Ao Semestre Trimestre Mes Da La tabla de dimensin quedara formada:


Dimensin Tiempo

* ** *** **** *****

Ao Semestre Trimestre Mes Da

Dimensin Sucursal, usaremos un esquema estrella y su estructura jerrquica ser:


Dimensin Sucursal

*
** *** **** *****

Sucursal Tipo Sucursal Pas Provincia Ciudad

Dimensin Vendedor, al igual que sucursal, tendr un esquema estrella y quedar definida por los niveles:
Dimensin Vendedor

*
** ***

Sucursal Seccin Vendedor

Dimensin Cliente tendr todos los atributos de un cliente.

Pgina 21 de 25

Dimensin Cliente

*
** *** ****

Pas Provincia Ciudad Razn Social

Dimensin Producto, esta dimensin la construiremos segn un esquema copo de nieve. En estos casos se mantiene la normalizacin propia de los sistemas OLTP. Cada tabla contiene los datos iniciales y su relacin con el resto. La dimensin nos quedar normalizada por lo que usaremos ms tablas para construirla. Nuestro cliente puede clasificar sus productos segn la categora, el departamento y la familia de producto a la que pertenece.

Armado de la Tabla de Hechos


Ahora que tenemos definidas las dimensiones y sus niveles, conformaremos la tabla de Hechos. La tabla de hechos debe tener las columnas claves de las tablas de las dimensiones y las columnas de las medidas. Primero colocaremos las columnas claves de la tabla cada una de las tablas de dimensiones.

Pgina 22 de 25

Fact_Ventas ID_Fecha ID_Producto ID_Cliente ID_Vendedor

Definicin de las Medidas


Recordemos que las medidas son los valores numricos que el usuario desea analizar. Vimos que nuestro cliente necesita medir: El coste inducido en cada unidad vendida El valor de venta de cada producto. La ganancia obtenida en la venta de cada producto. Agregaremos a nuestra tabla de hechos ventas estas medidas:

Fact_Ventas ID_Fecha ID_Producto ID_Cliente ID_Vendedor Ventas_Importe Ventas_Costo Ventas_Unidades

La medida ganancia obtenida en la venta de cada producto no la agregamos a la tabla porque esta medida puede ser calculada a partir de las medidas naturales ventas importe y ventas costo. Nuestro modelo contar tambin con las medidas calculadas: Ventas_Ganacia que tendr la formula Ventas_Importe menos Ventas_Costo Ventas_Promedio que ser el resultado de la suma de Ventas_Unidades dividido cantidad de das, comprobando la condicin del numerador diferente de cero.

Pgina 23 de 25

Realizadas estas tres etapas, podemos ver el diseo completo de nuestro data mart.

Lecciones Aprendidas
Un Data Mart adopta un esquema estrella para maximizar la performance de las consultas. Las dimensiones son categoras descriptivas por las cuales las medidas se pueden separar para el anlisis. La dimensin Tiempo esta implcita en todo Data Mart Las medidas son los datos numricos de inters primario para el cliente Con las medidas calculadas se pueden construir alertas

Pgina 24 de 25

Preguntas de Reflexin
Tenemos claramente definidos los requerimientos? Conocemos los hechos que se quieren analizar, los indicadores y las aperturas por las cuales se quiere hacer el anlisis? Concuerda esta definicin con las tablas auxiliares que creamos y poblamos con datos de los sistemas OLTP? Sabemos si los usuarios utilizarn las dimensiones para navegar o para filtrar? Cubren las dimensiones diseadas las necesidades de los usuarios intuitivamente y con facilidad de manejo? Se tienen todas las medidas naturales con las aperturas requeridas? Est definida la forma de agregacin, al salir de la granularidad mnima, para todas las medidas naturales? Estn definidas las frmulas o criterios de todas las medidas calculadas? Estn correctamente documentadas todas las definiciones?

Pgina 25 de 25

You might also like