Está en la página 1de 14

UNIVERSIDAD ANDINA DEL CUSCO

FACULTAD DE INGENIERIA
DEPARTAMENTO ACADEMICO DE INGENIERIA DE SISTEMAS
CARRERA PROFESIONAL DE INGENIERIA DE SISTEMAS
Guía de Aplicación de Laboratorio N° 07
TEMA: BASES DE DATOS DISTRIBUIDAS
I. Datos Informativos
1.1. ASIGNATURA : SISTEMA DE BASE DE DATOS I
1.2. Escuela profesional : Ingeniería de sistemas.
1.3. Plan de Estudios : 2013
1.4. Semestre académico : 2018-I.
1.5. Ciclo de estudios : Sexto Ciclo.
1.6. Área curricular : Obligatorio de Formación Profesional.
1.7. Código de la asignatura : IS015.
1.8. Nº de horas : 02 horas
1.9. Profesor responsable : Lida León Núñez.
I.1. Fecha de Guía : lunes 28 de mayo de 2017.

II.COMPETENCIAS A CONSEGUIR
Tiene un conocimiento claro del análisis, diseño e implementación de bases de datos.
Permite la identificación de las necesidades de información de una organización
proponiendo soluciones tecnologías que proporcionen información privilegiada, segura,
consistente e integra para responder problemas de negocio.

III.Capacidades
III.3. Conoce las bases de datos distribuidas. Implementa proyectos de desarrollo de
software con diseño de repositorios de datos con propósitos

IV.Materiales Necesarios
• Equipo de Computo
• Gestor de base de datos SQL Server.
• Base de datos DBPrestamos

V.Requisitos para el desarrollo de la Guía
• Lectura Material de estudio proporcionado para la tercera unidad.

VI.Fundamento Teórico:
Diapositivas desarrolladas para la unidad de aprendizaje 3

VII.REFERENCIAS BIBLIOGRAFÍA
• Microsoft Official Course.(2012) “Maintaning a Microsoft SQL Server 2008 R2. Curso
6231B”.
• Microsoft Official Course.(2012) “Implementing a Microsoft SQL Server 2008 R2
Database. Curso 623B”.
• Kroenke M. David (2003) “Procesamiento de Bases de Datos” (8va Edicion). Prentice
Hall.
• Adoración de Miguel/Martinez P./Castro E./Cavero Jose. (2001)“Diseño de Base de
Datos”. Alfaomega-Rama.

VIII.DESARROLLO DE GUIA DE LABORATORIO

Nombres y Apellidos: Rómulo Gerardo Sánchez Ismodes

1. En la base de datos principal BDAcademico desarrolle un proceso mediante alguna


herramienta de programacion (procedimientos, funciones,u otros) que actualice de
forma masiva los promedios de cada unidad y luego actualice de forma masiva el
promedio final de cada curso de cada alumno.

--CONSULTA ACTUALIZACION
Declare @notaFOR numeric(5,0)
Declare @notaINV numeric(5,0)
Declare @notaRS numeric(5,0)
Declare @notaFOR2 numeric(5,0)
Declare @notaINV2 numeric(5,0)
Declare @notaRS2 numeric(5,0)
Declare @notaFOR3 numeric(5,0)
Declare @notaINV3 numeric(5,0)
Declare @notaRS3 numeric(5,0)
Declare @promedio1 numeric(5,0)
Declare @promedio2 numeric(5,0)
Declare @promedio3 numeric(5,0)
DECLARE @PromedioF numeric(5,0)

Declare @i int
Declare @y int

set @i=1
set @y=973

while @i<=@y
begin
--primera unidad
set @notaFOR=(Select NotaActFormativas from TRegNotasParciales where Unidad=1 and
NroRegMatricula=@i)
set @notaINV=(Select NotaActInvestigacion from TRegNotasParciales where Unidad=1 and
NroRegMatricula=@i)
set @notaRS=(Select NotaActRespSocial from TRegNotasParciales where Unidad=1 and
NroRegMatricula=@i)
set @promedio1 = @notaFOR*0.7+@notaINV*0.15+@notaRS*0.15
--segunda unidad
set @notaFOR2=(Select NotaActFormativas from TRegNotasParciales where Unidad=2 and
NroRegMatricula=@i)
set @notaINV2=(Select NotaActInvestigacion from TRegNotasParciales where Unidad=2
and NroRegMatricula=@i)
set @notaRS2=(Select NotaActRespSocial from TRegNotasParciales where Unidad=2 and
NroRegMatricula=@i)
set @promedio2 = @notaFOR2*0.7+@notaINV2*0.15+@notaRS2*0.15
--tercera unidad
set @notaFOR3=(Select NotaActFormativas from TRegNotasParciales where Unidad=3 and
NroRegMatricula=@i)
set @notaINV3=(Select NotaActInvestigacion from TRegNotasParciales where Unidad=3
and NroRegMatricula=@i)
set @notaRS3=(Select NotaActRespSocial from TRegNotasParciales where Unidad=3 and
NroRegMatricula=@i)
set @promedio3 = @notaFOR3*0.7+@notaINV3*0.15+@notaRS3*0.15
--select @notaFOR as 'Nota Act.Formativa1',
--@notaINV as 'Nota Investigacion1',
--@notaRS as 'Nota RS1',
--@notaFOR2 as 'Nota Act.Formativa2',
--@notaINV2 as 'Nota Investigacion2',
--@notaRS2 as 'Nota RS2',
--@notaFOR3 as 'Nota Act.Formativa3',
--@notaINV3 as 'Nota Investigacion3',
--@notaRS3 as 'Nota RS3',
--@promedio1 as 'Nota Primer Aporte',
--@promedio2 as 'Nota segundo Aporte',
--@promedio3 as 'Nota tercer Aporte'

update TRegNotasParciales set PromUnidad = @promedio1 where NroRegMatricula=@i and


Unidad=1
update TRegNotasParciales set PromUnidad = @promedio2 where NroRegMatricula=@i and
Unidad=2
update TRegNotasParciales set PromUnidad = @promedio3 where NroRegMatricula=@i and
Unidad=3

set @PromedioF = round(((@promedio1+@promedio2*2+@promedio3*2)/5),0)


select @PromedioF as 'Promedio Final'

UPDATE TMatricula SET Nota = @PromedioF WHERE NroRegMatricula = @i

set @i=@i+1;
end;

SELECT*FROM TRegNotasParciales
select * from TMatricula
2. En la Instancia distribucion haga lo mismo actualice las promedios de las unidades y
los promedios finales de cada curso

3. En la base BDAcademico del servidor principal matricule a 2 estudiantes en los curso


de Ingenieria Economica, luego inserte las notas obtenidas por los estudiantes en
cada unidad.

insert into TMatricula values (974,'090036638C','IS38','2018-II',GETDATE(),null,1)


insert into TMatricula values (975,'090036651R','IS38','2018-II',GETDATE(),null,1)

insert into TRegNotasParciales values


(2920,974,'1','18','17','15',null,GETDATE(),'P000000082')
insert into TRegNotasParciales values
(2921,974,'2','15','13','20',null,GETDATE(),'P000000082')
insert into TRegNotasParciales values
(2922,974,'3','17','19','14',null,GETDATE(),'P000000082')

insert into TRegNotasParciales values


(2923,975,'1','16','19','16',null,GETDATE(),'P000000082')
insert into TRegNotasParciales values
(2924,975,'2','12','18','20',null,GETDATE(),'P000000082')
insert into TRegNotasParciales values
(2925,975,'3','17','14','18',null,GETDATE(),'P000000082')
4. Actualice los datos en la base de datos del nodo distribuido con un disparador.

IF OBJECT_ID ('trActualizarAcademicoDistribuidaNotas', 'TR') IS NOT NULL


BEGIN
DROP TRIGGER trActualizarAcademicoDistribuidaNotas
END;
go
---===========================================================================
--OBJETO : trActualizarAcademicoDistribuidaNotas
--TIPO : Disparador
--DESCRIPCIÓN : disparador que actualiza las notas de los alumnos
--FECHA DE CREACION : 05/12/2018
--AUTOR : Romulo Gerardo Sanchez Ismodes
--OBSERVACIONES : Ninguna
--===========================================================================
--PR MODIFICADO FECHA DESCRIPCIÓN
--===========================================================================
Create trigger trActualizarAcademicoDistribuidaNotas
on [dbo].[TRegNotasParciales]
after insert,update
as
--declare @reg int
declare @numregistro numeric(10,0)
declare @nroregmatricula numeric(10,0)
declare @unidad varchar(1)
declare @notaactformativa varchar(2)
declare @notaactinvestigacion varchar(2)
declare @notaactrespsocial varchar(2)
declare @promunidad numeric(5,2)
declare @fecregistro date
declare @coddocente varchar(10)

--set @reg=(select count([NumRegistro]) from TRegNotasParciales)


set @numregistro=(SELECT [NumRegistro] FROM inserted)
set @nroregmatricula=(SELECT [NroRegMatricula] FROM [TRegNotasParciales]
where NumRegistro=@numregistro)
set @unidad=(SELECT [Unidad] FROM [TRegNotasParciales] where
NumRegistro=@numregistro)
set @notaactformativa=(SELECT [NotaActFormativas] FROM [TRegNotasParciales]
where NumRegistro=@numregistro)
set @notaactinvestigacion=(SELECT [NotaActInvestigacion] FROM
[TRegNotasParciales] where NumRegistro=@numregistro)
set @notaactrespsocial=(SELECT [NotaActRespSocial] FROM [TRegNotasParciales]
where NumRegistro=@numregistro)
set @promunidad=(SELECT [PromUnidad] FROM [TRegNotasParciales] where
NumRegistro=@numregistro)
set @fecregistro=(SELECT [FecRegistro] FROM [TRegNotasParciales] where
NumRegistro=@numregistro)
set @coddocente=(SELECT [CodDocente] FROM [TRegNotasParciales] where
NumRegistro=@numregistro)

insert into [LENOVO-PC\Distribuida].[BDAcademico].[dbo].[TRegNotasParciales]


values
(
@numregistro,
@nroregmatricula,
@unidad,
@notaactformativa,
@notaactinvestigacion,
@notaactrespsocial,
@promunidad,
@fecregistro,
@coddocente
)

--TRIGER PARA TMATRICULA


IF OBJECT_ID ('trActualizarAcademicoDistribuidamatricula', 'TR') IS NOT NULL
BEGIN
DROP TRIGGER trActualizarAcademicoDistribuidamatricula
END;
go
---===========================================================================
--OBJETO : trActualizarAcademicoDistribuidamatricula
--TIPO : Disparador
--DESCRIPCIÓN : disparador que actualiza la base de datos
AcademicoDistribuida
--FECHA DE CREACION : 05/12/2018
--AUTOR : Romulo Gerardo Sanchez Ismodes
--OBSERVACIONES : Ninguna
--===========================================================================
--PR MODIFICADO FECHA DESCRIPCIÓN
--===========================================================================
create trigger trActualizarAcademicoDistribuidamatricula
on [dbo].[TMatricula]
after insert,update
as
--declare @reg int
declare @NroMatricula numeric(10,0)
declare @codalumno varchar(10)
declare @nroregmatricula numeric(10,0)
declare @codcurso varchar(6)
declare @semestre varchar(7)
declare @fecmatricula date
declare @nota int
declare @indactivo varchar(1)

set @NroMatricula =(select NroRegMatricula from inserted )


--set @reg=(select count([NroRegMatricula]) from TMatricula)
set @codalumno=(select [CodAlumno] from tmatricula where
NroRegMatricula=@NroMatricula)
set @codcurso=(select [CodCurso] from tmatricula where
NroRegMatricula=@NroMatricula )
set @semestre=(select [Semestre] from tmatricula where
NroRegMatricula=@NroMatricula )
set @fecmatricula=(select [FecMatricula] from tmatricula where
NroRegMatricula=@NroMatricula )
set @nota=(select [Nota] from tmatricula where NroRegMatricula=@NroMatricula
)
set @indactivo=(select [IndActivo] from tmatricula where
NroRegMatricula=@NroMatricula )

insert into [LENOVO-PC\Distribuida].[BDAcademico].[dbo].[TMatricula]


values
(
@NroMatricula,
@codalumno,
@codcurso,
@semestre,
@fecmatricula,
@nota,
@indactivo
)

5. Crear un proyecto de base de datos denominado appAcademicoDistribuida

6. Crear una base de datos BDProcesos


7. Crear las siguientes tablas en la base proceso
TRegistroNotas
CodigoAlumno,
NombreAlumno,
CodigoEscuela,
NombreEscuela,
NombreCurso,
PromedioUnidad1,
PromedioUnidad2,
PromedioUnidad3
PromedioFinal,
NombreDocente
Semestre
TResumen Semestre
CodigoAlumno,
NombreAlumno,
Curso,
PromedioFinal,
Condicion (Aprobado, desaprobado)
8. Crear la siguientes consultas

Nombre Escuelas Total Aprobados en Total Aprobados en


Cursos Cursos

create procedure Listado


as
begin
declare @codcarrera varchar(2)
declare @nroaprobado int
declare @nrodesaprobados int
declare @i int

declare @tabla1 table


( CodEscuela varchar(2),
NroAprobados int
)

insert into @tabla1


select A.CodEscuela, count(*)
from TAlumno A inner join TMatricula M
on(A.CodAlumno = M.CodAlumno)
where nota>=14
group by A.CodEscuela

declare @tabla2 table


( CodEscuela varchar(2),
NroDesaprobados int
)
insert into @tabla2
select A.CodEscuela, count(*)
from TAlumno A inner join TMatricula M
on(A.CodAlumno = M.CodAlumno)
where nota<14
group by A.CodEscuela

select e.NomEscuela as 'Nombre Escuelas', a.NroAprobados as 'Total


Aprobados en Cursos', b.NroDesaprobados as 'Total Desaprobados en Cursos' from
@tabla1 a inner join @tabla2 b
on (a.CodEscuela=b.CodEscuela) inner join TEscuela E
on(A.CodEscuela=E.CodEscuela) where exists
(select * from @tabla2 D where a.CodEscuela= d.CodEscuela)
union all
select e.NomEscuela as 'Nombre Escuelas', 0, b.nroDesaprobados as
'Total Desaprobados en Cursos' from @tabla2 b inner join TEscuela E
on(b.CodEscuela=E.CodEscuela)where not exists
(select * from @tabla1 D where b.CodEscuela=d.CodEscuela);
end

Listado
Nombre de Nro Cursos Nro de Cursos
Alumno Aprobados DEsaprobados

--2.Segunda Consulta

alter procedure Alumnos


as
begin

declare @tabla1 table


( CodAlumno varchar(10),
NroCursosAprobados int
)

insert into @tabla1


select A.CodAlumno, count(*) from TAlumno A inner join
TMatricula M
on(A.CodAlumno = M.CodAlumno)
where nota>=14
group by A.CodAlumno

declare @tabla2 table


( CodAlumno varchar(10),
NroCursosDesaprobados int
)
insert into @tabla2
select distinct A.CodAlumno,count(*) from TAlumno A inner join
TMatricula M
on(A.CodAlumno = M.CodAlumno)
where nota<14
group by A.CodAlumno

select e.Nombres as 'Nombre de Alumno', a.NroCursosAprobados as 'Nro


Cursos Aprobados', b.NroCursosDesaprobados
as 'Nro Cursos Desaprobados' from @tabla1 a inner join @tabla2 b
on (a.CodAlumno=b.CodAlumno) inner join TAlumno E
on(A.CodAlumno=E.CodAlumno) where exists
(select * from @tabla2 D where a.CodAlumno= d.CodAlumno)
union all
select e.Nombres as 'Nombre de Alumno', 0, b.NroCursosDesaprobados as
'Nro Cursos Desaprobados' from @tabla2 b inner join TAlumno E
on(b.CodAlumno=E.CodAlumno)where not exists
(select * from @tabla1 D where b.CodAlumno=d.CodAlumno)
union all
select e.Nombres as 'Nombre de Alumno',a.NroCursosAprobados as 'Nro
Cursos Aprobados', 0 from @tabla1 a inner join TAlumno E
on(a.CodAlumno=E.CodAlumno)where not exists
(select * from @tabla2 D where a.CodAlumno=d.CodAlumno)
end;
RUBRICA PARA EVALUAR APLICACIÓN DE GUIA DE LABORATORIO DE SISTEMAS DE BASE DE DATOS
TERCERA UNIDAD BASES DE DATOS DISTRIBUIDAS
indicador Criterio Muy Satisfactorio Satisfactorio En proceso Insatisfactorio Calificación

I7. Modela y Instala una nueva instancia y crea el Instala una nueva instancia y crea el escenario de Instala una nueva instancia No instalo, no
diseña un escenario de bases de datos distribuidas. bases de datos distribuidas. Conecta los pero no puede crear el creo no hizo
sistema para 1. Conecta los servidores y prueba la servidores y solo hay conectividad entre uno de escenario de las bases de nada.
Preparar conectividad entre ellos. ellos. datos distribuidas. No puede
satisfacer
escenarios Comprueba satisfactoriamente el Comprueba el funcionamiento del escenario de conectar los servidores. (1 ( 0 puntos)
necesidades
para trabajar funcionamiento del escenario de las las bases de datos distribuida de un punto a otro y puntos)
deseadas y
con bases de bases de datos distribuidas. no viceversa (3 puntos)
bien
datos (4 puntos)
identificadas. distribuidas

I5. Identifica 2. El proyecto contiene la estructura Se tiene el proyecto de base datos contiene la Se tiene el proyecto de base No se tienen los
y define los Crear el solicitada, los scripts de creación de bd estructura, los scripts de creación de bd están datos contiene la estructura, scripts, o no
requerimientos proyecto con y creación de tablas están bien bien definido, la creación de los scripts no los scripts de creación de bd corren ninguno.
de los scripts definidos de acuerdo a lo solicitado. Al contienen los solicitado. Al ejecutar lo scripts y de las tablas no están bien (0 puntos )
computación solicitados ejecutar lo scripts corren corren satisfactoriamente y se tiene la nueva definidos, Al ejecutar lo
apropiados para la satisfactoriamente y se tiene la nueva base de datos.(3 puntos) scripts corren con errores.
instancia base de datos. (4 puntos) solo se tiene algunos objetos
para la
distribución de la bd (2 puntos)
solución

3. Se crean los scripts para migrar los Se crean los scripts para migrar los datos a cada Se crean los scripts para No se tienen los
Migrar los datos a cada objeto de base de datos. objeto de base de datos. Los scripts no están migrar los datos a cada scripts, o no
datos de la La migración es satisfactoria. La base bien definidos, se encuentra errores en los objeto de base de datos. Los corre ninguno o
base de de datos distribuida contiene todos los scripts, la correspondencia entre algunos objetos scripts no están bien no hizo nada. (0
principal a la datos. (4 puntos) no es la correcta. Se migrar algunos datos de definidos, no se encuentra puntos )
I27.
distribuida. algunos objetos. (3 puntos) correspondencia entre todos
Utiliza técnicas los objetos no es la correcta.
Solo se logra migrar datos
disponibles
de un objeto. (2 puntos)
para proponer
soluciones
innovadoras
4. Crea las herramientas y/o consultas Crea las herramientas y/o consultas necesarias Crea las herramientas y/o No se tienen los
necesarias obtener la información obtener la información solicitada. La consultas necesarias obtener scripts, o no
Obtención de solicitada. La información se obtiene información se obtiene con los datos de la base la información solicitada. corre ninguno o
información 01 con los datos de la base de datos de datos distribuida. Pero no s resultados no los Solo se obtiene un resultado no hizo nada. (0
distribuida. Se obtiene la información esperados. (3 puntos) parcial de lo solicitado. (2 puntos )
solicitada satisfactoriamente. (4 puntos) puntos)

5. Crea las herramientas y/o consultas Crea las herramientas y/o consultas necesarias Crea las herramientas y/o No se tienen los
necesarias obtener la información 02 obtener la información solicitada. La consultas necesarias obtener scripts, o no
Obtención de solicitada. La información se obtiene información se obtiene con los datos de la base la información solicitada. corre ninguno o
información 02 con los datos de la base de datos de datos distribuida. Pero no s resultados no los Solo se obtiene un resultado no hizo nada. (0
distribuida. Se obtiene la información esperados. (3 puntos) parcial de lo solicitado. (2 puntos )
solicitada satisfactoriamente. (4 puntos) puntos)

Total 20

También podría gustarte