“Práctica 2” Bases de Datos para la Toma de Decisiones
DanielaIberriPráctica o problema8 de Febrero de 2018
1.730 Palabras (7 Páginas)258 Visitas
[pic 1]
“Práctica 2”
Bases de Datos para la Toma de Decisiones
Maestro: Victor Hugo Ortega
Alumno: Daniela Iberri León
Expediente: ES698057
08 de febrero de 2018
Introducción
Con ayuda de la base de datos transaccional de una empresa de autobuses generada previamente en la cual se integran tablas de catálogos y de transacción, el objetivo de esta práctica es generar transformarla en una base de datos dimensional utilizando la estructura de estrella. Y crear un stored procedure para llevar a cabo la carga de datos requeridos de la base de datos transaccional a la dimensional.
Captura de pantalla del modelo transaccional.
[pic 2]
Captura de pantalla del diagrama transaccional con la categorización de las tablas para generar los posibles modelos dimensionales.
[pic 3]
Captura de pantalla del modelo dimensional que apoye el proceso de ventas.
[pic 4]
Código SQL documentado para tomar datos de la base de datos transaccional (AUTOBUS.BAK) e insertarlos en la base de datos dimensional (AUTOBUSDIMTUNÚMERODEEXPEDIENTE.BAK).
CREATE PROCEDURE SP_poblado_AutobusDim698057
AS
delete [AutobusDim698057].[dbo].[Fact-Venta];
delete [AutobusDim698057].[dbo].[Folio];
delete [AutobusDim698057].[dbo].[Tiempo];
delete [AutobusDim698057].[dbo].[Cliente];
delete [AutobusDim698057].[dbo].[Empleados];
--Cliente
INSERT INTO [AutobusDim698057].[dbo].[Cliente]
SELECT [IDCliente],
[Nombre],
[FechaNacimiento],
[Genero],
[RFC]
FROM [Practica2 Autobus].[dbo].[Cliente]
--select * from AutobusDim698057 .dbo. cliente
--Empleados
INSERT INTO [AutobusDim698057].[dbo].[Empleados]
SELECT IDEmpleado,
Nombre,
App,
Apm,
Genero
FROM [Practica2 Autobus].dbo.Empleados
--select * from AutobusDim698057 .dbo. empleados
--Folio
INSERT INTO [AutobusDim698057].[dbo].[Folio]
SELECT [Folio]
FROM [Practica2 Autobus].dbo.[Venta]
--select * from AutobusDim698057 .dbo. folio
--Tiempo
INSERT INTO [AutobusDim698057].[dbo].[Tiempo]
SELECT DISTINCT CAST(
SUBSTRING(CONVERT(varchar, Fecha, 126),0,5)+
SUBSTRING(CONVERT(varchar, Fecha, 126),6,2)+
SUBSTRING(CONVERT(varchar, Fecha, 126),9,2) AS INT) IDFecha,
CONVERT ( varchar, Fecha, 126) AS Fecha,
SUBSTRING ( CONVERT ( varchar, Fecha, 126),0,5) as Anio,
SUBSTRING (CONVERT ( varchar, Fecha, 126),6,2) as Mes,
SUBSTRING (CONVERT ( varchar, Fecha, 126),9,2) as Dia,
CASE SUBSTRING ( CONVERT( varchar, Fecha, 126),6,2)
WHEN '01' THEN 'Enero'
WHEN '02' THEN 'Febrero'
WHEN '03' THEN 'Marzo'
WHEN '04' THEN 'Abril'
WHEN '05' THEN 'Mayo'
WHEN '06' THEN 'Junio'
WHEN '07' THEN 'Julio'
WHEN '08' THEN 'Agosto'
WHEN '09' THEN 'Septiembre'
...