Practica Data
Practica Data
Practica Data
La compaa Global Computing, nacida en 1990, distribuye componentes software y hardware a clientes
en todo el mundo, mediante venta directa, catlogo e internet. Las ventas han sido histricamente
estacionales, siendo el primer trimestre el ms fuerte y el tercero el ms pobre. La compaa ha tenido
un crecimiento saludable a lo largo de los aos.
Problemas de negocio
Sin motivo aparente, la compaa ha tenido un primer trimestre de ventas ms bajo que en otros aos.
Los mrgenes se han reducido, las ventas han empezado a descender y los beneficios han bajado.
Recientemente, la compaa ha empezado a utilizar internet como un nuevo canal de ventas, pero los
beneficios han seguido decreciendo.
GCC quiere analizar las tendencias de ventas recientes, qu componentes de su negocio generan
beneficios y cuales podran generar ms. En cualquier caso, la informacin que ha llegado del director de
departamento dice que los sistemas actuales de reporting no proporciona la informacin necesaria para
comprender que est ocurriendo. Esta carencia de informacin est llevando a tomar decisiones
basadas en la intuicin ms que en los datos actuales.
Recomendaciones del equipo directivo
El equipo directivo de GCC recomienda que el departamento de IT disee y construya un Data
Warehouse, de forma que proporcione respuestas a las cuestiones crticas. La implementacin inicial
debe realizarse en 120 das.
Resultados del anlisis estratgico de GCC
De las entrevistas con los miembros del equipo directivo corporativo se han extrado dos procesos
principales como candidatos para el Data Wareouse: Ventas y Gestin de Inventario.
Toda esta informacin permitir a GCC a reducir costes e incrementar beneficios, negociando mejor los
acuerdos con minoristas.
Objetivos de negocio para el Data Warehouse
El equipo de direccin decide implementar el proceso de negocio de ventas, donde se encuentran tres
objetivos de negocio principales.
GCC quiere incrementar ventas y beneficios:
*ID_ELEMENTO
*FECHA_EFECTO
COSTE_ UNITARIO
PRECIO_UNITARIO
*ID_ELEMENTO
FECHA_EFECTO
COSTE_ UNITARIO
PRECIO_UNITARIO
*ID_FAMILIA
DESC_FAMILIA
ID_CLASE
*ID_ELEMENTO
PAQUETE
DESCRIPCIN
FUENTE
ID_FAMILIA
ID_CLASE
*ID_ORDEN
*NUM_LIN_ORDEN
ID_ELEMENTO
UNIDADES
VENTAS
COSTE
*ID_CANAL
DESC_CANAL
*ID_SEGMENTO
DESC_SEGMENTO
*ID_ORDEN
ID_CANAL
ID_ENTREGA
FECHA_ORDEN
ID_COMERCIAL
ID_PAGO
VENTAS_TOTAL
IMPUESTOS
*ID_CUENTA
CU_NOMBRE
CU_DIRECCIN
CU_CIUDAD
CU_PROVINCIA
CU_C_AUTNOMA
CU_COD_POSTAL
CU_TASA_IMPUESTO
ID_SEGMENTO
*ID_COMERCIAL
NOMBRE
ID_JEFE
*ID_PAGO
DESCRIPCION_PAG
*ID_ENTREGA
ID_CUENTA
ID_ALMACEN
DIRECCIN
CIUDAD
PROVINCIA
C_AUTNOMA
COD_POSTAL
TASA_IMPUESTO
DESCRIPCIN
DESC_TIPO_DIR
*ID_CLASE
DESC_CLASE
Se pide realizar el modelado del DWH completando, en los diferentes pasos, las siguientes tablas
y generando una memoria con toda la documentacin relevante del proceso.
El objetivo global que deducimos de la lectura del planteamiento es que la compaa Global Computing
desea aumentar sus ganancias incrementando de las ventas de productos, incrementndose los
beneficios de la compaa.
Para alcanzar el objetivo anterior, el Departamento de Ventas y Marketing debe (Objetivos de negocio):
Analizar las tendencias de la industria y los segmentos especficos del mercado de destino.
Analizar los canales de ventas y la manera de aumentar las ganancias a travs de los mismos.
Identificar las tendencias de producto ofertados por la compaa y crear una estrategia para el
desarrollo de los canales adecuados.
Ventas
Unidades
Variacin de las ventas respecto al perodo anterior
Variacin porcentual de las ventas al perodo anterior
Cantidad de ventas del ao anterior
Porcentaje de ventas del ao anterior
Cuota de producto
Canales de ventas
Cuota de mercado
Coste total de cada producto
Margen de beneficio
Unidades vendidas, cambiar de perodo anterior
Unidades vendidas, variacin porcentual del periodo anterior
Unidades vendidas, cambio del ao anterior
Unidades vendidas, variacin porcentual del ao anterior
Del listado anterior, extraigo cuatro hechos (medidas) de la base de datos transaccional:
Euros Vendidos
Unidades Vendidas
Beneficio:
o Euros de Margen
o Porcentaje de margen
P RODUCTO
CANAL
Key_Producto
Coste_Unitario
Key_Familia
Desc_Familia
Key_Clase
Desc_Clase
Paquete
Fuente
Key_Total
Desc_Total
Precio_Unidad
Key_Canal
Desc_Canal
Key_Total
Desc_Total
VENT AS
Key_Canal (FK)
Key_Direccion_Entrega (FK)
Key_Mes (FK)
Key_Producto (FK)
Euros_Margen
Unidades_Vendidas
Euros_Vendidos
Porcentaje_Margen
T IEMPO
Key_Mes
Key_Ao
Desc_Ao
Key_Trimestre
Desc_Trimestre
Desc_Mes
Key_Total
Desc_Total
Medida
Euros Vendidos
Unidades Vendidas
Euros Margen
Porcentaje de Margen
CLIENT E
Key_Direccion_Entrega
Key_Cuenta
Key_Segmento
Desc_Segmento
Desc_Cuenta
Key_C_Autonoma
Desc_C_Autonoma
Key_Provincia
Desc_Provincia
Key_Ciudad
Desc_Ciudad
Cod_Postal
Tasa_Impuesto
Dimensin Negocio
Elemento Dimensin
Producto
Producto
Familia
Clase
Paquete
Fuente
Precio_Unidad
Coste_Unidad
Cuenta
Segmento
C_Autonoma
Provincia
Ciudad
Direccion_Entrega
Tasa_Impuesto
Canal
Ao
Trimestre
Mes
Cliente
Canal
Tiempo
Medida DWH
Euros Vendidos
Unidades Vendidas
Euros de Margen
Porcentaje de Margen
Dimensin
Producto
Cliente
Jerarqua
Producto
Geogrfica
Canal
Tiempo
Canal_Ventas
Temporal
BASE
Si
Si
DERIVADA
Si
Si
Niveles Jeraqua
TOTAL / CLASE / FAMILIA / PRODUCTO
TOTAL / C_AUTONOMA / PROVINCIA / CIUDAD /
DIRECCION_ENTREGA
TOTAL / CANAL
TOTAL / AO / TRIMESTRE / MES
P RODUCT O
Key_Producto
Coste_Unitario
Key_Familia
Desc_Familia
Key_Clase
Desc_Clase
Paquete
Fuente
Key_Total
Desc_T otal
Precio_Unidad
Desc_Producto
CANAL
Key_Canal
Desc_Canal
VENTAS
Key_Canal (FK)
Key_Direccion_Entrega (FK)
Key_Mes (FK)
Key_Producto (FK)
Euros_Margen
Unidades_Vendidas
Euros_Vendidos
Porcentaje_Margen
T IEMPO
Key_Mes
Key_Ao
Desc_Ao
Key_T rimestre
Desc_Trimestre
Desc_Mes
Key_T otal
Desc_Total
CLIENTE
Key_Direccion_Entrega
Key_Cuenta
Key_Segmento
Desc_Segmento
Desc_Cuenta
Key_C_Autonoma
Desc_C_Autonoma
Key_Provincia
Desc_Provincia
Key_Ciudad
Desc_Ciudad
Cod_Postal
Tasa_Impuesto
Desc_Direccion_Entrega
M e jores_Productos
Cl a sificacion_Canales
Key_Canal
Desc_Canal
Key_Producto
Key_Familia
Desc_Familia
Unidades_Vendidas
T e ndencias_Productos_Mensual
Desc_Mes
Key_Mes
Key_Producto
Unidades_Vendidas
Desc_Producto
Key_Producto
Desc_Producto
Euros_Vendidos
Unidades_Vendidas
Porcentaje_Margen
Euros_Margen
SCRIPT
DROP DIMENSION DIM_CLIENTE;
DROP DIMENSION DIM_PRODUCTO;
DROP DIMENSION DIM_CANAL;
DROP DIMENSION DIM_TIEMPO;
DROP TABLE PRODUCTO;
DROP TABLE CLIENTE;
DROP TABLE CANAL;
DROP TABLE TIEMPO;
DROP TABLE VENTAS;
DROP MATERIALIZED VIEW Mejores_Productos;
DROP MATERIALIZED VIEW Clasificacion_Canales;
DROP MATERIALIZED VIEW Tendencias_Productos_Mensual;
CREATE TABLE CANAL
(
Key_Canal
INTEGER NOT NULL ,
Desc_Canal
CHAR(150) NULL
);
CREATE UNIQUE INDEX XPKCANAL ON CANAL (Key_Canal ASC);
ALTER TABLE CANAL ADD CONSTRAINT XPKCANAL PRIMARY KEY (Key_Canal);
CREATE TABLE CLIENTE
(
Key_Direccion_Entrega INTEGER NOT NULL ,
Key_Cuenta
INTEGER NULL ,
Key_Segmento
INTEGER) NULL ,
Desc_Segmento
CHAR(150) NULL ,
Desc_Cuenta
CHAR(150) NULL ,
Key_C_Autonoma
INTEGER NULL ,
Desc_C_Autonoma
CHAR(150) NULL ,
Key_Provincia
INTEGER NULL ,
Desc_Provincia
CHAR(150) NULL ,
Key_Ciudad
INTEGER NULL ,
Desc_Ciudad
CHAR(150) NULL ,
Cod_Postal
CHAR(5) NULL ,
Tasa_Impuesto
CHAR(4) NULL ,
Desc_Direccion_Entrega CHAR(150) NULL
);
CREATE UNIQUE INDEX XPKCLIENTE ON CLIENTE (Key_Direccion_Entrega ASC);
ALTER TABLE CLIENTE ADD CONSTRAINT XPKCLIENTE PRIMARY KEY (Key_Direccion_Entrega);
CREATE TABLE PRODUCTO
(
Key_Producto
INTEGER NOT NULL ,
Coste_Unitario
DECIMAL(4,6) NULL ,
Key_Familia
INTEGER NOT NULL ,
Desc_Familia
CHAR(150) NULL ,
Key_Clase
INTEGER NOT NULL,
Desc_Clase
CHAR(150) NULL ,
Paquete
VARCHAR2(20) NULL ,
Fuente
VARCHAR2(20) NULL ,
Key_Total
INTEGER NOT NULL,
Desc_Total
VARCHAR2(20) NULL ,
Precio_Unidad
Desc_Producto
DECIMAL(4,3) NULL ,
VARCHAR2(120) NULL
);
CREATE UNIQUE INDEX XPKPRODUCTO ON PRODUCTO (Key_Producto ASC);
ALTER TABLE PRODUCTO ADD CONSTRAINT XPKPRODUCTO PRIMARY KEY (Key_Producto);
CREATE TABLE TIEMPO
(
Key_Ao
INTEGER NOT NULL ,
Desc_Ao
DATE NULL ,
Key_Trimestre
INTEGER NOT NULL,
Desc_Trimestre
DATE NULL ,
Desc_Mes
DATE NULL ,
Key_Mes
INTEGER NOT NULL,
Key_Total
INTEGER NOT NULL,
Desc_Total
DATE NULL
);
CREATE UNIQUE INDEX XPKTIEMPO ON TIEMPO (Key_Mes ASC);
ALTER TABLE TIEMPO ADD CONSTRAINT XPKTIEMPO PRIMARY KEY (Key_Mes);
CREATE TABLE VENTAS
(
Euros_Margen
CHAR(18) NULL ,
Unidades_Vendidas INTEGER NULL ,
Euros_Vendidos
DECIMAL(5,3) NULL ,
Porcentaje_Margen CHAR(3) NULL ,
Key_Canal
INTEGER NOT NULL ,
Key_Direccion_Entrega INTEGER NOT NULL,
Key_Mes
INTEGER NOT NULL,
Key_Producto
INTEGER NOT NULL
);
CREATE UNIQUE INDEX XPKVENTAS ON VENTAS (Key_Canal ASC,Key_Direccion_Entrega
ASC,Key_Mes ASC,Key_Producto ASC);
ALTER
TABLE
VENTAS
ADD
CONSTRAINT
(Key_Canal,Key_Direccion_Entrega,Key_Mes,Key_Producto);
XPKVENTAS
PRIMARY
KEY
ALTER TABLE VENTAS ADD (CONSTRAINT R_2 FOREIGN KEY (Key_Canal) REFERENCES CANAL
(Key_Canal));
ALTER TABLE VENTAS ADD (CONSTRAINT R_3 FOREIGN KEY (Key_Direccion_Entrega)
REFERENCES CLIENTE (Key_Direccion_Entrega));
ALTER TABLE VENTAS ADD (CONSTRAINT R_4 FOREIGN KEY (Key_Mes) REFERENCES TIEMPO
(Key_Mes));
ALTER TABLE VENTAS ADD (CONSTRAINT R_1 FOREIGN KEY (Key_Producto) REFERENCES
PRODUCTO (Key_Producto));
CREATE DIMENSION DIM_CLIENTE
level direccion is DIM_CLIENTE.KEY_DIRECCION_ENTREGA
level ciudad is DIM_CLIENTE.KEY_CIUDAD
level provincia is DIM_CLIENTE.KEY_PROVINCIA
level comunidad is DIM_CLIENTE.KEY_C_AUTONOMA
hierarchy CLIENTE (direccion child of ciudad child of provincia child of comunidad)
attribute direccion determines DESC_DIRECCION_ENTREGA
attribute ciudad determines DESC_CIUDAD