Está en la página 1de 20

Informe de BD & SIA

Sistema : Gestin de Biblioteca


Docente
Jos Souza
Alumnos
Faundez Salinas Jos Javier
Olivares Nain Freddy Francisco
Vsquez Toledo Ramn Antonio
Cdigo de Asignatura

BSRC300-1

Fecha de Entrega
28/09/2010

ndice

0.- SQL SERVER


0.1 Que es SQL Server?
0.2 Caractersticas de SQL Server

1.- Metodologa de Modelamiento de Datos.


1.1 Diseo y Diagrama de Base de Datos
1.2 Poblamiento de Base de Datos

2.- Vistas
2.1.- Listar todos los libros por Materia
2.2.- Listar todos los libros por Autor
2.3.- Listar todos los libros prestados y no devueltos por usuario.
2.4.- Calcular los das de atraso que tiene los libros no devueltos a la
fecha.
2.5.- Contar y calcular el dinero correspondiente a los libros no devueltos
considerando que cada Libro tiene un precio

3.- Procedimientos Almacenados


3.1.- Insertar un Libro
3.2.- Consultar todos los Libros por Materia (la materia se recibe como un
parmetro)
3.3.- Actualizar el libro como devuelto
3.4.- Eliminar todos los Libros prestados no devueltos del ao pasado
(2009)
3.5.- Consultar todos los Libros prestados por Materia
3.6.- Listar todos los Libros prestados por Carrera. La carrera se ingresa
como un parmetro.

0.- SQL SERVER


0.1 Que es SQL Server?
Microsoft SQL Server es un sistema para la gestin de bases de datos producido
por Microsoft basado en el modelo relacional. Sus lenguajes para consultas son TSQL y ANSI SQL. Microsoft SQL Server constituye la alternativa de Microsoft a otros
potentes sistemas gestores de bases de datos como son Oracle o MySQL.

0.2 Caractersticas de SQL Server

Soporte de transacciones.
Escalabilidad, estabilidad y seguridad.

Soporta procedimientos almacenados.

Incluye tambin un potente entorno grfico de administracin, que permite


el uso de comandos DDL y DML grficamente.

Permite trabajar en modo cliente-servidor, donde la informacin y datos se


alojan en el servidor y los terminales o clientes de la red slo acceden a la
informacin.

Adems permite administrar informacin de otros servidores de datos.

Tambin este sistema incluye una versin reducida, llamada MSDE con el mismo
motor de base de datos pero orientado a proyectos ms pequeos, que en sus
versiones 2005 y 2008 pasa a ser el SQL Express Edition, que se distribuye en
forma gratuita.

1. Metodologa de modelamiento de datos


1.1 Diseo y Diagrama de Base de Datos
Representacin del diseo en un diagrama de base de datos. Considerando las
siguientes tablas y campos:

TABLAS y CAMPOS
Libros

Prestamo_devolu
cion

Usuario

Autor

materia

Carrera

Cod_libro

Cod_pedido

Cod_usuario

Cod_autor

Cod_materia

Cod_carrera

Cod_materia

Cod_libro

Cod_carrera

Nombre_au
tor

materia

Nombre_carr
era

Cod_autor

Cod_usuario

Nombre_usuar
io

Titulo

Fecha_prestamo

Direccion

Precio_libro

Fecha_maxima_ent
rega

telefono

Editorial

Fecha_devolucion

Fecha_publicac
ion

1.2 Poblamiento de Base de Datos


Se procede al Poblamiento de la Base de Datos la cual debe contener la siguiente
cantidad de datos:
8 Libros, 12 Usuarios, 25 Prestamos, 3 Autores, 3 Materias, 2 Carreras.

Poblamiento de la Tabla Libros

Poblamiento de la Tabla Usuarios

Poblamiento de la Tabla prestamo_devolucion

Poblamiento de la Tabla Autor

Poblamiento de la Tabla materia

Poblamiento de la Tabla carrera

2. Vistas
2.1- Listar todos los libros por Materia
Cdigo
SELECT
FROM

dbo.Libros.cod_libro, dbo.Libros.titulo, dbo.materia.materia


dbo.Libros INNER JOIN
dbo.materia ON dbo.Libros.cod_materia = dbo.materia.cod_materia

Vista

Vista generada de forma Visual

2.2.- Listar todos los libros por Autor


Cdigo
SELECT
FROM

dbo.Autor.nombre_autor, dbo.Libros.cod_libro, dbo.Libros.titulo


dbo.Autor INNER JOIN
dbo.Libros ON dbo.Autor.cod_autor = dbo.Libros.cod_autor

Vista

Vista generada de forma Visual

2.3.- Listar todos los libros prestados y no devueltos por usuario.


Cdigo
SELECT
dbo.Usuarios.nombre_usuario, dbo.prestamo_devolucion.fecha_prestamo,
dbo.prestamo_devolucion.fecha_devolucion, dbo.Libros.cod_libro,
dbo.Libros.titulo, dbo.materia.materia
FROM

dbo.Usuarios INNER JOIN


dbo.prestamo_devolucion ON dbo.Usuarios.cod_usuario =
dbo.prestamo_devolucion.cod_usuario INNER JOIN
dbo.Libros ON dbo.prestamo_devolucion.cod_libro = dbo.Libros.cod_libro INNER JOIN
dbo.materia ON dbo.Libros.cod_materia = dbo.materia.cod_materia
WHERE

(dbo.prestamo_devolucion.fecha_devolucion IS NULL)

Vista

Vista generada de forma Visual

10

2.4.- Calcular los das de atraso que tiene los libros no devueltos a la
fecha.
Cdigo
SELECT
dbo.prestamo_devolucion.fecha_prestamo,
dbo.prestamo_devolucion.fecha_maxima_entrega, DATEDIFF(day,
dbo.prestamo_devolucion.fecha_maxima_entrega, GETDATE())
AS
dias_atraso, dbo.Libros.titulo, dbo.Usuarios.nombre_usuario
FROM

dbo.prestamo_devolucion INNER JOIN


dbo.Usuarios ON dbo.prestamo_devolucion.cod_usuario = dbo.Usuarios.cod_usuario

INNER JOIN
dbo.Libros ON dbo.prestamo_devolucion.cod_libro = dbo.Libros.cod_libro
WHERE

(dbo.prestamo_devolucion.fecha_devolucion IS NULL)

Vista

Vista generada de forma Visual

11

2.5.- Contar y calcular el dinero correspondiente a los libros no devueltos


considerando que cada Libro tiene un precio
Cdigo
SELECT
COUNT(dbo.Libros.cod_libro) AS libros_perdidos, SUM(dbo.Libros.precio_libro) AS
valor_libros
FROM
dbo.Libros INNER JOIN
dbo.prestamo_devolucion ON dbo.Libros.cod_libro =
dbo.prestamo_devolucion.cod_libro INNER JOIN
dbo.Usuarios ON dbo.prestamo_devolucion.cod_usuario = dbo.Usuarios.cod_usuario
WHERE

(dbo.prestamo_devolucion.fecha_devolucion IS NULL)

Vista

Vista generada de forma Visual

12

3. Procedimientos Almacenados
3.1.- Insertar un Libro
Creacin de Procedimiento
CREATE PROCEDURE insertar_libro @cod_libro varchar(5),
@cod_materia varchar(5),
@cod_autor varchar(5),
@titulo varchar(30),
@precio_libro numeric(18,0),
@editorial varchar(30),
@fecha_publicacion datetime
as
insert into
Libros(cod_libro,cod_materia,cod_autor,titulo,precio_libro,editorial,fecha_publicacion)
values (@cod_libro,@cod_materia,@cod_autor,@titulo,@precio_libro,@editorial,
@fecha_publicacion)
go
exec insertar_libro 'po4','po','1','Martin Rivas',8000,'Ercilla','15-05-60'

Vistas

Vista antes del procedimiento

13

Vista Despus del procedimiento

3.2.- Consultar todos los Libros por Materia (la materia se recibe como un
parmetro)
Creacin de Procedimiento
Create Procedure libros_por_materia @materia varchar(30)
as
select materia.cod_materia, materia.materia, libros.cod_libro, libros.titulo, libros.editorial from libros
inner join materia on
libros.cod_materia = materia.cod_materia
where materia.materia = @materia
go
exec libros_por_materia 'poesia'

Vistas

Vista del procedimiento

14

3.3.- Actualizar el libro como devuelto


Creacin de Procedimiento
Create procedure actualizar_devolucion @cod_pedido varchar(30),
@fecha_devolucion datetime
as
update prestamo_devolucion set fecha_devolucion = @fecha_devolucion
where cod_pedido=@cod_pedido and fecha_devolucion is NULL
go
exec actualizar_devolucion '003','07-03-2009'

Vistas

15

Vista antes del procedimiento

16

Vista Despus del procedimiento

3.4.- Eliminar todos los Libros prestados no devueltos del ao pasado


(2009)

17

Creacin de Procedimiento
Create procedure eliminar_prestamos_2009
as
delete from prestamo_devolucion where fecha_maxima_entrega <= '31/12/2009 23:59:59' and
fecha_maxima_entrega >= '01/01/2009 00:00:01' and fecha_devolucion is NULL
go
exec eliminar_prestamos_2009

Vistas

Vista del procedimiento

3.5.- Consultar todos los Libros prestados por Materia


Creacin de Procedimiento

18

create procedure libros_prestados_materia


as
select
materia.cod_materia,materia.materia,libros.cod_libro,libros.titulo,prestamo_devolucion.fecha_prestamo
from prestamo_devolucion inner join libros on prestamo_devolucion.cod_libro = libros.cod_libro inner
join
materia on libros.cod_materia = materia.cod_materia order by materia.materia ASC
go
exec libros_prestados_materia

Vistas

Vista del procedimiento

3.6.- Listar todos los Libros prestados por Carrera. La carrera se ingresa
como un parmetro.

19

Creacin de Procedimiento
create procedure consulta_prestamos_carrera @carrera varchar(50)
as
select carrera.nombre_carrera, prestamo_devolucion.cod_libro,libros.titulo,
prestamo_devolucion.cod_usuario,usuarios.nombre_usuario
from prestamo_devolucion inner join usuarios on prestamo_devolucion.cod_usuario =
usuarios.cod_usuario
inner join libros on prestamo_devolucion.cod_libro = libros.cod_libro inner join carrera on
usuarios.cod_carrera =
carrera.cod_carrera where carrera.nombre_carrera = @carrera
go
exec consulta_prestamos_carrera 'Arte'

Vistas

Vista del procedimiento

20

También podría gustarte