Pasos para La Creacion de BD OLTP y OLAP

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 13

Resumen

Pasos para la construccin de OLTP y OLAP


CONSTRUCCIN 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 acadmico genrico. Modelado:

Paso No. 2: Generacin de Modelado Fsico (Generar Script SQL y Diccionario De Datos). Modelo Fsico

Generar Script SQL

Generar Diccionario De Datos:

Paso No. 3: Creacin 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.

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 ms fcil 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 funcin 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.

CONSTRUCCIN DE OLAP Paso No. 1: Modelado de OLAP El modelado de un DataMart sigue el mismo proceso de un modelado de base de datos estndar, la diferencia est en la concepcin misma de un DataMart, donde este responde a un tema especifico y en el proceso de des normalizacin de la base de datos. Modelamos un esquema dimensional siempre con la herramienta Er Studio.

Paso No. 2: Generacin de Script de Base de Datos y Diccionario de Datos

Paso No. 3: Generacin 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 Dimensin en la base de datos OLAP. Procedimientos por Dimensin: 1. usp_CargaDimAsignatura
USE [AcademicoDW] GO /****** Object: StoredProcedure [dbo].[usp_CargaDimAsignatura] Script Date: 06/12/2013 15:06:34 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Eduardo Traa -- Create date: 2013.06.08 -- Description: Carga Dimension Asignatura -- ============================================= ALTER PROCEDURE [dbo].[usp_CargaDimAsignatura] AS BEGIN Delete From dbo.DimAsignatura; DBCC CHECKIDENT ('DimAsignatura', reseed, 0); DBCC CHECKIDENT ('DimAsignatura', reseed); INSERT INTO [AcademicoDW].[dbo].[DimAsignatura] ([AsignaturaAlternateKey] ,[NombreAsignatura])

Select AsignaturaID, NombreAsignatura From AcademicoOLTP.dbo.Asignatura order by AsignaturaID; END 2. [usp_CargaDimCarrera] USE [AcademicoDW] GO /****** Object: StoredProcedure [dbo].[usp_CargaDimCarrera] Date: 06/12/2013 15:07:17 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Eduardo Traa -- Create date: 2013.06.08 -- Description: Carga Dimension Carrera -- ============================================= ALTER PROCEDURE [dbo].[usp_CargaDimCarrera] AS BEGIN 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 JOIN AcademicoOLTP.dbo.Facultad F ON C.FacultadID = F.FacultadID; END 3. [usp_CargaDimDocente] USE [AcademicoDW] GO /****** Object: StoredProcedure [dbo].[usp_CargaDimDocente] Date: 06/12/2013 15:07:45 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Eduardo Traa -- Create date: 2013.06.08 -- Description: Carga Dimension Docente -- ============================================= ALTER PROCEDURE [dbo].[usp_CargaDimDocente] AS BEGIN Delete From dbo.DimDocente;

Script

Script

DBCC CHECKIDENT ('DimDocente', reseed, 0); DBCC CHECKIDENT ('DimDocente', reseed); INSERT INTO [AcademicoDW].[dbo].[DimDocente] ([DocenteAlternateKey] ,[NoInss] ,[Nombres] ,[Apellidos] ,[Sexo]) Select DocenteID, Identidad, Nombres, Apellidos, Sexo From AcademicoOLTP.dbo.Persona P INNER JOIN AcademicoOLTP.dbo.Docente D ON 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 ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Eduardo Traa -- Create date: 2013.06.08 -- Description: Carga Dimension Estudiante -- ============================================= ALTER PROCEDURE [dbo].[usp_CargaDimEstudiante] AS BEGIN 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, Sexo From AcademicoOLTP.dbo.Persona P INNER JOIN AcademicoOLTP.dbo.Estudiante E ON P.PersonaID=E.PersonaID; END 5. [usp_CargaDimTime] USE [AcademicoDW] GO /****** Object: StoredProcedure [dbo].[usp_CargaDimTime] Date: 06/12/2013 15:08:27 ******/ SET ANSI_NULLS ON GO

Script

SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Eduardo Traa -- Create date: 2013.06.08 -- Description: Carga Dimension Tiempo -- ============================================= ALTER PROCEDURE [dbo].[usp_CargaDimTime] AS BEGIN Delete From dbo.DimTime; DBCC CHECKIDENT ('DimTime', reseed, 0); DBCC CHECKIDENT ('DimTime', reseed); INSERT INTO [AcademicoDW].[dbo].[DimTime] ([TimeAlternateKey] ,[Cuatrimestre] ,[CuatrimestreNombre] ,[Ao]) Select Distinct G.PeriodoID, left( P.CodPeriodo, 1) as Cuatrimestre, left( P.CodPeriodo, 2) as CC, P.Ao From AcademicoOLTP.dbo.Grupo G inner join AcademicoOLTP.dbo.Periodo P ON P.PeriodoID=G.PeriodoID order by PeriodoID; END 6. [usp_CargaFactNotas] USE [AcademicoDW] GO /****** Object: StoredProcedure [dbo].[usp_CargaFactNotas] Date: 06/12/2013 15:08:52 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Eduardo Traa -- Create date: 2013.06.08 -- Description: Carga FactNotas -- ============================================= ALTER PROCEDURE [dbo].[usp_CargaFactNotas] AS BEGIN Delete From dbo.FactNotas; INSERT INTO [AcademicoDW].[dbo].[FactNotas] ([EstudianteKey] ,[CarreraKey] ,[AsignaturaKey] ,[DocenteKey] ,[TimePeriodoAcademicoKey] ,[Nota]) Select DE.EstudianteKey ,DC.CarreraAlternateKey

Script

,DA.AsignaturaAlternateKey ,DD.DocenteAlternateKey ,DT.TimeKey ,N.NotaFinal From AcademicoOLTP.dbo.Grupo G INNER JOIN AcademicoOLTP.dbo.Notas N ON G.GrupoID=N.GrupoID INNER JOIN dbo.DimEstudiante DE ON DE.EstudianteAlternateKey = N.EstudianteID INNER JOIN dbo.DimCarrera DC ON N.CarreraID = DC.CarreraAlternateKey INNER JOIN dbo.DimAsignatura DA ON N.AsignaturaID=DA.AsignaturaAlternateKey INNER JOIN dbo.DimDocente DD ON G.DocenteID=DD.DocenteAlternateKey INNER 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] Date: 06/12/2013 15:09:22 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Eduardo Traa -- Create date: 2013.06.08 -- Description: Carga Completa de DW -- ============================================= ALTER PROCEDURE [dbo].[usp_CargaFullDW] AS BEGIN --1. Eliminamos Datos de FactNotas Delete From dbo.FactNotas; exec exec exec exec exec exec END dbo.usp_CargaDimAsignatura; dbo.usp_CargaDimCarrera; dbo.usp_CargaDimDocente; dbo.usp_CargaDimEstudiante; dbo.usp_CargaDimTime; dbo.usp_CargaFactNotas;

Script

Paso No. 5: Creacin de Trabajo: Para ejecucin de SP de forma automtica: Esta opcin se crea en el agente de SQL, de la forma siguiente:

Pasos: 1. Nuevo Trabajo 2. Definir Nombre del Trabajo 3. Establecer Tarea o Paso a Ejecutar 4. Programacin del Trabajo

También podría gustarte