Está en la página 1de 44

Ejemplo de un data Mart

Ventas
Ejemplo
La utilización de las técnicas de inteligencia de negocios (business
intelligence BI), sirven como apoyo a los gerentes y operadores del
conocimiento en la toma de decisiones. Su principal objetivo es encontrar
en grandes volúmenes de datos, información que pueda ser relevante para
los procesos que se realizan en la empresa; debido a que facilita el análisis
de la información en distintos niveles y además permite encontrar
relaciones entre tales datos.
Dentro de estas tecnologías se encuentran las bodegas de datos (Data
Warehouse, y en pequeña escala el Data Mart), las cuales se definen como
bases de datos que contienen datos consolidados con los que se pueden
generar análisis. Su materia prima son las bases de datos transaccionales (y
otras fuentes de datos como Excel, archivos planos entre otros) que tiene la
empresa.
Este documento presenta un análisis y un diseño para un Data Mart
académico dirigido a una tienda de ropa “La universal”, el cual tiene como
propósito proporcionar una herramienta que le permita tomar decisiones de
diversas variables en diversos contextos (históricos, geográficos entre otros).
“La Universal” es una empresa líder en una amplia gama de productos de limpieza, cocina, cuidado personal, cuidado de ropa y de rop

Descripción de la
empresa
“La Universal” es una empresa líder en una amplia gama de productos
de limpieza, cocina, cuidado personal, cuidado de ropa y de ropa en general.
“La universal” comercializa productos de diversas marcas principalmente
en varios departamentos de Colombia. La empresa lleva en el mercado 15 años
Sistema transaccional
actual
Alcance

Se desarrollara la etapa de análisis, construcción del modelo


conceptual, transformación de datos y un prototipo de la bodega de
datos. Se realizara también una etapa de pruebas e implementación
del sistema. Las correcciones que se vislumbren en la implementación
se dejaran para una próxima versión. Solamente se construirá un data
mart para el análisis de las ventas de la empresa, los otros temas no
se incluirán (como análisis de presupuesto, clientes, proveedores etc)
y serán parte de otros proyectos (data mart), por lo tanto el modelo
relacional solo incluirá lo correspondiente a: las cantidades vendidas y
el valor vendido únicamente de los últimos 5 años.
Requerimientos
El crecimiento de la empresa, la lentitud de los reportes en la base de datos
transaccional ha hecho que surja la necesidad de generar un sistema de
información que permita obtener información en forma rápida e intuitiva en
los últimos 5 años, en forma anual, mensual y en el día a día.

- La empresa necesita analizar las ventas (tanto en cantidad como en valor)


a través de las diferentes sucursales, las ciudades y los departamentos en
las que tiene sede, lo cual daría una visión mas global y mas amplio de la
empresa y permitiría tomar decisiones tanto al gerente general como a los
gerentes de cada sede.

- Se requiere estudiar las ventas realizadas por cada tipo de producto y


dentro de estas por cada una de las marcas que comercializa a través del
tiempo, esto daría una idea de los productos y las marcas que mas se han
vendido en los ultimas años
Identificación de los pocesos
del negocio
Identificación de los procesos del negocio (entidades) y los
indicadores claves (Medidas)
Según el análisis desarrollado, en el data mart se enfocara hacia el
análisis de las ventas específicamente el valor de ventas y las unidades
vendidas
Estos indicadores se analizaran desde diferentes perspectivas (también
llamadas entidades o dimensiones):

- En cada una de las sucursales existentes en todo el país (punto de


vista geografico)
- En los últimos 5 años, anualmente, mensualmente, día
- A través de los diferentes productos que se venden.
Identificación de dimensiones

Identificación de las dimensiones


Las dimensiones identificadas serían:
Geografia Tiempo Producto, alrededor de ellas se analizarian las
ventas realizadas por la empresa.
Niveles

Cada dimensión esta conformada por diversos niveles que permiten ver la
información
en forma general o en forma mas detallada
Los niveles para cada dimensión son los siguientes
(Comenzando por el nivel más alto):

Geografia Tiempo
Dimensión Geografía
En este nivel, las ventas se analizarian a diferente nivel o jerarquia:
- A un nivel mas general, es decir las ventas totales de toda la empresa
- A niveles mas detallados como:las ventas por cada departamento
- Mas minuciosamente por cada departamento el valor total de las ventas por cada
una de las ciudades que la conforma
- muchisimo mas detallado por cada una de las sucursales existentes en cada
ciudad.
Total 70.000.000
Dpto Antioquia 50.000.000
Ciudad Medellín 40.000.000
Sucursal Colombia 25.000.000
Laureles 15.000.000
Ciudad Itagui 10.000.000
Sucursal Calatrava 7.000.000
Santamaría 3.000.000
Dpto Valle 20.000.000
Ciudad Cali 20.000.000
Sucursal Juanchito 15.000.000
Dimensión Tiempo
Igualmente se desea analizar la información a través del tiempo lo cual significa
alcanzar una jerarquia en la que se observaria las ventas totales o discriminadas
por ano o en forma mas detallada por mes o por día.

Total 70.000.000
Ano 2004 20.000.000
Enero 5.000.0000
.
.

Noviembre 1.000.000
Ano 2005 50.000.000
Enero 2.000.000

Noviembre 3.000.000
Dimensión Producto
Por producto se desea analizar los diferentes tipos de productos y dentro
de los tipos la marca de cada uno de ellos

Total 70.000.000
Ropa 30.000.000.
Arquitect 10.000.000
Camisa 3.000.000
Camiseta 5.000.000
Pantalón 2.000.000
Leonisa 15.000.000
Get 5.000.000
Limpieza 20.000.000
Fab 7.000.000
Jabon 5.000.000
Detergente 2.000.000
Limpieza
Personal 20.000.000
Dimensión producto

Como se observa en este caso el total de las ventas en todas las


dimensiones es de 70.000.000, es decir, el valor total siempre debe ser
igual obviamente.

Se observa en forma detallada las ventas en ropa, específicamente en la


marca arquitect y mas detalladamente producto por producto, en el caso
de la limpieza personal no se detalla cada una de las marcas sino que se
observa el valor total. El sistema también brinda la posibilidad de mostrar,
por ejemplo el valor detallado por limpieza personal en cada una de las
marcas y mas detallada, producto por producto.
Conclusión

El data mart, mostraría el valor de las ventas combinando todas las


dimensiones seleccionadas

Medidas cuantitativas: Cantidad Vendida,


Valor total de las ventas
Modelo Estrella

El modelo estrella esta conformado por una tabla de hechos y las tablas de
tipo dimensión
Las dimensiones están conformadas por los niveles de las dimensiones
identificadas anteriormente.

La tabla de hechos contiene las medidas que se desean analizar en este caso se
analizaran las ventas en pesos a través de toda la geografía nacional, a través de
todo el tiempo y los diferentes productos que ofrece la empresa.
Modelo Estrella
Geografía: Contiene la información de todas las sucursales en las que se
encuentra ubicada la empresa distribuidas a través de todas las ciudades y
los departamentos del país, esto con el fin de poder analizar las ventas en
todos estos niveles
Tiempo: Corresponde a los datos de los diferentes anos, meses y días en
que la empresa ha estado laborando, lo cual permite obtener información
importante sobre las ventas realizadas a través de los años, en forma
histórica, además de realizar comparativos

Producto: Se refiere a la información de los productos que se venden en la


empresa, el análisis se va a realizar por la clasificación que tienen de los
productos (el tipo) y por las marcas dentro de cada tipo de producto. Por
ejemplo para un tipo de producto (ropa) se analizaran las ventas de marcas
tales como: imusa, corona, etc
Modelo estrella
Arquitectura
Componentes

Las bases de datos operacionales con que cuenta la empresa


“La universal”, esta base de datos esta desarrollada en access.
Las DTS son los Servicios de transformación de datos (DTS,
Data Transformation Services) de Microsoft SQL Server, los
cuales son un conjunto de herramientas gráficas y objetos
programables que permitirían
 Realizar procesos de limpieza depuración y carga de datos
 transformar y consolidar datos de distintos orígenes en una
sola base de datos relacional (en este caso)
Componentes

Las tablas temporales, llamadas así por que se crean y se


destruyen en tiempo de ejecución. Son creadas en el data mart (que
es una base de datos relacional) y deben tener una estructura
parecida a las tablas existentes en las bases de datos
operacionales. Por ejemplo si tenemos una tabla “Alumno” en la
base de datos operacional con muchos campos se puede crear una
tabla temporal denominada “TmpAlumno” solamente con los campos
que se requieren llevar al data Mart.
Componentes

El modelo estrella, es el esquema


explicado, Se crea en la misma base de
datos relacional donde se crean las tablas
temporales.
Herramientas OLAP Server de
Microsoft, herramientas utilizadas para
manipular las bases de datos
multidimensionales donde se almacenan
los cubos formados por diversas aristas
Proceso
Componentes

El modelo estrella, es el esquema


explicado, Se crea en la misma base de
datos relacional donde se crean las tablas
temporales.
Herramientas OLAP Server de
Microsoft, herramientas utilizadas para
manipular las bases de datos
multidimensionales donde se almacenan
los cubos formados por diversas aristas
Carga de datos
Transformación y carga
Por cada tabla definitiva de los esquemas
de estrella se especifican:
 Tablas de origen: Tablas temporales de
donde proviene la información
 Estrategia de carga (Insertar y/o
actualizar datos existentes)
 Joins entre las tablas temporales
 Filtros
 inconsistencias: No todas las bases de
datos son integras muy posiblemente
en una base de datos se pueden
presentar inconsistencias debido a que
la base de datos es muy vieja y viene
de manejadores de archivos planos.
Carga de datos
Nombre de la Tabla: tmpDpto
Columna Tipo Calculada Long
[idDpto] Int
Nombre de la Tabla: Geografia [strNomDpto varchar 100

Columna Tipo
IdGeografia Int
Sucursal Varchar(50) Nombre de la Tabla: tmpSucursal
Ciudad Varchar(50)
Dpto Varchar(20) Columna Tipo Calculada Long
[idSucursal] Int
[strNomSucursal varchar 100
IdCiudad Int 100

Nombre de la Tabla: tmpCiudad


Columna Calculada Long
[idCiudad] Int
[strNomCiudad varchar 100
IdDpto Int
Carga de datos
Carga de la tabla Geografía

Datos a cargar tmpSucursal.idSucursal,


tmpSucursal.strnomSucursal,
tmpCiudad.strNomciudad,
tmpDpto.strNomDpto
Tablas de origen tmpSucursal, tmpCiudad, tmpDpto
Joins TMPSucursal.[IdCiudad] = TMPCiudad.[IdCiudad]

TMPCiudad.[IdDptol] = [TMPDpto].[IdDpto]

Estrategia de carga Actualizar existentes e insertar nuevos

Filtros

Inconsistencias Sucursales que no tienen una ciudad asociada

Ciudades que no tengan un departamento asociado


Carga de datos

Cargar tabla de geografía


Este procedimiento almacenado
permite cargar la tabla de
geografía_dim basado en las tablas
tmpDpto, tmpCiudad, tmpSucursal.

SELECT tmpSucursal.idSucursal,
tmpSucursal.strNomSucursal,
tmpCiudad.strNomCiudad,
tmpDpto.strNomDpto
FROM tmpSucursal, tmpCiudad, tmpDpto
WHERE tmpCiudad.idCiudad = tmpSucursal.IdCiudad AND
tmpCiudad.idDpto = tmpDpto.IdDpto
Carga de datos
Instrucción insert para hacer una inserción
masiva de todas las sucursales existentes
con su respectiva ciudad y departamento en
la tabla de geografía.
Insert into Geografia_Dim
(idSucursal,strNomSucursal,strNomCiudad,st
rNomDpto)
SELECT tmpSucursal.idSucursal, Tablas
tmpSucursal.strNomSucursal, temporales

tmpCiudad.strNomCiudad,
tmpDpto.strNomDpto
FROM tmpSucursal, tmpCiudad,
tmpDpto
WHERE tmpCiudad.idCiudad =
tmpSucursal.IdCiudad AND
tmpCiudad.idDpto =tmpDpto.IdDpto
Producto cartesiano

Producto cartesiano.
Consiste en una nueva tabla formada por las filas que resulten de todas
las combinaciones posibles de las filas de la primera tabla con todas las
filas de la segunda tabla. El número de filas resultante es el producto de
la multiplicación de todas las filas de la primera tabla por la segunda. Por
esta razón es imprescindible adicionar un filtro que corresponda con el
vínculo que existe entre las tablas, de otra forma los resultados no
serían
coherentes con la información.
Producto cartesiano

Cuando se realiza una consulta,


se especifican en la cláusula
SELECT las
columnas de cada tabla que se
desean visualizar, en la cláusula
FROM los
nombres de las tablas que
contienen la información
separadas por coma.
Combinaciones internas
Combinaciones internas
Si es una combinación de 3 tablas sería:
Combinaciones internas
Esta instrucción permite insertar registros en la tabla
Geografía_Dim. Sin embargo esta instrucción tiene un
problema, permite insertar las sucursales en la primera
carga de datos, pero la segunda vez (por ejemplo dentro de
un mes) cuando se haga nuevamente una carga de datos
mostraría un error por que estaría tratando de insertar
sucursales que ya existen en la tabla de geografía, por lo
tanto se debe modificar esta instrucción para que me
permita insertar solamente las nuevas sucursales. Estas
sucursales nuevas serian aquellas que se ingresaron en el
sistema transaccional después de la primera carga de datos
y que no existen en la tabla geografía. Por lo tanto se debe
solucionar este problema de la siguiente manera:
Se utiliza una instrucción de pertenencia. Indicando las
sucursales que están en la tabla tmpSucursal y que no
pertenecen o no están (not in) en la tabla de geografía. Con
lo cual la instrucción se modificaría de la siguiente manera:
Combinaciones internas

Insert into Geografia_Dim


(idSucursal,strNomSucursal,strNomCiudad,strNomDpto)
SELECT tmpSucursal.idSucursal,
tmpSucursal.strNomSucursal,
tmpCiudad.strNomCiudad,
tmpDpto.strNomDpto
FROM tmpSucursal, tmpCiudad, tmpDpto
WHERE tmpCiudad.idCiudad = tmpSucursal.IdCiudad AND
tmpCiudad.idDpto = tmpDpto.IdDpto AND
tmpSucursal.idSucursal not in (select
Geografía_Dim.idSucursal from Geografía_Dim)
Combinaciones internas

UPDATE Geografia_Dim
SET IdSucursal = tmpSucursal.idSucursal,
strNomSucursal = tmpSucursal.strNomSucursal,
strNomCiudad =tmpCiudad.strNomCiudad,
strNomDpto =tmpDpto.strNomDpto
FROM tmpSucursal, tmpCiudad, tmpDpto,Geografía_Dim
WHERE tmpCiudad.idCiudad = tmpSucursal.IdCiudad AND
tmpCiudad.idDpto = tmpDpto.IdDpto AND
tmpSucursal.idSucursal = Geografia_Dim.IdSucursal
Combinaciones externas

En este tipo de combinaciones existe una tabla de tipo dominante


en la consulta y las otras serán subordinadas, los registros de la
tabla dominante serán incorporados al resultado final, más los
registros provenientes de la intersección de las tablas.
Las combinaciones externas izquierda y derecha combinan filas de
dos tablas que cumplen una condición, más las filas de la tabla
izquierda o derecha que no la cumplen, tal como se especifique en
la cláusula JOIN.
Las filas que no cumplen la condición de combinación presentan
NULL en el conjunto de resultados. También se pueden utilizar
combinaciones externas completas para presentar todas las filas de
las tablas combinadas, independientemente de si hay valores que
coincidan en las tablas.
Combinaciones externas
Combinaciones externas
Combinaciones externas
1. Las sucursales nuevas serían aquellas que con el left join dan null en
Geografia_Dim específicamente en el campo id_Sucursal
2. Se actualizarían las sucursales existentes con UPDATE
Combinaciones externas

Las sucursales nuevas serían aquellas que con el left join dan null en Geografia_Dim
específicamente en el campo id_Sucursal
Consultas sumarizadas

Con mucha frecuencia las consultas deben sufrir un tratamiento


adicional que permite que los resultados se puedan agrupar y
aplicar sobre esos grupos operaciones particulares. En estas
consultas que se denominaran de resumen cada fila de datos que
se visualiza puede corresponder con varias filas de las tablas
originales, por esto reciben el nombre de “resumen”, por esta
característica particular tiene una serie de restricciones
particulares que se abordaran a continuación.
Consultas sumarizadas

Las funciones se aplican a un conjunto total de registros de la tabla,


produciendo un único resultado, sinembargo en ocasiones es necesario
que las funciones se apliquen sobre grupos particulares, produciendo
“subtotales”. La cláusula GROUP BY se
utiliza para identificar los grupos sobre los cuales debe aplicarse las
funciones y produce una fila de resultado por cada grupo.
Consultas sumarizadas
Consultas sumarizadas
GRACIAS

También podría gustarte