Sei sulla pagina 1di 34

Integrantes:

- Culqui Galn, Jhon


- Gonzales Julcamoro, Diego
- Herrera Saldaa, Doris

Docente:
- Ing. Fidel Oswaldo Romero Zegarra
Curso:
- BASE DE DATOS II
Tema:
EXAMEN FINAL
Ciclo:
V

Cajamarca, 31 de julio del 2017


UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

a. Modelo lgico de la base de datos.

b. Descripcin de cada tabla (tipos de datos, restricciones).

BASE DE DATOS II / EXAMEN FINAL 1


UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

BASE DE DATOS II / EXAMEN FINAL 2


UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

Restricciones

UNIQUE CHEK DEFAULT


En ID_libro Estudiante(Edad>12 and Libro(Copia 3)
Edad<20)
En ID_Estudiante Libro(copia>0 and Bibliotecario(telfono
copia<5) 987654321)
En ID_Bibliotecario Libro(Estado Nuevo or Detalle_Prestamo
Estado Antiguo) cantidad 1

c. Vistas implementadas (sustento de su creacin).

create view v_BibliotecariosYJefe


as
select b.Nombre + ' ' + b.Apellidos as Bibliotecario, j.Nombre + ' ' +
j.Apellidos as Jefe
from Bibliotecario b inner join Bibliotecario j
on j.ID_bibliotecario = b.ID_jefe

select *
from v_BibliotecariosYJefe

create view v_CantidadLibrosPrestadosPorBibliotecario


as
select b.Nombre + ' ' + b.Apellidos as Bibliotecario, COUNT(l.ID_libro)
as CantidadLibrosPrestados
from Bibliotecario b inner join Prestamo p
on b.ID_bibliotecario = p.ID_biliotecario inner join DetallePrestamo d
on p.ID_prestamo = d.ID_prestamo inner join Libro l
on l.ID_libro = d.ID_libro
group by b.Nombre, b.Apellidos

select *
from v_CantidadLibrosPrestadosPorBibliotecario

d. Procedimientos Almacenados (sustento de su creacin).


create proc up_LibrosPrestadosPorEstudiante
as
select e.Nombre + ' ' + e.Apellidos as Estudiante, l.Titulo as
LibroPrestado
from Estudiante e inner join Prestamo p
on e.ID_estudiante = p.ID_estudiante inner join DetallePrestamo d
on p.ID_prestamo = d.ID_prestamo inner join Libro l
on l.ID_libro = d.ID_libro

exec up_LibrosPrestadosPorEstudiante

BASE DE DATOS II / EXAMEN FINAL 3


UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

--PROCEDIEMINTO ANTERIOR USANDO 'WHERE'

create proc up_LibrosPrestadosPorEstudiante2


as
select e.Nombre + ' ' + e.Apellidos as Estudiante, l.Titulo as
LibroPrestado
from Estudiante e, Prestamo p, DetallePrestamo d, Libro l
where e.ID_estudiante = p.ID_estudiante and p.ID_prestamo =
d.ID_prestamo and d.ID_libro = l.ID_libro

exec up_LibrosPrestadosPorEstudiante

create proc up_EstudiantesSegunEdad


@edad int
as
select e.Nombre + ' ' + e.Apellidos as Estudiante, e.Edad
from Estudiante e
where e.Edad = @edad

exec up_EstudiantesSegunEdad 16

e. Funciones (sustento de su creacin).


create function fn_LibroPrestadoMasVeces()
returns table
as
return( select l.Titulo as TituloLibro, COUNT(d.ID_libro) as
CantidadVecesPrestadas
from Libro l inner join DetallePrestamo d
on l.ID_libro = d.ID_libro
group by l.Titulo)

select *
from fn_LibroPrestadoMasVeces()

BASE DE DATOS II / EXAMEN FINAL 4


UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

--FUNCION ANTERIOR SOLO USANDO 'WHERE'

create function fn_LibroPrestadoMasVeces2()


returns table
as
return( select l.Titulo as TituloLibro, COUNT(d.ID_libro) as
CantidadVecesPrestadas
from Libro l, DetallePrestamo d
where l.ID_libro = d.ID_libro
group by l.Titulo)

select *
from fn_LibroPrestadoMasVeces()

create function fn_LibrosPorEspecialidad(@especialidad varchar(20))


returns table
as
return (select l.Titulo, l.Especialidad
from Libro l
where l.Especialidad = @especialidad)

select *
from fn_LibrosPorEspecialidad('Lenguaje')

f. Triggers (sustento de su creacin).


--Para validar si todavia existen copias de un libro para prestar
create trigger tg_ValidarCopiasLibro
on DetallePrestamo
for insert
as

declare @cantidadPrestada int, @totalLibrosActuales int

select @cantidadPrestada = i.CantidadPrestada


from inserted i

select @totalLibrosActuales = l.Cantidad


from Libro l

if(@cantidadPrestada <= @totalLibrosActuales)


print 'Quedan libros para prestamo'
else
print 'Libros insuficientes'

BASE DE DATOS II / EXAMEN FINAL 5


UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

--Para altualizar la cantidad de copias que hay en la biblioteca

create trigger tg_ActualizarCopiasLibro


on DetallePrestamo
after insert
as

declare @cantidadPrestada int, @idLibro int

select @cantidadPrestada = i.CantidadPrestada, @idLibro = i.ID_libro


from inserted i

update Libro
set Cantidad = Cantidad - @cantidadPrestada
where ID_libro = @idLibro

g. Cursores (cdigo de cada uno y resultado de su ejecucin).


--CURSOR PARA MOSTRAR LOS LIBROS POR ESPECIALIDAD
declare @libro varchar(20), @especialidad varchar(20)

declare c_Especialidad cursor for


select distinct l.Especialidad
from Libro l
open c_Especialidad
fetch c_Especialidad into @especialidad
while (@@FETCH_STATUS = 0)
begin
print 'ESPECIALIDAD: ' + @especialidad
declare c_Libro cursor for
select l.Titulo
from Libro l
where l.Especialidad = @especialidad
open c_Libro
fetch c_Libro into @libro
print ' LIBROS:'
while (@@FETCH_STATUS = 0)
begin
print ' ---' + @libro
fetch c_Libro into @libro
end
close c_libro
deallocate c_libro
fetch c_Especialidad into @especialidad
end
close c_Especialidad
deallocate c_Especialidad

BASE DE DATOS II / EXAMEN FINAL 6


UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

--CURSOR PARA MOSTRAR LOS ESTUDIANTES ATENDIDOS POR UN BIBLIOTECARIO


declare @nombreE varchar(10), @apellidoE varchar(20), @nombreB
varchar(10), @apellidoB varchar(20)

declare c_bibliotecario cursor for


select b.Nombre, b.Apellidos
from Bibliotecario b
open c_bibliotecario
fetch c_bibliotecario into @nombreB, @apellidoB
while (@@FETCH_STATUS = 0)
begin
print 'BIBLIOTECARIO: ' + @nombreB + ' ' + @apellidoB

declare c_Estudiante cursor for


select e.Nombre, e.Apellidos
from Estudiante e inner join Prestamo p
on p.ID_estudiante = e.ID_estudiante inner join
Bibliotecario b
on b.ID_bibliotecario = p.ID_biliotecario
where b.Nombre = @nombreB and b.Apellidos =
@apellidoB
open c_Estudiante
fetch c_Estudiante into @nombreE, @apellidoE
print ' Estudiantes que atendi:'
while (@@FETCH_STATUS = 0)
begin
print ' ---' + @nombreE + ' ' + @apellidoE
fetch c_Estudiante into @nombreE, @apellidoE
end
close c_Estudiante
deallocate c_Estudiante

fetch c_bibliotecario into @nombreB, @apellidoB


end
close c_bibliotecario
deallocate c_bibliotecario

BASE DE DATOS II / EXAMEN FINAL 7


UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

declare @ao char(4), @mes char(10), @name varchar(10), @lastname


varchar(20), @fechaP datetime

declare c_Ao cursor for


select distinct DATENAME(YEAR, p.Fecha_prestamo)
from Prestamo p
open c_Ao
fetch c_Ao into @ao
while(@@FETCH_STATUS = 0)
begin
print 'AO: ' + @ao

declare c_Mes cursor for


select distinct DATENAME(MONTH, p.Fecha_prestamo)
from Prestamo p
where year(p.Fecha_prestamo) = @ao
open c_Mes
fetch c_Mes into @mes
while (@@FETCH_STATUS = 0)
begin
print ' MES: ' + convert(char(12), @mes)

declare c_Estudiante cursor for


select distinct e.Nombre, e.Apellidos
from Estudiante e inner join Prestamo
p
on e.ID_estudiante = p.ID_estudiante
inner join DetallePrestamo d
on p.ID_prestamo = d.ID_prestamo inner
join Libro l
on l.ID_libro = d.ID_libro
where DATENAME(YEAR, Fecha_prestamo) =
@ao and DATENAME(month, p.Fecha_prestamo) = @mes
open c_Estudiante
fetch c_Estudiante into @name, @lastname
while (@@FETCH_STATUS = 0)
begin
print ' --' + @name + ' ' + @lastname
fetch c_Estudiante into @name,
@lastname
end
close c_Estudiante
deallocate c_Estudiante

fetch c_Mes into @mes


end
close c_Mes
deallocate c_Mes

fetch c_Ao into @ao


end
close c_Ao
deallocate c_Ao

BASE DE DATOS II / EXAMEN FINAL 8


UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

h. Plan de creacin y asignacin de privilegios dcada usuario (breve


descripcin e imgenes).

Inicio de Sesin 1

BASE DE DATOS II / EXAMEN FINAL 9


UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

Usuarios 1

1
BASE DE DATOS II / EXAMEN FINAL
0
UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

1
BASE DE DATOS II / EXAMEN FINAL
1
UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

1
BASE DE DATOS II / EXAMEN FINAL
2
UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

Inicio de Sesin 2

1
BASE DE DATOS II / EXAMEN FINAL
3
UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

Usuario 2

1
BASE DE DATOS II / EXAMEN FINAL
4
UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

1
BASE DE DATOS II / EXAMEN FINAL
5
UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

i. Documentacin del modelo de recuperacin y del plan de copias de


seguridad y restauracin.
Modelo de Recuperacin

1
BASE DE DATOS II / EXAMEN FINAL
6
UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

Plan de Copias de Seguridad

1
BASE DE DATOS II / EXAMEN FINAL
7
UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

Restauracin

1
BASE DE DATOS II / EXAMEN FINAL
8
UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

1
BASE DE DATOS II / EXAMEN FINAL
9
UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

j. Tareas programadas con Agente SQL (breve descripcin e imgenes).

2
BASE DE DATOS II / EXAMEN FINAL
0
UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

2
BASE DE DATOS II / EXAMEN FINAL
1
UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

2
BASE DE DATOS II / EXAMEN FINAL
2
UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

2
BASE DE DATOS II / EXAMEN FINAL
3
UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

2
BASE DE DATOS II / EXAMEN FINAL
4
UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

2
BASE DE DATOS II / EXAMEN FINAL
5
UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

2
BASE DE DATOS II / EXAMEN FINAL
6
UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

2
BASE DE DATOS II / EXAMEN FINAL
7
UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

k. Diez consultas optimizadas (imgenes del plan de ejecucin de cada


consulta).

l. ndices creados (Sustentar su creacin, puede utilizar imgenes del


Database Engine Tuning Advisor).

2
BASE DE DATOS II / EXAMEN FINAL
8
UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

m. Plan de Mantenimiento (Descripcin y sustento del plan de


mantenimiento, imgenes de su implementacin).

2
BASE DE DATOS II / EXAMEN FINAL
9
UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

3
BASE DE DATOS II / EXAMEN FINAL
0
UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

3
BASE DE DATOS II / EXAMEN FINAL
1
UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

3
BASE DE DATOS II / EXAMEN FINAL
2
UNIVERSIDAD NACIONAL DE CAJAMARCA
ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS

n. Conclusiones.

3
BASE DE DATOS II / EXAMEN FINAL
3

Potrebbero piacerti anche