Sunteți pe pagina 1din 6

Pasos para crear cubos OLTP en SQL Server - Inteligencia de Negocios

Etiquetas Acadmico, Informtica, Programacin


La demostracin de transformacin de una Base de datos Transaccional a un Cubo para
anlisis LAP !un tema de Inteligencia de negocios"#
El proceso consiste en ubicar la tabla $act o tabla que inclu%a todos los requerimientos,
a continuacin se debe modificar las relaciones de la base de datos % finalmente, cargar
los datos en la nue&a relacin o Cubo LTP# Para la demostracin es necesario
descargar la base de datos de e'emplo desde aqu( % tener instalado )*L )er&er +,,-
estndar#
Esta demostracin es solo un procedimiento de e'emplo, para casos reales se necesita
ma%or comple'idad de operacin % criterio, por tanto el autor no es responsable del
resultado del uso del mtodo % tampoco indica como .correcto. el procedimiento a
demostrar#
Paso 1:
/escargar la base de datos de e'emplo % restaurar en )*L )er&er# Tambien puede
restaurar la base de datos desde el script# bser&e el esquema de la base de datos
transaccional# Aprecie las relaciones de la base de datos de nombre LTP01entas#
2ote que la tabla candidato a $ACT es 3atr(cula porque relaciona las dimensiones
Cliente, Producto, Empleado, etc#
Paso 2:
Empie4a la construccin de la estructura del cubo#
Borre las relaciones de las tablas para e&itar estorbos en las operaciones#
Paso 3:
)eleccionar las tablas que 5arn la composicin del cubo# En el desarrollo del e'emplo
seleccionaremos Pedido, Cliente, Producto, Empleado % Pro&eedor
6enombre la tabla Pedido como $act0Pedido % para el resto de tablas usar /im0Cliente,
/im0Producto, etc#
Tener presente que los prefi'os .$act. % ./im. representan la .Tabla de 5ec5os. % las
./imensiones. del cubo respecti&amente#
Paso 4:
Crear la tabla /imensin Tiempo# La dimensin tiempo es necesaria % fundamental en
la construccin del cubo porque clasifica el resto de dimensiones
en funcin del tiempo#
C6EATE TABLE 7dbo8#7/im0tiempo8!
7idTiempo8 7smalldatetime8 2T 29LL,
7dia8 7int8 29LL,
7mes8 7int8 29LL,
7anio8 7int8 29LL,
C2)T6AI2T 7P:0/im0tiempo8 P6I3A6; :E; CL9)TE6E/
!
7idTiempo8 A)C
"<IT= !PA/0I2/E> ? $$, )TATI)TIC)026EC3P9TE ? $$,
I@26E0/9P0:E; ? $$, ALL<06<0LC:) ? 2,
ALL<0PA@E0LC:) ? 2" 2 7P6I3A6;8
" 2 7P6I3A6;8
Paso :
AAadir las BCla&es PrimariasB en la tabla $act0Pedido a fin de unir las entidades
Cliente, Producto, Empleado % Pro&eedor en la tabla $act0Pedido#
Para la demostracin agregue los camposC
IdProducto
IdPro&eedor
2o ol&idar agregar los campos de 3trica, para la demostracin agregueC
Cantidad !int",
/escuento !int",
)ubtotal !3one%"
Cambiar el nombre del campo $act0Pedido#$ec5a0pedido por $act0Pedido#IdTiempo
$inalmente, eliminar el campo $act0Pedido#$ec5a0entrega porque es un campo no
necesario para esta demostracin#
A5ora tenemos la estructura de cubo parcialmente terminada#
Paso !:
ContinDa la carga de datos#
Como es e&idente, los nue&os campos IdProducto, IdPro&eedor, Cantidad % )ubtotal
recientemente agregados a la tabla $act0Pedido son iguales a 29LL# Por tanto, debe
5acer el a'uste para completar estos &alores#
2ote que )ubtotal es un caso especial, porque es producto del clculo de Cantidad E
Precio#
9n mtodo prctico para llenar la tabla es usar una consulta )*L que completen los
datos que faltan en la tabla $act0Pedido#
En la demostracin usaremos la siguiente consultaC
)ELECT dbo#$act0Pedido#2roPed, dbo#/im0Producto#IdProducto,
dbo#/im0Producto#IdPro&eedor, dbo#$act0Pedido#idTiempo,
dbo#$act0Pedido#Id0Cliente,
dbo#$act0Pedido#IdEmpleado, dbo#/im0/etalle0pedido#Cantidad,
dbo#/im0/etalle0pedido#/escuento,
dbo#/im0/etalle0pedido#Cantidad E dbo#/im0Producto#Precio9nit A)
)ubtotal
$63 dbo#$act0Pedido I22E6 FI2
dbo#/im0/etalle0pedido 2 dbo#$act0Pedido#2roPed ?
dbo#/im0/etalle0pedido#2roPedido I22E6 FI2
dbo#/im0Producto 2 dbo#/im0/etalle0pedido#IdProducto ?
dbo#/im0Producto#IdProducto
cu%o resultado es copiado en un arc5i&o de teGtoC
H IJ+K C,,+ +,,LM,HM+K ,,C,,C,,#,,, /,,J /,N H,, HK +,,,,,,
+ JKNJ C,,H +,,LM,KMHI ,,C,,C,,#,,, $,,N C,K HK HH ++K,,,,,
I +IJK C,,H +,,LM,-M+J ,,C,,C,,#,,, C,,I A,+ JK HO +,+,K,,,
I L-JK C,,I +,,LM,-M+J ,,C,,C,,#,,, C,,I A,+ N, HK H-,,,,,,
Paso ":
A continuacin, borrar los registros de la tabla $act0Pedido# Luego, editar la Tabla
$act0Pedido quitando la Cla&e Primaria de 2roPed % asignando
cla&e primaria a los camposC
IdProducto
IdPro&eedor
idTiempo
Id0Cliente
IdEmpleado
En algunos casos % debido a la duplicacin de registros este paso es opcional#
9na manera sencilla de lograrlo es seleccionar los campos descritos, 5acer clic derec5o
% asignar BEstablecer cla&e principalB# La tabla deber(a quedar as(C
Paso #:
Cargar los datos desde el arc5i&o de teGto descrito en Paso N sobre la tabla $act0Pedido#
La tabla se llenar, %a no 5a% lugar a campos nulos#
Paso $:
Cargar los datos para la tabla /im0Tiempo# Los datos de /im0Tiempo son el resultado
de $act0Pedido#IdTiempo, por tanto, ser Dtil seleccionar todos
los registros distintos de la tabla $act0tiempo de la siguiente maneraC
)ELECT /I)TI2CT idTiempo, /A;!idTiempo" A) dia, 32T=!idTiempo" A) mes,
;EA6!idTiempo" A) anio
$63 dbo#$act0Pedido
Paso 1%:
6elacionar $act0Pedido con el resto de tablas o dimensiones# )i tiene problemas con los
tipos de datos, cambie los campos
de la tabla $act0Pedido a los tipos requeridos#
Como era de esperarse, a5ora tenemos el .cubo. listo C/

S-ar putea să vă placă și