7/22/2019 Pasos Para La Creacion de BD OLTP y OLAP
http://slidepdf.com/reader/full/pasos-para-la-creacion-de-bd-oltp-y-olap 1/13
Resumen
Pasos para la construcción de OLTP y OLAP
CONSTRUCCIÓN DE OLTP
Paso No. 1: Modelado de OLTP
Para el modelado del OLTP, usamos la herramienta ER Studio y modelamos nuestro sistema
transaccional. Para el proyecto ejemplo se realizó a partir de un sistema académico genérico.
Modelado:
7/22/2019 Pasos Para La Creacion de BD OLTP y OLAP
http://slidepdf.com/reader/full/pasos-para-la-creacion-de-bd-oltp-y-olap 2/13
Paso No. 2: Generación de Modelado Físico (Generar Script SQL y Diccionario De Datos).
Modelo Físico
Generar Script SQL
Generar Diccionario De Datos:
7/22/2019 Pasos Para La Creacion de BD OLTP y OLAP
http://slidepdf.com/reader/full/pasos-para-la-creacion-de-bd-oltp-y-olap 3/13
Paso No. 3: Creación de BD OLTP
El Script generado se abre con Microsoft SQL Server Management Studio y se ejecuta para
crear la base de datos y las tablas de nuestro OLTP.
7/22/2019 Pasos Para La Creacion de BD OLTP y OLAP
http://slidepdf.com/reader/full/pasos-para-la-creacion-de-bd-oltp-y-olap 4/13
Paso No. 4: Poblado de Datos con Excel
Para el poblado de los datos nos auxiliamos de Excel, esto es adecuado ya que por lo general
los datos de los usuarios finales los pueden trabajar en esta herramienta y será para nosotros
un poco más fácil de trasladar a una base de datos SQL.
Pasos:
1. Con los datos en un libro de excel iremos agregando columnas para concatenar los datos
con el script sql.
2. Insertemos la primer columna con la sintaxis inicial de sql. Ej.
INSERT INTO [AcademicoOLTP].[dbo].[Persona] ([Nombres],[Apellidos],[Sexo] ,[TipoIdentidadID]
,[Identidad], [TP]) VALUES('
3. Empezamos a unir columnas con la función concatenar de Excel.
=CONCATENAR(N2;B2;"','";C2;"','";D2;"',";E2;",'";F2;"',";M2;");")
Resultado:
INSERT INTO [AcademicoOLTP].[dbo].[Persona] ([Nombres],[Apellidos],[Sexo] ,[TipoIdentidadID] ,[Identidad], [TP])
VALUES('Lori','Adams','F',1,'001-270276-0302A',1);
Esto lo repetimos para todas la tablas de nuestro OLTP.
4. Generamos un solo Script para cargar todos los datos de nuestra base de datos OLTP.
7/22/2019 Pasos Para La Creacion de BD OLTP y OLAP
http://slidepdf.com/reader/full/pasos-para-la-creacion-de-bd-oltp-y-olap 5/13
CONSTRUCCIÓN DE OLAP
Paso No. 1: Modelado de OLAP
El modelado de un DataMart sigue el mismo proceso de un modelado de base de datos
estándar, la diferencia está en la concepción misma de un DataMart, donde este responde a
un tema especifico y en el proceso de des normalización de la base de datos. Modelamos un
esquema dimensional siempre con la herramienta Er Studio.
7/22/2019 Pasos Para La Creacion de BD OLTP y OLAP
http://slidepdf.com/reader/full/pasos-para-la-creacion-de-bd-oltp-y-olap 6/13
Paso No. 2: Generación de Script de Base de Datos y Diccionario de Datos
7/22/2019 Pasos Para La Creacion de BD OLTP y OLAP
http://slidepdf.com/reader/full/pasos-para-la-creacion-de-bd-oltp-y-olap 7/13
Paso No. 3: Generación de Base de Datos
Paso No. 4: Carga de Datos de OLAP
La base de datos OLAP se cargan los datos a partir de nuestra base de datos OLPT, este
proceso lo realizaremos a partir de procedimientos almacenados, un procedimiento por cada
Dimensión en la base de datos OLAP.
Procedimientos por Dimensión:
1. usp_CargaDimAsignatura
USE [AcademicoDW]GO/****** Object: StoredProcedure [dbo].[usp_CargaDimAsignatura]Script Date: 06/12/2013 15:06:34 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author: Eduardo Traña-- Create date: 2013.06.08-- Description: Carga Dimension Asignatura-- =============================================ALTER PROCEDURE [dbo].[usp_CargaDimAsignatura]ASBEGIN
Delete From dbo.DimAsignatura;
DBCC CHECKIDENT ('DimAsignatura', reseed, 0);DBCC CHECKIDENT ('DimAsignatura', reseed);
INSERT INTO [AcademicoDW].[dbo].[DimAsignatura]([AsignaturaAlternateKey],[NombreAsignatura])
7/22/2019 Pasos Para La Creacion de BD OLTP y OLAP
http://slidepdf.com/reader/full/pasos-para-la-creacion-de-bd-oltp-y-olap 8/13
Select AsignaturaID, NombreAsignatura From AcademicoOLTP.dbo.Asignatura order by AsignaturaID;
END
2. [usp_CargaDimCarrera]
USE [AcademicoDW]
GO/****** Object: StoredProcedure [dbo].[usp_CargaDimCarrera] ScriptDate: 06/12/2013 15:07:17 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author: Eduardo Traña-- Create date: 2013.06.08-- Description: Carga Dimension Carrera-- =============================================ALTER PROCEDURE [dbo].[usp_CargaDimCarrera]
ASBEGIN
Delete From dbo.DimCarrera;
DBCC CHECKIDENT ('DimCarrera', reseed, 0);DBCC CHECKIDENT ('DimCarrera', reseed);
INSERT INTO [AcademicoDW].[dbo].[DimCarrera]([CarreraAlternateKey],[NombreCarrera],[FacultadID],[NombreFacultad])
SELECT C.CarreraID, C.NombreCarrera, F.FacultadID, F.NombreFacultad
FROM AcademicoOLTP.dbo.Carrera C INNER JOINAcademicoOLTP.dbo.Facultad F ON C.FacultadID =
F.FacultadID;
END
3. [usp_CargaDimDocente]
USE [AcademicoDW]GO/****** Object: StoredProcedure [dbo].[usp_CargaDimDocente] Script
Date: 06/12/2013 15:07:45 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author: Eduardo Traña-- Create date: 2013.06.08-- Description: Carga Dimension Docente-- =============================================ALTER PROCEDURE [dbo].[usp_CargaDimDocente]ASBEGIN
Delete From dbo.DimDocente;
7/22/2019 Pasos Para La Creacion de BD OLTP y OLAP
http://slidepdf.com/reader/full/pasos-para-la-creacion-de-bd-oltp-y-olap 9/13
DBCC CHECKIDENT ('DimDocente', reseed, 0);DBCC CHECKIDENT ('DimDocente', reseed);
INSERT INTO [AcademicoDW].[dbo].[DimDocente]([DocenteAlternateKey],[NoInss]
,[Nombres],[Apellidos],[Sexo])
Select DocenteID, Identidad, Nombres, Apellidos, SexoFrom AcademicoOLTP.dbo.Persona P
INNER JOIN AcademicoOLTP.dbo.Docente DON P.PersonaID=D.PersonaID;
END
4. [usp_CargaDimEstudiante]
USE [AcademicoDW]
GO/****** Object: StoredProcedure [dbo].[usp_CargaDimEstudiante]Script Date: 06/12/2013 15:08:05 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author: Eduardo Traña-- Create date: 2013.06.08-- Description: Carga Dimension Estudiante-- =============================================ALTER PROCEDURE [dbo].[usp_CargaDimEstudiante]
ASBEGIN
Delete From dbo.DimEstudiante;
DBCC CHECKIDENT ('DimEstudiante', reseed, 0);DBCC CHECKIDENT ('DimEstudiante', reseed);
INSERT INTO [AcademicoDW].[dbo].[DimEstudiante]([EstudianteAlternateKey],[Carne],[Nombres],[Apellidos]
,[Sexo])Select EstudianteID, 'ND', Nombres, Apellidos, SexoFrom AcademicoOLTP.dbo.Persona P
INNER JOIN AcademicoOLTP.dbo.Estudiante EON P.PersonaID=E.PersonaID;
END
5. [usp_CargaDimTime]
USE [AcademicoDW]GO/****** Object: StoredProcedure [dbo].[usp_CargaDimTime] Script
Date: 06/12/2013 15:08:27 ******/SET ANSI_NULLS ONGO
7/22/2019 Pasos Para La Creacion de BD OLTP y OLAP
http://slidepdf.com/reader/full/pasos-para-la-creacion-de-bd-oltp-y-olap 10/13
SET QUOTED_IDENTIFIER ONGO-- =============================================-- Author: Eduardo Traña-- Create date: 2013.06.08-- Description: Carga Dimension Tiempo
-- =============================================ALTER PROCEDURE [dbo].[usp_CargaDimTime]ASBEGIN
Delete From dbo.DimTime;
DBCC CHECKIDENT ('DimTime', reseed, 0);DBCC CHECKIDENT ('DimTime', reseed);
INSERT INTO [AcademicoDW].[dbo].[DimTime]([TimeAlternateKey],[Cuatrimestre]
,[CuatrimestreNombre],[Año])Select Distinct G.PeriodoID, left( P.CodPeriodo, 1) as
Cuatrimestre, left( P.CodPeriodo, 2) as CC, P.Año From AcademicoOLTP.dbo.Grupo Ginner join AcademicoOLTP.dbo.Periodo PON P.PeriodoID=G.PeriodoIDorder by PeriodoID;
END
6. [usp_CargaFactNotas]
USE [AcademicoDW]GO/****** Object: StoredProcedure [dbo].[usp_CargaFactNotas] ScriptDate: 06/12/2013 15:08:52 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author: Eduardo Traña-- Create date: 2013.06.08-- Description: Carga FactNotas-- =============================================
ALTER PROCEDURE [dbo].[usp_CargaFactNotas]ASBEGIN
Delete From dbo.FactNotas;
INSERT INTO [AcademicoDW].[dbo].[FactNotas]([EstudianteKey],[CarreraKey],[AsignaturaKey],[DocenteKey],[TimePeriodoAcademicoKey]
,[Nota])Select DE.EstudianteKey,DC.CarreraAlternateKey
7/22/2019 Pasos Para La Creacion de BD OLTP y OLAP
http://slidepdf.com/reader/full/pasos-para-la-creacion-de-bd-oltp-y-olap 11/13
,DA.AsignaturaAlternateKey,DD.DocenteAlternateKey,DT.TimeKey,N.NotaFinal
From AcademicoOLTP.dbo.Grupo GINNER JOIN AcademicoOLTP.dbo.Notas N
ON G.GrupoID=N.GrupoIDINNER JOIN dbo.DimEstudiante DEON DE.EstudianteAlternateKey = N.EstudianteIDINNER JOIN dbo.DimCarrera DC ON N.CarreraID = DC.CarreraAlternateKeyINNER JOIN dbo.DimAsignatura DAON N.AsignaturaID=DA.AsignaturaAlternateKeyINNER JOIN dbo.DimDocente DDON G.DocenteID=DD.DocenteAlternateKeyINNER JOIN dbo.DimTime DT
ON N.PeriodoID = DT.TimeAlternateKey;
END
7. [usp_CargaFullDW] Carga Completa de Base de Datos OLAP
USE [AcademicoDW]GO/****** Object: StoredProcedure [dbo].[usp_CargaFullDW] ScriptDate: 06/12/2013 15:09:22 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO
-- =============================================-- Author: Eduardo Traña-- Create date: 2013.06.08-- Description: Carga Completa de DW-- =============================================ALTER PROCEDURE [dbo].[usp_CargaFullDW]ASBEGIN
--1. Eliminamos Datos de FactNotasDelete From dbo.FactNotas;
exec dbo.usp_CargaDimAsignatura;exec dbo.usp_CargaDimCarrera;
exec dbo.usp_CargaDimDocente;exec dbo.usp_CargaDimEstudiante;exec dbo.usp_CargaDimTime;exec dbo.usp_CargaFactNotas;
END
Paso No. 5: Creación de Trabajo: Para ejecución de SP de forma automática:
Esta opción se crea en el agente de SQL, de la forma siguiente:
7/22/2019 Pasos Para La Creacion de BD OLTP y OLAP
http://slidepdf.com/reader/full/pasos-para-la-creacion-de-bd-oltp-y-olap 12/13
Pasos:
1. Nuevo Trabajo
2. Definir Nombre del Trabajo3. Establecer Tarea o Paso a Ejecutar
4. Programación del Trabajo
7/22/2019 Pasos Para La Creacion de BD OLTP y OLAP
http://slidepdf.com/reader/full/pasos-para-la-creacion-de-bd-oltp-y-olap 13/13