Pasos para La Creacion de BD OLTP y OLAP
Pasos para La Creacion de BD OLTP y OLAP
Pasos para La Creacion de BD OLTP y OLAP
Paso No. 2: Generacin de Modelado Fsico (Generar Script SQL y Diccionario De Datos). Modelo Fsico
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('
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. 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
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